define([],function(){"use strict";functionperformSync(connectionManager,apiClient,options){varserverId=apiClient.serverId();console.log("ServerSync.performSync to server: "+serverId),options=options||{};varuploadPhotos=options.uploadPhotos!==!1;options.cameraUploadServers&&options.cameraUploadServers.indexOf(serverId)===-1&&(uploadPhotos=!1);varpr=Promise.resolve();returnpr.then(function(){returnuploadPhotos?uploadContent(connectionManager,apiClient,options):Promise.resolve()}).then(function(){returnsyncMedia(connectionManager,apiClient,options)})}functionuploadContent(connectionManager,apiClient,options){returnnewPromise(function(resolve,reject){require(["contentuploader"],function(ContentUploader){varuploader=newContentUploader;uploader.uploadImages(connectionManager,apiClient).then(resolve,reject)})})}functionsyncMedia(connectionManager,apiClient,options){returnnewPromise(function(resolve,reject){require(["mediasync"],function(MediaSync){(newMediaSync).sync(apiClient,options).then(resolve,reject)})})}functionServerSync(){}returnServerSync.prototype.sync=function(connectionManager,apiClient,options){varserverId=apiClient.serverId();returnapiClient.accessToken()?performSync(connectionManager,apiClient,options):(console.log("Skipping sync to server "+serverId+" because there is no saved authentication information."),Promise.resolve())},ServerSync});