All Notable changes to clouddrive-node
will be documented in this file
Utils
now contains method for rounding numbersUtils
now contains method for checking if a value exists in an array- New
config
option--config
for passing in a custom config file - Added global option to force or disable ANSI output
- Fixed two memory leaks involving open file streams
- Removed redundant 'node' string in app name after upgrading
env-paths
- Upgrade version of
env-paths
to fix some thrown Exceptions on CentOS
encrypt
anddecrypt
commands now require a source file path- The software was not properly checking if encryption was active before attempting to remove 'encrypted' file
upload
command now supports--labels
- New
update
command lets you update a node's labels and description - Added support for encrypting / decrypting file names and contents on upload/download
- Added
encrypt
anddecrypt
commands for encrypting/decrypting files locally using the same method as uploading/downloading - Now supports concurrent upload/download connections
- Logging: we now not only have better streamlined CLI output with actually working verbosity levels, but these messages are also logged to a file.
- Upload can check and detect existing files based on their paths and a file's size instead of MD5 checks (which can a long time). This is toggled in the config.
- Now using events to trigger events instead of passing in callbacks everywhere (download, upload, overwrite, etc.)
- Now using custom progress bar since others were either broken in some way or no longer maintained
UploadCommand
now supports the--checksum
option in addition to the default config valuedelete-everything
command now used to delete all CLI files and foldersupload
anddownload
now supports encryption
cache
andconfig
directories are now stored using the env-paths package. NOTE: you will need to either manually move your existing files or re-runinit
andsync
with this new version.Account
object now acceptscache
as its second parameter sinceclientId
andclientSecret
are optional.
request
library has been swapped out forgot
colors
has been swapped out forchalk
unlink
command now requires child ID since constructing the path of a node with multiple parents is currently only returning one pathexists
command can now check for individual files, not just directories- Changed
appConfig
tocliConfig
anddefaultConfig
toappConfig
incli.js
(makes more sense)
sync
commandschunkSize
andmaxNodes
options are not configurable via theconfig
commandexists
command recursively checks local directory to check if the files exist remotely without uploading any new fileslink
andunlink
commands can be used to add a node or remove it from a parent (the oldlink
command is nowshare
)- Some functionality is now optionally
remote
(such asgetChildren
andgetTrash
) that can go to the API rather than relying on the local cache
- Default config for the
Config
object has been moved outside of the class file rm
andrestore
commands now have a recursive option to delete all children nodes
- Failed file upload where response body is invalid now uses retry attempts to upload again
- We now "force" reauthentication to Amazon in some cases even if our token hasn't expired
- Updated
yargs
package to version 4
- Now properly building
dist
code fornpm
distribution and including it (added.npmignore
) when publishing
cat
command outputs contents of remote file to STDOUT- Added "searching" spinner when running
find
command - Refactored the entire codebase to use several ES6 features including classes, template strings, arrow function notations, etc
- Failed uploads due to expired tokens now retry
x
number of times (set in the config) - Converted base CLI framework from
commander
toyargs
. sync
function now accepts parameters (i.e.,chunkSize
,maxNodes
)- Incomplete downloads now have file prefix (
.__incomplete
) - Can now specify dimensions when downloading images
- More color information on listings output (red = in trash, yellow = pending)
- Added
config
option to toggle ANSI colors - Added
config
option to toggle display of progress bars Config
is now it's own object and separated from theCommand
class- Added a
force
flag on file upload to overwrite remote node's contents even if the MD5 matches the local file - Added
config
option to bypass MD5 check when downloading files
download
command no longer outputs multiple "failure" messages when it fails to download remote file- Fixed authorization renewal issue where we weren't properly checking of the API key OR secret were both invalid
- Fixed exception when attempting to upload to
root
without any notation (empty path). - Fixed bug where we were not properly reading boolean values from the saved config.
- All
async
operations now properly pass up their errors - A file
Node
will automatically be overwritten on upload if its status isPENDING
- Node version check is now the first thing and with as few dependencies as possible
downloadFile
options now accepts an optional stream to write toinfo
command retrieves and displays account information from Amazon- Added a "catch all" for invalid commands instead of
clouddrive
not outputting anything - Now using ES6 template strings
- Incorrect prototypal inheritance with some objects
authorize
call onAccount
ALWAYS checks to make sure we have ametadataUrl
andcontentUrl
, not just on initial authorization- Fixed output size of year string (and padding) for nodes not created in the current year
init
now outputs the URL for initial authentication for systems without a UI- Added
repository
field inpackage.json
- Removed
promise
npm package dependency (using native promises)
- This app can now be used without needing API credentials! If you attempt to
init
your account without specifying aclient-id
orclient-secret
, the app will request authorization to your account via credentials owned by me (the creator of this repo). NOTE: No personal information is saved - Added various options to pass into
download
function. This provides ability to do things like output progress bars, run code before download, and run code on completion. The CLI now utilizes this for displaying progress bars for each file downloaded/uploaded
- Was not exposing the code as an NPM module properly
- Added
try/catch
support forErrors
in command functions pretty.json
config value actually controls JSON output formatting now
- "Initial" release
- Mistake
npm
publish. Can no longer reference this version number, so0.2.0
is the "initial" release