code: async function execute(command) {
      return new Promise((onSuccess, onError) => {
          console.log(`> ${command}`);
          child_process_1.exec(command, (error, stdout, stderr) => {
              stdout.trim().length && console.log('  ' + stdout.replace(/\n/g, '\n  '));
              stderr.trim().length && console.error('! ' + stderr.replace(/\n/g, '\n  '));
              if (error) {
                  onError(stderr);
              }
              else {
                  onSuccess(stdout);
              }
          });
      });
  }
docs: Use cases
  
  If no version is published, pick the version from the package.json and publish that version
  
  If a version is published and the minor and major matches the package.json, publish a patch
  
  If the packaje.json version minor and major differs from the published version, pick the latest published patch for the version of the package.json and increment the patch number