{"_id":"@slynova/flydrive","_rev":"17-61fae3dbfd87674450e6babe529530b9","name":"@slynova/flydrive","description":"Flexible and Fluent way to manage storage in Node.js.","dist-tags":{"latest":"1.0.3","next":"1.0.1-alpha.0"},"versions":{"0.0.0-alpha":{"name":"@slynova/flydrive","version":"0.0.0-alpha","description":"Flexible and Fluent way to manage storage in Node.js.","keywords":["storage","filesystem","file","aws","s3"],"author":{"name":"Romain Lanz","email":"romain.lanz@slynova.ch"},"contributors":[{"name":"Harminder Virk","email":"virk@adonisjs.com"}],"license":"MIT","main":"src/StorageManager.js","scripts":{"lint":"standard","pretest":"npm run lint","posttest":"npm run coverage","test:local":"FORCE_COLOR=true node bin/index.js --local","test":"nyc npm run test:local","test:win":"set FORCE_COLOR=true && node bin/index.js --win","coverage":"nyc report --reporter=text-lcov | coveralls"},"repository":{"type":"git","url":"git+https://github.com/Slynova-Org/node-flydrive.git"},"bugs":{"url":"https://github.com/Slynova-Org/node-flydrive/issues"},"dependencies":{"mz":"^2.6.0","node-exceptions":"^2.0.2"},"devDependencies":{"coveralls":"^2.13.1","japa":"^1.0.3","japa-cli":"^1.0.1","nyc":"^11.1.0","rimraf":"^2.6.1","standard":"^10.0.3"},"nyc":{"include":["src"]},"gitHead":"5f5be012105838d8c29f5d6fb3a28763556aa958","homepage":"https://github.com/Slynova-Org/node-flydrive#readme","_id":"@slynova/flydrive@0.0.0-alpha","_npmVersion":"5.3.0","_nodeVersion":"8.2.1","_npmUser":{"name":"romainlanz","email":"lanz.romain@gmail.com"},"dist":{"integrity":"sha512-AoboOfMpnoO5zDk9UqPTT11OPy9wqI4VsNV9sqXc65FJsYYqj/0uRWH0I6OA/4fxVnvveANl5ynNLw0gK1rtzg==","shasum":"afaf35f25e2973229cf86502cfeeedf42abfe435","tarball":"https://registry.npmjs.org/@slynova/flydrive/-/flydrive-0.0.0-alpha.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDBevWCvCQv0EIUTKWMqSFzN+BekJ33jAJn6MsANQwYfAiEAlFXd9kY1mzf417t0qCpJTcIKsv6cM1e7QTq7KprWXA0="}]},"maintainers":[{"name":"romainlanz","email":"lanz.romain@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flydrive-0.0.0-alpha.tgz_1502486783625_0.6606409277301282"},"directories":{}},"0.1.0":{"name":"@slynova/flydrive","version":"0.1.0","description":"Flexible and Fluent way to manage storage in Node.js.","keywords":["storage","filesystem","file","aws","s3"],"author":{"name":"Romain Lanz","email":"romain.lanz@slynova.ch"},"contributors":[{"name":"Harminder Virk","email":"virk@adonisjs.com"}],"license":"MIT","main":"src/StorageManager.js","scripts":{"lint":"standard","pretest":"npm run lint","posttest":"npm run coverage","test:local":"FORCE_COLOR=true node bin/index.js --local","test":"nyc npm run test:local","test:win":"set FORCE_COLOR=true && node bin/index.js --win","coverage":"nyc report --reporter=text-lcov | coveralls"},"repository":{"type":"git","url":"git+https://github.com/Slynova-Org/node-flydrive.git"},"bugs":{"url":"https://github.com/Slynova-Org/node-flydrive/issues"},"dependencies":{"mz":"^2.6.0","node-exceptions":"^2.0.2"},"devDependencies":{"coveralls":"^2.13.1","japa":"^1.0.3","japa-cli":"^1.0.1","nyc":"^11.1.0","rimraf":"^2.6.1","standard":"^10.0.3"},"nyc":{"include":["src"]},"gitHead":"7b55b3de186910aa408d24d34ca42f7294336fd4","homepage":"https://github.com/Slynova-Org/node-flydrive#readme","_id":"@slynova/flydrive@0.1.0","_npmVersion":"5.3.0","_nodeVersion":"8.4.0","_npmUser":{"name":"romainlanz","email":"lanz.romain@gmail.com"},"dist":{"integrity":"sha512-I27mBGP6pKuVgz6MTTvcLKqsIPlEdbLH0KNjnfa/VW42G4vPVYJkAVx+5d2InF74Nwsyn+CpLBQx2UZXKi5q+Q==","shasum":"b55bdc311b6551b76e639f1a9f32f82a1af6eee3","tarball":"https://registry.npmjs.org/@slynova/flydrive/-/flydrive-0.1.0.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDnVu0hQ8brlxQfC4DjItv0FE688TU6kOoWH3cDNiuJXwIgGIJQTlNDl2rzNId97YyXZ9y1srhoyIdRsIwtbegS7p0="}]},"maintainers":[{"name":"romainlanz","email":"lanz.romain@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flydrive-0.1.0.tgz_1504073500730_0.7870331192389131"},"directories":{}},"0.1.1":{"name":"@slynova/flydrive","version":"0.1.1","description":"Flexible and Fluent way to manage storage in Node.js.","keywords":["storage","filesystem","file","aws","s3"],"author":{"name":"Romain Lanz","email":"romain.lanz@slynova.ch"},"contributors":[{"name":"Harminder Virk","email":"virk@adonisjs.com"}],"license":"MIT","main":"src/StorageManager.js","scripts":{"lint":"standard","pretest":"npm run lint","posttest":"npm run coverage","test:local":"FORCE_COLOR=true node bin/index.js --local","test":"npx nyc npm run test:local","test:win":"set FORCE_COLOR=true && node bin/index.js --win","coverage":"nyc report --reporter=text-lcov | coveralls"},"repository":{"type":"git","url":"git+https://github.com/Slynova-Org/node-flydrive.git"},"bugs":{"url":"https://github.com/Slynova-Org/node-flydrive/issues"},"dependencies":{"fs-extra":"^4.0.1","node-exceptions":"^2.0.2","pify":"^3.0.0"},"devDependencies":{"coveralls":"^2.13.1","japa":"^1.0.4","japa-cli":"^1.0.1","nyc":"^11.2.1","standard":"^10.0.3"},"nyc":{"include":["src"]},"gitHead":"106834c035b1caaa076aefd1e98b7dc49d617850","homepage":"https://github.com/Slynova-Org/node-flydrive#readme","_id":"@slynova/flydrive@0.1.1","_npmVersion":"5.4.1","_nodeVersion":"8.4.0","_npmUser":{"name":"romainlanz","email":"lanz.romain@gmail.com"},"dist":{"integrity":"sha512-tVmJqtCtj3tUZPa6ky7CY//vNehYjrM6DKuBTVq3D41pXLtY6I5Ytdy5yI4x7NfC0nmGwi84sAi5oxlD97yhwg==","shasum":"f409fab9b9bd04a6d329e56bd4e07f1cfcead5ca","tarball":"https://registry.npmjs.org/@slynova/flydrive/-/flydrive-0.1.1.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDQ869MY5jgO7R7dykpGeYHYUIC7xuS2iVfhw5SrutxzQIgH4BQsVc3b7CNhLRY0kKJXjZqJ52OkbkxGlhNnZTenoI="}]},"maintainers":[{"name":"romainlanz","email":"lanz.romain@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flydrive-0.1.1.tgz_1505137131817_0.35673874779604375"},"directories":{}},"0.1.2":{"name":"@slynova/flydrive","version":"0.1.2","description":"Flexible and Fluent way to manage storage in Node.js.","keywords":["storage","filesystem","file","aws","s3"],"author":{"name":"Romain Lanz","email":"romain.lanz@slynova.ch"},"contributors":[{"name":"Harminder Virk","email":"virk@adonisjs.com"}],"license":"MIT","main":"src/StorageManager.js","scripts":{"lint":"standard","pretest":"npm run lint","posttest":"npm run coverage","test:local":"FORCE_COLOR=true node bin/index.js --local","test":"npx nyc npm run test:local","test:win":"set FORCE_COLOR=true && node bin/index.js --win","coverage":"nyc report --reporter=text-lcov | coveralls"},"repository":{"type":"git","url":"git+https://github.com/Slynova-Org/node-flydrive.git"},"bugs":{"url":"https://github.com/Slynova-Org/node-flydrive/issues"},"dependencies":{"fs-extra":"^4.0.1","node-exceptions":"^2.0.2","pify":"^3.0.0"},"devDependencies":{"coveralls":"^2.13.1","japa":"^1.0.4","japa-cli":"^1.0.1","nyc":"^11.2.1","standard":"^10.0.3"},"nyc":{"include":["src"]},"gitHead":"ad978c53d9f33c6be65d200d619e54e010cde60f","homepage":"https://github.com/Slynova-Org/node-flydrive#readme","_id":"@slynova/flydrive@0.1.2","_npmVersion":"5.4.1","_nodeVersion":"8.4.0","_npmUser":{"name":"romainlanz","email":"lanz.romain@gmail.com"},"dist":{"integrity":"sha512-6cObL4QkadvU1cyFGui8wjvAmPmF2nURLj30YBf+ZT86Wz1DkxAe8PmfEFgvKcZiUnuTrEDyeUyhMknIT0SoDA==","shasum":"7b0b7a98841e41a8d58b3d653793514ecc891719","tarball":"https://registry.npmjs.org/@slynova/flydrive/-/flydrive-0.1.2.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCY17rQMYhwC5BeN6vdWEQ0XZP52WTkqEl+2elMohaY4wIhAJYev9rKux2/bAHyGob3w0aDY7cNkwFHyL8+2HLmnVWx"}]},"maintainers":[{"name":"romainlanz","email":"lanz.romain@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flydrive-0.1.2.tgz_1505137345879_0.428265045164153"},"directories":{}},"0.1.3":{"name":"@slynova/flydrive","version":"0.1.3","description":"Flexible and Fluent way to manage storage in Node.js.","keywords":["storage","filesystem","file","aws","s3"],"author":{"name":"Romain Lanz","email":"romain.lanz@slynova.ch"},"contributors":[{"name":"Harminder Virk","email":"virk@adonisjs.com"}],"license":"MIT","main":"src/StorageManager.js","scripts":{"lint":"standard","pretest":"npm run lint","posttest":"npm run coverage","test:local":"FORCE_COLOR=true node bin/index.js --local","test":"nyc npm run test:local","test:win":"set FORCE_COLOR=true && node bin/index.js --win","coverage":"nyc report --reporter=text-lcov | coveralls"},"repository":{"type":"git","url":"git+https://github.com/Slynova-Org/node-flydrive.git"},"bugs":{"url":"https://github.com/Slynova-Org/node-flydrive/issues"},"dependencies":{"fs-extra":"^4.0.1","node-exceptions":"^2.0.2","pify":"^3.0.0"},"devDependencies":{"coveralls":"^2.13.1","japa":"^1.0.4","japa-cli":"^1.0.1","nyc":"^11.2.1","standard":"^10.0.3"},"nyc":{"include":["src"]},"gitHead":"910eaf6445402de5e19c467269007e0aa92289c2","homepage":"https://github.com/Slynova-Org/node-flydrive#readme","_id":"@slynova/flydrive@0.1.3","_npmVersion":"5.4.1","_nodeVersion":"8.4.0","_npmUser":{"name":"romainlanz","email":"lanz.romain@gmail.com"},"dist":{"integrity":"sha512-YKSwWfIk9z+VwKQ9nl8+RO8jnOhLEKXN98ze+tyxkoIIFnARTtfKFfR+379WhzEixN4X5QavGow4RdDAFZq0JA==","shasum":"10c86ab5fee62297ea1e20024e8c1aca016c3628","tarball":"https://registry.npmjs.org/@slynova/flydrive/-/flydrive-0.1.3.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHusgdYDNPN8MFnEpBiHkY3nAbf4UkEqZJdvuuEdGiHZAiEA2S66/JADbB+1+QcJvboHJJMs5jLMsjwiwQ4uUL1cw4w="}]},"maintainers":[{"name":"romainlanz","email":"lanz.romain@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flydrive-0.1.3.tgz_1505137605643_0.4316206737421453"},"directories":{}},"0.1.4":{"name":"@slynova/flydrive","version":"0.1.4","description":"Flexible and Fluent way to manage storage in Node.js.","keywords":["storage","filesystem","file","aws","s3"],"author":{"name":"Romain Lanz","email":"romain.lanz@slynova.ch"},"contributors":[{"name":"Harminder Virk","email":"virk@adonisjs.com"}],"license":"MIT","main":"src/StorageManager.js","scripts":{"lint":"standard","pretest":"npm run lint","posttest":"npm run coverage","test:local":"FORCE_COLOR=true node bin/index.js --local","test":"nyc npm run test:local","test:win":"set FORCE_COLOR=true && node bin/index.js --win","coverage":"nyc report --reporter=text-lcov | coveralls"},"repository":{"type":"git","url":"git+https://github.com/Slynova-Org/node-flydrive.git"},"bugs":{"url":"https://github.com/Slynova-Org/node-flydrive/issues"},"dependencies":{"fs-extra":"^4.0.1","node-exceptions":"^2.0.2","resetable":"^1.0.2"},"devDependencies":{"aws-sdk":"^2.112.0","coveralls":"^2.13.1","dotenv":"^4.0.0","japa":"^1.0.4","japa-cli":"^1.0.1","nyc":"^11.2.1","standard":"^10.0.3"},"nyc":{"include":["src"]},"gitHead":"3c5a9d5f41d44bfe674d46b28b3be42fe396099e","homepage":"https://github.com/Slynova-Org/node-flydrive#readme","_id":"@slynova/flydrive@0.1.4","_npmVersion":"5.4.1","_nodeVersion":"8.4.0","_npmUser":{"name":"romainlanz","email":"lanz.romain@gmail.com"},"dist":{"integrity":"sha512-YKfLplaaEZHqG5zXwxKFmLE/QrHSjALt86ThlJckKYzO5wX2kq5ipgOdDZKqVHYdMR4Qifu+b/dzE31/kfGUUg==","shasum":"95642d536ee1189f3fa4470f8ccb0c50bb855b27","tarball":"https://registry.npmjs.org/@slynova/flydrive/-/flydrive-0.1.4.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCKLrZ49dBQCQMxvfQZzRKX8s2vTm6GW8hYfV5UAFwZoAIgU/1wA5b4HfAutb/AaL/+pz4mZPSOVENs0a4jLVMZtVk="}]},"maintainers":[{"name":"romainlanz","email":"lanz.romain@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flydrive-0.1.4.tgz_1505210792413_0.45593344420194626"},"directories":{}},"0.1.5":{"name":"@slynova/flydrive","version":"0.1.5","description":"Flexible and Fluent way to manage storage in Node.js.","keywords":["storage","filesystem","file","aws","s3"],"author":{"name":"Romain Lanz","email":"romain.lanz@slynova.ch"},"contributors":[{"name":"Harminder Virk","email":"virk@adonisjs.com"}],"license":"MIT","main":"src/StorageManager.js","scripts":{"lint":"standard","pretest":"npm run lint","posttest":"npm run coverage","test:local":"FORCE_COLOR=true node bin/index.js --local","test":"nyc npm run test:local","test:win":"set FORCE_COLOR=true && node bin/index.js --win","coverage":"nyc report --reporter=text-lcov | coveralls"},"repository":{"type":"git","url":"git+https://github.com/Slynova-Org/node-flydrive.git"},"bugs":{"url":"https://github.com/Slynova-Org/node-flydrive/issues"},"dependencies":{"create-output-stream":"0.0.1","fs-extra":"^4.0.1","node-exceptions":"^2.0.2","resetable":"^1.0.2"},"devDependencies":{"aws-sdk":"^2.112.0","coveralls":"^3.0.0","dotenv":"^4.0.0","japa":"^1.0.4","japa-cli":"^1.0.1","nyc":"^11.2.1","standard":"^10.0.3"},"nyc":{"include":["src"]},"gitHead":"2be97b3ba0599479fd630b1fec4e005a975db4f4","homepage":"https://github.com/Slynova-Org/node-flydrive#readme","_id":"@slynova/flydrive@0.1.5","_npmVersion":"5.4.2","_nodeVersion":"8.4.0","_npmUser":{"name":"romainlanz","email":"lanz.romain@gmail.com"},"dist":{"integrity":"sha512-el59txy6ip+pSHSI9UdOFlAvXrrs45XBIJjFRy/Czm4iQ0hxVQwc4JX6gmkTymoUnpuEocwqpJfPxeUckN7DzQ==","shasum":"79c02c21d126dd981e7502665ee51ead33fc0827","tarball":"https://registry.npmjs.org/@slynova/flydrive/-/flydrive-0.1.5.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDHUcU5EvDyqSs5q5EI2ItfkzlYgtRucla55TPLlE+z9gIhALqq8XyMMseeMaTH5LvgowvL1ylOywkUpMFxrx1h0Jq7"}]},"maintainers":[{"name":"romainlanz","email":"lanz.romain@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flydrive-0.1.5.tgz_1507274743098_0.7628611305262893"},"directories":{}},"0.1.6":{"name":"@slynova/flydrive","version":"0.1.6","description":"Flexible and Fluent way to manage storage in Node.js.","keywords":["storage","filesystem","file","aws","s3"],"author":{"name":"Romain Lanz","email":"romain.lanz@slynova.ch"},"contributors":[{"name":"Harminder Virk","email":"virk@adonisjs.com"}],"license":"MIT","main":"src/StorageManager.js","scripts":{"lint":"standard","pretest":"npm run lint","posttest":"npm run coverage","test:local":"FORCE_COLOR=true node bin/index.js --local","test":"nyc npm run test:local","test:win":"set FORCE_COLOR=true && node bin/index.js --win","coverage":"nyc report --reporter=text-lcov | coveralls"},"repository":{"type":"git","url":"git+https://github.com/Slynova-Org/node-flydrive.git"},"bugs":{"url":"https://github.com/Slynova-Org/node-flydrive/issues"},"dependencies":{"create-output-stream":"0.0.1","fs-extra":"^5.0.0","node-exceptions":"^3.0.0","resetable":"^1.0.2"},"devDependencies":{"aws-sdk":"^2.128.0","coveralls":"^3.0.0","dotenv":"^5.0.0","japa":"^1.0.5","japa-cli":"^1.0.1","nyc":"^11.2.1","standard":"^10.0.3"},"nyc":{"include":["src"]},"gitHead":"b05ed6ce74de8f861768f1ba3b212ba8cf05fe35","homepage":"https://github.com/Slynova-Org/node-flydrive#readme","_id":"@slynova/flydrive@0.1.6","_npmVersion":"5.6.0","_nodeVersion":"9.3.0","_npmUser":{"name":"romainlanz","email":"lanz.romain@gmail.com"},"dist":{"integrity":"sha512-vPyNoxHAYvEfUMD4TNhc0lDqWXCYI3/dVaohTiqo9aeqwTCXM2o4Kaa5iauec+261GMSBsyOZOwsWKE70lnX9Q==","shasum":"b52faa863e4a1aa755773b1ea3454c773b322f3c","tarball":"https://registry.npmjs.org/@slynova/flydrive/-/flydrive-0.1.6.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDvPQ1/ayWKY5/MwV3ANK6tPUx6XcRMT7ENbwVdhtG+LwIhAKcOTvEGXnyiJVO6aRhsVhohTYPAmTDr8movtZKhPZi0"}]},"maintainers":[{"name":"romainlanz","email":"lanz.romain@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flydrive-0.1.6.tgz_1517653652181_0.5724310877267271"},"directories":{}},"0.2.0":{"name":"@slynova/flydrive","version":"0.2.0","description":"Flexible and Fluent way to manage storage in Node.js.","keywords":["storage","filesystem","file","aws","s3"],"author":{"name":"Romain Lanz","email":"romain.lanz@slynova.ch"},"contributors":[{"name":"Harminder Virk","email":"virk@adonisjs.com"}],"license":"MIT","main":"src/StorageManager.js","scripts":{"lint":"eslint src/**/*.js tests/**/*.js","pretest":"npm run lint","posttest":"npm run coverage","test:local":"FORCE_COLOR=true node bin/index.js --local","test":"nyc npm run test:local","test:win":"set FORCE_COLOR=true && node bin/index.js --win","coverage":"nyc report --reporter=text-lcov | coveralls"},"repository":{"type":"git","url":"git+https://github.com/Slynova-Org/node-flydrive.git"},"bugs":{"url":"https://github.com/Slynova-Org/node-flydrive/issues"},"dependencies":{"create-output-stream":"0.0.1","fs-extra":"^5.0.0","node-exceptions":"^3.0.0","resetable":"^1.0.2"},"devDependencies":{"aws-sdk":"^2.128.0","coveralls":"^3.0.0","dotenv":"^5.0.0","eslint":"^4.18.2","eslint-config-airbnb-base":"^12.1.0","eslint-plugin-import":"^2.9.0","japa":"^1.0.5","japa-cli":"^1.0.1","nyc":"^11.2.1","semver":"^5.5.0"},"nyc":{"include":["src"]},"gitHead":"49041bcfc9c4bb92bf12e037dca585781d06cd85","homepage":"https://github.com/Slynova-Org/node-flydrive#readme","_id":"@slynova/flydrive@0.2.0","_npmVersion":"5.6.0","_nodeVersion":"9.3.0","_npmUser":{"name":"romainlanz","email":"lanz.romain@gmail.com"},"dist":{"integrity":"sha512-nDNjjWdeO1Rj450+mmQ3cJYVFG5An4XIC8OH1hJscEPj9JCDvGKSSziagZvRHyg7C8HRhIJt3S2eMyFQunwIew==","shasum":"d141025da4dbec32726dba824ccdcbe10e214ecd","tarball":"https://registry.npmjs.org/@slynova/flydrive/-/flydrive-0.2.0.tgz","fileCount":20,"unpackedSize":299068,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCCmAcJSnNJiFxWZrEiPu4GRMXUrh4/5obtkBms/oDkmgIgflFms3YX8hx0mEOn0UAn2Bngdsdes1zbIjcyAF5y9pM="}]},"maintainers":[{"name":"romainlanz","email":"lanz.romain@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flydrive_0.2.0_1521501312365_0.18813420837061368"},"_hasShrinkwrap":false},"0.3.0":{"name":"@slynova/flydrive","version":"0.3.0","description":"Flexible and Fluent way to manage storage in Node.js.","keywords":["storage","filesystem","file","aws","s3","ftp"],"author":{"name":"Romain Lanz","email":"romain.lanz@slynova.ch"},"contributors":[{"name":"Harminder Virk","email":"virk@adonisjs.com"},{"name":"Xavier Stouder","email":"xavier@stouder.io"}],"license":"MIT","main":"src/StorageManager.js","scripts":{"lint":"eslint src","pretest":"npm run lint","posttest":"npm run coverage","test:local":"FORCE_COLOR=true node bin/index.js --local","test":"nyc npm run test:local","test:win":"set FORCE_COLOR=true && node bin/index.js --win","coverage":"nyc report --reporter=text-lcov | coveralls"},"repository":{"type":"git","url":"git+https://github.com/Slynova-Org/node-flydrive.git"},"bugs":{"url":"https://github.com/Slynova-Org/node-flydrive/issues"},"dependencies":{"create-output-stream":"0.0.1","fs-extra":"^5.0.0","node-exceptions":"^3.0.0","resetable":"^1.0.2"},"devDependencies":{"jsftp":"^2.1.3","@slynova/eslint-config":"^1.0.4","aws-sdk":"^2.128.0","coveralls":"^3.0.0","dotenv":"^5.0.0","eslint":"^4.18.2","eslint-plugin-import":"^2.9.0","japa":"^1.0.5","japa-cli":"^1.0.1","nyc":"^11.2.1","semver":"^5.5.0"},"nyc":{"include":["src"]},"gitHead":"1c9aace4b8c2957b24b99b6be0864672ac4bd428","homepage":"https://github.com/Slynova-Org/node-flydrive#readme","_id":"@slynova/flydrive@0.3.0","_npmVersion":"5.6.0","_nodeVersion":"9.3.0","_npmUser":{"name":"romainlanz","email":"lanz.romain@gmail.com"},"dist":{"integrity":"sha512-ETyv89AGt26FPOA0drhc7KgOO9lWpcs10h95Iw3nbuMNuOo4qHArnEkLkXDLFutHLbyrGa+Shseu6WzFAIaMPQ==","shasum":"89c653e1a3c9f4bec6ec826120b898f57239dff9","tarball":"https://registry.npmjs.org/@slynova/flydrive/-/flydrive-0.3.0.tgz","fileCount":20,"unpackedSize":344226,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa1G9kCRA9TVsSAnZWagAAuBIP/3JHKcQOl8tKf2KUUihh\nnSgBuSa4gmTYVbwL+lFOLm9B4mdeaDJE0ivNAs+tbAwddrRMJ4q7UD7UVIIV\nLaNKEgI2HcqS4r1RDXlonZHDUzRUVnb8Xuf21GzpIgBWpBr2V7NrbvYwPjI/\nio7IhLDRcyD8MjNvqCkA6+nUMLzCp2aUHSwRYEarEh4Z0/03jsTSj62cZmPH\naEydj1bVTr89o7FtXNj6Xdxz+pWTEyvgztWhnMk0p/ceSg/MjoD3WtWYxt1y\nnsQP+akZLB8Om3OEY7Jx5SjyEAfOcx5/R4r0Fk32EPo4yh/J/s2eeNnzCXox\nfouarRNqnJVKrthHmqlQtnJxVafYNPUUPjPFHKNT0byiIod5lRiN3uBd9sRh\nuoMCX1vuAI4HhbqSBTgfTcEVf1D5xGXcDr3sQkxZf2MbcoYp49yI8//JBJtt\nA0LmVWZ6xd/46ANBJprIlefcwY2PD2fP3fkGOqqG240tAjC9AxLw7jJA/zcp\n6++Grh0nRHQ3izrXYmCiGxbzdEyASsGMT9EKW0pBnWhue7n4yOeqEovgpsX2\nt3m0GuowFZXKUibLqcbgocr5QyPaocfrXbczJJJf0eQGizbvPmvagoa98AzX\ngMGdzMD1+HvEb9quEnAJBD1bNOgGeCfQirNYKik9H61vmafd+WCXSOyRTA9i\n4q50\r\n=X4tI\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICViHMD6aDEF3LYJDj0xm8lPx1WhthY1k3C8qPtsV0NkAiEAnOq/yEiCLAXXUlVTvv2UsAdpwgf6wUTbH2XKNgyDo0w="}]},"maintainers":[{"name":"romainlanz","email":"lanz.romain@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flydrive_0.3.0_1523871587316_0.9411813277076975"},"_hasShrinkwrap":false},"0.3.1":{"name":"@slynova/flydrive","version":"0.3.1","description":"Flexible and Fluent way to manage storage in Node.js.","keywords":["storage","filesystem","file","aws","s3","ftp"],"author":{"name":"Romain Lanz","email":"romain.lanz@slynova.ch"},"contributors":[{"name":"Harminder Virk","email":"virk@adonisjs.com"},{"name":"Xavier Stouder","email":"xavier@stouder.io"}],"license":"MIT","main":"src/StorageManager.js","scripts":{"lint":"eslint src","pretest":"npm run lint","posttest":"npm run coverage","test:local":"FORCE_COLOR=true node bin/index.js --local","test":"nyc npm run test:local","test:win":"set FORCE_COLOR=true && node bin/index.js --win","coverage":"nyc report --reporter=text-lcov | coveralls"},"repository":{"type":"git","url":"git+https://github.com/Slynova-Org/node-flydrive.git"},"bugs":{"url":"https://github.com/Slynova-Org/node-flydrive/issues"},"dependencies":{"create-output-stream":"0.0.1","fs-extra":"^6.0.0","node-exceptions":"^3.0.0","resetable":"^1.0.2"},"devDependencies":{"@slynova/eslint-config":"^1.0.5","aws-sdk":"^2.240.1","coveralls":"^3.0.1","dotenv":"^5.0.0","eslint":"^4.19.1","eslint-plugin-import":"^2.11.0","japa":"^1.0.5","japa-cli":"^1.0.1","jsftp":"^2.1.3","nyc":"^11.8.0","semver":"^5.5.0"},"nyc":{"include":["src"]},"gitHead":"61c6614d0a8d8e6053de8a114acc8f62da7523cd","homepage":"https://github.com/Slynova-Org/node-flydrive#readme","_id":"@slynova/flydrive@0.3.1","_npmVersion":"6.0.1","_nodeVersion":"9.3.0","_npmUser":{"name":"romainlanz","email":"lanz.romain@gmail.com"},"dist":{"integrity":"sha512-/C3chxZRqonxjQwj70WOyqtw0JGjBr6rjvkcrGlDedUXi5YoiJiTVHwD4ry6tHJKwOi3PtxpWO9RZwSKElVWzw==","shasum":"7d89c43a90ef8599b29d5f7aadd9e82b6904e8ce","tarball":"https://registry.npmjs.org/@slynova/flydrive/-/flydrive-0.3.1.tgz","fileCount":19,"unpackedSize":244879,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa+9ZNCRA9TVsSAnZWagAAU1YP/0/5OR6KwW5jxsQT+Xny\n83ENgMoBgbyrafBHrx4+wL8YiNhUxIHRK6bmtiHM3xIe+1anqboXsFdJN8qb\npZfjMc6Ef87+Iez6er6XKBcFmKP6nNHvxckpXRaEKhL9BHbtLnZqF58JiNrC\nwwjLoRj1LU14RSf1zQnB/5fcgtpxq5Fj1WlFyJn2ryyTHypYjSjnm5uONtc1\nNrw3yWaCvDVUn6YHAGXtto4Z9bOgBNC108cZKXpn+trXsitsDNSYO8ZX6hXK\nxf1trtimb3hsvXQ2DycmzEK7y4yXVkVrv1fdICW01sIDhyhJwl7S5YSdQsLx\nYdGR2/H+5k/dXE+d6D63S9v+rt7QeZDhiPgpOp9eiu8gai9g6T8wDQ9DHNSs\nKEfBQQtG/sELjd4/Kl2h8tnNNEGqZiH14A6EJLzPav1vrGDLOvgctXs1USKe\nKFhy9cf49LJIytUXiuZ7eE/mN1CESHo3IFoqGlAnJexEzoDDQheD6iYhU33o\n/mHnrxtZTfDA7JZgZoFSP4Uxnh6tPSBkekdEtPgHofU54XeHyI8/ofIAaxlV\nPvM1O6u+riGATYik14hZiM0BCUK2gg4APlKfD/Tt5gOcIrpfO3NlXDz9XOm+\nQDEOHc8KKvH6CXPy/+f1+nXRxwpTzoY3kNbXhx5iMv4on4TfzaY54bpShBx4\nZSqn\r\n=s3Pk\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCvbGzRWYksCFgPsI9aHTPWMLBwAc34eumcauT/NIuw8QIhAOzFvfZLhqP9DXrT6YnDnpla/mTK6A1p6Jd+Z3qgWfVM"}]},"maintainers":[{"name":"romainlanz","email":"lanz.romain@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flydrive_0.3.1_1526453836554_0.6211931804593582"},"_hasShrinkwrap":false},"1.0.0-0":{"name":"@slynova/flydrive","version":"1.0.0-0","description":"Flexible and Fluent way to manage storage in Node.js.","main":"./build/index.js","license":"MIT","keywords":["storage","filesystem","file","aws","s3","promise","async","spaces","google","cloud"],"author":{"name":"Romain Lanz","email":"romain.lanz@slynova.ch"},"contributors":[{"name":"Harminder Virk","email":"virk@adonisjs.com"},{"name":"Michaël Zasso","email":"targos@pm.me"}],"scripts":{"build":"npm run clean && npm run tsc","clean":"rimraf build","lint":"eslint --ext js,ts src test japaFile.js","prepublishOnly":"npm run build","test":"npm run test:local && npm run test:docker","test:local":"node japaFile","test:docker":"./docker-test.sh","tsc":"tsc"},"dependencies":{"create-output-stream":"^0.0.1","fs-extra":"^8.1.0","node-exceptions":"^4.0.1"},"devDependencies":{"@google-cloud/storage":"^3.2.0","@types/fs-extra":"^8.0.0","@types/node":"10.0.0","@typescript-eslint/eslint-plugin":"^2.0.0","@typescript-eslint/parser":"^2.0.0","aws-sdk":"^2.516.0","dotenv":"^8.1.0","eslint":"^6.2.1","eslint-config-prettier":"^6.1.0","japa":"^2.0.10","np":"^5.0.3","prettier":"1.18.2","rimraf":"^3.0.0","ts-node":"^8.3.0","typescript":"^3.5.3","uuid":"^3.3.3"},"repository":{"type":"git","url":"git@github.com:Slynova-Org/flydrive.git"},"bugs":{"url":"https://github.com/Slynova-Org/flydrive/issues"},"eslintConfig":{"extends":["plugin:@typescript-eslint/recommended","prettier","prettier/@typescript-eslint"],"parser":"@typescript-eslint/parser","plugins":["@typescript-eslint"]},"prettier":{"arrowParens":"always","quoteProps":"consistent","semi":true,"useTabs":true,"singleQuote":true,"trailingComma":"es5","printWidth":120},"readmeFilename":"README.md","readme":"<p align=\"center\">\n  <img src=\"https://user-images.githubusercontent.com/2793951/54391096-418f4500-46a4-11e9-8d0c-b00ff7ba4198.png\" alt=\"flydrive\">\n</p>\n\n<p align=\"center\">\n  <a href=\"https://www.npmjs.com/package/@slynova/flydrive\"><img src=\"https://img.shields.io/npm/dm/@slynova/flydrive.svg?style=flat-square\" alt=\"Download\"></a>\n  <a href=\"https://www.npmjs.com/package/@slynova/flydrive\"><img src=\"https://img.shields.io/npm/v/@slynova/flydrive.svg?style=flat-square\" alt=\"Version\"></a>\n  <a href=\"https://opensource.org/licenses/MIT\"><img src=\"https://img.shields.io/npm/l/@slynova/flydrive.svg?style=flat-square\" alt=\"License\"></a>\n</p>\n\n`flydrive` is a framework-agnostic package which provides a powerful wrapper to manage Storage in [Node.js](https://nodejs.org).\n\nThere are currently 4 drivers available:\n\n- Local\n- Amazon S3 (You need to install `aws-sdk` package to be able to use this driver)\n- Digital Ocean Spaces (You need to install `aws-sdk` package to be able to use this driver)\n- Google Cloud Storage (You need to install `@google-cloud/storage` package to be able to use this driver)\n\n---\n\n## Getting Started\n\nThis package is available in the npm registry.\nIt can easily be installed with `npm` or `yarn`.\n\n```bash\n$ npm i @slynova/flydrive\n# or\n$ yarn add @slynova/flydrive\n```\n\nWhen you require the package in your file, it will give you access to the `StorageManager` class.\nThis class is a facade for the package and should be instantiated with a [configuration object](https://github.com/Slynova-Org/flydrive/blob/master/tests/stubs/config.ts).\n\n```javascript\nconst { StorageManager } = require('@slynova/flydrive');\nconst storage = new StorageManager(config);\n```\n\nOnce you instantiated the manager, you can use the `StorageManager#disk()` method to retrieve a disk an use it.\n\n```javascript\nstorage.disk(); // Returns the default disk (specified in the config)\nstorage.disk('awsCloud'); // Returns the driver for the disk \"s3\"\nstorage.disk('awsCloud', customConfig); // Overwrite the default configuration of the disk\n```\n\n## Driver's API\n\nEach driver extends the abstract class [`Storage`](https://github.com/Slynova-Org/flydrive/blob/master/src/Storage.ts). This class will throw an exception for each methods by default. The driver needs to overwrite the methods it supports.\n\nThe following method doesn't exists on the `LocalFileSystem` driver, therefore, it will throw an exception.\n\n```javascript\n// throws \"E_METHOD_NOT_SUPPORTED: Method getSignedUrl is not supported for the driver LocalFileSystem\"\nstorage.disk('local').getSignedUrl();\n```\n\nSince we are using TypeScript, you can make use of casting to get the real interface:\n\n```typescript\nimport { LocalFileSystem } from '@slynova/flydrive';\n\nstorage.disk<LocalFileSystem>('local');\n```\n\n### Response interface\n\nAsynchronous methods will always return a Promise which resolves with a `Response`\nobject. The response object may contain relevant data in its properties (for\nexample, the `ExistsResponse` object for the `exists` method contains a boolean\n`exists` property).\n\nAll responses additionally have a `raw` property which is driver-specific and\ncontains the result from the original call made by the driver.\n\n### Exceptions\n\nIn case of runtime errors, `flydrive` will try to throw driver-agnostic exceptions.  \nExceptions also have a `raw` property which contains the original error.\n\n### Methods\n\n<details>\n<summary markdown=\"span\"><code>append(location: string, content: Buffer | Stream | string, options: object): Promise&lt;Response&gt;</code></summary>\n\nThis method will append the content to the file at the location.\nIf the file doesn't exist yet, it will be created.\n\n```javascript\n// Supported drivers: \"local\"\n\nawait storage.disk('local').append('foo.txt', 'bar');\n// foo.txt now has the content `${initialContent}bar`\n```\n\n</details>\n\n<details>\n<summary markdown=\"span\"><code>bucket(name: string): Storage</code></summary>\n\nThis method can be used to swap the bucket at runtime.\nIt returns a new Storage instance.\n\n```javascript\n// Supported drivers: \"s3\", \"gcs\"\n\nstorage.disk('cloud').bucket('anotherOne');\n// The following chained action will use the \"anotherOne\" bucket instead of the original one\n```\n\n</details>\n\n<details>\n<summary markdown=\"span\"><code>copy(src: string, dest: string, options: object): Promise&lt;Response&gt;</code></summary>\n\nThis method will copy a file to another location.\n\n```javascript\n// Supported drivers: \"local\", \"s3\", \"gcs\"\n\nawait storage.disk('local').copy('foo.txt', 'bar.txt');\n// foo.txt was copied to bar.txt\n```\n\n</details>\n\n<details>\n<summary markdown=\"span\"><code>delete(location: string): Promise&lt;Response&gt;</code></summary>\n\nThis method will delete the file at the given location.\n\n```javascript\n// Supported drivers: \"local\", \"s3\", \"gcs\"\n\nawait storage.disk('local').delete('foo.txt');\n// foo.txt has been deleted\n```\n\n</details>\n\n<details>\n<summary markdown=\"span\"><code>driver()</code></summary>\n\nThis method returns the driver used if you need to do anything specific not supported by default.\n\n```javascript\nstorage.disk('local').driver(); // Returns \"fs-extra\"\nstorage.disk('awsCloud').driver(); // Returns \"aws-sdk\"\nstorage.disk('googleCloud').driver(); // Returns \"@google-cloud/storage\"\n// ....\n```\n\n</details>\n\n<details>\n<summary markdown=\"span\"><code>exists(location: string): Promise&lt;ExistsResponse&gt;</code></summary>\n\nThis method will determine if a file exists at the given location.\n\n```javascript\n// Supported drivers: \"local\", \"s3\", \"gcs\"\n\nconst { exists } = await storage.disk('local').exists('foo.txt');\n// exists is true or false\n```\n\n</details>\n\n<details>\n<summary markdown=\"span\"><code>get(location: string, encoding: string = 'utf-8'): Promise&lt;ContentResponse&lt;string&gt;&gt;</code></summary>\n\nThis methods will return the file's content as a string for the given location.\n\n```javascript\n// Supported drivers: \"local\", \"s3\", \"gcs\"\n\nconst { content } = await storage.disk('local').exists('foo.txt');\n```\n\n</details>\n\n<details>\n<summary markdown=\"span\"><code>getBuffer(location: string): Promise&lt;ContentResponse&lt;Buffer&gt;&gt;</code></summary>\n\nThis methods will return the file's content as a Buffer for the given location.\n\n```javascript\n// Supported drivers: \"local\", \"s3\", \"gcs\"\n\nconst { content } = await storage.disk('local').exists('foo.txt');\n```\n\n</details>\n\n<details>\n<summary markdown=\"span\"><code>getSignedUrl(location: string, options: SignedUrlOptions = { expiry: 900 }): Promise&lt;SignedUrlResponse&gt;</code></summary>\n\nThis methods will return the signed url for an existing file.\n\n```javascript\n// Supported drivers: \"s3\", \"gcs\"\n\nconst { signedUrl } = await storage.disk('awsCloud').getSignedUrl('foo.txt');\n```\n\n</details>\n\n<details>\n<summary markdown=\"span\"><code>getStat(location: string): Promise&lt;StatResponse&gt;</code></summary>\n\nThis methods will return the file's size (in bytes) and last modification date.\n\n```javascript\n// Supported drivers: \"local\", \"s3\", \"gcs\"\n\nconst { size, modified } = await storage.disk('local').getStat('foo.txt');\n```\n\n</details>\n\n<details>\n<summary markdown=\"span\"><code>getStream(location: string, options: object | string): Stream</code></summary>\n\nThis methods will return a Node.js readable stream for the given file.\n\n```javascript\n// Supported drivers: \"local\", \"s3\", \"gcs\"\n\nconst stream = storage.disk('local').getStream('foo.txt');\n```\n\n</details>\n\n<details>\n<summary markdown=\"span\"><code>getUrl(location: string): string</code></summary>\n\nThis methods will return a public URL for a given file.\n\n```javascript\n// Supported drivers: \"s3\", \"gcs\"\n\nconst uri = storage.disk('awsCloud').getUrl('foo.txt');\n```\n\n</details>\n\n<details>\n<summary markdown=\"span\"><code>move(src: string, dest: string): Promise&lt;Response&gt;</code></summary>\n\nThis methods will move the file to a new location.\n\n```javascript\n// Supported drivers: \"local\", \"s3\", \"gcs\"\n\nawait storage.disk('local').move('foo.txt', 'newFolder/foo.txt');\n```\n\n</details>\n\n<details>\n<summary markdown=\"span\"><code>put(location: string, content: Buffer | Stream | string, options: object): Promise&lt;Response&gt;</code></summary>\n\nThis methods will create a new file with the provided content.\n\n```javascript\n// Supported drivers: \"local\", \"s3\", \"gcs\"\n\nawait storage.disk('local').put('bar.txt', 'Foobar');\n```\n\n</details>\n\n<details>\n<summary markdown=\"span\"><code>prepend(location: string, content: Buffer | string, options: object): Promise&lt;Response&gt;</code></summary>\n\nThis methods will preprend content to a file.\n\n```javascript\n// Supported drivers: \"local\"\n\nawait storage.disk('local').prepend('foo.txt', 'bar');\n// foo.txt now has the content `bar${initialContent}`\n```\n\n</details>\n\n## Contribution Guidelines\n\nAny pull requests or discussions are welcome.\nNote that every pull request providing new feature or correcting a bug should be created with appropriate unit tests.\n","_id":"@slynova/flydrive@1.0.0-0","dist":{"shasum":"035d1b7c3a2ab426b32facae97798f512d46e614","integrity":"sha512-tuQjWyUZ4srHCui5rgZz912KEWeTitHpiwLQKITzOW1/wIeW27CECf56y8Qi/XObDtymvzxacqgK3VAPkh2OKw==","tarball":"https://registry.npmjs.org/@slynova/flydrive/-/flydrive-1.0.0-0.tgz","fileCount":45,"unpackedSize":58537,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdYFQXCRA9TVsSAnZWagAAq1cP/0hW2Pk8+uKKK6kavoMI\nIwz1TRIBJsSfeEhlXpNbqbDVKiL70RuqwBgSawFO63dm1gPLTvRbaeTsh5rM\nkRi9Em1HCYMWrseCbn6d3P+HdCFt//1O/Guoj5U7bnoMFB1xz5x38zBgwO0Z\n5osHFSzbiBtIYqmA4JM0H8rIvR7Sxoa5uGQR2G1bmLinf224JHT09wNSJyoW\n0tcKJMEaUzMMAHsKAwteKRXc1rWJ/j6j15Bl9tR+QwWPSOBFCKJj43KIbDcb\nTYRkvpu8gm9sQUMKlhelXGr/6tPuOv9ALlsvEdafTuV5p1b/d5vIjHtypoqY\n+3nCH34CEBMbwSOwAeXYI6XQOGqmsFWU33OsI1TNatvkO0ZmObcp/10y36Ny\n7QVTYJywXXCcx1by8KT/2UyQHu/A9BMcy29OjVnqj9ygMJFR7j9yBHcA7uEo\nDWn3MBhh7GcSVCpw4btBVAROCN3mMI4QiTMS+kDSIyuI0X4ET/y9L+U1IWPL\nLcZaSDkmqJs4L524mfnu6xoQaS/VuE00JwYjwhYHrD6msFrZTF8EZ+9uNjjW\nLyFnbRZm7wVFoZxHoQz+9n7swbdDrvzrA+D9wkirc8CWXdpgFkRzp2g1lwj4\nTGpxpc2/HFbiiH7esPrb+mc4X8ICPAAS2qddpVx9MhuowHNsLICHEqLx7uAm\nmnDQ\r\n=m59+\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIG+NjtGIuhpHqflRQ9vj0WOzXCvjfAVj8fjEbvVzCor9AiEA1o0o7NcEPIbzgbiwKJv3E6ICefOfxEByuDnQpsYtX+g="}]},"maintainers":[{"name":"romainlanz","email":"lanz.romain@gmail.com"}],"_npmUser":{"name":"romainlanz","email":"lanz.romain@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flydrive_1.0.0-0_1566594071002_0.5544360611187915"},"_hasShrinkwrap":false},"1.0.1-alpha.0":{"name":"@slynova/flydrive","version":"1.0.1-alpha.0","description":"Flexible and Fluent way to manage storage in Node.js.","homepage":"https://github.com/Slynova-Org/flydrive#readme","license":"MIT","main":"build/index.js","types":"build/index.d.ts","keywords":["storage","filesystem","file","aws","s3","promise","async","spaces","google","cloud"],"author":{"name":"Romain Lanz","email":"romain.lanz@slynova.ch"},"contributors":[{"name":"Harminder Virk","email":"virk@adonisjs.com"},{"name":"Michaël Zasso","email":"targos@pm.me"}],"scripts":{"prepare":"tsc -b tsconfig.json"},"dependencies":{"fs-extra":"^9.0.0","node-exceptions":"^4.0.1"},"devDependencies":{"@types/fs-extra":"^9.0.1"},"publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/Slynova-Org/flydrive.git"},"bugs":{"url":"https://github.com/Slynova-Org/flydrive/issues"},"gitHead":"e2c7f5d6a6861ab65945c762c1bfd62ed2b7999e","readme":"# `@slynova/flydrive`\n\n> TODO: description\n\n## Usage\n\n```\nconst flydrive = require('@slynova/flydrive');\n\n// TODO: DEMONSTRATE API\n```\n","readmeFilename":"README.md","_id":"@slynova/flydrive@1.0.1-alpha.0","_nodeVersion":"13.13.0","_npmVersion":"lerna/3.21.0/node@v13.13.0+x64 (win32)","dist":{"integrity":"sha512-gxm8ivrExXMXak8ywYK4DAxSnv/z2WpQXCOExyES2PB0FJDyOp6VUmpkHpsoopanI/vH6lLTGvyGxJUTvmywAw==","shasum":"935ffd6edf32f23365df01d07291a935d11f3018","tarball":"https://registry.npmjs.org/@slynova/flydrive/-/flydrive-1.0.1-alpha.0.tgz","fileCount":66,"unpackedSize":60892,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe10tUCRA9TVsSAnZWagAAOhQQAKSEJgjbKatGnoO+JLiS\nliAc2PWT5TKw2Y7gsXI/b4NBOHpl17+EDJo3OJGGuzVi7LyTm6eZDbG3Vd7n\nGem3webXTzIvBRaNpS9P9VgsCRMmZXbIelX7NdfknQK+4zGIXiduHS70d8tq\ngrzAiro9vNGWZCvbB8K0niHwEVDwd0jJwWvaXawcp1fkoV4SckLeUF7uJ//f\nA2FRKpTegGS/Iua531TvVqO6viLzVeyGkc9vj1xQ95WqV5eqksGj0mzezElZ\nF52/UxyFDKvYyPrXbgMla5JnSsum/JrHvdACpbUfYqoGARtYnBMueJEGuHdP\nKvPh18urAGQDMXQ0OoPmIerh5o6hDSVcaNjbPPDR8JJ/xBnQvE49HEwloLqY\nDDwVbGmSTfU4fX/w+6yXWrfAvQDhYJ6p6ejlcUFyTwmiTElAdVDxSvyUqmBA\nfic/Gar3csLoIjVgaDs+VxHgB/1ZToxFHhlqyUzxyfcHBqQstotNoLRbLvoP\nXvXaw5qMoqiF1XsrB8WsWCPwJDEDnZFjogTQ++6IilOfDp0dUkKUyfRFNVC/\niLNReOtsStuwarLuBPMo+2CzqXhKK7VbBStgq+B1tmoZ9jRmJSkxzHrKrGkN\nof+L+Pu5Kwz7mJ0eSPqLFQoVk2h+FavOuxOFDwcDW69Wy8A7AmvTM2h62YCf\nr41+\r\n=VZ3D\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDk+0U29pRLLqOKRpLRomEfTuwI+eVy/gU0Tid0Gwb+ZAIhAOplwTpVUujO22ON/hobf7vurmC6E+7taSKxlbD2u35K"}]},"maintainers":[{"name":"romainlanz","email":"lanz.romain@gmail.com"}],"_npmUser":{"name":"romainlanz","email":"romain.lanz+npm@pm.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flydrive_1.0.1-alpha.0_1591167828333_0.7021668129541365"},"_hasShrinkwrap":false},"1.0.1":{"name":"@slynova/flydrive","version":"1.0.1","description":"Flexible and Fluent way to manage storage in Node.js.","homepage":"https://github.com/Slynova-Org/flydrive#readme","license":"MIT","main":"build/index.js","types":"build/index.d.ts","keywords":["storage","filesystem","file","aws","s3","promise","async","spaces","google","cloud"],"author":{"name":"Romain Lanz","email":"romain.lanz@slynova.ch"},"contributors":[{"name":"Harminder Virk","email":"virk@adonisjs.com"},{"name":"Michaël Zasso","email":"targos@pm.me"}],"scripts":{"prepare":"tsc -b tsconfig.json"},"dependencies":{"fs-extra":"^9.0.0","node-exceptions":"^4.0.1"},"devDependencies":{"@types/fs-extra":"^9.0.1"},"publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/Slynova-Org/flydrive.git"},"bugs":{"url":"https://github.com/Slynova-Org/flydrive/issues"},"gitHead":"8e04e00b1e8433713acfbaac1beb8fbb37ddf9e5","_id":"@slynova/flydrive@1.0.1","_nodeVersion":"14.3.0","_npmVersion":"lerna/3.21.0/node@v14.3.0+x64 (darwin)","dist":{"integrity":"sha512-+//qP4qkJl0ssTOVfSlosWZQ09MXsIgg3RjWs5Jma8wOaR0XW61vGJ4fkVk4XDRVajGCA8FkcQHw9D1wJGtARA==","shasum":"1546f5c086f10d9277e878651f880fd7c29d3701","tarball":"https://registry.npmjs.org/@slynova/flydrive/-/flydrive-1.0.1.tgz","fileCount":67,"unpackedSize":70291,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe6g58CRA9TVsSAnZWagAAeYEP/0I0VcExY1jH8A7MjSGd\nF3XUSF/MMa03vXIIU+FzPOb6CDeHAAbKUoUKsZWTEIACYG32wFdih23gOP+w\nzR5FVfXUUKYi2T+6yX5AnQG7yWB+gpfX4TFHCS9K3v8/pZeWpWLW/7RCHBBv\n+hEqB4r69+FQXfsAGTlAzKevWjSimB6Y3hEm1MI83RMHJEodDOpEonFE4Eqc\nzo7md9mxBx9fMRyDfAA8B3nmrxDXnKWRrNi2HuCIu8pzNR6UO/U3bAvpUdZs\nxMxc3YMt1JVDOypQWKsJC+8CHjFDd/v2fX0bsbZ67Hln6gct3X+L9wcsgOqU\nB8eamkn5I8BCWtUzkcN8BfVd+agHYs4yURMqasfOuGfPy3UgiUbdxd+gt578\nryQTI4joHsn7zoIaOdgzzC5IXo5uYmg6k9DRUMtyGb0utQWnFUckqQH6JH0c\nKsf44djEdNvLJucmid2Ftnf50b6l75jrGbz+Yv4EqscPbtxmLbOeDNaeBbn1\nbKpL+OmTD5cT0oncBkzaFv2ISPb23F0Oo7Wi7MPFfhBdN9V8FEarg7IA88Ua\nXpeGivkXubb8UdhC/zcnaDIpx3DGl/966/I6OujpEgbDuwXIYhvq0FFiFNf9\nJWK8paSJS8lw5GNGI0tiX9Cs8q7yVTst8k+axyz1I3aKVECJQPN8AJPjr/cv\n+bDJ\r\n=2CMu\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCqD5DZBNXqHG3PYoOC+Pz0+HizSXvO60Nuhy3cO9aT1QIhAKcJoX7Vgk6WHSnCRLGx67eh4ZcOzPDiDbuxPTM8IemV"}]},"maintainers":[{"name":"romainlanz","email":"lanz.romain@gmail.com"}],"_npmUser":{"name":"romainlanz","email":"romain.lanz+npm@pm.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flydrive_1.0.1_1592397436543_0.41922906391599013"},"_hasShrinkwrap":false},"1.0.2":{"name":"@slynova/flydrive","version":"1.0.2","description":"Flexible and Fluent way to manage storage in Node.js.","homepage":"https://github.com/Slynova-Org/flydrive#readme","license":"MIT","main":"build/index.js","types":"build/index.d.ts","keywords":["storage","filesystem","file","aws","s3","promise","async","spaces","google","cloud"],"author":{"name":"Romain Lanz","email":"romain.lanz@slynova.ch"},"contributors":[{"name":"Harminder Virk","email":"virk@adonisjs.com"},{"name":"Michaël Zasso","email":"targos@pm.me"}],"scripts":{"prepare":"tsc -b tsconfig.json"},"dependencies":{"fs-extra":"^9.0.0","node-exceptions":"^4.0.1"},"devDependencies":{"@types/fs-extra":"^9.0.1"},"publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/Slynova-Org/flydrive.git"},"bugs":{"url":"https://github.com/Slynova-Org/flydrive/issues"},"gitHead":"2e7b129e7214b22936d7e51853c1a9b47e32517a","_id":"@slynova/flydrive@1.0.2","_nodeVersion":"14.3.0","_npmVersion":"lerna/3.21.0/node@v14.3.0+x64 (darwin)","dist":{"integrity":"sha512-bQ2H6L9f8vYOw3mPZH/GHP7s1vvWfYtk3qVbm15coodo077oE+4wb2M143Kai+jH31sAPxYWHI3J2O7f0b1jng==","shasum":"d50664a3edd6249dec3ebe488bb3f37737426b1f","tarball":"https://registry.npmjs.org/@slynova/flydrive/-/flydrive-1.0.2.tgz","fileCount":68,"unpackedSize":72320,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfBCNQCRA9TVsSAnZWagAAtuYP/j14S7iqmUQno6VRP7nx\nRiy9jVSWNXJNJPrMVwJWpHRvS8jcLDZsc7sLCUvygdNw8UYKBX+CxMtLlyHz\nWtppdHVAobCkEDUg4UL3CiWo8EsQci53Ng69IAQiQ3Q3/Tk0WuJ7h9A3ONSF\nCxIZ0wloya4cWt2QtGFOiKLITsmtddtkCSkvEgTea2+iYtUU0AKvym3qtRa9\n0OlnQdlkPacSPTtosj7K2G52Ct0d3YV4W5YS558zsiYZXaVi/CAaB+ixW8hu\nskgpU35MiQyUWdCWkRYnwJxTYhjIEg9KWmBH01MpUynw5W9EN/v77WmbPDpL\nPQFJSUQTSK4ubGTVXIioyhBOesYSISp0/V3c+ezMTFeu4qWPrSJphOcq2PPK\nDFTQky+8upW84BwSnQa5fvLyD7w5zzVtAnpgdP001iOCINAOuHNGDqJDV27j\nMPctwZGOWWgYHDUrtvfNh7Z5PhETwlf4uBoLFYB4SllrOu3DlJiM99QaHJxc\nN8a29qI6CxrxUo/Yn2SUz3BipL4A2S4PELlU6EBFmkEojxoSEc1Ij2pYgFyn\nDwpCig/lfiaNBbr5Df0psJVZ3Tj6ddFRafI0qD4lwywu/rMfqKPRV/OlXfV2\n+zftPxlmZCutRE46Fg5qEThFMhSC+w7lZKn7EIU59kpvxVuKcF2YfzaVuewh\nQZR0\r\n=6qA4\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDGUg0oBdE9OuROVEQn7lv5zcZIIg1KlIo7MBDCSgGy7gIhAOp0aUDTrDT5McTuUhK7PmdEgGZ1EM1GkBj1nXq6okdG"}]},"maintainers":[{"name":"romainlanz","email":"lanz.romain@gmail.com"}],"_npmUser":{"name":"romainlanz","email":"romain.lanz+npm@pm.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flydrive_1.0.2_1594106704543_0.979772494158933"},"_hasShrinkwrap":false},"1.0.3":{"name":"@slynova/flydrive","version":"1.0.3","description":"Flexible and Fluent way to manage storage in Node.js.","homepage":"https://github.com/Slynova-Org/flydrive#readme","license":"MIT","main":"build/index.js","types":"build/index.d.ts","keywords":["storage","filesystem","file","aws","s3","promise","async","spaces","google","cloud"],"author":{"name":"Romain Lanz","email":"romain.lanz@slynova.ch"},"contributors":[{"name":"Harminder Virk","email":"virk@adonisjs.com"},{"name":"Michaël Zasso","email":"targos@pm.me"}],"scripts":{"prepare":"tsc -b tsconfig.json"},"dependencies":{"fs-extra":"^9.0.0","node-exceptions":"^4.0.1"},"devDependencies":{"@types/fs-extra":"^9.0.1"},"publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/Slynova-Org/flydrive.git"},"bugs":{"url":"https://github.com/Slynova-Org/flydrive/issues"},"gitHead":"6ecc4acdd864ddf05ca0321743299a92b40442bd","_id":"@slynova/flydrive@1.0.3","_nodeVersion":"14.8.0","_npmVersion":"lerna/3.21.0/node@v14.8.0+x64 (darwin)","dist":{"integrity":"sha512-XJ8tfijqfXUuFPwrceCgXr/GqwkO49u4fBYsXZV7lBt9/9HqbdEG2E//R3pOIp2L35zqxrOe3Vk/getnYibjAA==","shasum":"1ca4be055c759abd3f55b2a46f279baa1e6ce2b2","tarball":"https://registry.npmjs.org/@slynova/flydrive/-/flydrive-1.0.3.tgz","fileCount":68,"unpackedSize":72504,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfUfI5CRA9TVsSAnZWagAAatEP+wZAuTRy2S0nSmYjHgTz\nr4Kfyale9vs/AkgdVF9KlgJcxvJjsLPA82kpYMFw2l655bgyBTDrT7YKGzhg\n9GgY7EaLRCZRB0k5yvTZDAIMEQej2RL/BbM/tK1viNRs3ThL4r3G3xOIeqAR\nlaHFNtrBBJm2RW2/0W5VvrAN7fcVfB1Ugq/4c/t8rhE32wPiNEBcG2a96y6X\nBU0eAiFcVnSvxLLeRCbXISmd6JunZLxZGtgks9r+7RIlTHvkWQEzt99/Isso\nxBv7J1wt70zbUAGuKT+CcqQFRBYgF5k10Sy9Kih0GkTV8PnUiWCd09A80Uy+\n1Zekn46kWKStZyvpwy+Ea8JLfc/qQfnkyE3oHgpMV4Lxi/XjpTvGkpMqr71z\nDEwhIQLuJLPyeGS6i+UhiVTsjpmPxWPtdILasasfmlPHet6OuuW9S5Pa841t\n2LJ+iQJMduIY+iTBpwkrY4QVeE8kZko/qku9s8HmXLy8bXtLCnGq7jOryI+0\nKWm8F9ggqfTGbgGDRPQmZxFHJH0gCFVQGPQNQb4D5f4EC+ZZf3SGZWf251F0\ntgRkmjOxJAIBRF301JfJx2wzIJAyRXWLQssg0iFTN5EoRacdF6L8eqP7rAit\nTK43X0gU8305A+vIzV+6S/sQrDWlZuw93T88vW8UIysCdaw6b7/SCwN6eIrZ\npOvB\r\n=vZmh\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGicQ7pcpdxX8YXrLEankb1VBWyaMZ3XzcWKyiFRpRfmAiEAoV+SLE/kgQy2gsIO6bcjdmvBb1XzfwIAKiNvQcALokk="}]},"maintainers":[{"name":"romainlanz","email":"lanz.romain@gmail.com"}],"_npmUser":{"name":"romainlanz","email":"romain.lanz+npm@pm.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flydrive_1.0.3_1599205945004_0.7281827356963773"},"_hasShrinkwrap":false}},"readme":"<p align=\"center\">\n  <img src=\"https://user-images.githubusercontent.com/2793951/54391096-418f4500-46a4-11e9-8d0c-b00ff7ba4198.png\" alt=\"flydrive\">\n</p>\n\n<p align=\"center\">\n  <a href=\"https://www.npmjs.com/package/@slynova/flydrive\"><img src=\"https://img.shields.io/npm/dm/@slynova/flydrive.svg?style=flat-square\" alt=\"Download\"></a>\n  <a href=\"https://www.npmjs.com/package/@slynova/flydrive\"><img src=\"https://img.shields.io/npm/v/@slynova/flydrive.svg?style=flat-square\" alt=\"Version\"></a>\n  <a href=\"https://opensource.org/licenses/MIT\"><img src=\"https://img.shields.io/npm/l/@slynova/flydrive.svg?style=flat-square\" alt=\"License\"></a>\n</p>\n\n`flydrive` is a framework-agnostic package which provides a powerful wrapper to manage file Storage in [Node.js](https://nodejs.org).\n\nThere are currently 3 drivers available:\n\n- `'local'`: Stores files on the local file system.\n- `'s3'`: Amazon S3 and other compatible services\n  - You need to install the `@slynova/flydrive-s3` package to be able to use this driver.\n  - This driver is compatible with DigitalOcean Spaces and Scaleway Object Storage.\n- `'gcs'`: Google Cloud Storage\n  - You need to install the `@slynova/flydrive-gcs` package to be able to use this driver.\n\n---\n\n## Getting Started\n\nThis package is available in the npm registry.\nIt can easily be installed with `npm` or `yarn`.\n\n```bash\n$ npm i @slynova/flydrive\n# or\n$ yarn add @slynova/flydrive\n```\n\nWhen you require the package in your file, it will give you access to the `StorageManager` class.\nThis class is a facade for the package and should be instantiated with a [configuration object](https://github.com/Slynova-Org/flydrive/blob/master/test/stubs/config.ts).\n\n```javascript\nconst { StorageManager } = require('@slynova/flydrive');\nconst storage = new StorageManager(...);\n```\n\nOnce you instantiated the manager, you can use the `StorageManager#disk()` method to retrieve a disk an use it.\n\n```javascript\nstorage.disk(); // Returns the default disk (specified in the config)\nstorage.disk('awsCloud'); // Returns the driver for the disk \"s3\"\nstorage.disk('awsCloud', customConfig); // Overwrite the default configuration of the disk\n```\n\n## Registering External Driver\n\nAfter installing any external driver, like `@slynova/flydrive-gcs`, you need to register it inside our manager to be able to use it.\n\nThe following is done by using the method `storage.registerDriver(name: string, Driver)`.\n\n```ts\nconst { GoogleCloudStorage } = require('@slynova/flydrive-gcs');\nconst { StorageManager } = require('@slynova/flydrive');\nconst storage = new StorageManager(...);\n\nstorage.registerDriver('gcs', GoogleCloudStorage);\n```\n\n## Driver's API\n\nEach driver extends the abstract class [`Storage`](https://github.com/Slynova-Org/flydrive/blob/master/src/Storage.ts). This class will throw an exception for each methods by default. The driver needs to overwrite the methods it supports.\n\nThe following method doesn't exist on the `LocalFileSystemStorage` driver, therefore, it will throw an exception.\n\n```javascript\n// throws \"E_METHOD_NOT_SUPPORTED: Method getSignedUrl is not supported for the driver LocalFileSystemStorage\"\nstorage.disk('local').getSignedUrl();\n```\n\nSince we are using TypeScript, you can make use of casting to get the real interface:\n\n```typescript\nimport { LocalFileSystemStorage } from '@slynova/flydrive';\n\nstorage.disk<LocalFileSystemStorage>('local');\n```\n\n### Response interface\n\nAsynchronous methods will always return a Promise which resolves with a `Response`\nobject. The response object may contain relevant data in its properties (for\nexample, the `ExistsResponse` object for the `exists` method contains a boolean\n`exists` property).\n\nAll responses additionally have a `raw` property which is driver-specific and\ncontains the result from the original call made by the driver.\n\n### Exceptions\n\nIn case of runtime errors, `flydrive` will try to throw driver-agnostic exceptions.\nExceptions also have a `raw` property which contains the original error.\n\n### Methods\n\n<details>\n<summary markdown=\"span\"><code>append(location: string, content: Buffer | Stream | string, options: object): Promise&lt;Response&gt;</code></summary>\n\nThis method will append the content to the file at the location.\nIf the file doesn't exist yet, it will be created.\n\n```javascript\n// Supported drivers: \"local\"\n\nawait storage.disk('local').append('foo.txt', 'bar');\n// foo.txt now has the content `${initialContent}bar`\n```\n\n</details>\n\n<details>\n<summary markdown=\"span\"><code>copy(src: string, dest: string, options: object): Promise&lt;Response&gt;</code></summary>\n\nThis method will copy a file to another location.\n\n```javascript\n// Supported drivers: \"local\", \"s3\", \"gcs\"\n\nawait storage.disk('local').copy('foo.txt', 'bar.txt');\n// foo.txt was copied to bar.txt\n```\n\n</details>\n\n<details>\n<summary markdown=\"span\"><code>delete(location: string): Promise&lt;DeleteResponse&gt;</code></summary>\n\nThis method will delete the file at the given location.\n\n```javascript\n// Supported drivers: \"local\", \"s3\", \"gcs\"\n\nconst { wasDeleted } = await storage.disk('local').delete('foo.txt');\n// If a file named foo.txt has been deleted, wasDeleted is true.\n```\n\nThe value returned by this method will have a `wasDeleted` property that\ncan be either a boolean (`true` if a file was deleted, `false` if there was\nno file to delete) or `null` (if no information about the file is available).\n\n</details>\n\n<details>\n<summary markdown=\"span\"><code>driver()</code></summary>\n\nThis method returns the driver used if you need to do anything specific not supported by default.\n\n```javascript\nstorage.disk('local').driver(); // Returns the \"fs-extra\" module.\nstorage.disk('awsCloud').driver(); // Returns an instance of the AWS S3 client.\nstorage.disk('googleCloud').driver(); // Returns an instance of the the Google Cloud Storage client.\n// ....\n```\n\n</details>\n\n<details>\n<summary markdown=\"span\"><code>exists(location: string): Promise&lt;ExistsResponse&gt;</code></summary>\n\nThis method will determine if a file exists at the given location.\n\n```javascript\n// Supported drivers: \"local\", \"s3\", \"gcs\"\n\nconst { exists } = await storage.disk('local').exists('foo.txt');\n// exists is true or false\n```\n\n</details>\n\n<details>\n<summary markdown=\"span\"><code>get(location: string, encoding: string = 'utf-8'): Promise&lt;ContentResponse&lt;string&gt;&gt;</code></summary>\n\nThis method will return the file's content as a string for the given location.\n\n```javascript\n// Supported drivers: \"local\", \"s3\", \"gcs\"\n\nconst { content } = await storage.disk('local').get('foo.txt');\n```\n\n</details>\n\n<details>\n<summary markdown=\"span\"><code>getBuffer(location: string): Promise&lt;ContentResponse&lt;Buffer&gt;&gt;</code></summary>\n\nThis method will return the file's content as a Buffer for the given location.\n\n```javascript\n// Supported drivers: \"local\", \"s3\", \"gcs\"\n\nconst { content } = await storage.disk('local').exists('foo.txt');\n```\n\n</details>\n\n<details>\n<summary markdown=\"span\"><code>getSignedUrl(location: string, options: SignedUrlOptions = { expiry: 900 }): Promise&lt;SignedUrlResponse&gt;</code></summary>\n\nThis method will return the signed url for an existing file.\n\n```javascript\n// Supported drivers: \"s3\", \"gcs\"\n\nconst { signedUrl } = await storage.disk('awsCloud').getSignedUrl('foo.txt');\n```\n\n</details>\n\n<details>\n<summary markdown=\"span\"><code>getStat(location: string): Promise&lt;StatResponse&gt;</code></summary>\n\nThis method will return the file's size (in bytes) and last modification date.\n\n```javascript\n// Supported drivers: \"local\", \"s3\", \"gcs\"\n\nconst { size, modified } = await storage.disk('local').getStat('foo.txt');\n```\n\n</details>\n\n<details>\n<summary markdown=\"span\"><code>getStream(location: string, options: object | string): Stream</code></summary>\n\nThis method will return a Node.js readable stream for the given file.\n\n```javascript\n// Supported drivers: \"local\", \"s3\", \"gcs\"\n\nconst stream = storage.disk('local').getStream('foo.txt');\n```\n\n</details>\n\n<details>\n<summary markdown=\"span\"><code>getUrl(location: string): string</code></summary>\n\nThis method will return a public URL for a given file.\n\n```javascript\n// Supported drivers: \"s3\", \"gcs\"\n\nconst uri = storage.disk('awsCloud').getUrl('foo.txt');\n```\n\n</details>\n\n<details>\n<summary markdown=\"span\"><code>move(src: string, dest: string): Promise&lt;Response&gt;</code></summary>\n\nThis method will move the file to a new location.\n\n```javascript\n// Supported drivers: \"local\", \"s3\", \"gcs\"\n\nawait storage.disk('local').move('foo.txt', 'newFolder/foo.txt');\n```\n\n</details>\n\n<details>\n<summary markdown=\"span\"><code>put(location: string, content: Buffer | Stream | string, options: object): Promise&lt;Response&gt;</code></summary>\n\nThis method will create a new file with the provided content.\n\n```javascript\n// Supported drivers: \"local\", \"s3\", \"gcs\"\n\nawait storage.disk('local').put('bar.txt', 'Foobar');\n```\n\n</details>\n\n<details>\n<summary markdown=\"span\"><code>prepend(location: string, content: Buffer | string, options: object): Promise&lt;Response&gt;</code></summary>\n\nThis method will prepend content to a file.\n\n```javascript\n// Supported drivers: \"local\"\n\nawait storage.disk('local').prepend('foo.txt', 'bar');\n// foo.txt now has the content `bar${initialContent}`\n```\n\n</details>\n\n<details>\n<summary markdown=\"span\"><code>flatList(prefix?: string): AsyncIterable&lt;FileListResponse&gt;</code></summary>\n\nThis method will return an async iterator over all file names that start with `prefix` (recursive).\n\n```javascript\n// Supported drivers: \"local\", \"s3\", \"gcs\"\n\nconst disk = storage.disk('local');\nfor await (const filename of disk.flatList('a/b')) {\n  console.log(filename);\n}\n```\n\n</details>\n\n## Contribution Guidelines\n\nAny pull requests or discussions are welcome.\nNote that every pull request providing new feature or correcting a bug should be created with appropriate unit tests.\n","maintainers":[{"name":"romainlanz","email":"lanz.romain@gmail.com"}],"time":{"modified":"2022-04-07T00:25:01.498Z","created":"2017-08-11T21:26:24.592Z","0.0.0-alpha":"2017-08-11T21:26:24.592Z","0.1.0":"2017-08-30T06:11:41.760Z","0.1.1":"2017-09-11T13:38:52.821Z","0.1.2":"2017-09-11T13:42:26.785Z","0.1.3":"2017-09-11T13:46:46.635Z","0.1.4":"2017-09-12T10:06:33.469Z","0.1.5":"2017-10-06T07:25:43.980Z","0.1.6":"2018-02-03T10:27:33.077Z","0.2.0":"2018-03-19T23:15:12.476Z","0.3.0":"2018-04-16T09:39:47.376Z","0.3.1":"2018-05-16T06:57:16.649Z","1.0.0-0":"2019-08-23T21:01:11.211Z","1.0.1-alpha.0":"2020-06-03T07:03:48.467Z","1.0.1":"2020-06-17T12:37:16.671Z","1.0.2":"2020-07-07T07:25:04.704Z","1.0.3":"2020-09-04T07:52:25.124Z"},"homepage":"https://github.com/Slynova-Org/flydrive#readme","keywords":["storage","filesystem","file","aws","s3","promise","async","spaces","google","cloud"],"repository":{"type":"git","url":"git+https://github.com/Slynova-Org/flydrive.git"},"contributors":[{"name":"Harminder Virk","email":"virk@adonisjs.com"},{"name":"Michaël Zasso","email":"targos@pm.me"}],"author":{"name":"Romain Lanz","email":"romain.lanz@slynova.ch"},"bugs":{"url":"https://github.com/Slynova-Org/flydrive/issues"},"license":"MIT","readmeFilename":"README.md"}