{"_id":"@ashotsiroyan/file-manager","_rev":"18-291e75a005c77d1e0491ecce4e4737dc","name":"@ashotsiroyan/file-manager","dist-tags":{"latest":"1.1.8"},"versions":{"1.0.0":{"name":"@ashotsiroyan/file-manager","version":"1.0.0","license":"MIT","_id":"@ashotsiroyan/file-manager@1.0.0","maintainers":[{"name":"ashotsiroyan","email":"siroyanashot@gmail.com"}],"dist":{"shasum":"4c7c1d2752387f0a240550cd5b0a3dd4ea933f9f","tarball":"https://registry.npmjs.org/@ashotsiroyan/file-manager/-/file-manager-1.0.0.tgz","fileCount":37,"integrity":"sha512-I+UwRIbaXimf6ZN5H97Y+4F83g0zkY3aUOhsAfiwL+m2uJYpGaPNMX7UA3wI2VDOwVHprdVak5bTG3HsP5YnpQ==","signatures":[{"sig":"MEQCIEsR9QBzdhikXekgKBwX2vw59GiVDxUPfBG6HRjAYlWYAiBP5P/oq0rTsUCRiZjk+fTtb/3ztliVqew/+ZvkvZMG3w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":45350},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"scripts":{"build":"tsc -p tsconfig.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"ashotsiroyan","email":"siroyanashot@gmail.com"},"_npmVersion":"11.4.2","description":"Pluggable file storage for NestJS with Local, S3, and GCS engines. Includes an optional REST resource.","directories":{},"sideEffects":false,"_nodeVersion":"22.16.0","dependencies":{"uuid":"^9.0.1","busboy":"^1.6.0","mime-types":"^2.1.35","class-validator":"^0.14.1","class-transformer":"^0.5.1"},"_hasShrinkwrap":false,"devDependencies":{"tslib":"^2.6.2","typescript":"^5.6.3","@types/node":"^20.11.30","@types/mime-types":"^2.1.4"},"peerDependencies":{"rxjs":"^7.0.0","@nestjs/core":"^10.0.0 || ^11.0.0","@nestjs/common":"^10.0.0 || ^11.0.0","reflect-metadata":"^0.2.0","@nestjs/platform-express":"^10.0.0 || ^11.0.0"},"optionalDependencies":{"@aws-sdk/client-s3":"^3.654.0","@google-cloud/storage":"^7.13.0","@aws-sdk/s3-request-presigner":"^3.654.0"},"_npmOperationalInternal":{"tmp":"tmp/file-manager_1.0.0_1762278218190_0.7906609386411279","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@ashotsiroyan/file-manager","version":"1.0.3","license":"MIT","_id":"@ashotsiroyan/file-manager@1.0.3","maintainers":[{"name":"ashotsiroyan","email":"siroyanashot@gmail.com"}],"dist":{"shasum":"3ace28a29a0fc208a12b5b84854b4d5ea4acb770","tarball":"https://registry.npmjs.org/@ashotsiroyan/file-manager/-/file-manager-1.0.3.tgz","fileCount":15,"integrity":"sha512-Huq9vxpH7WioF4xTNejcq8//ENei6lCdrDj/m7xVUjB4Idrpo0wuzOEJ8UY58kux78p2UUqei3fpjbnWvOWBWg==","signatures":[{"sig":"MEQCIEUcowbyRrGjc59x41QMQyKzdAQ8fz9SOqgD/42mIMnHAiBRVNWt7d45MYk0cLzrFN7of+4y3oqkDsHUO9KqyrjhqA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":20345},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"5028f43150299c59af24086f9122202fedce46d2","scripts":{"build":"tsc -p tsconfig.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3d4770c1-4721-4aa6-b448-5ac42bda8ea0"}},"_npmVersion":"11.6.2","description":"Pluggable file storage for NestJS with Local, S3, and GCS engines. Includes an optional REST resource.","directories":{},"sideEffects":false,"_nodeVersion":"20.19.5","dependencies":{"mime-types":"^2.1.35","class-validator":"^0.14.1","class-transformer":"^0.5.1"},"_hasShrinkwrap":false,"devDependencies":{"tslib":"^2.6.2","typescript":"^5.6.3","@types/node":"^20.11.30","@types/mime-types":"^2.1.4"},"peerDependencies":{"rxjs":"^7.0.0","@nestjs/core":"^10.0.0 || ^11.0.0","@nestjs/common":"^10.0.0 || ^11.0.0","reflect-metadata":"^0.2.0","@nestjs/platform-express":"^10.0.0 || ^11.0.0"},"optionalDependencies":{"@aws-sdk/client-s3":"^3.654.0","@google-cloud/storage":"^7.13.0","@aws-sdk/s3-request-presigner":"^3.654.0"},"_npmOperationalInternal":{"tmp":"tmp/file-manager_1.0.3_1762280282319_0.8064144295615767","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@ashotsiroyan/file-manager","version":"1.0.4","license":"MIT","_id":"@ashotsiroyan/file-manager@1.0.4","maintainers":[{"name":"ashotsiroyan","email":"siroyanashot@gmail.com"}],"dist":{"shasum":"1ce5752dff93c3a0f58ba313e5e1bea292ba367b","tarball":"https://registry.npmjs.org/@ashotsiroyan/file-manager/-/file-manager-1.0.4.tgz","fileCount":15,"integrity":"sha512-o0pzw93AP9vDX79TDZEJOohG++gKAKyJI1JIo4WL/FPNbN/ZWanKbV2kaGsj7osuEqJCWz7r/YUObBnzdmoinA==","signatures":[{"sig":"MEQCIFUYf5b1FGlWgrQgWx+7aUJZTqWShoyLqm2rI/R2jt2YAiApFqrWMwXjY9vpaO2FIhny7+6tbopAZJseEUBniTwZww==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":35358},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"bcd4b3a145df3a20a5364f3b4c42b0d6f1245d4d","scripts":{"build":"tsc -p tsconfig.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3d4770c1-4721-4aa6-b448-5ac42bda8ea0"}},"_npmVersion":"11.6.2","description":"A **modular file management system for NestJS** supporting **Local**, **AWS S3**, and **Google Cloud Storage (GCS)** backends.   It provides a unified API for uploading, downloading, listing, deleting, and signing files — all with a clean, injectable desi","directories":{},"sideEffects":false,"_nodeVersion":"20.19.5","dependencies":{"mime-types":"^2.1.35","class-validator":"^0.14.1","class-transformer":"^0.5.1"},"_hasShrinkwrap":false,"devDependencies":{"tslib":"^2.6.2","typescript":"^5.6.3","@types/node":"^20.11.30","@types/mime-types":"^2.1.4"},"peerDependencies":{"rxjs":"^7.0.0","@nestjs/core":"^10.0.0 || ^11.0.0","@nestjs/common":"^10.0.0 || ^11.0.0","reflect-metadata":"^0.2.0","@nestjs/platform-express":"^10.0.0 || ^11.0.0"},"optionalDependencies":{"@aws-sdk/client-s3":"^3.654.0","@google-cloud/storage":"^7.13.0","@aws-sdk/s3-request-presigner":"^3.654.0"},"_npmOperationalInternal":{"tmp":"tmp/file-manager_1.0.4_1762347004307_0.13649087966761697","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"@ashotsiroyan/file-manager","version":"1.0.5","license":"MIT","_id":"@ashotsiroyan/file-manager@1.0.5","maintainers":[{"name":"ashotsiroyan","email":"siroyanashot@gmail.com"}],"dist":{"shasum":"09878ba2cf18dee1594b4e3d2c69f1f1891347b2","tarball":"https://registry.npmjs.org/@ashotsiroyan/file-manager/-/file-manager-1.0.5.tgz","fileCount":24,"integrity":"sha512-Gd1e7a2KVdZM9NZG1JV81h1cXbMWfT4wk3yyZY9ntyEhO6j1vfpXy+8RncXNSVVbezdULDTdtFVf5+t+biIqKw==","signatures":[{"sig":"MEQCIFkRjZly0DO1/UG+sbZwWgANUFZehRKfliNgD5xTn9chAiBHMynh6+I/GfRIP8qIE/GrO3sgDnpFszrfYnSsKnaofw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":39052},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"88bac17bba97188ad2120e1a10121ad790f0f2e4","scripts":{"build":"tsc -p tsconfig.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3d4770c1-4721-4aa6-b448-5ac42bda8ea0"}},"_npmVersion":"11.6.2","description":"A **modular file management system for NestJS** supporting **Local**, **AWS S3**, and **Google Cloud Storage (GCS)** backends.   It provides a unified API for uploading, downloading, listing, deleting, and signing files — all with a clean, injectable desi","directories":{},"sideEffects":false,"_nodeVersion":"20.19.5","dependencies":{"mime-types":"^2.1.35","class-validator":"^0.14.1","class-transformer":"^0.5.1"},"_hasShrinkwrap":false,"devDependencies":{"tslib":"^2.6.2","typescript":"^5.6.3","@types/node":"^20.11.30","@types/mime-types":"^2.1.4"},"peerDependencies":{"rxjs":"^7.0.0","@nestjs/core":"^10.0.0 || ^11.0.0","@nestjs/common":"^10.0.0 || ^11.0.0","reflect-metadata":"^0.2.0","@nestjs/platform-express":"^10.0.0 || ^11.0.0"},"optionalDependencies":{"@aws-sdk/client-s3":"^3.654.0","@google-cloud/storage":"^7.13.0","@aws-sdk/s3-request-presigner":"^3.654.0"},"_npmOperationalInternal":{"tmp":"tmp/file-manager_1.0.5_1762347704065_0.5886779068552888","host":"s3://npm-registry-packages-npm-production"}},"1.0.6":{"name":"@ashotsiroyan/file-manager","version":"1.0.6","license":"MIT","_id":"@ashotsiroyan/file-manager@1.0.6","maintainers":[{"name":"ashotsiroyan","email":"siroyanashot@gmail.com"}],"dist":{"shasum":"184eeac7ab78e1e74eea20db43c541b61ef84553","tarball":"https://registry.npmjs.org/@ashotsiroyan/file-manager/-/file-manager-1.0.6.tgz","fileCount":24,"integrity":"sha512-J+SiIdErbciDY3qaM+JUmeTyHeWb45KzPhJ8f4E1ctFlEsVt5NVwFAvoftBWyoeGwNpblRGf4S0167hkG0hAxg==","signatures":[{"sig":"MEUCIAnD90ryc7/pTr0fxCyKED80ZhpEmyT3m0MJBDrwEIxAAiEArWzRjaTabMuLCzOMm6aqbScovlwBUYuShjXzkjjYhrI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":39032},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"759ccd7d1f51253c3ef34377dab7dfa5ed6c5998","scripts":{"build":"tsc -p tsconfig.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3d4770c1-4721-4aa6-b448-5ac42bda8ea0"}},"_npmVersion":"11.6.2","description":"A **modular file management system for NestJS** supporting **Local**, **AWS S3**, and **Google Cloud Storage (GCS)** backends.   It provides a unified API for uploading, downloading, listing, deleting, and signing files — all with a clean, injectable desi","directories":{},"sideEffects":false,"_nodeVersion":"20.19.5","dependencies":{"mime-types":"^2.1.35","class-validator":"^0.14.1","class-transformer":"^0.5.1"},"_hasShrinkwrap":false,"devDependencies":{"tslib":"^2.6.2","typescript":"^5.6.3","@types/node":"^20.11.30","@types/mime-types":"^2.1.4"},"peerDependencies":{"rxjs":"^7.0.0","@nestjs/core":"^10.0.0 || ^11.0.0","@nestjs/common":"^10.0.0 || ^11.0.0","reflect-metadata":"^0.2.0","@nestjs/platform-express":"^10.0.0 || ^11.0.0"},"optionalDependencies":{"@aws-sdk/client-s3":"^3.654.0","@google-cloud/storage":"^7.13.0","@aws-sdk/s3-request-presigner":"^3.654.0"},"_npmOperationalInternal":{"tmp":"tmp/file-manager_1.0.6_1762349093355_0.8417841210926522","host":"s3://npm-registry-packages-npm-production"}},"1.0.7":{"name":"@ashotsiroyan/file-manager","version":"1.0.7","license":"MIT","_id":"@ashotsiroyan/file-manager@1.0.7","maintainers":[{"name":"ashotsiroyan","email":"siroyanashot@gmail.com"}],"dist":{"shasum":"58ef811762e8a720d421a429861943878d3a99ed","tarball":"https://registry.npmjs.org/@ashotsiroyan/file-manager/-/file-manager-1.0.7.tgz","fileCount":24,"integrity":"sha512-PM5ZMgyZVXTSgq33puprCPTJgLEL9Yw7uiiALXlpu/UhJOHLjusJ+ujowsNiC56nrPTFdcSWxR9BSe7qD8YZ8Q==","signatures":[{"sig":"MEYCIQCjhi+HZjkwC3Jc9x0QHDLmk96TxFHN0nY/QJHZsx6EdgIhAKPEaB9lwpjlcJChNAS1OAEc7fHZ+Z50puLqtLeR9iZf","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":39046},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"00e854a7a4d8be559096131987757eb970dd29c2","scripts":{"build":"tsc -p tsconfig.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3d4770c1-4721-4aa6-b448-5ac42bda8ea0"}},"_npmVersion":"11.6.2","description":"A **modular file management system for NestJS** supporting **Local**, **AWS S3**, and **Google Cloud Storage (GCS)** backends.   It provides a unified API for uploading, downloading, listing, deleting, and signing files — all with a clean, injectable desi","directories":{},"sideEffects":false,"_nodeVersion":"20.19.5","dependencies":{"mime-types":"^2.1.35","class-validator":"^0.14.1","class-transformer":"^0.5.1"},"_hasShrinkwrap":false,"devDependencies":{"tslib":"^2.6.2","typescript":"^5.6.3","@types/node":"^20.11.30","@types/mime-types":"^2.1.4"},"peerDependencies":{"rxjs":"^7.0.0","@nestjs/core":"^10.0.0 || ^11.0.0","@nestjs/common":"^10.0.0 || ^11.0.0","reflect-metadata":"^0.2.0","@nestjs/platform-express":"^10.0.0 || ^11.0.0"},"optionalDependencies":{"@aws-sdk/client-s3":"^3.654.0","@google-cloud/storage":"^7.13.0","@aws-sdk/s3-request-presigner":"^3.654.0"},"_npmOperationalInternal":{"tmp":"tmp/file-manager_1.0.7_1762349343543_0.7816786272763012","host":"s3://npm-registry-packages-npm-production"}},"1.0.8":{"name":"@ashotsiroyan/file-manager","version":"1.0.8","keywords":["file-manager","s3","gcc"],"license":"MIT","_id":"@ashotsiroyan/file-manager@1.0.8","maintainers":[{"name":"ashotsiroyan","email":"siroyanashot@gmail.com"}],"homepage":"https://github.com/ashotsiroyan/file-manager#readme","bugs":{"url":"https://github.com/ashotsiroyan/file-manager/issues"},"dist":{"shasum":"8f24df7d9c2182d861b2b95eb828e5bb0921ed8c","tarball":"https://registry.npmjs.org/@ashotsiroyan/file-manager/-/file-manager-1.0.8.tgz","fileCount":24,"integrity":"sha512-jlrgqBISH/Gi3dMwjsDDZta3VnG+T0BIg56hBbcuxxKSIwt/ddG5/x1rqPpTCsITjCliLLcjC9FUMQbQyIFWfQ==","signatures":[{"sig":"MEQCIEYjzI9n4NeynnfPizcdq1NHVI31SuycizxYtuqy2C6rAiAzy6vAk3Nab10A5ZOm3goK9XK/ME30DyW6iBSaE8RRHg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":41930},"main":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"717586f138a103fd206678498738d80ecb6af3d8","scripts":{"build":"tsc -p tsconfig.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3d4770c1-4721-4aa6-b448-5ac42bda8ea0"}},"repository":{"url":"git://github.com/ashotsiroyan/file-manager.git","type":"git"},"_npmVersion":"11.6.2","description":"A **modular file management system for NestJS** supporting **Local**, **AWS S3**, and **Google Cloud Storage (GCS)** backends.   It provides a unified API for uploading, downloading, listing, deleting, and signing files — all with a clean, injectable desi","directories":{},"sideEffects":false,"_nodeVersion":"20.19.5","dependencies":{"mime-types":"^2.1.35","class-validator":"^0.14.1","class-transformer":"^0.5.1"},"_hasShrinkwrap":false,"devDependencies":{"tslib":"^2.6.2","typescript":"^5.6.3","@types/node":"^20.11.30","@types/mime-types":"^2.1.4"},"peerDependencies":{"rxjs":"^7.0.0","@nestjs/core":"^10.0.0 || ^11.0.0","@nestjs/common":"^10.0.0 || ^11.0.0","reflect-metadata":"^0.2.0","@nestjs/platform-express":"^10.0.0 || ^11.0.0"},"optionalDependencies":{"@aws-sdk/client-s3":"^3.654.0","@google-cloud/storage":"^7.13.0","@aws-sdk/s3-request-presigner":"^3.654.0"},"_npmOperationalInternal":{"tmp":"tmp/file-manager_1.0.8_1762357655817_0.05415415280932989","host":"s3://npm-registry-packages-npm-production"}},"1.0.9":{"name":"@ashotsiroyan/file-manager","version":"1.0.9","keywords":["file-manager","s3","gcc"],"license":"MIT","_id":"@ashotsiroyan/file-manager@1.0.9","maintainers":[{"name":"ashotsiroyan","email":"siroyanashot@gmail.com"}],"homepage":"https://github.com/ashotsiroyan/file-manager#readme","bugs":{"url":"https://github.com/ashotsiroyan/file-manager/issues"},"dist":{"shasum":"60dff323ab22092b135cad2e0e4ab1af356940f0","tarball":"https://registry.npmjs.org/@ashotsiroyan/file-manager/-/file-manager-1.0.9.tgz","fileCount":32,"integrity":"sha512-+SxVZAqWlxze30oEm6v6KSdclaWwja4BlmDKZUiFadVuIaax22MKJ6/AQ3VkgGLxyoxq7/sDRFlhyiNyi/egBA==","signatures":[{"sig":"MEUCIQC+h1lPDnHOk8N74BX1GXOMGHliOiyUtXS2uZX9bkKNYgIgT7P6OT4NTrgEtCKJ15Zzo04Dxywa+u+HEjaGL68cnPo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":44258},"main":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"6680b87e1e8260fa47d59b56b5f4b453f9808685","scripts":{"build":"tsc -p tsconfig.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3d4770c1-4721-4aa6-b448-5ac42bda8ea0"}},"repository":{"url":"git://github.com/ashotsiroyan/file-manager.git","type":"git"},"_npmVersion":"11.6.2","description":"A **modular file management system for NestJS** supporting **Local**, **AWS S3**, and **Google Cloud Storage (GCS)** backends.   It provides a unified API for uploading, downloading, listing, deleting, and signing files — all with a clean, injectable desi","directories":{},"sideEffects":false,"_nodeVersion":"20.19.5","dependencies":{"mime-types":"^2.1.35","class-validator":"^0.14.1","class-transformer":"^0.5.1"},"_hasShrinkwrap":false,"devDependencies":{"tslib":"^2.6.2","typescript":"^5.6.3","@types/node":"^20.11.30","@types/mime-types":"^2.1.4"},"peerDependencies":{"rxjs":"^7.0.0","@nestjs/core":"^10.0.0 || ^11.0.0","@nestjs/common":"^10.0.0 || ^11.0.0","reflect-metadata":"^0.2.0","@nestjs/platform-express":"^10.0.0 || ^11.0.0"},"optionalDependencies":{"@aws-sdk/client-s3":"^3.654.0","@google-cloud/storage":"^7.13.0","@aws-sdk/s3-request-presigner":"^3.654.0"},"_npmOperationalInternal":{"tmp":"tmp/file-manager_1.0.9_1762411931297_0.6160217171115228","host":"s3://npm-registry-packages-npm-production"}},"1.0.10":{"name":"@ashotsiroyan/file-manager","version":"1.0.10","keywords":["file-manager","s3","gcc"],"author":{"name":"Ashot Siroyan"},"license":"MIT","_id":"@ashotsiroyan/file-manager@1.0.10","maintainers":[{"name":"ashotsiroyan","email":"siroyanashot@gmail.com"}],"homepage":"https://github.com/ashotsiroyan/file-manager#readme","bugs":{"url":"https://github.com/ashotsiroyan/file-manager/issues"},"dist":{"shasum":"054a6c6c68208387184e97be4726b916a361a6ba","tarball":"https://registry.npmjs.org/@ashotsiroyan/file-manager/-/file-manager-1.0.10.tgz","fileCount":37,"integrity":"sha512-wRXGaGtrqOURIDqRuqAp28cr8fKZZGtx3xX8YyVVXVvksCaKR5m5TSaxSLa86cxp7tHqUM3hLL2VC67DP5wuWw==","signatures":[{"sig":"MEQCIF/IeMGaza47tuhvFvO86bE5LkWbCz5X5v3OAjarQEUPAiADCYwIvBMR1IDG7FG3R+KW04Ul3fTUOI/mH2As4oLTOg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":50536},"main":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"e03aaed3e6668fdcb5d05c58e68fc3481e3c21d0","scripts":{"build":"tsc -p tsconfig.json","format":"prettier --write \"src/**/*.ts\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3d4770c1-4721-4aa6-b448-5ac42bda8ea0"}},"repository":{"url":"git://github.com/ashotsiroyan/file-manager.git","type":"git"},"_npmVersion":"11.6.2","description":"Modular NestJS file manager with pluggable local, AWS S3, and Google Cloud Storage engines.","directories":{},"sideEffects":false,"_nodeVersion":"20.19.5","dependencies":{"mime-types":"^2.1.35","class-validator":"^0.14.1","class-transformer":"^0.5.1"},"_hasShrinkwrap":false,"devDependencies":{"tslib":"^2.6.2","prettier":"^3.6.2","typescript":"^5.6.3","@types/node":"^20.11.30","@types/mime-types":"^2.1.4"},"peerDependencies":{"rxjs":"^7.0.0","@nestjs/core":"^10.0.0 || ^11.0.0","@nestjs/common":"^10.0.0 || ^11.0.0","reflect-metadata":"^0.2.0","@nestjs/platform-express":"^10.0.0 || ^11.0.0"},"optionalDependencies":{"@aws-sdk/client-s3":"^3.654.0","@google-cloud/storage":"^7.13.0","@aws-sdk/s3-request-presigner":"^3.654.0"},"_npmOperationalInternal":{"tmp":"tmp/file-manager_1.0.10_1762420706392_0.2333278978800002","host":"s3://npm-registry-packages-npm-production"}},"1.0.11":{"name":"@ashotsiroyan/file-manager","version":"1.0.11","keywords":["file-manager","s3","gcs"],"author":{"name":"Ashot Siroyan"},"license":"MIT","_id":"@ashotsiroyan/file-manager@1.0.11","maintainers":[{"name":"ashotsiroyan","email":"siroyanashot@gmail.com"}],"homepage":"https://github.com/ashotsiroyan/file-manager#readme","bugs":{"url":"https://github.com/ashotsiroyan/file-manager/issues"},"dist":{"shasum":"50256db568a43460e82ace438a31ae7bffa344f1","tarball":"https://registry.npmjs.org/@ashotsiroyan/file-manager/-/file-manager-1.0.11.tgz","fileCount":37,"integrity":"sha512-GOq+zv3IVse6fMbIMXEje0wMhGPHD8C6c/y3u5xuwpKPElxo2jMaoyKfqAELPIMT1jCkhxrqTkZzLh1upKziOw==","signatures":[{"sig":"MEUCIDuv9sNtvqz0rGzy2TyqCaUopd4mJEYtHPYEk4lLOYyYAiEAiqt3cJ+yQ1o7jWy/f1NyGsnLlurrpzVfA1cEVpBE2cA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":50536},"main":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"fcdcd2c1cf7abc31d3e56f5ad06f3d5a88ea22ba","scripts":{"build":"tsc -p tsconfig.json","format":"prettier --write \"src/**/*.ts\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3d4770c1-4721-4aa6-b448-5ac42bda8ea0"}},"repository":{"url":"git://github.com/ashotsiroyan/file-manager.git","type":"git"},"_npmVersion":"11.6.2","description":"Modular NestJS file manager with pluggable local, AWS S3, and Google Cloud Storage engines.","directories":{},"sideEffects":false,"_nodeVersion":"20.19.5","dependencies":{"mime-types":"^2.1.35","class-validator":"^0.14.1","class-transformer":"^0.5.1"},"_hasShrinkwrap":false,"devDependencies":{"tslib":"^2.6.2","prettier":"^3.6.2","typescript":"^5.6.3","@types/node":"^20.11.30","@types/mime-types":"^2.1.4"},"peerDependencies":{"rxjs":"^7.0.0","@nestjs/core":"^10.0.0 || ^11.0.0","@nestjs/common":"^10.0.0 || ^11.0.0","reflect-metadata":"^0.2.0","@nestjs/platform-express":"^10.0.0 || ^11.0.0"},"optionalDependencies":{"@aws-sdk/client-s3":"^3.654.0","@google-cloud/storage":"^7.13.0","@aws-sdk/s3-request-presigner":"^3.654.0"},"_npmOperationalInternal":{"tmp":"tmp/file-manager_1.0.11_1762426597376_0.5340488018031015","host":"s3://npm-registry-packages-npm-production"}},"1.0.12":{"name":"@ashotsiroyan/file-manager","version":"1.0.12","keywords":["file-manager","s3","gcs"],"author":{"name":"Ashot Siroyan"},"license":"MIT","_id":"@ashotsiroyan/file-manager@1.0.12","maintainers":[{"name":"ashotsiroyan","email":"siroyanashot@gmail.com"}],"homepage":"https://github.com/ashotsiroyan/file-manager#readme","bugs":{"url":"https://github.com/ashotsiroyan/file-manager/issues"},"dist":{"shasum":"f3c6eb446d8cba9b0afd9dbd37765d63c96cce98","tarball":"https://registry.npmjs.org/@ashotsiroyan/file-manager/-/file-manager-1.0.12.tgz","fileCount":39,"integrity":"sha512-ASC9+zeR80x0ASOPumClul8PhlC8krjAziBzyalKWR8KQtvqzz04r9Y81T9XDDjMtpzD7fPthnNSdaQApEJD1A==","signatures":[{"sig":"MEYCIQC1XlDw382K6TwF0JVo4jNXmUCV7Xd/5QTz3pqnczb8VQIhALu8h/eiqjl8ptk3P2ugixHa1mldSlJE+g4wZgUxoYHY","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ashotsiroyan%2ffile-manager@1.0.12","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":55314},"main":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"ca38f0cb521264d6a981afd719eb19d8fcf2fa90","scripts":{"build":"tsc -p tsconfig.json","format":"prettier --write \"src/**/*.ts\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3d4770c1-4721-4aa6-b448-5ac42bda8ea0"}},"repository":{"url":"git://github.com/ashotsiroyan/file-manager.git","type":"git"},"_npmVersion":"11.6.2","description":"Modular NestJS file manager with pluggable local, AWS S3, and Google Cloud Storage engines.","directories":{},"sideEffects":false,"_nodeVersion":"20.19.5","dependencies":{"mime-types":"^2.1.35","class-validator":"^0.14.1","class-transformer":"^0.5.1"},"_hasShrinkwrap":false,"devDependencies":{"tslib":"^2.6.2","prettier":"^3.6.2","typescript":"^5.6.3","@types/node":"^20.11.30","@types/mime-types":"^2.1.4"},"peerDependencies":{"rxjs":"^7.0.0","@nestjs/core":"^10.0.0 || ^11.0.0","@nestjs/common":"^10.0.0 || ^11.0.0","reflect-metadata":"^0.2.0","@nestjs/platform-express":"^10.0.0 || ^11.0.0"},"optionalDependencies":{"@aws-sdk/client-s3":"^3.654.0","@google-cloud/storage":"^7.13.0","@aws-sdk/s3-request-presigner":"^3.654.0"},"_npmOperationalInternal":{"tmp":"tmp/file-manager_1.0.12_1762777507831_0.24926877819607873","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@ashotsiroyan/file-manager","version":"1.1.0","keywords":["file-manager","s3","gcs"],"author":{"name":"Ashot Siroyan"},"license":"MIT","_id":"@ashotsiroyan/file-manager@1.1.0","maintainers":[{"name":"ashotsiroyan","email":"siroyanashot@gmail.com"}],"homepage":"https://github.com/ashotsiroyan/file-manager#readme","bugs":{"url":"https://github.com/ashotsiroyan/file-manager/issues"},"dist":{"shasum":"10ae8110b8cdfd7916842e2b4ca41d19ed9f79dc","tarball":"https://registry.npmjs.org/@ashotsiroyan/file-manager/-/file-manager-1.1.0.tgz","fileCount":41,"integrity":"sha512-stfm+0ayuRIKe/b3lplsFt+SkDze/c7E/eaFTc9vmZWaFQAWaiAH076VL1m/23l3A+ZxRFWUmbsuNmwyp35eRQ==","signatures":[{"sig":"MEYCIQC2yJi2jQ7qT7+ynEpumHvBTqH/4xwhQNc7v3Pns7/8kgIhAKlMrLjVg1lR1vLtzf8b6qu3LJO+l89pmgGjIzZx/DyI","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ashotsiroyan%2ffile-manager@1.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":57583},"main":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"b91eef044c013d53e194acc5c6b59ecc2132e693","scripts":{"build":"tsc -p tsconfig.json","format":"prettier --write \"src/**/*.ts\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3d4770c1-4721-4aa6-b448-5ac42bda8ea0"}},"repository":{"url":"git://github.com/ashotsiroyan/file-manager.git","type":"git"},"_npmVersion":"11.6.2","description":"Modular NestJS file manager with pluggable local, AWS S3, and Google Cloud Storage engines.","directories":{},"sideEffects":false,"_nodeVersion":"20.19.5","dependencies":{"mime-types":"^2.1.35","class-validator":"^0.14.1","class-transformer":"^0.5.1"},"_hasShrinkwrap":false,"devDependencies":{"tslib":"^2.6.2","prettier":"^3.6.2","typescript":"^5.6.3","@types/node":"^20.11.30","@types/mime-types":"^2.1.4"},"peerDependencies":{"rxjs":"^7.0.0","@nestjs/core":"^10.0.0 || ^11.0.0","@nestjs/common":"^10.0.0 || ^11.0.0","reflect-metadata":"^0.2.0","@nestjs/platform-express":"^10.0.0 || ^11.0.0"},"optionalDependencies":{"@aws-sdk/client-s3":"^3.654.0","@google-cloud/storage":"^7.13.0","@aws-sdk/s3-request-presigner":"^3.654.0"},"_npmOperationalInternal":{"tmp":"tmp/file-manager_1.1.0_1762954501631_0.2244217124617578","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@ashotsiroyan/file-manager","version":"1.1.1","keywords":["file-manager","s3","gcs"],"author":{"name":"Ashot Siroyan"},"license":"MIT","_id":"@ashotsiroyan/file-manager@1.1.1","maintainers":[{"name":"ashotsiroyan","email":"siroyanashot@gmail.com"}],"homepage":"https://github.com/ashotsiroyan/file-manager#readme","bugs":{"url":"https://github.com/ashotsiroyan/file-manager/issues"},"dist":{"shasum":"01d769c747c91bdf7fd10fc1db90b959561e078e","tarball":"https://registry.npmjs.org/@ashotsiroyan/file-manager/-/file-manager-1.1.1.tgz","fileCount":43,"integrity":"sha512-s+l7CXQ4VNmXsumrCQnfFMT0pqTQx7lwfJDEz3zAcFq5HxPsARfmnuVzVMN1ZjGvW/rQWLQa6pVSdrRaO41ffg==","signatures":[{"sig":"MEUCIQCrDnUxdk4Ami5tKgqlTGQThBz5zdN5tRNIQzlWOvFtHAIgByCTbACH9yxFkw6NyjW1OYgoa3JHhaItYUGvV3CUp48=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ashotsiroyan%2ffile-manager@1.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":60844},"main":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"86c78ab5679d5a031d43fa86dd5e794ec37c8249","scripts":{"build":"tsc -p tsconfig.json","format":"prettier --write \"src/**/*.ts\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3d4770c1-4721-4aa6-b448-5ac42bda8ea0"}},"repository":{"url":"git://github.com/ashotsiroyan/file-manager.git","type":"git"},"_npmVersion":"11.7.0","description":"Modular NestJS file manager with pluggable local, AWS S3, and Google Cloud Storage engines.","directories":{},"sideEffects":false,"_nodeVersion":"20.19.6","dependencies":{"mime-types":"^3.0.2","class-validator":"^0.14.3","class-transformer":"^0.5.1"},"_hasShrinkwrap":false,"devDependencies":{"tslib":"^2.8.1","prettier":"^3.8.0","typescript":"^5.9.3","@types/node":"^25.0.9","@types/mime-types":"^3.0.1"},"peerDependencies":{"rxjs":"^7.0.0","@nestjs/core":"^10.0.0 || ^11.0.0","@nestjs/common":"^10.0.0 || ^11.0.0","reflect-metadata":"^0.2.0","@nestjs/platform-express":"^10.0.0 || ^11.0.0"},"optionalDependencies":{"@aws-sdk/client-s3":"^3.972.0","@google-cloud/storage":"^7.18.0","@aws-sdk/s3-request-presigner":"^3.972.0"},"_npmOperationalInternal":{"tmp":"tmp/file-manager_1.1.1_1769002996207_0.34163543143860564","host":"s3://npm-registry-packages-npm-production"}},"1.1.2":{"name":"@ashotsiroyan/file-manager","version":"1.1.2","keywords":["file-manager","s3","gcs"],"author":{"name":"Ashot Siroyan"},"license":"MIT","_id":"@ashotsiroyan/file-manager@1.1.2","maintainers":[{"name":"ashotsiroyan","email":"siroyanashot@gmail.com"}],"homepage":"https://github.com/ashotsiroyan/file-manager#readme","bugs":{"url":"https://github.com/ashotsiroyan/file-manager/issues"},"dist":{"shasum":"1f09d8b5b9772529e9fe2125e164061f8c9ef358","tarball":"https://registry.npmjs.org/@ashotsiroyan/file-manager/-/file-manager-1.1.2.tgz","fileCount":43,"integrity":"sha512-WRAGQNakZ3P9WBwVfZX8sB+UC0zaTjxM5jJ/ukKZHj2snTZ0Vd8Yz6cQqR2h2N4ouYmlQiakwKSoFGmyNk/AGg==","signatures":[{"sig":"MEUCIQCtYVSWlhbCgN77+GGbTcKVEE3kUkgSrS4GQMIn39Q2yQIgGpGMQNXg0sUFaGl36Z0GRRnm5VX06jtb+3PFpxp3BTQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ashotsiroyan%2ffile-manager@1.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":60968},"main":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"e243a50dadccbda99f2634c29729fad4d9f6f3a3","scripts":{"build":"tsc -p tsconfig.json","format":"prettier --write \"src/**/*.ts\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3d4770c1-4721-4aa6-b448-5ac42bda8ea0"}},"repository":{"url":"git://github.com/ashotsiroyan/file-manager.git","type":"git"},"_npmVersion":"11.7.0","description":"Modular NestJS file manager with pluggable local, AWS S3, and Google Cloud Storage engines.","directories":{},"sideEffects":false,"_nodeVersion":"20.19.6","dependencies":{"mime-types":"^3.0.2","class-validator":"^0.14.3","class-transformer":"^0.5.1"},"_hasShrinkwrap":false,"devDependencies":{"tslib":"^2.8.1","prettier":"^3.8.0","typescript":"^5.9.3","@types/node":"^25.0.9","@types/mime-types":"^3.0.1"},"peerDependencies":{"rxjs":"^7.0.0","@nestjs/core":"^10.0.0 || ^11.0.0","@nestjs/common":"^10.0.0 || ^11.0.0","reflect-metadata":"^0.2.0","@nestjs/platform-express":"^10.0.0 || ^11.0.0"},"optionalDependencies":{"@aws-sdk/client-s3":"^3.972.0","@google-cloud/storage":"^7.18.0","@aws-sdk/s3-request-presigner":"^3.972.0"},"_npmOperationalInternal":{"tmp":"tmp/file-manager_1.1.2_1769008169203_0.7255448418500767","host":"s3://npm-registry-packages-npm-production"}},"1.1.3":{"name":"@ashotsiroyan/file-manager","version":"1.1.3","keywords":["file-manager","s3","gcs"],"author":{"name":"Ashot Siroyan"},"license":"MIT","_id":"@ashotsiroyan/file-manager@1.1.3","maintainers":[{"name":"ashotsiroyan","email":"siroyanashot@gmail.com"}],"homepage":"https://github.com/ashotsiroyan/file-manager#readme","bugs":{"url":"https://github.com/ashotsiroyan/file-manager/issues"},"dist":{"shasum":"a9a5bcf8c9ebd4fa484acd035ca282e59232d8ae","tarball":"https://registry.npmjs.org/@ashotsiroyan/file-manager/-/file-manager-1.1.3.tgz","fileCount":43,"integrity":"sha512-U29vQzlJxol1BY/QMKv+eGjHj+9PwcZs0z8rTYLBah7r0yI7y4jY6zXQUkKgyn5xp3b9HYGO0fO12IS8iNKHvQ==","signatures":[{"sig":"MEYCIQDizhVPAtBcpS/lwGH6yxINYzCBh1JR7Lz5yHtkkEWQ+QIhAKtR69Orl0g3PM8WOdyMBrnr1nWe3MNEFpHG4HoQ3Qew","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ashotsiroyan%2ffile-manager@1.1.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":61293},"main":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"38a8a597ec48fa474b56eeda4ba7f62249fb9d07","scripts":{"build":"tsc -p tsconfig.json","format":"prettier --write \"src/**/*.ts\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3d4770c1-4721-4aa6-b448-5ac42bda8ea0"}},"repository":{"url":"git://github.com/ashotsiroyan/file-manager.git","type":"git"},"_npmVersion":"11.8.0","description":"Modular NestJS file manager with pluggable local, AWS S3, and Google Cloud Storage engines.","directories":{},"sideEffects":false,"_nodeVersion":"20.20.0","dependencies":{"mime-types":"^3.0.2","class-validator":"^0.14.3","class-transformer":"^0.5.1"},"_hasShrinkwrap":false,"devDependencies":{"tslib":"^2.8.1","prettier":"^3.8.0","typescript":"^5.9.3","@types/node":"^25.0.9","@types/mime-types":"^3.0.1"},"peerDependencies":{"rxjs":"^7.0.0","@nestjs/core":"^10.0.0 || ^11.0.0","@nestjs/common":"^10.0.0 || ^11.0.0","reflect-metadata":"^0.2.0","@aws-sdk/client-s3":"^3.972.0","@google-cloud/storage":"^7.18.0","@nestjs/platform-express":"^10.0.0 || ^11.0.0","@aws-sdk/s3-request-presigner":"^3.972.0"},"peerDependenciesMeta":{"@aws-sdk/client-s3":{"optional":true},"@google-cloud/storage":{"optional":true},"@aws-sdk/s3-request-presigner":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/file-manager_1.1.3_1769278755077_0.1274572963131193","host":"s3://npm-registry-packages-npm-production"}},"1.1.6":{"name":"@ashotsiroyan/file-manager","version":"1.1.6","keywords":["file-manager","s3","gcs"],"author":{"name":"Ashot Siroyan"},"license":"MIT","_id":"@ashotsiroyan/file-manager@1.1.6","maintainers":[{"name":"ashotsiroyan","email":"siroyanashot@gmail.com"}],"homepage":"https://github.com/ashotsiroyan/file-manager#readme","bugs":{"url":"https://github.com/ashotsiroyan/file-manager/issues"},"dist":{"shasum":"8eccc3f644909f1f688c03e0bd33e3fa99fb513e","tarball":"https://registry.npmjs.org/@ashotsiroyan/file-manager/-/file-manager-1.1.6.tgz","fileCount":43,"integrity":"sha512-0Jh0YYbCEsnkjxLKHlNBiI49+aGSsjtdMuzkYzj4DbCzI+L65eZQmIK55O3U+6kUIc1x7wkmPwqMI1z1ir40iQ==","signatures":[{"sig":"MEYCIQCdJI5xVc30CvLcAc48lBvpYa5McREKKq/Knqdun1/T6gIhALZDQVP5nBYlYjEIR01CHG53QePCfRhSjhmHCglf2KC6","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ashotsiroyan%2ffile-manager@1.1.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":61665},"main":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"44a0599a78910ef772f09a151556429a9be02bdf","scripts":{"build":"tsc -p tsconfig.json","format":"prettier --write \"src/**/*.ts\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3d4770c1-4721-4aa6-b448-5ac42bda8ea0"}},"repository":{"url":"git://github.com/ashotsiroyan/file-manager.git","type":"git"},"_npmVersion":"11.8.0","description":"Modular NestJS file manager with pluggable local, AWS S3, and Google Cloud Storage engines.","directories":{},"sideEffects":false,"_nodeVersion":"20.20.0","dependencies":{"mime-types":"^3.0.2","class-validator":"^0.14.3","class-transformer":"^0.5.1"},"_hasShrinkwrap":false,"devDependencies":{"tslib":"^2.8.1","prettier":"^3.8.1","typescript":"^5.9.3","@types/node":"^25.0.10","@types/mime-types":"^3.0.1","@aws-sdk/client-s3":"^3.975.0","@google-cloud/storage":"^7.18.0","@aws-sdk/s3-request-presigner":"^3.975.0"},"peerDependencies":{"rxjs":"^7.0.0","@nestjs/core":"^10.0.0 || ^11.0.0","@nestjs/common":"^10.0.0 || ^11.0.0","reflect-metadata":"^0.2.0","@aws-sdk/client-s3":"^3.975.0","@google-cloud/storage":"^7.18.0","@nestjs/platform-express":"^10.0.0 || ^11.0.0","@aws-sdk/s3-request-presigner":"^3.975.0"},"peerDependenciesMeta":{"@aws-sdk/client-s3":{"optional":true},"@google-cloud/storage":{"optional":true},"@aws-sdk/s3-request-presigner":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/file-manager_1.1.6_1769533494560_0.3834244941981888","host":"s3://npm-registry-packages-npm-production"}},"1.1.7":{"name":"@ashotsiroyan/file-manager","version":"1.1.7","keywords":["file-manager","s3","gcs"],"author":{"name":"Ashot Siroyan"},"license":"MIT","_id":"@ashotsiroyan/file-manager@1.1.7","maintainers":[{"name":"ashotsiroyan","email":"siroyanashot@gmail.com"}],"homepage":"https://github.com/ashotsiroyan/file-manager#readme","bugs":{"url":"https://github.com/ashotsiroyan/file-manager/issues"},"dist":{"shasum":"a86cf241092067a115d342a7957ae948a2e3560d","tarball":"https://registry.npmjs.org/@ashotsiroyan/file-manager/-/file-manager-1.1.7.tgz","fileCount":43,"integrity":"sha512-5eADnicmZAq03Jx5PbWO0NtfCzLZUNeG+ll+bFwFFawnOc80TZojZ412jKMmsdCOTM5PkvU01u0x1UV3WatjfA==","signatures":[{"sig":"MEUCIGno3GzB68s0qHBd6RIbdJTfqEAFeEKbyEuX3/5l0JmOAiEAkFOsv2dNHQLESOEnRzxSrV/2sK44GCcbTCZFRAV54iA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ashotsiroyan%2ffile-manager@1.1.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":61535},"main":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"8cd60546ce63f6cdbf4a3197fe16f3e251797269","scripts":{"build":"tsc -p tsconfig.json","format":"prettier --write \"src/**/*.ts\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3d4770c1-4721-4aa6-b448-5ac42bda8ea0"}},"repository":{"url":"git://github.com/ashotsiroyan/file-manager.git","type":"git"},"_npmVersion":"11.11.1","description":"Modular NestJS file manager with pluggable local, AWS S3, and Google Cloud Storage engines.","directories":{},"sideEffects":false,"_nodeVersion":"20.20.1","dependencies":{"mime-types":"^3.0.2","class-validator":"^0.14.3","class-transformer":"^0.5.1"},"_hasShrinkwrap":false,"devDependencies":{"tslib":"^2.8.1","prettier":"^3.8.1","typescript":"^5.9.3","@types/node":"^25.0.10","@types/mime-types":"^3.0.1","@aws-sdk/client-s3":"^3.975.0","@google-cloud/storage":"^7.18.0","@aws-sdk/s3-request-presigner":"^3.975.0"},"peerDependencies":{"rxjs":"^7.0.0","@nestjs/core":"^10.0.0 || ^11.0.0","@nestjs/common":"^10.0.0 || ^11.0.0","reflect-metadata":"^0.2.0","@aws-sdk/client-s3":"^3.975.0","@google-cloud/storage":"^7.18.0","@nestjs/platform-express":"^10.0.0 || ^11.0.0","@aws-sdk/s3-request-presigner":"^3.975.0"},"peerDependenciesMeta":{"@aws-sdk/client-s3":{"optional":true},"@google-cloud/storage":{"optional":true},"@aws-sdk/s3-request-presigner":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/file-manager_1.1.7_1773832886787_0.16748226898098362","host":"s3://npm-registry-packages-npm-production"}},"1.1.8":{"name":"@ashotsiroyan/file-manager","version":"1.1.8","description":"Modular NestJS file manager with pluggable local, AWS S3, and Google Cloud Storage engines.","author":{"name":"Ashot Siroyan"},"main":"./dist/index.js","types":"./dist/index.d.ts","repository":{"type":"git","url":"git://github.com/ashotsiroyan/file-manager.git"},"keywords":["file-manager","s3","gcs"],"license":"MIT","sideEffects":false,"exports":{".":{"types":"./dist/index.d.ts","require":"./dist/index.js","default":"./dist/index.js"}},"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","@aws-sdk/client-s3":"^3.975.0","@aws-sdk/lib-storage":"^3.975.0","@aws-sdk/s3-request-presigner":"^3.975.0","@google-cloud/storage":"^7.18.0","reflect-metadata":"^0.2.0","rxjs":"^7.0.0"},"dependencies":{"class-transformer":"^0.5.1","class-validator":"^0.14.3","mime-types":"^3.0.2"},"peerDependenciesMeta":{"@aws-sdk/client-s3":{"optional":true},"@aws-sdk/lib-storage":{"optional":true},"@aws-sdk/s3-request-presigner":{"optional":true},"@google-cloud/storage":{"optional":true}},"devDependencies":{"@types/mime-types":"^3.0.1","@types/node":"^25.0.10","@aws-sdk/client-s3":"^3.975.0","@aws-sdk/lib-storage":"^3.975.0","@aws-sdk/s3-request-presigner":"^3.975.0","@google-cloud/storage":"^7.18.0","prettier":"^3.8.1","tslib":"^2.8.1","typescript":"^5.9.3"},"scripts":{"build":"tsc -p tsconfig.json","prepublishOnly":"npm run build","format":"prettier --write \"src/**/*.ts\""},"gitHead":"b985e64b43008b0643a1e89e3ee064111122019f","_id":"@ashotsiroyan/file-manager@1.1.8","bugs":{"url":"https://github.com/ashotsiroyan/file-manager/issues"},"homepage":"https://github.com/ashotsiroyan/file-manager#readme","_nodeVersion":"20.20.2","_npmVersion":"11.12.1","dist":{"integrity":"sha512-xPUvpyrRifF6x977JfcTwo0zooankZ/S7ng78bM0Ur58RjpFc5R3jooQPPtFvJ9Gyq004GjT0nArzmYpUGlabA==","shasum":"8cc7c36ae918240072f6905852b188d5aaa3a188","tarball":"https://registry.npmjs.org/@ashotsiroyan/file-manager/-/file-manager-1.1.8.tgz","fileCount":43,"unpackedSize":62379,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ashotsiroyan%2ffile-manager@1.1.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDYmcMSWIp4DieaBFk7kPqBRo3tnqBYcT5FWAenmZrB5wIgRzmF5/7jSrlEeAq+UtwAsZuA/vKGxeW9e+KUrwXJCCk="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3d4770c1-4721-4aa6-b448-5ac42bda8ea0"}},"directories":{},"maintainers":[{"name":"ashotsiroyan","email":"siroyanashot@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/file-manager_1.1.8_1776062952370_0.9167891157429087"},"_hasShrinkwrap":false}},"time":{"created":"2025-11-04T17:43:38.096Z","modified":"2026-04-13T06:49:12.762Z","1.0.0":"2025-11-04T17:43:38.404Z","1.0.3":"2025-11-04T18:18:02.552Z","1.0.4":"2025-11-05T12:50:04.489Z","1.0.5":"2025-11-05T13:01:44.281Z","1.0.6":"2025-11-05T13:24:53.550Z","1.0.7":"2025-11-05T13:29:03.726Z","1.0.8":"2025-11-05T15:47:36.017Z","1.0.9":"2025-11-06T06:52:11.488Z","1.0.10":"2025-11-06T09:18:26.576Z","1.0.11":"2025-11-06T10:56:37.583Z","1.0.12":"2025-11-10T12:25:08.011Z","1.1.0":"2025-11-12T13:35:01.819Z","1.1.1":"2026-01-21T13:43:16.351Z","1.1.2":"2026-01-21T15:09:29.356Z","1.1.3":"2026-01-24T18:19:15.213Z","1.1.6":"2026-01-27T17:04:54.722Z","1.1.7":"2026-03-18T11:21:26.945Z","1.1.8":"2026-04-13T06:49:12.504Z"},"bugs":{"url":"https://github.com/ashotsiroyan/file-manager/issues"},"author":{"name":"Ashot Siroyan"},"license":"MIT","homepage":"https://github.com/ashotsiroyan/file-manager#readme","keywords":["file-manager","s3","gcs"],"repository":{"type":"git","url":"git://github.com/ashotsiroyan/file-manager.git"},"description":"Modular NestJS file manager with pluggable local, AWS S3, and Google Cloud Storage engines.","maintainers":[{"name":"ashotsiroyan","email":"siroyanashot@gmail.com"}],"readme":"# 📦 @ashotsiroyan/file-manager\n\nA **modular file management system for NestJS** supporting **Local**, **AWS S3**, and **Google Cloud Storage (GCS)**\nbackends.  \nIt provides a unified API for uploading, downloading, listing, deleting, and signing files — all with a clean,\ninjectable design.\n\n---\n\n## 🚀 Features\n\n- ⚙️ **Plug-and-play NestJS module**\n- 📁 **Supports multiple storage engines:** Local, S3, GCS\n- 🚀 **Streaming uploads/downloads** (no buffering)\n- 🔐 **Signed URL generation** for direct-to-cloud uploads\n- 🧠 **Extensible interface (`StorageEngine`)** for custom backends\n- 🔒 **Security-first design** — control access and serve privately\n\n---\n\n## 📥 Installation\n\nThe cloud drivers are **optional peer dependencies** — install only the one that matches your engine.\n\n```bash\n# Base package\nnpm install --save @ashotsiroyan/file-manager\n\n# Optional: install for S3 (install both)\nnpm install --save @aws-sdk/client-s3 @aws-sdk/s3-request-presigner\n\n# Optional: install for Google Cloud Storage\nnpm install --save @google-cloud/storage\n```\n\n---\n\n## 🧱 Quick Start (Local Storage)\n\n**app.module.ts**\n\n```ts\nimport { Module } from '@nestjs/common';\nimport {\n  FileManagerModule,\n  LocalStorageEngine,\n} from '@ashotsiroyan/file-manager';\n\n@Module({\n  imports: [\n    FileManagerModule.forRoot({\n      engine: new LocalStorageEngine({\n        baseDir: './uploads',\n        publicBaseUrl: 'http://localhost:3000/static',\n      }),\n      defaultPrefix: 'uploads',\n      publicReadByDefault: true,\n    }),\n  ],\n})\nexport class AppModule {}\n```\n\n`forRoot` receives a single configuration object:\n\n- `engine` (required): any `StorageEngine`\n- `defaultPrefix` / `publicReadByDefault` (optional service defaults)\n- `maxConcurrentOps` (optional): cap simultaneous storage calls to avoid throttling\n- `global` (optional): register the module globally across your app\n\n**main.ts**\n\n```ts\nimport { NestFactory } from '@nestjs/core';\nimport { AppModule } from './app.module';\nimport { NestExpressApplication } from '@nestjs/platform-express';\nimport { join } from 'path';\n\nasync function bootstrap() {\n  const app = await NestFactory.create<NestExpressApplication>(AppModule);\n  app.useStaticAssets(join(process.cwd(), 'uploads'), { prefix: '/static' });\n  await app.listen(3000);\n  console.log('🚀 Running at http://localhost:3000');\n}\n\nbootstrap();\n```\n\n---\n\n## 🧠 Using the Service\n\n```ts\nimport {\n  Controller,\n  Post,\n  Get,\n  Delete,\n  Param,\n  Query,\n  UploadedFile,\n  UseInterceptors,\n  Res,\n} from '@nestjs/common';\nimport { FileInterceptor } from '@nestjs/platform-express';\nimport { Readable } from 'stream';\nimport { Response } from 'express';\nimport { FileManagerService } from '@ashotsiroyan/file-manager';\n\n@Controller('avatars')\nexport class AvatarController {\n  constructor(private readonly files: FileManagerService) {}\n  \n  /**\n   * Upload an avatar\n   * Works for both memoryStorage (buffer) and diskStorage (stream/path)\n   */\n  @Post('upload')\n  @UseInterceptors(FileInterceptor('file'))\n  async upload(@UploadedFile() file: Express.Multer.File) {\n    const stream =\n      file.stream ??\n      Readable.from(file.buffer ?? Buffer.alloc(0));\n    \n    const res = await this.files.put({\n      prefix: 'avatars',\n      originalName: file.originalname,\n      contentType: file.mimetype,\n      body: stream,\n    });\n    \n    return { key: res.key, url: this.files.publicUrl(res.key) };\n  }\n  \n  /**\n   * Get (download) an avatar\n   */\n  @Get(':key(*)')\n  async get(@Param('key') key: string, @Res() res: Response) {\n    const file = await this.files.get(`avatars/${ key }`);\n    \n    if (file.contentType) res.setHeader('Content-Type', file.contentType);\n    if (file.size) res.setHeader('Content-Length', String(file.size));\n    \n    file.stream.pipe(res);\n  }\n  \n  /**\n   * Remove (delete) an avatar\n   */\n  @Delete(':key(*)')\n  async remove(@Param('key') key: string) {\n    await this.files.delete(`avatars/${ key }`);\n    return { success: true, deleted: key };\n  }\n  \n  /**\n   * List all avatars (optionally filter by prefix)\n   */\n  @Get()\n  async list(@Query('prefix') prefix = 'avatars/') {\n    const files = await this.files.list(prefix);\n    return { prefix, files };\n  }\n}\n```\n\n✅ Tip:\n> For large files, use diskStorage() and fs.createReadStream(file.path) instead of buffers.\n\n> For small files, memoryStorage() + Readable.from(file.buffer) is fastest.\n\nNeed to remove every file inside a logical folder? Call `await this.files.deleteDirectory('avatars/user123/')` to wipe\nan entire prefix in a single operation, regardless of the underlying storage engine.\n\n---\n\n## ☁️ Using AWS S3 (`forRootAsync`)\n\n```ts\nimport { Module } from '@nestjs/common';\nimport { ConfigModule, ConfigService } from '@nestjs/config';\nimport { FileManagerModule, S3StorageEngine } from '@ashotsiroyan/file-manager';\n\n@Module({\n  imports: [\n    FileManagerModule.forRootAsync({\n      imports: [ConfigModule],\n      inject: [ConfigService],\n      useFactory: (config: ConfigService) => ({\n        engine: new S3StorageEngine({\n          bucket: config.get('S3_BUCKET'),\n          region: config.get('AWS_REGION'),\n          baseUrlPublic: config.get('S3_PUBLIC_URL'),\n          credentials: {\n            accessKeyId: config.get('S3_ACCESS_KEY_ID'),\n            secretAccessKey: config.get('S3_SECRET_ACCESS_KEY'),\n          },\n        }),\n        defaultPrefix: 'uploads',\n        publicReadByDefault: true,\n      }),\n    }),\n  ],\n})\nexport class AppModule {}\n```\n\nWhen using `forRootAsync`, ensure the factory returns the same shape as `forRoot` (an object with at least an `engine`\nproperty, plus any optional defaults or `global` flag).\n\n---\n\n## 🌍 Using Google Cloud Storage (`forRootAsync`)\n\n```ts\nimport { Module } from '@nestjs/common';\nimport { ConfigModule, ConfigService } from '@nestjs/config';\nimport { FileManagerModule, GcsStorageEngine } from '@ashotsiroyan/file-manager';\n\n@Module({\n  imports: [\n    FileManagerModule.forRootAsync({\n      imports: [ConfigModule],\n      inject: [ConfigService],\n      useFactory: (config: ConfigService) => ({\n        engine: new GcsStorageEngine({\n          bucket: config.get('GCS_BUCKET'),\n          baseUrlPublic: config.get('GCS_PUBLIC_BASE_URL'),\n          auth: {\n            keyFilename: config.get('GOOGLE_APPLICATION_CREDENTIALS'),\n          },\n        }),\n        defaultPrefix: 'uploads',\n        publicReadByDefault: true,\n      }),\n    }),\n  ],\n})\nexport class AppModule {}\n```\n\nThe `GcsStorageEngine` can work with either a key file (`GOOGLE_APPLICATION_CREDENTIALS`), a JSON blob (\n`GOOGLE_APPLICATION_CREDENTIALS_JSON`, raw or base64), or explicit `clientEmail` / `privateKey` pairs.\n\n> ✅ You can also supply a preconfigured `Storage` instance (via `storage`) or additional `storageOptions` if you need\n> advanced Google Cloud Storage setup.\n\n> ✅ For AWS you can pass a ready-made `S3Client` through the `client` option or inject extra configuration with\n`clientConfig`.\n\n---\n\n## 🔐 Signed URLs (Direct Uploads)\n\n```ts\nconst url = await this.files.signedUrl({\n  key: 'uploads/user123/avatar.png',\n  action: 'put',\n  expiresInSeconds: 600,\n  contentType: 'image/png',\n});\n\nconsole.log('Upload directly to:', url);\n```\n\nFor downloads:\n\n```ts\nawait this.files.signedUrl({ key, action: 'get', expiresInSeconds: 300 });\n```\n\n> ⚠️ Local engine doesn’t produce real signatures — it just returns `publicBaseUrl + key`.\n\n---\n\n## 🎧 Streaming via Backend\n\n```ts\n@Get('files/:key(*)')\nasync\ndownload(@Param('key')\nkey: string, @Res()\nres: Response\n)\n{\n  const obj = await this.files.get(key);\n  if (obj.contentType) res.setHeader('Content-Type', obj.contentType);\n  if (obj.size) res.setHeader('Content-Length', String(obj.size));\n  obj.stream.pipe(res);\n}\n```\n\n✅ **Why stream via backend?**\n\n- Authorization & ownership checks\n- Metrics & audit logs\n- Prevent hotlinking\n- Unified CORS and headers\n- Range support for media\n\n---\n\n## 🧩 Advanced Usage\n\n### Multiple storage backends\n\nImport the module once per backend. Give every non-default storage a `name` and\ninject it via `@InjectFileManager(name)`. If you omit `name`, that instance\nbecomes the default `FileManagerService`.\n\n```ts\nimport { Module } from '@nestjs/common';\nimport { Readable } from 'stream';\nimport {\n  FileManagerModule,\n  FileManagerService,\n  InjectFileManager,\n  S3StorageEngine,\n  GcsStorageEngine,\n} from '@ashotsiroyan/file-manager';\n\n@Module({\n  imports: [\n    FileManagerModule.forRoot({\n      name: 'publicUploads',\n      engine: new S3StorageEngine({\n        bucket: process.env.AWS_PUBLIC_BUCKET!,\n      }),\n      defaultPrefix: 'public',\n      publicReadByDefault: true,\n    }),\n    FileManagerModule.forRoot({\n      name: 'backups',\n      engine: new GcsStorageEngine({\n        bucket: process.env.GCS_BACKUP_BUCKET!,\n      }),\n      defaultPrefix: 'backups',\n    }),\n  ],\n})\nexport class FilesModule {\n  constructor(\n    @InjectFileManager('publicUploads')\n    private readonly publicFiles: FileManagerService,\n    @InjectFileManager('backups')\n    private readonly backups: FileManagerService,\n  ) {}\n\n  async uploadBackup(file: Express.Multer.File) {\n    await this.backups.put({\n      prefix: 'daily',\n      originalName: file.originalname,\n      body: file.stream ?? Readable.from(file.buffer ?? Buffer.alloc(0)),\n    });\n  }\n}\n```\n\nAsync setup follows the same pattern — specify `name` on the module options and\nreturn the engine from the factory:\n\n```ts\n@Module({\n  imports: [\n    FileManagerModule.forRootAsync({\n      name: 'backups',\n      inject: [ConfigService],\n      useFactory: async (config: ConfigService) => ({\n        engine: new GcsStorageEngine({\n          bucket: config.getOrThrow('GCS_BACKUP_BUCKET'),\n        }),\n        defaultPrefix: 'backups',\n      }),\n    }),\n  ],\n})\nexport class FilesModule {}\n```\n\n### Custom engine\n\n```ts\nclass MyEngine implements StorageEngine {\n  async putObject() {\n    // ...\n  }\n  \n  async getObject() {\n    // ...\n  }\n  \n  async deleteObject() {\n    // ...\n  }\n}\n```\n\n### Throttle storage calls\n\n```ts\nFileManagerModule.forRoot({\n  engine: new S3StorageEngine({...}),\n  maxConcurrentOps: 5,\n});\n```\n\nSetting `maxConcurrentOps` wraps every service method in a lightweight semaphore, keeping only the specified number of\nsimultaneous storage requests active — helpful for S3/GCS rate limits or local I/O pressure.\n\n---\n\n## ⚡ Troubleshooting\n\n| Issue                              | Cause              | Fix                       |\n|------------------------------------|--------------------|---------------------------|\n| `Cannot find module '@aws-sdk/...` | Missing dependency | Install optional deps     |\n| `Forbidden` on S3                  | Wrong IAM policy   | Update bucket permissions |\n| `ENOENT` local                     | Missing folder     | Check `baseDir`           |\n| `GCS invalid_grant`                | Bad credentials    | Fix service account JSON  |\n","readmeFilename":"README.md"}