Tools for deploying/retrieving package files using Salesforce Metadata API via JSforce.
Provides command line interface (CLI) to easily deploy/retrieve packages.
$ npm install jsforce-metadata-tools -g $ jsforce-deploy -u username@example.org -p ${SF_PASSWORD} -D ./path/to/packageDir $ jsforce-deploy -u username@example.org -p ${SF_PASSWORD} -Z ./path/to/package.zip (Assuming that ./path/to/packageDir directory has a package.xml file inside)
$ jsforce-retrieve -u username@example.org -p ${SF_PASSWORD} -D ./path/to/packageDir $ jsforce-retrieve -u username@example.org -p ${SF_PASSWORD} --memberTypes "ApexClass:Class1,Class2;ApexPage:*" -D ./path/to/distDir $ jsforce-retrieve -u username@example.org -p ${SF_PASSWORD} --packageNames "Package1,Package2" -D "./path/to/distDir1,./path/to/distDir2" $ jsforce-retrieve -u username@example.org -p ${SF_PASSWORD} -P ./path/to/package.xml -D ./path/to/distDir $ jsforce-retrieve -u username@example.org -p ${SF_PASSWORD} --packageName Package1 -Z ./path/to/package.zip Once the authorization is done in JSforce REPL, the same connection is also valid here (no password required)
$ jsforce > .authorize ... (OAuth authorization flow) ... Received authorization code. Please close the opened browser window. Authorized. Fetching user info... Logged in as : username@example.org > .exit $ jsforce-deploy -c username@example.org -D ./path/to/packageDir