{"_id":"@bernierllc/file-handler-storage-backends","_rev":"18-c97176f734bd224b3ca47605037ef04b","name":"@bernierllc/file-handler-storage-backends","dist-tags":{"latest":"0.8.1"},"versions":{"0.2.0":{"name":"@bernierllc/file-handler-storage-backends","version":"0.2.0","keywords":["file-handler","storage","s3","azure","gcp","local","dropbox","google-drive","backend","multi-cloud","bernierllc","core"],"author":{"name":"Bernier LLC"},"license":"Bernier LLC","_id":"@bernierllc/file-handler-storage-backends@0.2.0","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"homepage":"https://github.com/bernier-llc/tools#readme","bugs":{"url":"https://github.com/bernier-llc/tools/issues"},"dist":{"shasum":"5511fdc145b88788987d895ffc56cf9442916f5d","tarball":"https://registry.npmjs.org/@bernierllc/file-handler-storage-backends/-/file-handler-storage-backends-0.2.0.tgz","fileCount":30,"integrity":"sha512-eAZW3pPUEiZaId+NOflrx62Ay1uT4LLeOwYo0K2s/8fkV2babJHlxg6KzethdAvM6aH/PxrhaFWIU3X07mROMQ==","signatures":[{"sig":"MEQCICmPTCUnubEFK1fiVAYeeyaykB8GXIZy9KL3WkE7vQumAiBaC/JyGn6bAgaVOtiK3LqOMnGdoSr7yKclvMWUtYpwYg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":122320},"main":"dist/index.js","type":"module","_from":"file:bernierllc-file-handler-storage-backends-0.2.0.tgz","types":"dist/index.d.ts","scripts":{"dev":"tsc --watch","lint":"eslint src --ext .ts","test":"jest","build":"tsc","clean":"rimraf dist","prebuild":"npm run clean","test:run":"jest","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"mkbernier","email":"mkbernier@gmail.com"},"_resolved":"/tmp/325925625e1f72baad3a79b72ebdaa75/bernierllc-file-handler-storage-backends-0.2.0.tgz","_integrity":"sha512-eAZW3pPUEiZaId+NOflrx62Ay1uT4LLeOwYo0K2s/8fkV2babJHlxg6KzethdAvM6aH/PxrhaFWIU3X07mROMQ==","repository":{"url":"git+https://github.com/bernier-llc/tools.git","type":"git"},"_npmVersion":"11.7.0","description":"Additional storage backends for @bernierllc/file-handler: AWS S3, Azure Blob, Google Cloud Storage, Local storage, Dropbox, and Google Drive","directories":{},"_nodeVersion":"20.19.6","dependencies":{"@bernierllc/file-handler":"0.2.1","@bernierllc/dropbox-oauth":"0.2.0","@bernierllc/google-drive-oauth":"0.2.0"},"publishConfig":{"access":"restricted","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.6.4","eslint":"^8.49.0","rimraf":"^5.0.1","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":"^20.6.0","@types/fs-extra":"^11.0.4","@types/mime-types":"^2.1.4","@typescript-eslint/parser":"^6.7.0","@typescript-eslint/eslint-plugin":"^6.7.0"},"peerDependencies":{"dropbox":"^10.34.0","fs-extra":"^11.0.0","googleapis":"^130.0.0","mime-types":"^2.1.0","@azure/identity":"^4.0.0","@aws-sdk/client-s3":"^3.0.0","@azure/storage-blob":"^12.0.0","@aws-sdk/lib-storage":"^3.0.0","@google-cloud/storage":"^7.0.0","@aws-sdk/s3-request-presigner":"^3.0.0"},"peerDependenciesMeta":{"dropbox":{"optional":true},"fs-extra":{"optional":true},"googleapis":{"optional":true},"mime-types":{"optional":true},"@azure/identity":{"optional":true},"@aws-sdk/client-s3":{"optional":true},"@azure/storage-blob":{"optional":true},"@aws-sdk/lib-storage":{"optional":true},"@google-cloud/storage":{"optional":true},"@aws-sdk/s3-request-presigner":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/file-handler-storage-backends_0.2.0_1766087445323_0.49418085563368086","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@bernierllc/file-handler-storage-backends","version":"0.2.1","keywords":["file-handler","storage","s3","azure","gcp","local","dropbox","google-drive","backend","multi-cloud","bernierllc","core"],"author":{"name":"Bernier LLC"},"license":"Bernier LLC","_id":"@bernierllc/file-handler-storage-backends@0.2.1","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"homepage":"https://github.com/bernier-llc/tools#readme","bugs":{"url":"https://github.com/bernier-llc/tools/issues"},"dist":{"shasum":"14d6d7608d5aad7f415cf6394e9f83810effdf39","tarball":"https://registry.npmjs.org/@bernierllc/file-handler-storage-backends/-/file-handler-storage-backends-0.2.1.tgz","fileCount":30,"integrity":"sha512-2jyM98UAabC9ve1MQNDmeIwSIjlUGSp28IeS9bqAoLLtYVUHWaUNDiSqxXpjrhuebAhLlsllM6li4bGoTvwWIg==","signatures":[{"sig":"MEUCICpPIiREuclO4DugU6GpqTjSEMKkEDc6rD/NsHJQnwlFAiEA8OOmSn5/Qz0HdYwmOLAkMl0hbKk5VQy/Cl7jeQRNjHw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":122320},"main":"dist/index.js","type":"module","_from":"file:bernierllc-file-handler-storage-backends-0.2.1.tgz","types":"dist/index.d.ts","scripts":{"dev":"tsc --watch","lint":"eslint src --ext .ts","test":"jest","build":"tsc","clean":"rimraf dist","prebuild":"npm run clean","test:run":"jest","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"mkbernier","email":"mkbernier@gmail.com"},"_resolved":"/tmp/8837155c32bd390f1450f11c94d87b55/bernierllc-file-handler-storage-backends-0.2.1.tgz","_integrity":"sha512-2jyM98UAabC9ve1MQNDmeIwSIjlUGSp28IeS9bqAoLLtYVUHWaUNDiSqxXpjrhuebAhLlsllM6li4bGoTvwWIg==","repository":{"url":"git+https://github.com/bernier-llc/tools.git","type":"git"},"_npmVersion":"11.7.0","description":"Additional storage backends for @bernierllc/file-handler: AWS S3, Azure Blob, Google Cloud Storage, Local storage, Dropbox, and Google Drive","directories":{},"_nodeVersion":"20.19.6","dependencies":{"@bernierllc/file-handler":"0.2.2","@bernierllc/dropbox-oauth":"0.2.0","@bernierllc/google-drive-oauth":"0.2.0"},"publishConfig":{"access":"restricted","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.6.4","eslint":"^8.49.0","rimraf":"^5.0.1","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":"^20.6.0","@types/fs-extra":"^11.0.4","@types/mime-types":"^2.1.4","@typescript-eslint/parser":"^6.7.0","@typescript-eslint/eslint-plugin":"^6.7.0"},"peerDependencies":{"dropbox":"^10.34.0","fs-extra":"^11.0.0","googleapis":"^130.0.0","mime-types":"^2.1.0","@azure/identity":"^4.0.0","@aws-sdk/client-s3":"^3.0.0","@azure/storage-blob":"^12.0.0","@aws-sdk/lib-storage":"^3.0.0","@google-cloud/storage":"^7.0.0","@aws-sdk/s3-request-presigner":"^3.0.0"},"peerDependenciesMeta":{"dropbox":{"optional":true},"fs-extra":{"optional":true},"googleapis":{"optional":true},"mime-types":{"optional":true},"@azure/identity":{"optional":true},"@aws-sdk/client-s3":{"optional":true},"@azure/storage-blob":{"optional":true},"@aws-sdk/lib-storage":{"optional":true},"@google-cloud/storage":{"optional":true},"@aws-sdk/s3-request-presigner":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/file-handler-storage-backends_0.2.1_1766276715294_0.1304660152193804","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@bernierllc/file-handler-storage-backends","version":"0.2.2","keywords":["file-handler","storage","s3","azure","gcp","local","dropbox","google-drive","backend","multi-cloud","bernierllc","core"],"author":{"name":"Bernier LLC"},"license":"Bernier LLC","_id":"@bernierllc/file-handler-storage-backends@0.2.2","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"homepage":"https://github.com/bernier-llc/tools#readme","bugs":{"url":"https://github.com/bernier-llc/tools/issues"},"dist":{"shasum":"e84ef22794740df550d8cf5b6c654fd7e1e6054f","tarball":"https://registry.npmjs.org/@bernierllc/file-handler-storage-backends/-/file-handler-storage-backends-0.2.2.tgz","fileCount":30,"integrity":"sha512-lCgTiM/pzsc6iqkb4HSi1GqzGztIws27rLmUopQFazMLvRC+O60ZplvYLJLOPwH4Z1ckMEqVbEEHl6MAemL12Q==","signatures":[{"sig":"MEUCIQCm0zRYnj3VgMNqVdDbfJOLmM90ee0UdNig9Wmkvmkw6gIgG3xo1anBwAqVtlG71/laJcqdiZ2xiijS52rWOI74hH4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":122320},"main":"dist/index.js","type":"module","_from":"file:bernierllc-file-handler-storage-backends-0.2.2.tgz","types":"dist/index.d.ts","scripts":{"dev":"tsc --watch","lint":"eslint src --ext .ts","test":"jest","build":"tsc","clean":"rimraf dist","prebuild":"npm run clean","test:run":"jest","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"mkbernier","email":"mkbernier@gmail.com"},"_resolved":"/tmp/2d03b7ccc6bb18e78c22e1bbdbc4ebbc/bernierllc-file-handler-storage-backends-0.2.2.tgz","_integrity":"sha512-lCgTiM/pzsc6iqkb4HSi1GqzGztIws27rLmUopQFazMLvRC+O60ZplvYLJLOPwH4Z1ckMEqVbEEHl6MAemL12Q==","repository":{"url":"git+https://github.com/bernier-llc/tools.git","type":"git"},"_npmVersion":"11.7.0","description":"Additional storage backends for @bernierllc/file-handler: AWS S3, Azure Blob, Google Cloud Storage, Local storage, Dropbox, and Google Drive","directories":{},"_nodeVersion":"20.19.6","dependencies":{"@bernierllc/file-handler":"0.2.3","@bernierllc/dropbox-oauth":"0.2.0","@bernierllc/google-drive-oauth":"0.2.0"},"publishConfig":{"access":"restricted","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.6.4","eslint":"^8.49.0","rimraf":"^5.0.1","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":"^20.6.0","@types/fs-extra":"^11.0.4","@types/mime-types":"^2.1.4","@typescript-eslint/parser":"^6.7.0","@typescript-eslint/eslint-plugin":"^6.7.0"},"peerDependencies":{"dropbox":"^10.34.0","fs-extra":"^11.0.0","googleapis":"^130.0.0","mime-types":"^2.1.0","@azure/identity":"^4.0.0","@aws-sdk/client-s3":"^3.0.0","@azure/storage-blob":"^12.0.0","@aws-sdk/lib-storage":"^3.0.0","@google-cloud/storage":"^7.0.0","@aws-sdk/s3-request-presigner":"^3.0.0"},"peerDependenciesMeta":{"dropbox":{"optional":true},"fs-extra":{"optional":true},"googleapis":{"optional":true},"mime-types":{"optional":true},"@azure/identity":{"optional":true},"@aws-sdk/client-s3":{"optional":true},"@azure/storage-blob":{"optional":true},"@aws-sdk/lib-storage":{"optional":true},"@google-cloud/storage":{"optional":true},"@aws-sdk/s3-request-presigner":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/file-handler-storage-backends_0.2.2_1766283495644_0.3917265319502192","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"@bernierllc/file-handler-storage-backends","version":"0.2.3","keywords":["file-handler","storage","s3","azure","gcp","local","dropbox","google-drive","backend","multi-cloud","bernierllc","core"],"author":{"name":"Bernier LLC"},"license":"Bernier LLC","_id":"@bernierllc/file-handler-storage-backends@0.2.3","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"homepage":"https://github.com/bernier-llc/tools#readme","bugs":{"url":"https://github.com/bernier-llc/tools/issues"},"dist":{"shasum":"ffd8066657914ce3ad100e7aff2556813c6d5ea2","tarball":"https://registry.npmjs.org/@bernierllc/file-handler-storage-backends/-/file-handler-storage-backends-0.2.3.tgz","fileCount":30,"integrity":"sha512-3P5hQsZg2dEW5QXdKblLZY8LAhs0TmWiN88ZtdbwtDpT5ZKcflrD73m4Qy/g6eAqeSb8xtSbfdCn54Rg+hhsdA==","signatures":[{"sig":"MEUCIA4Wzz9Sr+FxsRg6V6O6oNXwb2Ab/UaO4UjxUteDBP4sAiEAgos6M8XyFaswppP3Aem2Udg6V6d/N+re5hDUReC1DYw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":122320},"main":"dist/index.js","type":"module","_from":"file:bernierllc-file-handler-storage-backends-0.2.3.tgz","types":"dist/index.d.ts","scripts":{"dev":"tsc --watch","lint":"eslint src --ext .ts","test":"jest","build":"tsc","clean":"rimraf dist","prebuild":"npm run clean","test:run":"jest","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b5c23347-8e90-40ce-8cee-d19e1fac61c9"}},"_resolved":"/tmp/f8ed1e085e8da681a64c7c7741b3c7e9/bernierllc-file-handler-storage-backends-0.2.3.tgz","_integrity":"sha512-3P5hQsZg2dEW5QXdKblLZY8LAhs0TmWiN88ZtdbwtDpT5ZKcflrD73m4Qy/g6eAqeSb8xtSbfdCn54Rg+hhsdA==","repository":{"url":"git+https://github.com/bernier-llc/tools.git","type":"git"},"_npmVersion":"11.7.0","description":"Additional storage backends for @bernierllc/file-handler: AWS S3, Azure Blob, Google Cloud Storage, Local storage, Dropbox, and Google Drive","directories":{},"_nodeVersion":"20.19.6","dependencies":{"@bernierllc/file-handler":"0.2.3","@bernierllc/dropbox-oauth":"0.2.1","@bernierllc/google-drive-oauth":"0.2.1"},"publishConfig":{"access":"restricted","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.6.4","eslint":"^8.49.0","rimraf":"^5.0.1","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":"^20.6.0","@types/fs-extra":"^11.0.4","@types/mime-types":"^2.1.4","@typescript-eslint/parser":"^6.7.0","@typescript-eslint/eslint-plugin":"^6.7.0"},"peerDependencies":{"dropbox":"^10.34.0","fs-extra":"^11.0.0","googleapis":"^130.0.0","mime-types":"^2.1.0","@azure/identity":"^4.0.0","@aws-sdk/client-s3":"^3.0.0","@azure/storage-blob":"^12.0.0","@aws-sdk/lib-storage":"^3.0.0","@google-cloud/storage":"^7.0.0","@aws-sdk/s3-request-presigner":"^3.0.0"},"peerDependenciesMeta":{"dropbox":{"optional":true},"fs-extra":{"optional":true},"googleapis":{"optional":true},"mime-types":{"optional":true},"@azure/identity":{"optional":true},"@aws-sdk/client-s3":{"optional":true},"@azure/storage-blob":{"optional":true},"@aws-sdk/lib-storage":{"optional":true},"@google-cloud/storage":{"optional":true},"@aws-sdk/s3-request-presigner":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/file-handler-storage-backends_0.2.3_1766437761391_0.3469609247535266","host":"s3://npm-registry-packages-npm-production"}},"0.2.4":{"name":"@bernierllc/file-handler-storage-backends","version":"0.2.4","keywords":["file-handler","storage","s3","azure","gcp","local","dropbox","google-drive","backend","multi-cloud","bernierllc","core"],"author":{"name":"Bernier LLC"},"license":"Bernier LLC","_id":"@bernierllc/file-handler-storage-backends@0.2.4","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"homepage":"https://github.com/bernier-llc/tools#readme","bugs":{"url":"https://github.com/bernier-llc/tools/issues"},"dist":{"shasum":"926afbf4f692ed29c58cdd8bb8ca5746b7824ee3","tarball":"https://registry.npmjs.org/@bernierllc/file-handler-storage-backends/-/file-handler-storage-backends-0.2.4.tgz","fileCount":30,"integrity":"sha512-JA3emdxZuaM148awuGDnMIRCj4duMrf5AKmcmF5lxJFXiL/q7uG3MPGMuYcKCKSEVt8eyj0OO0GpNryV/22xvw==","signatures":[{"sig":"MEUCIQDCU6qP5h/67GzCoc0tvwCUbQOufyhSZFgi9OG0f31xkwIgcbKCH4hj1ezU2vaEuqVkPxW5hhC8TbFp8sfMjgB1f3I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":122320},"main":"dist/index.js","type":"module","_from":"file:bernierllc-file-handler-storage-backends-0.2.4.tgz","types":"dist/index.d.ts","scripts":{"dev":"tsc --watch","lint":"eslint src --ext .ts","test":"jest","build":"tsc","clean":"rimraf dist","prebuild":"npm run clean","test:run":"jest","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b5c23347-8e90-40ce-8cee-d19e1fac61c9"}},"_resolved":"/tmp/5d4d619bc7ab28260b924af28d3e45c3/bernierllc-file-handler-storage-backends-0.2.4.tgz","_integrity":"sha512-JA3emdxZuaM148awuGDnMIRCj4duMrf5AKmcmF5lxJFXiL/q7uG3MPGMuYcKCKSEVt8eyj0OO0GpNryV/22xvw==","repository":{"url":"git+https://github.com/bernier-llc/tools.git","type":"git"},"_npmVersion":"11.7.0","description":"Additional storage backends for @bernierllc/file-handler: AWS S3, Azure Blob, Google Cloud Storage, Local storage, Dropbox, and Google Drive","directories":{},"_nodeVersion":"20.19.6","dependencies":{"@bernierllc/file-handler":"0.2.3","@bernierllc/dropbox-oauth":"0.2.2","@bernierllc/google-drive-oauth":"0.2.2"},"publishConfig":{"access":"restricted","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.6.4","eslint":"^8.49.0","rimraf":"^5.0.1","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":"^20.6.0","@types/fs-extra":"^11.0.4","@types/mime-types":"^2.1.4","@typescript-eslint/parser":"^6.7.0","@typescript-eslint/eslint-plugin":"^6.7.0"},"peerDependencies":{"dropbox":"^10.34.0","fs-extra":"^11.0.0","googleapis":"^130.0.0","mime-types":"^2.1.0","@azure/identity":"^4.0.0","@aws-sdk/client-s3":"^3.0.0","@azure/storage-blob":"^12.0.0","@aws-sdk/lib-storage":"^3.0.0","@google-cloud/storage":"^7.0.0","@aws-sdk/s3-request-presigner":"^3.0.0"},"peerDependenciesMeta":{"dropbox":{"optional":true},"fs-extra":{"optional":true},"googleapis":{"optional":true},"mime-types":{"optional":true},"@azure/identity":{"optional":true},"@aws-sdk/client-s3":{"optional":true},"@azure/storage-blob":{"optional":true},"@aws-sdk/lib-storage":{"optional":true},"@google-cloud/storage":{"optional":true},"@aws-sdk/s3-request-presigner":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/file-handler-storage-backends_0.2.4_1766608017881_0.8456822875156116","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@bernierllc/file-handler-storage-backends","version":"0.4.0","keywords":["file-handler","storage","s3","azure","gcp","local","dropbox","google-drive","backend","multi-cloud","bernierllc","core"],"author":{"name":"Bernier LLC"},"license":"Bernier LLC","_id":"@bernierllc/file-handler-storage-backends@0.4.0","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"homepage":"https://github.com/bernier-llc/tools#readme","bugs":{"url":"https://github.com/bernier-llc/tools/issues"},"dist":{"shasum":"9df17d6dec70ea030f4d56abc021753cd513b31d","tarball":"https://registry.npmjs.org/@bernierllc/file-handler-storage-backends/-/file-handler-storage-backends-0.4.0.tgz","fileCount":30,"integrity":"sha512-ajGfdqgfCqUQvzTj9qnkjFAxjgShH6HA0qvYVlWfNu9g2RRhQ5BgfcV8lcIWKNoLBXZm37LXO39QoM/pX+1d/g==","signatures":[{"sig":"MEUCIHyD01rEYe6VTbDmAR6eTtyyENtq/1X5Spngvzx03h58AiEA2DxpvOdkS+tqsYiVb+0Htdh7zAPJnYeyr94poD3VhDQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":122378},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"af7e74b3715d56d3a193e1bb6743b337c2b0df6d","scripts":{"dev":"tsc --watch","lint":"eslint src --ext .ts","test":"jest","build":"tsc","clean":"rimraf dist","prebuild":"npm run clean","test:run":"jest","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b5c23347-8e90-40ce-8cee-d19e1fac61c9"}},"repository":{"url":"git+https://github.com/bernier-llc/tools.git","type":"git"},"_npmVersion":"lerna/9.0.3/node@v20.19.6+x64 (linux)","description":"Additional storage backends for @bernierllc/file-handler: AWS S3, Azure Blob, Google Cloud Storage, Local storage, Dropbox, and Google Drive","directories":{},"_nodeVersion":"20.19.6","dependencies":{"@bernierllc/file-handler":"0.4.0","@bernierllc/dropbox-oauth":"0.4.0","@bernierllc/google-drive-oauth":"0.4.0"},"publishConfig":{"access":"restricted","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.6.4","eslint":"^8.49.0","rimraf":"^5.0.1","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":"^20.6.0","@types/fs-extra":"^11.0.4","@types/mime-types":"^2.1.4","@typescript-eslint/parser":"^6.7.0","@typescript-eslint/eslint-plugin":"^6.7.0"},"peerDependencies":{"dropbox":"^10.34.0","fs-extra":"^11.0.0","googleapis":"^130.0.0","mime-types":"^2.1.0","@azure/identity":"^4.0.0","@aws-sdk/client-s3":"^3.0.0","@azure/storage-blob":"^12.0.0","@aws-sdk/lib-storage":"^3.0.0","@google-cloud/storage":"^7.0.0","@aws-sdk/s3-request-presigner":"^3.0.0"},"peerDependenciesMeta":{"dropbox":{"optional":true},"fs-extra":{"optional":true},"googleapis":{"optional":true},"mime-types":{"optional":true},"@azure/identity":{"optional":true},"@aws-sdk/client-s3":{"optional":true},"@azure/storage-blob":{"optional":true},"@aws-sdk/lib-storage":{"optional":true},"@google-cloud/storage":{"optional":true},"@aws-sdk/s3-request-presigner":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/file-handler-storage-backends_0.4.0_1767642476439_0.3604961617866602","host":"s3://npm-registry-packages-npm-production"}},"0.4.2":{"name":"@bernierllc/file-handler-storage-backends","version":"0.4.2","keywords":["file-handler","storage","s3","azure","gcp","local","dropbox","google-drive","backend","multi-cloud","bernierllc","core"],"author":{"name":"Bernier LLC"},"license":"Bernier LLC","_id":"@bernierllc/file-handler-storage-backends@0.4.2","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"homepage":"https://github.com/bernier-llc/tools#readme","bugs":{"url":"https://github.com/bernier-llc/tools/issues"},"dist":{"shasum":"043004a98814f88ff00491f0d23f1b98e8ffa3e1","tarball":"https://registry.npmjs.org/@bernierllc/file-handler-storage-backends/-/file-handler-storage-backends-0.4.2.tgz","fileCount":30,"integrity":"sha512-DuMMbZOii7MjVeS5GdwmtnuiwVFHQdxFL9FiuQX22G3hyEyWP7+8DkvprGQXH16W+B3Junc4vVLBUCYejYVPmQ==","signatures":[{"sig":"MEYCIQCQ6lWli+UkK25SNvRHn5X1EpWYiUOa9mrvLoFmGAEaFAIhAOr07yDWSEe0MDF8AZ2xN01hvs1AdeZrCKIeiGxp3hnJ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":122316},"main":"dist/index.js","type":"module","_from":"file:bernierllc-file-handler-storage-backends-0.4.2.tgz","types":"dist/index.d.ts","scripts":{"dev":"tsc --watch","lint":"eslint src --ext .ts","test":"jest","build":"tsc","clean":"rimraf dist","prebuild":"npm run clean","test:run":"jest","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b5c23347-8e90-40ce-8cee-d19e1fac61c9"}},"_resolved":"/home/runner/work/tools/tools/packages/core/file-handler-storage-backends/bernierllc-file-handler-storage-backends-0.4.2.tgz","_integrity":"sha512-DuMMbZOii7MjVeS5GdwmtnuiwVFHQdxFL9FiuQX22G3hyEyWP7+8DkvprGQXH16W+B3Junc4vVLBUCYejYVPmQ==","repository":{"url":"git+https://github.com/bernier-llc/tools.git","type":"git"},"_npmVersion":"11.11.0","description":"Additional storage backends for @bernierllc/file-handler: AWS S3, Azure Blob, Google Cloud Storage, Local storage, Dropbox, and Google Drive","directories":{},"_nodeVersion":"20.20.0","dependencies":{"@bernierllc/file-handler":"0.4.2","@bernierllc/dropbox-oauth":"0.4.2","@bernierllc/google-drive-oauth":"0.4.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.6.4","eslint":"^8.49.0","rimraf":"^5.0.1","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":"^20.6.0","@types/fs-extra":"^11.0.4","@types/mime-types":"^2.1.4","@typescript-eslint/parser":"^6.7.0","@typescript-eslint/eslint-plugin":"^6.7.0"},"peerDependencies":{"dropbox":"^10.34.0","fs-extra":"^11.0.0","googleapis":"^130.0.0","mime-types":"^2.1.0","@azure/identity":"^4.0.0","@aws-sdk/client-s3":"^3.0.0","@azure/storage-blob":"^12.0.0","@aws-sdk/lib-storage":"^3.0.0","@google-cloud/storage":"^7.0.0","@aws-sdk/s3-request-presigner":"^3.0.0"},"peerDependenciesMeta":{"dropbox":{"optional":true},"fs-extra":{"optional":true},"googleapis":{"optional":true},"mime-types":{"optional":true},"@azure/identity":{"optional":true},"@aws-sdk/client-s3":{"optional":true},"@azure/storage-blob":{"optional":true},"@aws-sdk/lib-storage":{"optional":true},"@google-cloud/storage":{"optional":true},"@aws-sdk/s3-request-presigner":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/file-handler-storage-backends_0.4.2_1773163178218_0.23961605089789728","host":"s3://npm-registry-packages-npm-production"}},"0.4.3":{"name":"@bernierllc/file-handler-storage-backends","version":"0.4.3","keywords":["file-handler","storage","s3","azure","gcp","local","dropbox","google-drive","backend","multi-cloud","bernierllc","core"],"author":{"name":"Bernier LLC"},"license":"Bernier LLC","_id":"@bernierllc/file-handler-storage-backends@0.4.3","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"homepage":"https://github.com/bernier-llc/tools#readme","bugs":{"url":"https://github.com/bernier-llc/tools/issues"},"dist":{"shasum":"57267599dbd3d8b283b97d0502cc4910e31b8728","tarball":"https://registry.npmjs.org/@bernierllc/file-handler-storage-backends/-/file-handler-storage-backends-0.4.3.tgz","fileCount":30,"integrity":"sha512-3sKuBGfcwSbDUNI2XyoNHpkm5KXuAQTqk7Geq8sLEEGqYLVywr1h3k0SUry/34/WMLTqLaEuVITK1W0Z2WxtfA==","signatures":[{"sig":"MEUCIBXOmyTsdBe+fLsgSVIDqyepKwmzBdUfddS9wZ6fhU2+AiEAlNtFUiq7TcEUYUWkSczuwZmYXsqKugD1E8AcNAcnz0o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":122316},"main":"dist/index.js","type":"module","_from":"file:bernierllc-file-handler-storage-backends-0.4.3.tgz","types":"dist/index.d.ts","scripts":{"dev":"tsc --watch","lint":"eslint src --ext .ts","test":"jest","build":"tsc","clean":"rimraf dist","prebuild":"npm run clean","test:run":"jest","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b5c23347-8e90-40ce-8cee-d19e1fac61c9"}},"_resolved":"/home/runner/work/tools/tools/packages/core/file-handler-storage-backends/bernierllc-file-handler-storage-backends-0.4.3.tgz","_integrity":"sha512-3sKuBGfcwSbDUNI2XyoNHpkm5KXuAQTqk7Geq8sLEEGqYLVywr1h3k0SUry/34/WMLTqLaEuVITK1W0Z2WxtfA==","repository":{"url":"git+https://github.com/bernier-llc/tools.git","type":"git"},"_npmVersion":"11.14.1","description":"Additional storage backends for @bernierllc/file-handler: AWS S3, Azure Blob, Google Cloud Storage, Local storage, Dropbox, and Google Drive","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@bernierllc/file-handler":"0.4.2","@bernierllc/dropbox-oauth":"0.4.3","@bernierllc/google-drive-oauth":"0.4.3"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.6.4","eslint":"^8.49.0","rimraf":"^5.0.1","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":"^20.6.0","@types/fs-extra":"^11.0.4","@types/mime-types":"^2.1.4","@typescript-eslint/parser":"^6.7.0","@typescript-eslint/eslint-plugin":"^6.7.0"},"peerDependencies":{"dropbox":"^10.34.0","fs-extra":"^11.0.0","googleapis":"^130.0.0","mime-types":"^2.1.0","@azure/identity":"^4.0.0","@aws-sdk/client-s3":"^3.0.0","@azure/storage-blob":"^12.0.0","@aws-sdk/lib-storage":"^3.0.0","@google-cloud/storage":"^7.0.0","@aws-sdk/s3-request-presigner":"^3.0.0"},"peerDependenciesMeta":{"dropbox":{"optional":true},"fs-extra":{"optional":true},"googleapis":{"optional":true},"mime-types":{"optional":true},"@azure/identity":{"optional":true},"@aws-sdk/client-s3":{"optional":true},"@azure/storage-blob":{"optional":true},"@aws-sdk/lib-storage":{"optional":true},"@google-cloud/storage":{"optional":true},"@aws-sdk/s3-request-presigner":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/file-handler-storage-backends_0.4.3_1779133461136_0.08917915832319467","host":"s3://npm-registry-packages-npm-production"}},"0.4.4":{"name":"@bernierllc/file-handler-storage-backends","version":"0.4.4","keywords":["file-handler","storage","s3","azure","gcp","local","dropbox","google-drive","backend","multi-cloud","bernierllc","core"],"author":{"name":"Bernier LLC"},"license":"Bernier LLC","_id":"@bernierllc/file-handler-storage-backends@0.4.4","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"homepage":"https://github.com/bernier-llc/tools#readme","bugs":{"url":"https://github.com/bernier-llc/tools/issues"},"dist":{"shasum":"25ad01c26db656f9fb871b0ae07608bf18d2fbc8","tarball":"https://registry.npmjs.org/@bernierllc/file-handler-storage-backends/-/file-handler-storage-backends-0.4.4.tgz","fileCount":30,"integrity":"sha512-Y7tPhZNvPIqB99gVNFcZeaDn984i8SB1BN69ruwL13m0KI/w2pygYW/LGFoI8aMhlbnibV2NZpiYML5UJv8+fQ==","signatures":[{"sig":"MEQCICkM06WEQLQ6aCzrU60rm0hAngTKOFnsHz75yxmGz9atAiB/P3YBpaQgvUpPF5dEpPVZszg4b8ekWJu+5xWBFs9J/A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":122316},"main":"dist/index.js","type":"module","_from":"file:bernierllc-file-handler-storage-backends-0.4.4.tgz","types":"dist/index.d.ts","scripts":{"dev":"tsc --watch","lint":"eslint src --ext .ts","test":"jest","build":"tsc","clean":"rimraf dist","prebuild":"npm run clean","test:run":"jest","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b5c23347-8e90-40ce-8cee-d19e1fac61c9"}},"_resolved":"/home/runner/work/tools/tools/packages/core/file-handler-storage-backends/bernierllc-file-handler-storage-backends-0.4.4.tgz","_integrity":"sha512-Y7tPhZNvPIqB99gVNFcZeaDn984i8SB1BN69ruwL13m0KI/w2pygYW/LGFoI8aMhlbnibV2NZpiYML5UJv8+fQ==","repository":{"url":"git+https://github.com/bernier-llc/tools.git","type":"git"},"_npmVersion":"11.14.1","description":"Additional storage backends for @bernierllc/file-handler: AWS S3, Azure Blob, Google Cloud Storage, Local storage, Dropbox, and Google Drive","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@bernierllc/file-handler":"0.4.2","@bernierllc/dropbox-oauth":"0.4.4","@bernierllc/google-drive-oauth":"0.4.4"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.6.4","eslint":"^8.49.0","rimraf":"^5.0.1","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":"^20.6.0","@types/fs-extra":"^11.0.4","@types/mime-types":"^2.1.4","@typescript-eslint/parser":"^6.7.0","@typescript-eslint/eslint-plugin":"^6.7.0"},"peerDependencies":{"dropbox":"^10.34.0","fs-extra":"^11.0.0","googleapis":"^130.0.0","mime-types":"^2.1.0","@azure/identity":"^4.0.0","@aws-sdk/client-s3":"^3.0.0","@azure/storage-blob":"^12.0.0","@aws-sdk/lib-storage":"^3.0.0","@google-cloud/storage":"^7.0.0","@aws-sdk/s3-request-presigner":"^3.0.0"},"peerDependenciesMeta":{"dropbox":{"optional":true},"fs-extra":{"optional":true},"googleapis":{"optional":true},"mime-types":{"optional":true},"@azure/identity":{"optional":true},"@aws-sdk/client-s3":{"optional":true},"@azure/storage-blob":{"optional":true},"@aws-sdk/lib-storage":{"optional":true},"@google-cloud/storage":{"optional":true},"@aws-sdk/s3-request-presigner":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/file-handler-storage-backends_0.4.4_1779157211915_0.7843548880176963","host":"s3://npm-registry-packages-npm-production"}},"0.4.5":{"name":"@bernierllc/file-handler-storage-backends","version":"0.4.5","keywords":["file-handler","storage","s3","azure","gcp","local","dropbox","google-drive","backend","multi-cloud","bernierllc","core"],"author":{"name":"Bernier LLC"},"license":"Bernier LLC","_id":"@bernierllc/file-handler-storage-backends@0.4.5","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"homepage":"https://github.com/bernier-llc/tools#readme","bugs":{"url":"https://github.com/bernier-llc/tools/issues"},"dist":{"shasum":"385b6c8d56c862343d94bb84846bbb74e107310f","tarball":"https://registry.npmjs.org/@bernierllc/file-handler-storage-backends/-/file-handler-storage-backends-0.4.5.tgz","fileCount":30,"integrity":"sha512-hH6U2X2xxSIKvTkVEnP5XzQv9DR8j9+XRngqqoeSMJfW63yOfF1lKERgr4T9cs759fDHDWCtOcSdzp7CkwZjHg==","signatures":[{"sig":"MEUCICFChpeShNx87AhpUYFrHymDmD9LixbHF5DAZDuvJzEIAiEA9pCFWGIS978t34vOwdK+XSJ6iPeTHXO06t6gBPQi+Oo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":122316},"main":"dist/index.js","type":"module","_from":"file:bernierllc-file-handler-storage-backends-0.4.5.tgz","types":"dist/index.d.ts","scripts":{"dev":"tsc --watch","lint":"eslint src --ext .ts","test":"jest","build":"tsc","clean":"rimraf dist","prebuild":"npm run clean","test:run":"jest","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b5c23347-8e90-40ce-8cee-d19e1fac61c9"}},"_resolved":"/home/runner/work/tools/tools/packages/core/file-handler-storage-backends/bernierllc-file-handler-storage-backends-0.4.5.tgz","_integrity":"sha512-hH6U2X2xxSIKvTkVEnP5XzQv9DR8j9+XRngqqoeSMJfW63yOfF1lKERgr4T9cs759fDHDWCtOcSdzp7CkwZjHg==","repository":{"url":"git+https://github.com/bernier-llc/tools.git","type":"git"},"_npmVersion":"11.14.1","description":"Additional storage backends for @bernierllc/file-handler: AWS S3, Azure Blob, Google Cloud Storage, Local storage, Dropbox, and Google Drive","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@bernierllc/file-handler":"0.4.2","@bernierllc/dropbox-oauth":"0.4.5","@bernierllc/google-drive-oauth":"0.4.5"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.6.4","eslint":"^8.49.0","rimraf":"^5.0.1","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":"^20.6.0","@types/fs-extra":"^11.0.4","@types/mime-types":"^2.1.4","@typescript-eslint/parser":"^6.7.0","@typescript-eslint/eslint-plugin":"^6.7.0"},"peerDependencies":{"dropbox":"^10.34.0","fs-extra":"^11.0.0","googleapis":"^130.0.0","mime-types":"^2.1.0","@azure/identity":"^4.0.0","@aws-sdk/client-s3":"^3.0.0","@azure/storage-blob":"^12.0.0","@aws-sdk/lib-storage":"^3.0.0","@google-cloud/storage":"^7.0.0","@aws-sdk/s3-request-presigner":"^3.0.0"},"peerDependenciesMeta":{"dropbox":{"optional":true},"fs-extra":{"optional":true},"googleapis":{"optional":true},"mime-types":{"optional":true},"@azure/identity":{"optional":true},"@aws-sdk/client-s3":{"optional":true},"@azure/storage-blob":{"optional":true},"@aws-sdk/lib-storage":{"optional":true},"@google-cloud/storage":{"optional":true},"@aws-sdk/s3-request-presigner":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/file-handler-storage-backends_0.4.5_1779221326966_0.617226972415962","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@bernierllc/file-handler-storage-backends","version":"0.6.0","keywords":["file-handler","storage","s3","azure","gcp","local","dropbox","google-drive","backend","multi-cloud","bernierllc","core"],"author":{"name":"Bernier LLC"},"license":"Bernier LLC","_id":"@bernierllc/file-handler-storage-backends@0.6.0","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"homepage":"https://github.com/bernier-llc/tools#readme","bugs":{"url":"https://github.com/bernier-llc/tools/issues"},"dist":{"shasum":"a8e341108163583f0607cde0150ae17d046ab574","tarball":"https://registry.npmjs.org/@bernierllc/file-handler-storage-backends/-/file-handler-storage-backends-0.6.0.tgz","fileCount":34,"integrity":"sha512-TMjPLmDUOxgaMqZZvvJ2y1Z5QyUuIICttGP8+dKr++VNRBFXvQuF+JAcF+i/KcgxH64obAWY7qU9oCZyVq6lyA==","signatures":[{"sig":"MEYCIQDwGpWq6hAojmbRbifQIgfqVNI953NHDLMkvXVrLG5cbgIhAO8YAe0smaBknOLxjN5Vo3uQXh669WcAo2IKrwX0pp/H","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":125816},"main":"dist/index.js","type":"module","_from":"file:bernierllc-file-handler-storage-backends-0.6.0.tgz","types":"dist/index.d.ts","scripts":{"dev":"tsc --watch","lint":"eslint src --ext .ts","test":"jest","build":"tsc","clean":"rimraf dist","prebuild":"npm run clean","test:run":"jest","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b5c23347-8e90-40ce-8cee-d19e1fac61c9"}},"_resolved":"/home/runner/work/tools/tools/packages/core/file-handler-storage-backends/bernierllc-file-handler-storage-backends-0.6.0.tgz","_integrity":"sha512-TMjPLmDUOxgaMqZZvvJ2y1Z5QyUuIICttGP8+dKr++VNRBFXvQuF+JAcF+i/KcgxH64obAWY7qU9oCZyVq6lyA==","repository":{"url":"git+https://github.com/bernier-llc/tools.git","type":"git"},"_npmVersion":"11.14.1","description":"Additional storage backends for @bernierllc/file-handler: AWS S3, Azure Blob, Google Cloud Storage, Local storage, Dropbox, and Google Drive","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@bernierllc/file-handler":"0.6.0","@bernierllc/dropbox-oauth":"0.6.0","@bernierllc/google-drive-oauth":"0.5.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.6.4","eslint":"^8.49.0","rimraf":"^5.0.1","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":"^20.6.0","@types/fs-extra":"^11.0.4","@types/mime-types":"^2.1.4","@typescript-eslint/parser":"^6.7.0","@typescript-eslint/eslint-plugin":"^6.7.0"},"peerDependencies":{"dropbox":"^10.34.0","fs-extra":"^11.0.0","googleapis":"^130.0.0","mime-types":"^2.1.0","@azure/identity":"^4.0.0","@aws-sdk/client-s3":"^3.0.0","@azure/storage-blob":"^12.0.0","@aws-sdk/lib-storage":"^3.0.0","@google-cloud/storage":"^7.0.0","@aws-sdk/s3-request-presigner":"^3.0.0"},"peerDependenciesMeta":{"dropbox":{"optional":true},"fs-extra":{"optional":true},"googleapis":{"optional":true},"mime-types":{"optional":true},"@azure/identity":{"optional":true},"@aws-sdk/client-s3":{"optional":true},"@azure/storage-blob":{"optional":true},"@aws-sdk/lib-storage":{"optional":true},"@google-cloud/storage":{"optional":true},"@aws-sdk/s3-request-presigner":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/file-handler-storage-backends_0.6.0_1779241168492_0.09319593286273031","host":"s3://npm-registry-packages-npm-production"}},"0.6.1":{"name":"@bernierllc/file-handler-storage-backends","version":"0.6.1","keywords":["file-handler","storage","s3","azure","gcp","local","dropbox","google-drive","backend","multi-cloud","bernierllc","core"],"author":{"name":"Bernier LLC"},"license":"Bernier LLC","_id":"@bernierllc/file-handler-storage-backends@0.6.1","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"homepage":"https://github.com/bernier-llc/tools#readme","bugs":{"url":"https://github.com/bernier-llc/tools/issues"},"dist":{"shasum":"9567f441953bf8f38ef7b1f7e1944fa9f001a12c","tarball":"https://registry.npmjs.org/@bernierllc/file-handler-storage-backends/-/file-handler-storage-backends-0.6.1.tgz","fileCount":34,"integrity":"sha512-yMJ6Da26drkVAE+T8jOMSuW/KAIdLTs6hY94P7lHLqJSunED9VaWNL1NgMrC/zR/BHGkEvgyka5tCEGkcS5vCg==","signatures":[{"sig":"MEQCIDF6/xEpC25+oBJdgEdDdZO6ZB6a2NPov0I5xp9gslVsAiAtt8dLDjWKhy2sQVNyYjY+Kjik2IruUSySRcKbb/Imvg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":125816},"main":"dist/index.js","type":"module","_from":"file:bernierllc-file-handler-storage-backends-0.6.1.tgz","types":"dist/index.d.ts","scripts":{"dev":"tsc --watch","lint":"eslint src --ext .ts","test":"jest","build":"tsc","clean":"rimraf dist","prebuild":"npm run clean","test:run":"jest","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b5c23347-8e90-40ce-8cee-d19e1fac61c9"}},"_resolved":"/home/runner/work/tools/tools/packages/core/file-handler-storage-backends/bernierllc-file-handler-storage-backends-0.6.1.tgz","_integrity":"sha512-yMJ6Da26drkVAE+T8jOMSuW/KAIdLTs6hY94P7lHLqJSunED9VaWNL1NgMrC/zR/BHGkEvgyka5tCEGkcS5vCg==","repository":{"url":"git+https://github.com/bernier-llc/tools.git","type":"git"},"_npmVersion":"11.14.1","description":"Additional storage backends for @bernierllc/file-handler: AWS S3, Azure Blob, Google Cloud Storage, Local storage, Dropbox, and Google Drive","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@bernierllc/file-handler":"0.6.0","@bernierllc/dropbox-oauth":"0.6.0","@bernierllc/google-drive-oauth":"0.6.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.6.4","eslint":"^8.49.0","rimraf":"^5.0.1","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":"^20.6.0","@types/fs-extra":"^11.0.4","@types/mime-types":"^2.1.4","@typescript-eslint/parser":"^6.7.0","@typescript-eslint/eslint-plugin":"^6.7.0"},"peerDependencies":{"dropbox":"^10.34.0","fs-extra":"^11.0.0","googleapis":"^130.0.0","mime-types":"^2.1.0","@azure/identity":"^4.0.0","@aws-sdk/client-s3":"^3.0.0","@azure/storage-blob":"^12.0.0","@aws-sdk/lib-storage":"^3.0.0","@google-cloud/storage":"^7.0.0","@aws-sdk/s3-request-presigner":"^3.0.0"},"peerDependenciesMeta":{"dropbox":{"optional":true},"fs-extra":{"optional":true},"googleapis":{"optional":true},"mime-types":{"optional":true},"@azure/identity":{"optional":true},"@aws-sdk/client-s3":{"optional":true},"@azure/storage-blob":{"optional":true},"@aws-sdk/lib-storage":{"optional":true},"@google-cloud/storage":{"optional":true},"@aws-sdk/s3-request-presigner":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/file-handler-storage-backends_0.6.1_1779243209331_0.9126565454625002","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"@bernierllc/file-handler-storage-backends","version":"0.7.0","keywords":["file-handler","storage","s3","azure","gcp","local","dropbox","google-drive","backend","multi-cloud","bernierllc","core"],"author":{"name":"Bernier LLC"},"license":"Bernier LLC","_id":"@bernierllc/file-handler-storage-backends@0.7.0","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"homepage":"https://github.com/bernier-llc/tools#readme","bugs":{"url":"https://github.com/bernier-llc/tools/issues"},"dist":{"shasum":"d541b8d71ded268931be54eda359864b0214ef2b","tarball":"https://registry.npmjs.org/@bernierllc/file-handler-storage-backends/-/file-handler-storage-backends-0.7.0.tgz","fileCount":34,"integrity":"sha512-HVlBr9/Dm3CQntydSwZs659tZPYQSLN5M2TyffgAH9H8QU4SlTwzl+5mabKyAQzgV+zoDPVMf93G5ArwWtVFTA==","signatures":[{"sig":"MEUCIQDZFinjwmheeDNMa7NhtxzPo5gd+9gOhoUcej1DO43JcgIgWv6gkC7uDTy0a/fSsVq3r/K+aj+YaKFq6cAFO62N/WM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":125816},"main":"dist/index.js","type":"module","_from":"file:bernierllc-file-handler-storage-backends-0.7.0.tgz","types":"dist/index.d.ts","scripts":{"dev":"tsc --watch","lint":"eslint src --ext .ts","test":"jest","build":"tsc","clean":"rimraf dist","prebuild":"npm run clean","test:run":"jest","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b5c23347-8e90-40ce-8cee-d19e1fac61c9"}},"_resolved":"/home/runner/work/tools/tools/packages/core/file-handler-storage-backends/bernierllc-file-handler-storage-backends-0.7.0.tgz","_integrity":"sha512-HVlBr9/Dm3CQntydSwZs659tZPYQSLN5M2TyffgAH9H8QU4SlTwzl+5mabKyAQzgV+zoDPVMf93G5ArwWtVFTA==","repository":{"url":"git+https://github.com/bernier-llc/tools.git","type":"git"},"_npmVersion":"11.14.1","description":"Additional storage backends for @bernierllc/file-handler: AWS S3, Azure Blob, Google Cloud Storage, Local storage, Dropbox, and Google Drive","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@bernierllc/file-handler":"0.7.0","@bernierllc/dropbox-oauth":"0.7.0","@bernierllc/google-drive-oauth":"0.7.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.6.4","eslint":"^8.49.0","rimraf":"^5.0.1","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":"^20.6.0","@types/fs-extra":"^11.0.4","@types/mime-types":"^2.1.4","@typescript-eslint/parser":"^6.7.0","@typescript-eslint/eslint-plugin":"^6.7.0"},"peerDependencies":{"dropbox":"^10.34.0","fs-extra":"^11.0.0","googleapis":"^130.0.0","mime-types":"^2.1.0","@azure/identity":"^4.0.0","@aws-sdk/client-s3":"^3.0.0","@azure/storage-blob":"^12.0.0","@aws-sdk/lib-storage":"^3.0.0","@google-cloud/storage":"^7.0.0","@aws-sdk/s3-request-presigner":"^3.0.0"},"peerDependenciesMeta":{"dropbox":{"optional":true},"fs-extra":{"optional":true},"googleapis":{"optional":true},"mime-types":{"optional":true},"@azure/identity":{"optional":true},"@aws-sdk/client-s3":{"optional":true},"@azure/storage-blob":{"optional":true},"@aws-sdk/lib-storage":{"optional":true},"@google-cloud/storage":{"optional":true},"@aws-sdk/s3-request-presigner":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/file-handler-storage-backends_0.7.0_1779249913169_0.3179966910519083","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"@bernierllc/file-handler-storage-backends","version":"0.8.0","keywords":["file-handler","storage","s3","azure","gcp","local","dropbox","google-drive","backend","multi-cloud","bernierllc","core"],"author":{"name":"Bernier LLC"},"license":"Bernier LLC","_id":"@bernierllc/file-handler-storage-backends@0.8.0","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"homepage":"https://github.com/bernier-llc/tools#readme","bugs":{"url":"https://github.com/bernier-llc/tools/issues"},"dist":{"shasum":"6ee8cf904e9aae4d3a640bf621f732220a57427e","tarball":"https://registry.npmjs.org/@bernierllc/file-handler-storage-backends/-/file-handler-storage-backends-0.8.0.tgz","fileCount":34,"integrity":"sha512-gC60eufdTwI0urRMZJKkyVu8orDUH29cPpKS73ZbVOwhsVn8n19+8sFITNLiXnjj2n7Zz0H3WCWt5n73rY7NUg==","signatures":[{"sig":"MEUCIQDFojGeBr4IX1/Qvp1p67cBsKXI26t+6jenEr+fUFepbAIgI4iJQrkavzfkZH5hk38foiHj3DyJ8J6La8CA3lcRNbg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":125816},"main":"dist/index.js","type":"module","_from":"file:bernierllc-file-handler-storage-backends-0.8.0.tgz","types":"dist/index.d.ts","scripts":{"dev":"tsc --watch","lint":"eslint src --ext .ts","test":"jest","build":"tsc","clean":"rimraf dist","prebuild":"npm run clean","test:run":"jest","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b5c23347-8e90-40ce-8cee-d19e1fac61c9"}},"_resolved":"/home/runner/work/tools/tools/packages/core/file-handler-storage-backends/bernierllc-file-handler-storage-backends-0.8.0.tgz","_integrity":"sha512-gC60eufdTwI0urRMZJKkyVu8orDUH29cPpKS73ZbVOwhsVn8n19+8sFITNLiXnjj2n7Zz0H3WCWt5n73rY7NUg==","repository":{"url":"git+https://github.com/bernier-llc/tools.git","type":"git"},"_npmVersion":"11.15.0","description":"Additional storage backends for @bernierllc/file-handler: AWS S3, Azure Blob, Google Cloud Storage, Local storage, Dropbox, and Google Drive","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@bernierllc/file-handler":"0.8.0","@bernierllc/dropbox-oauth":"0.8.0","@bernierllc/google-drive-oauth":"0.8.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.6.4","eslint":"^8.49.0","rimraf":"^5.0.1","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":"^20.6.0","@types/fs-extra":"^11.0.4","@types/mime-types":"^2.1.4","@typescript-eslint/parser":"^6.7.0","@typescript-eslint/eslint-plugin":"^6.7.0"},"peerDependencies":{"dropbox":"^10.34.0","fs-extra":"^11.0.0","googleapis":"^130.0.0","mime-types":"^2.1.0","@azure/identity":"^4.0.0","@aws-sdk/client-s3":"^3.0.0","@azure/storage-blob":"^12.0.0","@aws-sdk/lib-storage":"^3.0.0","@google-cloud/storage":"^7.0.0","@aws-sdk/s3-request-presigner":"^3.0.0"},"peerDependenciesMeta":{"dropbox":{"optional":true},"fs-extra":{"optional":true},"googleapis":{"optional":true},"mime-types":{"optional":true},"@azure/identity":{"optional":true},"@aws-sdk/client-s3":{"optional":true},"@azure/storage-blob":{"optional":true},"@aws-sdk/lib-storage":{"optional":true},"@google-cloud/storage":{"optional":true},"@aws-sdk/s3-request-presigner":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/file-handler-storage-backends_0.8.0_1779840635880_0.4716543600124965","host":"s3://npm-registry-packages-npm-production"}},"0.8.1":{"name":"@bernierllc/file-handler-storage-backends","version":"0.8.1","description":"Additional storage backends for @bernierllc/file-handler: AWS S3, Azure Blob, Google Cloud Storage, Local storage, Dropbox, and Google Drive","type":"module","main":"dist/index.js","types":"dist/index.d.ts","keywords":["file-handler","storage","s3","azure","gcp","local","dropbox","google-drive","backend","multi-cloud","bernierllc","core"],"author":{"name":"Bernier LLC"},"license":"Bernier LLC","dependencies":{"@bernierllc/dropbox-oauth":"0.8.1","@bernierllc/file-handler":"0.8.0","@bernierllc/google-drive-oauth":"0.8.1"},"devDependencies":{"@types/fs-extra":"^11.0.4","@types/jest":"^29.5.5","@types/mime-types":"^2.1.4","@types/node":"^20.6.0","@typescript-eslint/eslint-plugin":"^6.7.0","@typescript-eslint/parser":"^6.7.0","eslint":"^8.49.0","jest":"^29.6.4","rimraf":"^5.0.1","ts-jest":"^29.1.1","typescript":"^5.2.2"},"peerDependencies":{"@aws-sdk/client-s3":"^3.0.0","@aws-sdk/lib-storage":"^3.0.0","@aws-sdk/s3-request-presigner":"^3.0.0","@azure/identity":"^4.0.0","@azure/storage-blob":"^12.0.0","@google-cloud/storage":"^7.0.0","dropbox":"^10.34.0","fs-extra":"^11.0.0","googleapis":"^130.0.0","mime-types":"^2.1.0"},"peerDependenciesMeta":{"@aws-sdk/client-s3":{"optional":true},"@aws-sdk/lib-storage":{"optional":true},"@aws-sdk/s3-request-presigner":{"optional":true},"@azure/identity":{"optional":true},"@azure/storage-blob":{"optional":true},"@google-cloud/storage":{"optional":true},"dropbox":{"optional":true},"googleapis":{"optional":true},"fs-extra":{"optional":true},"mime-types":{"optional":true}},"repository":{"type":"git","url":"git+https://github.com/bernier-llc/tools.git"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"scripts":{"build":"tsc","dev":"tsc --watch","test":"jest","test:run":"jest","test:watch":"jest --watch","test:coverage":"jest --coverage","lint":"eslint src --ext .ts","clean":"rimraf dist","prebuild":"npm run clean"},"_id":"@bernierllc/file-handler-storage-backends@0.8.1","bugs":{"url":"https://github.com/bernier-llc/tools/issues"},"homepage":"https://github.com/bernier-llc/tools#readme","_integrity":"sha512-jR2E02ew2OGyspswcQuMmr6g1o7U0ySe5NouMj5yHh7O4M4oWQD5XjIrtr+w4h2tPGbx4PaiB5MXY3EuHE7O6Q==","_resolved":"/home/runner/work/tools/tools/packages/core/file-handler-storage-backends/bernierllc-file-handler-storage-backends-0.8.1.tgz","_from":"file:bernierllc-file-handler-storage-backends-0.8.1.tgz","_nodeVersion":"24.18.0","_npmVersion":"12.0.1","dist":{"integrity":"sha512-jR2E02ew2OGyspswcQuMmr6g1o7U0ySe5NouMj5yHh7O4M4oWQD5XjIrtr+w4h2tPGbx4PaiB5MXY3EuHE7O6Q==","shasum":"f0211ffa99883564ddd44125ef038d0dda76849f","tarball":"https://registry.npmjs.org/@bernierllc/file-handler-storage-backends/-/file-handler-storage-backends-0.8.1.tgz","fileCount":34,"unpackedSize":125816,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIHwP0rIjdfNwdoI+2Dvf+LBlyULzUUwT8C3nRrlofqyZAiBGN4BleeFGNEz519FZwGHwikrkQ5frNULf4UPyGZE/Zw=="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b5c23347-8e90-40ce-8cee-d19e1fac61c9"}},"directories":{},"maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/file-handler-storage-backends_0.8.1_1784015613341_0.7971810932268317"},"_hasShrinkwrap":false}},"time":{"created":"2025-12-18T19:50:44.881Z","modified":"2026-07-14T07:53:33.642Z","0.2.0":"2025-12-18T19:50:45.464Z","0.2.1":"2025-12-21T00:25:15.476Z","0.2.2":"2025-12-21T02:18:15.819Z","0.2.3":"2025-12-22T21:09:21.533Z","0.2.4":"2025-12-24T20:26:58.033Z","0.4.0":"2026-01-05T19:47:56.583Z","0.4.2":"2026-03-10T17:19:38.386Z","0.4.3":"2026-05-18T19:44:21.287Z","0.4.4":"2026-05-19T02:20:12.107Z","0.4.5":"2026-05-19T20:08:47.149Z","0.6.0":"2026-05-20T01:39:28.691Z","0.6.1":"2026-05-20T02:13:29.540Z","0.7.0":"2026-05-20T04:05:13.375Z","0.8.0":"2026-05-27T00:10:36.152Z","0.8.1":"2026-07-14T07:53:33.494Z"},"bugs":{"url":"https://github.com/bernier-llc/tools/issues"},"author":{"name":"Bernier LLC"},"license":"Bernier LLC","homepage":"https://github.com/bernier-llc/tools#readme","keywords":["file-handler","storage","s3","azure","gcp","local","dropbox","google-drive","backend","multi-cloud","bernierllc","core"],"repository":{"type":"git","url":"git+https://github.com/bernier-llc/tools.git"},"description":"Additional storage backends for @bernierllc/file-handler: AWS S3, Azure Blob, Google Cloud Storage, Local storage, Dropbox, and Google Drive","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"readme":"# @bernierllc/file-handler-storage-backends\n\nAdditional storage backends for [@bernierllc/file-handler](../file-handler) package, providing multi-cloud storage support with AWS S3, Azure Blob Storage, Google Cloud Storage, and local file system storage.\n\n## Features\n\n- **AWS S3 Backend** - Multi-cloud storage with multipart uploads\n- **Azure Blob Storage** - Microsoft Azure storage with managed identity support\n- **Google Cloud Storage** - GCP storage with service account authentication\n- **Local Storage** - File system storage with metadata files\n- **Type-safe** - Full TypeScript support with strict mode\n- **Optional Dependencies** - Install only the cloud SDKs you need\n\n## Installation\n\n```bash\nnpm install @bernierllc/file-handler-storage-backends\n```\n\n### Cloud Provider SDKs (Optional)\n\nInstall only the SDKs for the backends you'll use:\n\n```bash\n# AWS S3\nnpm install @aws-sdk/client-s3 @aws-sdk/lib-storage @aws-sdk/s3-request-presigner\n\n# Azure Blob Storage\nnpm install @azure/storage-blob @azure/identity\n\n# Google Cloud Storage\nnpm install @google-cloud/storage\n\n# Local File Storage\nnpm install fs-extra mime-types\n```\n\n## Usage\n\n### AWS S3 Storage\n\n```typescript\nimport { S3StorageBackend } from '@bernierllc/file-handler-storage-backends';\n\n// Configure with environment variables:\n// AWS_ACCESS_KEY_ID=your_key\n// AWS_SECRET_ACCESS_KEY=your_secret\n// AWS_REGION=us-east-1\n// AWS_S3_BUCKET=my-bucket\n\nconst s3Backend = new S3StorageBackend();\n\n// Upload file\nconst result = await s3Backend.upload({\n  buffer: fileBuffer,\n  filename: 'document.pdf',\n  contentType: 'application/pdf',\n  size: fileBuffer.length\n}, {\n  path: 'documents/2024',\n  public: true,\n  cacheControl: '3600'\n});\n\nconsole.log(result.url); // Public S3 URL\nconsole.log(result.fileId); // S3 object key\n\n// Download file\nconst file = await s3Backend.download(result.fileId);\n\n// Delete file\nawait s3Backend.delete(result.fileId);\n\n// List files\nconst files = await s3Backend.list({ path: 'documents/', limit: 100 });\n\n// Get signed URL\nconst signedUrl = await s3Backend.getUrl(result.fileId, 7200); // 2 hour expiry\n```\n\n### Azure Blob Storage\n\n```typescript\nimport { AzureStorageBackend } from '@bernierllc/file-handler-storage-backends';\n\n// Configure with environment variables:\n// AZURE_STORAGE_ACCOUNT_NAME=myaccount\n// AZURE_STORAGE_ACCOUNT_KEY=your_key (for shared key auth)\n// OR for managed identity:\n// AZURE_CLIENT_ID=your_client_id\n// AZURE_CLIENT_SECRET=your_secret\n// AZURE_TENANT_ID=your_tenant\n// AZURE_CONTAINER_NAME=uploads\n\nconst azureBackend = new AzureStorageBackend();\n\n// Upload file\nconst result = await azureBackend.upload({\n  buffer: imageBuffer,\n  filename: 'photo.jpg',\n  contentType: 'image/jpeg',\n  size: imageBuffer.length\n}, {\n  public: true\n});\n\n// Get SAS URL\nconst sasUrl = await azureBackend.getUrl(result.fileId, 3600);\n```\n\n### Google Cloud Storage\n\n```typescript\nimport { GCPStorageBackend } from '@bernierllc/file-handler-storage-backends';\n\n// Configure with environment variables:\n// GOOGLE_APPLICATION_CREDENTIALS=/path/to/service-account.json\n// OR:\n// GOOGLE_CLOUD_SERVICE_ACCOUNT_JSON={\"type\":\"service_account\",...}\n// GOOGLE_CLOUD_PROJECT_ID=my-project\n// GOOGLE_CLOUD_STORAGE_BUCKET=my-bucket\n\nconst gcpBackend = new GCPStorageBackend();\n\n// Upload file\nconst result = await gcpBackend.upload({\n  buffer: videoBuffer,\n  filename: 'video.mp4',\n  contentType: 'video/mp4',\n  size: videoBuffer.length\n}, {\n  path: 'videos',\n  public: false\n});\n\n// Get signed URL\nconst signedUrl = await gcpBackend.getUrl(result.fileId, 86400); // 24 hour expiry\n```\n\n### Local File Storage\n\n```typescript\nimport { LocalStorageBackend } from '@bernierllc/file-handler-storage-backends';\n\n// Configure with environment variables:\n// LOCAL_STORAGE_PATH=/app/uploads (default: ./uploads)\n// LOCAL_STORAGE_URL_BASE=http://localhost:3000/uploads (optional)\n\nconst localBackend = new LocalStorageBackend();\n\n// Upload file\nconst result = await localBackend.upload({\n  buffer: dataBuffer,\n  filename: 'data.csv',\n  contentType: 'text/csv',\n  size: dataBuffer.length\n}, {\n  path: 'exports/2024',\n  public: true\n});\n\n// Files are stored with metadata in .meta.json files\n// /app/uploads/exports/2024/1234567890-data.csv\n// /app/uploads/exports/2024/1234567890-data.csv.meta.json\n```\n\n## Backend Interface\n\nAll backends implement the `FileStorageBackend` interface from `@bernierllc/file-handler`:\n\n```typescript\ninterface FileStorageBackend {\n  upload(file: FileData, options?: UploadOptions): Promise<UploadResult>;\n  download(fileId: string, options?: DownloadOptions): Promise<FileData>;\n  delete(fileId: string): Promise<DeleteResult>;\n  list(options?: ListOptions): Promise<FileList>;\n  getMetadata(fileId: string): Promise<FileMetadata>;\n  getUrl(fileId: string, expiresIn?: number): Promise<string>;\n  testConnection(): Promise<boolean>;\n  getBackendInfo(): BackendInfo;\n}\n```\n\n## Environment Variables\n\n### AWS S3\n\n| Variable | Required | Default | Description |\n|----------|----------|---------|-------------|\n| `AWS_ACCESS_KEY_ID` | Yes | - | AWS access key |\n| `AWS_SECRET_ACCESS_KEY` | Yes | - | AWS secret key |\n| `AWS_REGION` | No | `us-east-1` | AWS region |\n| `AWS_S3_BUCKET` | No | `uploads` | S3 bucket name |\n\n### Azure Blob Storage\n\n| Variable | Required | Default | Description |\n|----------|----------|---------|-------------|\n| `AZURE_STORAGE_ACCOUNT_NAME` | Yes | - | Storage account name |\n| `AZURE_STORAGE_ACCOUNT_KEY` | No* | - | Account key (shared key auth) |\n| `AZURE_CLIENT_ID` | No* | - | Client ID (managed identity) |\n| `AZURE_CLIENT_SECRET` | No* | - | Client secret (service principal) |\n| `AZURE_TENANT_ID` | No* | - | Tenant ID (service principal) |\n| `AZURE_CONTAINER_NAME` | No | `uploads` | Container name |\n\n*Either `AZURE_STORAGE_ACCOUNT_KEY` or Azure identity credentials are required\n\n### Google Cloud Storage\n\n| Variable | Required | Default | Description |\n|----------|----------|---------|-------------|\n| `GOOGLE_APPLICATION_CREDENTIALS` | No* | - | Path to service account JSON |\n| `GOOGLE_CLOUD_SERVICE_ACCOUNT_JSON` | No* | - | Service account JSON content |\n| `GOOGLE_CLOUD_PROJECT_ID` | No | - | GCP project ID |\n| `GOOGLE_CLOUD_STORAGE_BUCKET` | No | `uploads` | GCS bucket name |\n\n*Either credentials path or JSON content is required\n\n### Local File Storage\n\n| Variable | Required | Default | Description |\n|----------|----------|---------|-------------|\n| `LOCAL_STORAGE_PATH` | No | `./uploads` | Base storage directory |\n| `LOCAL_STORAGE_URL_BASE` | No | - | Base URL for public access |\n\n## Authentication Methods\n\n### AWS S3\n- **IAM Roles** - Use EC2/ECS IAM roles (recommended for production)\n- **Access Keys** - Use environment variables for development\n\n### Azure Blob Storage\n- **Managed Identity** - Use Azure managed identity (recommended for Azure resources)\n- **Shared Key** - Use storage account key\n- **Service Principal** - Use Azure AD service principal\n\n### Google Cloud Storage\n- **Workload Identity** - Use GKE workload identity (recommended for GKE)\n- **Service Account** - Use service account key file or JSON\n\n### Local Storage\n- **File System** - Direct file system access with permissions\n\n## Error Handling\n\nAll methods throw descriptive errors:\n\n```typescript\ntry {\n  const backend = new S3StorageBackend();\n  await backend.upload(file);\n} catch (error) {\n  if (error.message.includes('AWS SDK not found')) {\n    // Install AWS SDK: npm install @aws-sdk/client-s3 @aws-sdk/lib-storage\n  } else if (error.message.includes('credentials')) {\n    // Check AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY\n  }\n}\n```\n\n## Testing Connection\n\nTest if a backend is properly configured:\n\n```typescript\nconst backend = new AzureStorageBackend();\nconst isConnected = await backend.testConnection();\n\nif (isConnected) {\n  console.log('Azure connection successful');\n} else {\n  console.error('Azure connection failed - check credentials');\n}\n\n// Get backend info\nconst info = backend.getBackendInfo();\nconsole.log(info.type); // 'azure'\nconsole.log(info.capabilities); // ['upload', 'download', 'delete', ...]\nconsole.log(info.status); // 'connected' or 'disconnected'\n```\n\n## File Metadata\n\nAll backends store and retrieve file metadata:\n\n```typescript\nconst metadata = await backend.getMetadata(fileId);\nconsole.log(metadata.filename); // Original filename\nconsole.log(metadata.contentType); // MIME type\nconsole.log(metadata.size); // File size in bytes\nconsole.log(metadata.uploadedAt); // Upload timestamp\n```\n\n## Performance\n\n- **S3** - Multipart uploads for large files (>5MB automatically)\n- **Azure** - Streaming uploads and downloads\n- **GCP** - Resumable uploads for large files\n- **Local** - Direct file system operations with metadata caching\n\n## License\n\nBernier LLC - Licensed for client use within delivered projects only.\n\n## Related Packages\n\n- [@bernierllc/file-handler](../file-handler) - Core file handling package\n- [@bernierllc/image-processor](../image-processor) - Image processing utilities\n- [@bernierllc/file-uploader](../file-uploader) - HTTP file upload handling\n","readmeFilename":"README.md"}