code: function(onProgress) {
          const errorHandler = function(err) {
              if(err instanceof Error) {
                  return Promise.reject(err);
              } else {
                  return Promise.resolve();
              }
          };
  
          // TRICKY: the language catalogs are dependent so we must run them in order
          return updateCatalog('langnames', onProgress)
              .catch(errorHandler)
              .then(function(response) {
                  return updateCatalog('temp-langnames', onProgress);
              })
              .catch(errorHandler)
              .then(function(response) {
                  return updateCatalog('approved-temp-langnames', onProgress);
              })
              .catch(errorHandler)
              .then(function(response) {
                  return updateCatalog('new-language-questions', onProgress)
              })
              .catch(errorHandler)
              .then(function() {
                  return Promise.resolve();
              });
      }
docs: Updates all of the global catalogs
  @param onProgress
  @returns {Promise.<>}