{"_id":"@bernierllc/user-storage-service","_rev":"18-4e748dd0cc02780afc714bc74dd8362c","name":"@bernierllc/user-storage-service","dist-tags":{"latest":"0.8.3"},"versions":{"0.2.0":{"name":"@bernierllc/user-storage-service","version":"0.2.0","keywords":["storage","file-upload","dropbox","google-drive","s3","oauth","billing","user-storage","bernierllc"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","_id":"@bernierllc/user-storage-service@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":"22abfd81004a9457421f961140177dee4c74c446","tarball":"https://registry.npmjs.org/@bernierllc/user-storage-service/-/user-storage-service-0.2.0.tgz","fileCount":15,"integrity":"sha512-dPlDMKHq1V0T9czk3dUfOmj8wrzSvMYQr7cH1O99XCcALR8n9YwD4GTz8+mfEu8TZ0qtDN7URwoMsZO+uGHU4A==","signatures":[{"sig":"MEQCIE/HOh14u5AAVtf+iF/iHf7gPq5JfMW58WIo+EFQsUPoAiBLrBGZ1DlMPyWpyz2UEqZuiEosiLab6tmVjx8vgDKZOA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":27521},"main":"dist/index.js","type":"module","_from":"file:bernierllc-user-storage-service-0.2.0.tgz","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"scripts":{"dev":"tsc --watch","lint":"eslint src/**/*.ts","test":"jest","build":"tsc","clean":"rimraf dist","test:run":"jest --passWithNoTests","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"mkbernier","email":"mkbernier@gmail.com"},"_resolved":"/tmp/c444258c7768fd88fa2ec29e008c7f50/bernierllc-user-storage-service-0.2.0.tgz","_integrity":"sha512-dPlDMKHq1V0T9czk3dUfOmj8wrzSvMYQr7cH1O99XCcALR8n9YwD4GTz8+mfEu8TZ0qtDN7URwoMsZO+uGHU4A==","repository":{"url":"git+https://github.com/bernier-llc/tools.git","type":"git","directory":"packages/service/user-storage-service"},"_npmVersion":"11.7.0","description":"Orchestration service for routing file uploads to user-owned or application-owned storage backends","directories":{},"_nodeVersion":"20.19.6","dependencies":{"@bernierllc/logger":"1.0.3","@bernierllc/file-handler":"0.2.1","@bernierllc/retry-policy":"0.1.6","@bernierllc/dropbox-oauth":"0.2.0","@bernierllc/google-drive-oauth":"0.2.0","@bernierllc/file-handler-storage-backends":"0.2.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.6.4","eslint":"^8.50.0","rimraf":"^5.0.0","ts-jest":"^29.1.2","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":"^20.6.0"},"_npmOperationalInternal":{"tmp":"tmp/user-storage-service_0.2.0_1766087494572_0.9376197217443285","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@bernierllc/user-storage-service","version":"0.2.1","keywords":["storage","file-upload","dropbox","google-drive","s3","oauth","billing","user-storage","bernierllc"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","_id":"@bernierllc/user-storage-service@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":"ce0e9193a8bc0e4161611f67e7a49191ac4cc5d2","tarball":"https://registry.npmjs.org/@bernierllc/user-storage-service/-/user-storage-service-0.2.1.tgz","fileCount":15,"integrity":"sha512-iMuGVStW4b85a8s1kccn70l6+R1B7VxoQPutvjRpt6lsWLCJzxnrjfd4kcC46AiTTYdyHSWHlALnyiPeeq5nug==","signatures":[{"sig":"MEYCIQCxxsoh1ZyOBbHK04WHmubh7fkoikN8FFb3PQtQYK+vkwIhAPyKKrgk/5kCO6GseaYgbQU+QeDFQD/YcIHpZA6utMcm","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":27521},"main":"dist/index.js","type":"module","_from":"file:bernierllc-user-storage-service-0.2.1.tgz","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"scripts":{"dev":"tsc --watch","lint":"eslint src/**/*.ts","test":"jest","build":"tsc","clean":"rimraf dist","test:run":"jest --passWithNoTests","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"mkbernier","email":"mkbernier@gmail.com"},"_resolved":"/tmp/3d3542a06e1971d3e5f5315c36d53f6f/bernierllc-user-storage-service-0.2.1.tgz","_integrity":"sha512-iMuGVStW4b85a8s1kccn70l6+R1B7VxoQPutvjRpt6lsWLCJzxnrjfd4kcC46AiTTYdyHSWHlALnyiPeeq5nug==","repository":{"url":"git+https://github.com/bernier-llc/tools.git","type":"git","directory":"packages/service/user-storage-service"},"_npmVersion":"11.7.0","description":"Orchestration service for routing file uploads to user-owned or application-owned storage backends","directories":{},"_nodeVersion":"20.19.6","dependencies":{"@bernierllc/logger":"1.0.3","@bernierllc/file-handler":"0.2.2","@bernierllc/retry-policy":"0.1.6","@bernierllc/dropbox-oauth":"0.2.0","@bernierllc/google-drive-oauth":"0.2.0","@bernierllc/file-handler-storage-backends":"0.2.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.6.4","eslint":"^8.50.0","rimraf":"^5.0.0","ts-jest":"^29.1.2","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":"^20.6.0"},"_npmOperationalInternal":{"tmp":"tmp/user-storage-service_0.2.1_1766276763724_0.8063625625577964","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@bernierllc/user-storage-service","version":"0.2.2","keywords":["storage","file-upload","dropbox","google-drive","s3","oauth","billing","user-storage","bernierllc"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","_id":"@bernierllc/user-storage-service@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":"3941dead2a01b23a2e8326fa6c41234b07e86603","tarball":"https://registry.npmjs.org/@bernierllc/user-storage-service/-/user-storage-service-0.2.2.tgz","fileCount":15,"integrity":"sha512-39lWMD+3q25Rp+5KahCsWE/0LJ5JU8f7UBc30Vuw7KUzEYIZMnwuz1L/p3KmHBpCLSnH6A2It/idN4AUH99rYg==","signatures":[{"sig":"MEYCIQDEDFRi1QAgVIL6f+gn8PT2qKNmaKKNQPHvXfp26YIZeAIhAJs+ENrH2EVGBNEHn1/wQHeidBox2XKr0hRJNeycZ3//","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":27521},"main":"dist/index.js","type":"module","_from":"file:bernierllc-user-storage-service-0.2.2.tgz","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"scripts":{"dev":"tsc --watch","lint":"eslint src/**/*.ts","test":"jest","build":"tsc","clean":"rimraf dist","test:run":"jest --passWithNoTests","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"mkbernier","email":"mkbernier@gmail.com"},"_resolved":"/tmp/3f3316bc56b08e6ca6555432f306e2b7/bernierllc-user-storage-service-0.2.2.tgz","_integrity":"sha512-39lWMD+3q25Rp+5KahCsWE/0LJ5JU8f7UBc30Vuw7KUzEYIZMnwuz1L/p3KmHBpCLSnH6A2It/idN4AUH99rYg==","repository":{"url":"git+https://github.com/bernier-llc/tools.git","type":"git","directory":"packages/service/user-storage-service"},"_npmVersion":"11.7.0","description":"Orchestration service for routing file uploads to user-owned or application-owned storage backends","directories":{},"_nodeVersion":"20.19.6","dependencies":{"@bernierllc/logger":"1.0.3","@bernierllc/file-handler":"0.2.3","@bernierllc/retry-policy":"0.1.6","@bernierllc/dropbox-oauth":"0.2.0","@bernierllc/google-drive-oauth":"0.2.0","@bernierllc/file-handler-storage-backends":"0.2.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.6.4","eslint":"^8.50.0","rimraf":"^5.0.0","ts-jest":"^29.1.2","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":"^20.6.0"},"_npmOperationalInternal":{"tmp":"tmp/user-storage-service_0.2.2_1766283539724_0.4651848123033462","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"@bernierllc/user-storage-service","version":"0.2.3","keywords":["storage","file-upload","dropbox","google-drive","s3","oauth","billing","user-storage","bernierllc"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","_id":"@bernierllc/user-storage-service@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":"ba27e7589c6c9a82bb772677a60be07f2b2cd20a","tarball":"https://registry.npmjs.org/@bernierllc/user-storage-service/-/user-storage-service-0.2.3.tgz","fileCount":15,"integrity":"sha512-cMwlF0CbDCUOsy8lTBHlgjuzrgoyvPZqMMmQ+V80F0uc3ymsej/PVEalgGjE5a+o9+8xVctrVJlJUB3qCCiJFA==","signatures":[{"sig":"MEUCIQC9fdN6MUpoP/FRNu25P9V6HY7owSgKdQnW7Qcpi71QXwIgW+icZ8a/urxXgWb3wbKWj5A3mAA1vclBp9dUJoYdwWA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":27521},"main":"dist/index.js","type":"module","_from":"file:bernierllc-user-storage-service-0.2.3.tgz","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"scripts":{"dev":"tsc --watch","lint":"eslint src/**/*.ts","test":"jest","build":"tsc","clean":"rimraf dist","test:run":"jest --passWithNoTests","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3b465bf8-5b2b-4f73-ad54-859523ac8fcb"}},"_resolved":"/tmp/687fdc4b6a5aa72ac2ea888ee6551b5a/bernierllc-user-storage-service-0.2.3.tgz","_integrity":"sha512-cMwlF0CbDCUOsy8lTBHlgjuzrgoyvPZqMMmQ+V80F0uc3ymsej/PVEalgGjE5a+o9+8xVctrVJlJUB3qCCiJFA==","repository":{"url":"git+https://github.com/bernier-llc/tools.git","type":"git","directory":"packages/service/user-storage-service"},"_npmVersion":"11.7.0","description":"Orchestration service for routing file uploads to user-owned or application-owned storage backends","directories":{},"_nodeVersion":"20.19.6","dependencies":{"@bernierllc/logger":"1.0.4","@bernierllc/file-handler":"0.2.3","@bernierllc/retry-policy":"0.1.6","@bernierllc/dropbox-oauth":"0.2.1","@bernierllc/google-drive-oauth":"0.2.1","@bernierllc/file-handler-storage-backends":"0.2.3"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.6.4","eslint":"^8.50.0","rimraf":"^5.0.0","ts-jest":"^29.1.2","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":"^20.6.0"},"_npmOperationalInternal":{"tmp":"tmp/user-storage-service_0.2.3_1766437877246_0.5071693632322969","host":"s3://npm-registry-packages-npm-production"}},"0.2.4":{"name":"@bernierllc/user-storage-service","version":"0.2.4","keywords":["storage","file-upload","dropbox","google-drive","s3","oauth","billing","user-storage","bernierllc"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","_id":"@bernierllc/user-storage-service@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":"0086501eb8c7be549c7e04c348b4db0415d3d451","tarball":"https://registry.npmjs.org/@bernierllc/user-storage-service/-/user-storage-service-0.2.4.tgz","fileCount":15,"integrity":"sha512-RAQytsJLV1yM3sfxJ2RiLZM8PI3A9lBWRioY0y0d/aoiJ29e6lkMfmWqJUuIUsYBj2R3ubTc1i2avFjGZe1m/A==","signatures":[{"sig":"MEYCIQCDcvZ4KPUZxbItZe6yVrWaCqysUAOTwOe9TEAmgZl+aQIhAIScnyd8OLMSEcwfX3hOfzoUooR3sNnx0E6/0FPGNK6T","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":27521},"main":"dist/index.js","type":"module","_from":"file:bernierllc-user-storage-service-0.2.4.tgz","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"scripts":{"dev":"tsc --watch","lint":"eslint src/**/*.ts","test":"jest","build":"tsc","clean":"rimraf dist","test:run":"jest --passWithNoTests","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3b465bf8-5b2b-4f73-ad54-859523ac8fcb"}},"_resolved":"/tmp/e2e822fa6fee4dbd52161ef7a3275fc2/bernierllc-user-storage-service-0.2.4.tgz","_integrity":"sha512-RAQytsJLV1yM3sfxJ2RiLZM8PI3A9lBWRioY0y0d/aoiJ29e6lkMfmWqJUuIUsYBj2R3ubTc1i2avFjGZe1m/A==","repository":{"url":"git+https://github.com/bernier-llc/tools.git","type":"git","directory":"packages/service/user-storage-service"},"_npmVersion":"11.7.0","description":"Orchestration service for routing file uploads to user-owned or application-owned storage backends","directories":{},"_nodeVersion":"20.19.6","dependencies":{"@bernierllc/logger":"1.1.0","@bernierllc/file-handler":"0.2.3","@bernierllc/retry-policy":"0.1.6","@bernierllc/dropbox-oauth":"0.2.2","@bernierllc/google-drive-oauth":"0.2.2","@bernierllc/file-handler-storage-backends":"0.2.4"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.6.4","eslint":"^8.50.0","rimraf":"^5.0.0","ts-jest":"^29.1.2","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":"^20.6.0"},"_npmOperationalInternal":{"tmp":"tmp/user-storage-service_0.2.4_1766454493988_0.8202715350152254","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@bernierllc/user-storage-service","version":"0.4.0","keywords":["storage","file-upload","dropbox","google-drive","s3","oauth","billing","user-storage","bernierllc"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","_id":"@bernierllc/user-storage-service@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":"1490a47789a2e4eadb9072bfb63bc58e24242a53","tarball":"https://registry.npmjs.org/@bernierllc/user-storage-service/-/user-storage-service-0.4.0.tgz","fileCount":15,"integrity":"sha512-uRiExUMLCrd3k5XgZM9r2UkggfVT6VWm32ooMWlFP/sr1pf6iGQ5zJO1OMWGejtgh3Dd9NMOVQYC7iGDup+UnQ==","signatures":[{"sig":"MEYCIQCsf/HwCJQhkRH88awQ5Ul7NKOGnody2foiKpsp9KeVnwIhALcVOsaAErEfidzq+7hLuCjWGJl1ReT0Broy4WvzyCXi","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":27579},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"af7e74b3715d56d3a193e1bb6743b337c2b0df6d","scripts":{"dev":"tsc --watch","lint":"eslint src/**/*.ts","test":"jest","build":"tsc","clean":"rimraf dist","test:run":"jest --passWithNoTests","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3b465bf8-5b2b-4f73-ad54-859523ac8fcb"}},"repository":{"url":"git+https://github.com/bernier-llc/tools.git","type":"git","directory":"packages/service/user-storage-service"},"_npmVersion":"lerna/9.0.3/node@v20.19.6+x64 (linux)","description":"Orchestration service for routing file uploads to user-owned or application-owned storage backends","directories":{},"_nodeVersion":"20.19.6","dependencies":{"@bernierllc/logger":"1.3.0","@bernierllc/file-handler":"0.4.0","@bernierllc/retry-policy":"0.3.0","@bernierllc/dropbox-oauth":"0.4.0","@bernierllc/google-drive-oauth":"0.4.0","@bernierllc/file-handler-storage-backends":"0.4.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.6.4","eslint":"^8.50.0","rimraf":"^5.0.0","ts-jest":"^29.1.2","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":"^20.6.0"},"_npmOperationalInternal":{"tmp":"tmp/user-storage-service_0.4.0_1767642499967_0.5841438756158426","host":"s3://npm-registry-packages-npm-production"}},"0.4.2":{"name":"@bernierllc/user-storage-service","version":"0.4.2","keywords":["storage","file-upload","dropbox","google-drive","s3","oauth","billing","user-storage","bernierllc"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","_id":"@bernierllc/user-storage-service@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":"2120d58caa3306f51cafce274398c1a018f09a78","tarball":"https://registry.npmjs.org/@bernierllc/user-storage-service/-/user-storage-service-0.4.2.tgz","fileCount":15,"integrity":"sha512-1CRoZvliuuOC/sUwJzzBauXkGUbemqeF0s8mcQHip//ScUSMqsxT6ZAz84BQQQp6mGbSa7jEzPu2Mls6GK+PSw==","signatures":[{"sig":"MEYCIQDtA3cT/PfLTUpTV5raRuRVJODGhxoMYqBpKNO5XHLKQgIhAMTgWX4/P7kA4LUL16eJ2M0skg0wz4BAETDuuiZ4VglX","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":27521},"main":"dist/index.js","type":"module","_from":"file:bernierllc-user-storage-service-0.4.2.tgz","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"scripts":{"dev":"tsc --watch","lint":"eslint src/**/*.ts","test":"jest","build":"tsc","clean":"rimraf dist","test:run":"jest --passWithNoTests","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3b465bf8-5b2b-4f73-ad54-859523ac8fcb"}},"_resolved":"/home/runner/work/tools/tools/packages/service/user-storage-service/bernierllc-user-storage-service-0.4.2.tgz","_integrity":"sha512-1CRoZvliuuOC/sUwJzzBauXkGUbemqeF0s8mcQHip//ScUSMqsxT6ZAz84BQQQp6mGbSa7jEzPu2Mls6GK+PSw==","repository":{"url":"git+https://github.com/bernier-llc/tools.git","type":"git","directory":"packages/service/user-storage-service"},"_npmVersion":"11.11.0","description":"Orchestration service for routing file uploads to user-owned or application-owned storage backends","directories":{},"_nodeVersion":"20.20.0","dependencies":{"@bernierllc/logger":"1.3.2","@bernierllc/file-handler":"0.4.2","@bernierllc/retry-policy":"0.3.2","@bernierllc/dropbox-oauth":"0.4.2","@bernierllc/google-drive-oauth":"0.4.2","@bernierllc/file-handler-storage-backends":"0.4.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.6.4","eslint":"^8.50.0","rimraf":"^5.0.0","ts-jest":"^29.1.2","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":"^20.6.0"},"_npmOperationalInternal":{"tmp":"tmp/user-storage-service_0.4.2_1773163686649_0.4777745369918922","host":"s3://npm-registry-packages-npm-production"}},"0.4.3":{"name":"@bernierllc/user-storage-service","version":"0.4.3","keywords":["storage","file-upload","dropbox","google-drive","s3","oauth","billing","user-storage","bernierllc"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","_id":"@bernierllc/user-storage-service@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":"5a56a287f688f010724ecb8ba741bbb460e5368e","tarball":"https://registry.npmjs.org/@bernierllc/user-storage-service/-/user-storage-service-0.4.3.tgz","fileCount":15,"integrity":"sha512-r6G3lUWeupa9SS+7ynyfdjNzl/PbAtPp3n/Mf+Z3uvegfRaq8SK4cEuodkRwWMw/YE4CyLgGG6eWW3n6rZIuvw==","signatures":[{"sig":"MEUCIEDO7PTpbRvtkCzpiQQmj59rj/lQLDEwnAJ2pqZV1yVbAiEAnWXnoVKxOWcgcADshagP4SmEZIQ+hfPvRpRqUl8g+VA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":27521},"main":"dist/index.js","type":"module","_from":"file:bernierllc-user-storage-service-0.4.3.tgz","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"scripts":{"dev":"tsc --watch","lint":"eslint src/**/*.ts","test":"jest","build":"tsc","clean":"rimraf dist","test:run":"jest --passWithNoTests","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3b465bf8-5b2b-4f73-ad54-859523ac8fcb"}},"_resolved":"/home/runner/work/tools/tools/packages/service/user-storage-service/bernierllc-user-storage-service-0.4.3.tgz","_integrity":"sha512-r6G3lUWeupa9SS+7ynyfdjNzl/PbAtPp3n/Mf+Z3uvegfRaq8SK4cEuodkRwWMw/YE4CyLgGG6eWW3n6rZIuvw==","repository":{"url":"git+https://github.com/bernier-llc/tools.git","type":"git","directory":"packages/service/user-storage-service"},"_npmVersion":"11.14.1","description":"Orchestration service for routing file uploads to user-owned or application-owned storage backends","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@bernierllc/logger":"1.4.0","@bernierllc/file-handler":"0.4.2","@bernierllc/retry-policy":"0.4.0","@bernierllc/dropbox-oauth":"0.4.3","@bernierllc/google-drive-oauth":"0.4.3","@bernierllc/file-handler-storage-backends":"0.4.3"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.6.4","eslint":"^8.50.0","rimraf":"^5.0.0","ts-jest":"^29.1.2","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":"^20.6.0"},"_npmOperationalInternal":{"tmp":"tmp/user-storage-service_0.4.3_1779133933858_0.7906855727728364","host":"s3://npm-registry-packages-npm-production"}},"0.4.4":{"name":"@bernierllc/user-storage-service","version":"0.4.4","keywords":["storage","file-upload","dropbox","google-drive","s3","oauth","billing","user-storage","bernierllc"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","_id":"@bernierllc/user-storage-service@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":"98a5646bca6260efcda24d973e0b4b379cb8ffb8","tarball":"https://registry.npmjs.org/@bernierllc/user-storage-service/-/user-storage-service-0.4.4.tgz","fileCount":15,"integrity":"sha512-4APb+Kv1f94fX480lZPbBpV0abKoaNr9QdGZgRTwLKLRWSrDS8etkyCIiQmHOvadmHX3J+SVHH2e+ogu/HCw/w==","signatures":[{"sig":"MEUCIA1K0spyryXnNAQBB4lty0FcIuwMq/bVuOxeTSazZMLOAiEA9jLzmQlQMwQP7v4CDPj+ojuBZLkNUEh/EVvgJRHzT0w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":27521},"main":"dist/index.js","type":"module","_from":"file:bernierllc-user-storage-service-0.4.4.tgz","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"scripts":{"dev":"tsc --watch","lint":"eslint src/**/*.ts","test":"jest","build":"tsc","clean":"rimraf dist","test:run":"jest --passWithNoTests","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3b465bf8-5b2b-4f73-ad54-859523ac8fcb"}},"_resolved":"/home/runner/work/tools/tools/packages/service/user-storage-service/bernierllc-user-storage-service-0.4.4.tgz","_integrity":"sha512-4APb+Kv1f94fX480lZPbBpV0abKoaNr9QdGZgRTwLKLRWSrDS8etkyCIiQmHOvadmHX3J+SVHH2e+ogu/HCw/w==","repository":{"url":"git+https://github.com/bernier-llc/tools.git","type":"git","directory":"packages/service/user-storage-service"},"_npmVersion":"11.14.1","description":"Orchestration service for routing file uploads to user-owned or application-owned storage backends","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@bernierllc/logger":"1.4.2","@bernierllc/file-handler":"0.4.2","@bernierllc/retry-policy":"0.5.1","@bernierllc/dropbox-oauth":"0.4.4","@bernierllc/google-drive-oauth":"0.4.4","@bernierllc/file-handler-storage-backends":"0.4.4"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.6.4","eslint":"^8.50.0","rimraf":"^5.0.0","ts-jest":"^29.1.2","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":"^20.6.0"},"_npmOperationalInternal":{"tmp":"tmp/user-storage-service_0.4.4_1779157584439_0.7721421834673197","host":"s3://npm-registry-packages-npm-production"}},"0.4.5":{"name":"@bernierllc/user-storage-service","version":"0.4.5","keywords":["storage","file-upload","dropbox","google-drive","s3","oauth","billing","user-storage","bernierllc"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","_id":"@bernierllc/user-storage-service@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":"65ec5938afc2853ab7420060ba17b038e7148a99","tarball":"https://registry.npmjs.org/@bernierllc/user-storage-service/-/user-storage-service-0.4.5.tgz","fileCount":15,"integrity":"sha512-8o8/0nqYlaKZUkxDBkV1DqTwSANf6LStzk2NvfPBgH/LQTZtg7YObjPgHQl5IINhEyhYxG3bWETvnkhJfeeNCA==","signatures":[{"sig":"MEQCIFaxcSaBbCxbANNQIzAG1uAxBg1YSf9wNGEWplpGNqd0AiAXImRZXOuOMHgCtsNzlze8uRYIxtvNLjr8Ic3TuiVjTg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":27521},"main":"dist/index.js","type":"module","_from":"file:bernierllc-user-storage-service-0.4.5.tgz","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"scripts":{"dev":"tsc --watch","lint":"eslint src/**/*.ts","test":"jest","build":"tsc","clean":"rimraf dist","test:run":"jest --passWithNoTests","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3b465bf8-5b2b-4f73-ad54-859523ac8fcb"}},"_resolved":"/home/runner/work/tools/tools/packages/service/user-storage-service/bernierllc-user-storage-service-0.4.5.tgz","_integrity":"sha512-8o8/0nqYlaKZUkxDBkV1DqTwSANf6LStzk2NvfPBgH/LQTZtg7YObjPgHQl5IINhEyhYxG3bWETvnkhJfeeNCA==","repository":{"url":"git+https://github.com/bernier-llc/tools.git","type":"git","directory":"packages/service/user-storage-service"},"_npmVersion":"11.14.1","description":"Orchestration service for routing file uploads to user-owned or application-owned storage backends","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@bernierllc/logger":"1.4.3","@bernierllc/file-handler":"0.4.2","@bernierllc/retry-policy":"0.5.1","@bernierllc/dropbox-oauth":"0.4.5","@bernierllc/google-drive-oauth":"0.4.5","@bernierllc/file-handler-storage-backends":"0.4.5"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.6.4","eslint":"^8.50.0","rimraf":"^5.0.0","ts-jest":"^29.1.2","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":"^20.6.0"},"_npmOperationalInternal":{"tmp":"tmp/user-storage-service_0.4.5_1779221737987_0.3836683376616361","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@bernierllc/user-storage-service","version":"0.5.0","keywords":["storage","file-upload","dropbox","google-drive","s3","oauth","billing","user-storage","bernierllc"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","_id":"@bernierllc/user-storage-service@0.5.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":"48881b1763790a38b5cef8e6ec62fb312ea9d8e0","tarball":"https://registry.npmjs.org/@bernierllc/user-storage-service/-/user-storage-service-0.5.0.tgz","fileCount":15,"integrity":"sha512-GDgzUTJKzd0pgeajVXpHNXXmQdXK9Tb6Pe5KFwuRytnWBVBH2fq9kmTs4kvgNNXwJpFcpX12EK9LxxwZ2OTu7A==","signatures":[{"sig":"MEUCICFt2HFPEC7DhvXbH44oEbuns+4hB1liqGxJuTYq/t0YAiEAgqHJPuS1JY0hTf4ur1qh9IOVVtZ/cDG0JQ384Z7HmuY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":27521},"main":"dist/index.js","type":"module","_from":"file:bernierllc-user-storage-service-0.5.0.tgz","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"scripts":{"dev":"tsc --watch","lint":"eslint src/**/*.ts","test":"jest","build":"tsc","clean":"rimraf dist","test:run":"jest --passWithNoTests","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3b465bf8-5b2b-4f73-ad54-859523ac8fcb"}},"_resolved":"/home/runner/work/tools/tools/packages/service/user-storage-service/bernierllc-user-storage-service-0.5.0.tgz","_integrity":"sha512-GDgzUTJKzd0pgeajVXpHNXXmQdXK9Tb6Pe5KFwuRytnWBVBH2fq9kmTs4kvgNNXwJpFcpX12EK9LxxwZ2OTu7A==","repository":{"url":"git+https://github.com/bernier-llc/tools.git","type":"git","directory":"packages/service/user-storage-service"},"_npmVersion":"11.14.1","description":"Orchestration service for routing file uploads to user-owned or application-owned storage backends","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@bernierllc/logger":"1.6.0","@bernierllc/file-handler":"0.6.0","@bernierllc/retry-policy":"0.6.0","@bernierllc/dropbox-oauth":"0.6.0","@bernierllc/google-drive-oauth":"0.5.0","@bernierllc/file-handler-storage-backends":"0.6.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.6.4","eslint":"^8.50.0","rimraf":"^5.0.0","ts-jest":"^29.1.2","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":"^20.6.0"},"_npmOperationalInternal":{"tmp":"tmp/user-storage-service_0.5.0_1779241866021_0.7275991856064918","host":"s3://npm-registry-packages-npm-production"}},"0.5.1":{"name":"@bernierllc/user-storage-service","version":"0.5.1","keywords":["storage","file-upload","dropbox","google-drive","s3","oauth","billing","user-storage","bernierllc"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","_id":"@bernierllc/user-storage-service@0.5.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":"dbd9e09bbc12e8e97ff3878efb3a5f96ff2ba449","tarball":"https://registry.npmjs.org/@bernierllc/user-storage-service/-/user-storage-service-0.5.1.tgz","fileCount":15,"integrity":"sha512-91H6R1NCn5Sb4Fe+TGBwcoMn0QfHa4w/nYEQ0lmoelSeS5r8QhPZ4+NR9C6Km1rjlq0KLDCELxUFpr6Fb2R9pQ==","signatures":[{"sig":"MEYCIQCzT7oWU9ywQwbiyWPVogAnxHr0Z05OWkDBIbKMkjsFrQIhAPCTMKPqbl2D1ivUa1uFjmIbURGpDHlkPFnTyac0fmS9","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":27521},"main":"dist/index.js","type":"module","_from":"file:bernierllc-user-storage-service-0.5.1.tgz","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"scripts":{"dev":"tsc --watch","lint":"eslint src/**/*.ts","test":"jest","build":"tsc","clean":"rimraf dist","test:run":"jest --passWithNoTests","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3b465bf8-5b2b-4f73-ad54-859523ac8fcb"}},"_resolved":"/home/runner/work/tools/tools/packages/service/user-storage-service/bernierllc-user-storage-service-0.5.1.tgz","_integrity":"sha512-91H6R1NCn5Sb4Fe+TGBwcoMn0QfHa4w/nYEQ0lmoelSeS5r8QhPZ4+NR9C6Km1rjlq0KLDCELxUFpr6Fb2R9pQ==","repository":{"url":"git+https://github.com/bernier-llc/tools.git","type":"git","directory":"packages/service/user-storage-service"},"_npmVersion":"11.14.1","description":"Orchestration service for routing file uploads to user-owned or application-owned storage backends","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@bernierllc/logger":"1.6.0","@bernierllc/file-handler":"0.6.0","@bernierllc/retry-policy":"0.6.0","@bernierllc/dropbox-oauth":"0.6.0","@bernierllc/google-drive-oauth":"0.6.0","@bernierllc/file-handler-storage-backends":"0.6.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.6.4","eslint":"^8.50.0","rimraf":"^5.0.0","ts-jest":"^29.1.2","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":"^20.6.0"},"_npmOperationalInternal":{"tmp":"tmp/user-storage-service_0.5.1_1779243567530_0.8744307549309549","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@bernierllc/user-storage-service","version":"0.6.0","keywords":["storage","file-upload","dropbox","google-drive","s3","oauth","billing","user-storage","bernierllc"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","_id":"@bernierllc/user-storage-service@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":"7d937e3a725036155457d3e42fce9194b863b388","tarball":"https://registry.npmjs.org/@bernierllc/user-storage-service/-/user-storage-service-0.6.0.tgz","fileCount":19,"integrity":"sha512-Jl81nezzBl3e+tt2rHy4Mzdf5eNUfvD1pi+6KVYhpePncoBpsUUF9eaaWlTg0XK+/XCahndNMkHqjBYtnoAGaw==","signatures":[{"sig":"MEUCIHU68lDr+JtUzcZ081yQAFJLHpH+Sq6MvYxiFP87sDYSAiEAhhVG72qrlY1Tv6rBzjwo7ZvDn1XXjwiG17iXfLkrO3U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":30797},"main":"dist/index.js","type":"module","_from":"file:bernierllc-user-storage-service-0.6.0.tgz","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"scripts":{"dev":"tsc --watch","lint":"eslint src/**/*.ts","test":"jest","build":"tsc","clean":"rimraf dist","test:run":"jest --passWithNoTests","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3b465bf8-5b2b-4f73-ad54-859523ac8fcb"}},"_resolved":"/home/runner/work/tools/tools/packages/service/user-storage-service/bernierllc-user-storage-service-0.6.0.tgz","_integrity":"sha512-Jl81nezzBl3e+tt2rHy4Mzdf5eNUfvD1pi+6KVYhpePncoBpsUUF9eaaWlTg0XK+/XCahndNMkHqjBYtnoAGaw==","repository":{"url":"git+https://github.com/bernier-llc/tools.git","type":"git","directory":"packages/service/user-storage-service"},"_npmVersion":"11.14.1","description":"Orchestration service for routing file uploads to user-owned or application-owned storage backends","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@bernierllc/logger":"1.6.0","@bernierllc/file-handler":"0.6.0","@bernierllc/retry-policy":"0.6.0","@bernierllc/dropbox-oauth":"0.6.0","@bernierllc/google-drive-oauth":"0.6.0","@bernierllc/file-handler-storage-backends":"0.6.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.6.4","eslint":"^8.50.0","rimraf":"^5.0.0","ts-jest":"^29.1.2","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":"^20.6.0"},"_npmOperationalInternal":{"tmp":"tmp/user-storage-service_0.6.0_1779248472240_0.9088320479994203","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"@bernierllc/user-storage-service","version":"0.7.0","keywords":["storage","file-upload","dropbox","google-drive","s3","oauth","billing","user-storage","bernierllc"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","_id":"@bernierllc/user-storage-service@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":"768a4613744a787f85b571aaa2007a8ca803d3f7","tarball":"https://registry.npmjs.org/@bernierllc/user-storage-service/-/user-storage-service-0.7.0.tgz","fileCount":19,"integrity":"sha512-TpKq30VEgOXuJ6F+ainAb0tPK6hFJ7dTPCjdLE59wNCgobRCGPMOq7Bt53SWYAl2OO6GQdrpP5jb3rMMjWcs1A==","signatures":[{"sig":"MEYCIQCM9kcQ9yUBxJRltbY4nt2t2zpUmPz5//zAXtRxSM/abAIhAJq54oIfXtMTBCOd5ddqMXeYtZ00oCyaPGHlodJZaLSo","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":30797},"main":"dist/index.js","type":"module","_from":"file:bernierllc-user-storage-service-0.7.0.tgz","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"scripts":{"dev":"tsc --watch","lint":"eslint src/**/*.ts","test":"jest","build":"tsc","clean":"rimraf dist","test:run":"jest --passWithNoTests","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3b465bf8-5b2b-4f73-ad54-859523ac8fcb"}},"_resolved":"/home/runner/work/tools/tools/packages/service/user-storage-service/bernierllc-user-storage-service-0.7.0.tgz","_integrity":"sha512-TpKq30VEgOXuJ6F+ainAb0tPK6hFJ7dTPCjdLE59wNCgobRCGPMOq7Bt53SWYAl2OO6GQdrpP5jb3rMMjWcs1A==","repository":{"url":"git+https://github.com/bernier-llc/tools.git","type":"git","directory":"packages/service/user-storage-service"},"_npmVersion":"11.14.1","description":"Orchestration service for routing file uploads to user-owned or application-owned storage backends","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@bernierllc/logger":"1.7.0","@bernierllc/file-handler":"0.7.0","@bernierllc/retry-policy":"0.7.0","@bernierllc/dropbox-oauth":"0.7.0","@bernierllc/google-drive-oauth":"0.7.0","@bernierllc/file-handler-storage-backends":"0.7.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.6.4","eslint":"^8.50.0","rimraf":"^5.0.0","ts-jest":"^29.1.2","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":"^20.6.0"},"_npmOperationalInternal":{"tmp":"tmp/user-storage-service_0.7.0_1779250619190_0.2111046027377339","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"@bernierllc/user-storage-service","version":"0.8.0","keywords":["storage","file-upload","dropbox","google-drive","s3","oauth","billing","user-storage","bernierllc"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","_id":"@bernierllc/user-storage-service@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":"d70a8acd71613b38791221c0c0d0976fb1d0d38e","tarball":"https://registry.npmjs.org/@bernierllc/user-storage-service/-/user-storage-service-0.8.0.tgz","fileCount":19,"integrity":"sha512-av/dHEgUbMcOeFDVIPqY/D+M3UlwrBqOSgNmli8n3ZBnmZB/bznpvw1EJB6x+Kw4hSYUDpurYJ4HcWlPk1MfTw==","signatures":[{"sig":"MEQCIBOXoSZtoGssLg4mgPY5K2a+UwmVqJ6ZLuoNam043NniAiAZeOb2Nh7ZP6uhllvSB83fh8vqf+gcyFFyV7EDUKla+w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":30797},"main":"dist/index.js","type":"module","_from":"file:bernierllc-user-storage-service-0.8.0.tgz","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"scripts":{"dev":"tsc --watch","lint":"eslint src/**/*.ts","test":"jest","build":"tsc","clean":"rimraf dist","test:run":"jest --passWithNoTests","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3b465bf8-5b2b-4f73-ad54-859523ac8fcb"}},"_resolved":"/home/runner/work/tools/tools/packages/service/user-storage-service/bernierllc-user-storage-service-0.8.0.tgz","_integrity":"sha512-av/dHEgUbMcOeFDVIPqY/D+M3UlwrBqOSgNmli8n3ZBnmZB/bznpvw1EJB6x+Kw4hSYUDpurYJ4HcWlPk1MfTw==","repository":{"url":"git+https://github.com/bernier-llc/tools.git","type":"git","directory":"packages/service/user-storage-service"},"_npmVersion":"11.15.0","description":"Orchestration service for routing file uploads to user-owned or application-owned storage backends","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@bernierllc/logger":"1.7.0","@bernierllc/file-handler":"0.8.0","@bernierllc/retry-policy":"0.7.0","@bernierllc/dropbox-oauth":"0.8.0","@bernierllc/google-drive-oauth":"0.8.0","@bernierllc/file-handler-storage-backends":"0.8.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.6.4","eslint":"^8.50.0","rimraf":"^5.0.0","ts-jest":"^29.1.2","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":"^20.6.0"},"_npmOperationalInternal":{"tmp":"tmp/user-storage-service_0.8.0_1779840866429_0.19481267385725665","host":"s3://npm-registry-packages-npm-production"}},"0.8.1":{"name":"@bernierllc/user-storage-service","version":"0.8.1","keywords":["storage","file-upload","dropbox","google-drive","s3","oauth","billing","user-storage","bernierllc"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","_id":"@bernierllc/user-storage-service@0.8.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":"e42197d6fc2f40fe5c4017f4bcd546063b953fca","tarball":"https://registry.npmjs.org/@bernierllc/user-storage-service/-/user-storage-service-0.8.1.tgz","fileCount":19,"integrity":"sha512-k1B7zNVy3qHhGmXLMq7SqGtTDayj2rR/W1QAtsQ3QpT+irbmP5cVAg89lTuIJMEUzbZSFoTeYbEetoVM4MjunA==","signatures":[{"sig":"MEUCIQD8OHyl/xOyVaWZESXHcq/fIibONHXbiVq7VWvyMPfMgwIgMdjIqLwNvD+I2ojdn5VTXYCFnIzsTJvpFSZMfm+sU7Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":30797},"main":"dist/index.js","type":"module","_from":"file:bernierllc-user-storage-service-0.8.1.tgz","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"scripts":{"dev":"tsc --watch","lint":"eslint src/**/*.ts","test":"jest","build":"tsc","clean":"rimraf dist","test:run":"jest --passWithNoTests","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3b465bf8-5b2b-4f73-ad54-859523ac8fcb"}},"_resolved":"/home/runner/work/tools/tools/packages/service/user-storage-service/bernierllc-user-storage-service-0.8.1.tgz","_integrity":"sha512-k1B7zNVy3qHhGmXLMq7SqGtTDayj2rR/W1QAtsQ3QpT+irbmP5cVAg89lTuIJMEUzbZSFoTeYbEetoVM4MjunA==","repository":{"url":"git+https://github.com/bernier-llc/tools.git","type":"git","directory":"packages/service/user-storage-service"},"_npmVersion":"12.0.1","description":"Orchestration service for routing file uploads to user-owned or application-owned storage backends","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@bernierllc/logger":"1.7.1","@bernierllc/file-handler":"0.8.0","@bernierllc/retry-policy":"0.7.0","@bernierllc/dropbox-oauth":"0.8.1","@bernierllc/google-drive-oauth":"0.8.1","@bernierllc/file-handler-storage-backends":"0.8.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.6.4","eslint":"^8.50.0","rimraf":"^5.0.0","ts-jest":"^29.1.2","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":"^20.6.0"},"_npmOperationalInternal":{"tmp":"tmp/user-storage-service_0.8.1_1784016007266_0.3598942678500341","host":"s3://npm-registry-packages-npm-production"}},"0.8.2":{"name":"@bernierllc/user-storage-service","version":"0.8.2","keywords":["storage","file-upload","dropbox","google-drive","s3","oauth","billing","user-storage","bernierllc"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","_id":"@bernierllc/user-storage-service@0.8.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":"a75ee81c6ad9a367d1978ba5ceab95a21f1dd70e","tarball":"https://registry.npmjs.org/@bernierllc/user-storage-service/-/user-storage-service-0.8.2.tgz","fileCount":19,"integrity":"sha512-LGztKzl9jZgUNnMOYEvrHqVA56HXiRt0h7Ckdq+90mEHSqrcCtPux403N3odq3AzuoLlKoY3LnZKN7ZQExVhEg==","signatures":[{"sig":"MEUCIQDIks3yllRleYK82L77tuJuhkw6PVquo7WcEAnlry059AIgNm84XQcj8YreQe8U78j+bXw5KnM9/E/TxwS7L6evwfo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCPHzEV3YW1pEDx0ntJJkAXdGjFM8Ki6z8Sb+AuqNT1+wIhAOQlV8H5G+vqhIRe0mfYfdQxUgFgxkqRKbhEzWILXNF+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":30869},"main":"dist/index.js","type":"module","_from":"file:bernierllc-user-storage-service-0.8.2.tgz","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"scripts":{"dev":"tsc --watch","lint":"eslint src/**/*.ts","test":"jest","build":"tsc","clean":"rimraf dist","test:run":"jest --passWithNoTests","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"3b465bf8-5b2b-4f73-ad54-859523ac8fcb"}},"_resolved":"/home/runner/work/tools/tools/packages/service/user-storage-service/bernierllc-user-storage-service-0.8.2.tgz","_integrity":"sha512-LGztKzl9jZgUNnMOYEvrHqVA56HXiRt0h7Ckdq+90mEHSqrcCtPux403N3odq3AzuoLlKoY3LnZKN7ZQExVhEg==","repository":{"url":"git+https://github.com/bernier-llc/tools.git","type":"git","directory":"packages/service/user-storage-service"},"_npmVersion":"12.2.0","description":"Orchestration service for routing file uploads to user-owned or application-owned storage backends","directories":{},"_nodeVersion":"24.21.0","dependencies":{"@bernierllc/logger":"1.7.1","@bernierllc/file-handler":"0.8.0","@bernierllc/retry-policy":"0.7.0","@bernierllc/dropbox-oauth":"0.8.1","@bernierllc/google-drive-oauth":"0.8.1","@bernierllc/file-handler-storage-backends":"0.8.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.6.4","eslint":"^8.50.0","rimraf":"^5.0.0","ts-jest":"^29.1.2","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":"^20.6.0","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3"},"_npmOperationalInternal":{"tmp":"tmp/user-storage-service_0.8.2_1790882714501_0.4318339862491003","host":"s3://npm-registry-packages-npm-production"}},"0.8.3":{"_id":"@bernierllc/user-storage-service@0.8.3","bugs":{"url":"https://github.com/bernier-llc/tools/issues"},"dist":{"shasum":"6c949dfbea47072a7e8ef4c7e5256efcb64f1e22","tarball":"https://registry.npmjs.org/@bernierllc/user-storage-service/-/user-storage-service-0.8.3.tgz","fileCount":19,"integrity":"sha512-7jaJSBx2R0OUYp+5NNaJqzTXUzQyQaz/iGgXTDZ8Y+F8n8o7br1qeRCDPo8ygDLJ4itLfIRV80x0Qzjj0pZpxw==","signatures":[{"sig":"MEQCIDEAKP/L9HoZvhIq6to8Q4dDM9mGRGROxd1axTJ5Qj0+AiAISzUZMTKWSIZOAVHbYn+X6Vhga0CKpvAFoDVoNRGobA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCOmRIYLMPX7elj8Orjp4WpvkKcYaSv/lLwsArfYkwGuQIhAI3c7nf1pP4Fc1kko0JmgecY7IbRI72Zj7tPhx0xjO5w"}],"unpackedSize":30875},"main":"dist/index.js","name":"@bernierllc/user-storage-service","type":"module","_from":"file:bernierllc-user-storage-service-0.8.3.tgz","types":"dist/index.d.ts","author":{"name":"Bernier LLC"},"engines":{"node":">=18.0.0"},"license":"SEE LICENSE IN LICENSE","scripts":{"dev":"tsc --watch","lint":"eslint src/**/*.ts","test":"jest","build":"tsc","clean":"rimraf dist","test:run":"jest --passWithNoTests","test:watch":"jest --watch","test:coverage":"jest --coverage"},"version":"0.8.3","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"3b465bf8-5b2b-4f73-ad54-859523ac8fcb"}},"homepage":"https://github.com/bernier-llc/tools#readme","keywords":["storage","file-upload","dropbox","google-drive","s3","oauth","billing","user-storage","bernierllc"],"_resolved":"/home/runner/work/tools/tools/packages/service/user-storage-service/bernierllc-user-storage-service-0.8.3.tgz","_integrity":"sha512-7jaJSBx2R0OUYp+5NNaJqzTXUzQyQaz/iGgXTDZ8Y+F8n8o7br1qeRCDPo8ygDLJ4itLfIRV80x0Qzjj0pZpxw==","repository":{"url":"git+https://github.com/bernier-llc/tools.git","type":"git","directory":"packages/service/user-storage-service"},"_npmVersion":"12.2.0","description":"Orchestration service for routing file uploads to user-owned or application-owned storage backends","directories":{},"maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"_nodeVersion":"24.21.0","dependencies":{"@bernierllc/logger":"^1.7.1","@bernierllc/file-handler":"^0.8.0","@bernierllc/retry-policy":"^0.7.0","@bernierllc/dropbox-oauth":"^0.8.1","@bernierllc/google-drive-oauth":"^0.8.1","@bernierllc/file-handler-storage-backends":"^0.8.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.6.4","eslint":"^8.50.0","rimraf":"^5.0.0","ts-jest":"^29.1.2","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":"^20.6.0","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/user-storage-service_0.8.3_1790884582040_0.6336930481565941"}}},"time":{"created":"2025-12-18T19:51:34.469Z","modified":"2026-10-01T19:56:22.380Z","0.2.0":"2025-12-18T19:51:34.714Z","0.2.1":"2025-12-21T00:26:03.874Z","0.2.2":"2025-12-21T02:18:59.871Z","0.2.3":"2025-12-22T21:11:17.392Z","0.2.4":"2025-12-23T01:48:14.141Z","0.4.0":"2026-01-05T19:48:20.110Z","0.4.2":"2026-03-10T17:28:06.799Z","0.4.3":"2026-05-18T19:52:14.005Z","0.4.4":"2026-05-19T02:26:24.585Z","0.4.5":"2026-05-19T20:15:38.139Z","0.5.0":"2026-05-20T01:51:06.185Z","0.5.1":"2026-05-20T02:19:27.670Z","0.6.0":"2026-05-20T03:41:12.389Z","0.7.0":"2026-05-20T04:16:59.335Z","0.8.0":"2026-05-27T00:14:26.599Z","0.8.1":"2026-07-14T08:00:07.410Z","0.8.2":"2026-10-01T19:25:14.580Z","0.8.3":"2026-10-01T19:56:22.145Z"},"bugs":{"url":"https://github.com/bernier-llc/tools/issues"},"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","homepage":"https://github.com/bernier-llc/tools#readme","keywords":["storage","file-upload","dropbox","google-drive","s3","oauth","billing","user-storage","bernierllc"],"repository":{"url":"git+https://github.com/bernier-llc/tools.git","type":"git","directory":"packages/service/user-storage-service"},"description":"Orchestration service for routing file uploads to user-owned or application-owned storage backends","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"readme":"# @bernierllc/user-storage-service\n\nOrchestration service for routing file uploads to user-owned or application-owned storage backends with OAuth token management and billing tracking.\n\n## Features\n\n- **Multi-storage routing** - Route files to Dropbox, Google Drive, or S3\n- **OAuth token management** - Automatic token refresh for user-owned storage\n- **Billing integration** - Track S3 usage for billing purposes\n- **Storage connection status** - Check if users have connected storage providers\n- **Usage tracking** - Monitor storage usage for billing\n\n## Installation\n\n```bash\nnpm install @bernierllc/user-storage-service\n```\n\n## Usage\n\n### Basic Setup\n\n```typescript\nimport { UserStorageService } from '@bernierllc/user-storage-service';\n\n// Token storage implementation\nconst tokenStorage: TokenStorage = {\n  async store(userId, provider, tokens) {\n    await db.saveTokens(userId, provider, tokens);\n  },\n  async retrieve(userId, provider) {\n    return await db.getTokens(userId, provider);\n  },\n  async delete(userId, provider) {\n    await db.deleteTokens(userId, provider);\n  }\n};\n\n// Billing service implementation (optional)\nconst billingService: BillingService = {\n  async recordUsage(usage) {\n    await db.recordStorageUsage(usage);\n  },\n  async getUsage(userId, period) {\n    return await db.getStorageUsage(userId, period);\n  }\n};\n\n// Create service instance\nconst storageService = new UserStorageService({\n  userId: currentUser.id,\n  tokenStorage,\n  billingService\n});\n```\n\n### Upload Files\n\n```typescript\n// Upload to user's Dropbox\nconst results = await storageService.uploadFiles(files, {\n  storageType: 'dropbox',\n  path: 'documents/2024',\n  public: false\n});\n\n// Upload to user's Google Drive\nconst results = await storageService.uploadFiles(files, {\n  storageType: 'google-drive',\n  path: 'uploads',\n  public: true\n});\n\n// Upload to application's S3 (billed)\nconst results = await storageService.uploadFiles(files, {\n  storageType: 's3',\n  path: 'user-uploads',\n  public: true\n});\n```\n\n### Check Storage Connection\n\n```typescript\n// Check if user has connected Dropbox\nconst hasDropbox = await storageService.isStorageConnected('dropbox');\n\n// Check if user has connected Google Drive\nconst hasGoogleDrive = await storageService.isStorageConnected('google-drive');\n\n// S3 is always available (application-owned)\nconst hasS3 = await storageService.isStorageConnected('s3'); // Always true\n```\n\n### Get Storage Usage\n\n```typescript\n// Get S3 usage for billing\nconst usage = await storageService.getStorageUsage('s3');\nconsole.log(`Total bytes: ${usage.totalBytes}`);\nconsole.log(`File count: ${usage.fileCount}`);\n```\n\n## API\n\n### `UserStorageService`\n\n#### Constructor\n\n```typescript\nconstructor(config: UserStorageServiceConfig)\n```\n\n#### Methods\n\n##### `uploadFiles(files: FileData[], options: UserStorageUploadOptions): Promise<UploadResult[]>`\n\nUpload files to selected storage backend.\n\n##### `getUserTokens(provider: 'dropbox' | 'google-drive'): Promise<OAuthTokens | null>`\n\nGet user's OAuth tokens for a storage provider.\n\n##### `isStorageConnected(provider: StorageType): Promise<boolean>`\n\nCheck if user has connected a storage provider.\n\n##### `getStorageUsage(provider: 's3'): Promise<StorageUsage>`\n\nGet storage usage for user (S3 only, requires billing service).\n\n## Environment Variables\n\nFor OAuth token refresh:\n\n```env\nDROPBOX_CLIENT_ID=your_dropbox_client_id\nDROPBOX_CLIENT_SECRET=your_dropbox_client_secret\nDROPBOX_REDIRECT_URI=https://yourapp.com/oauth/dropbox/callback\n\nGOOGLE_CLIENT_ID=your_google_client_id\nGOOGLE_CLIENT_SECRET=your_google_client_secret\nGOOGLE_REDIRECT_URI=https://yourapp.com/oauth/google-drive/callback\n```\n\nFor S3 (application-owned storage):\n\n```env\nAWS_ACCESS_KEY_ID=your_access_key\nAWS_SECRET_ACCESS_KEY=your_secret_key\nAWS_REGION=us-east-1\nAWS_S3_BUCKET=your-bucket-name\n```\n\n## License\n\nCopyright (c) 2025 Bernier LLC. See LICENSE file for details.\n\n\n","readmeFilename":"README.md"}