A Javascript ActiveSync library
If you'd like to test out ActiveSync, the easiest way is to start using the
files in the examples/ directory. This requires you to be able to perform
cross-origin XHRs on sites that don't explicitly let you do that.
In Firefox, you can host this repo on a local server (e.g. webfsd) and then
allow your local domain to perform system XHRs by running this code in the
error console (replace the value of host with wherever your server is
located):
host = 'http://localhost:8000';
perm = Components.classes["@mozilla.org/permissionmanager;1"]
.createInstance(Components.interfaces.nsIPermissionManager);
ios = Components.classes["@mozilla.org/network/io-service;1"]
.getService(Components.interfaces.nsIIOService);
uri = ios.newURI(host, null, null);
perm.add(uri, 'systemXHR', 1);
'Successfully added systemXHR permissions for '+host;
You'll then need to add a file named credentials.js to the root directory of
jsas with variables named email and password, containing your account info.
ActiveSync uses sync keys to keep track of what state the client is in. They are very important! FolderSync uses a global sync key, while Sync uses a separate sync key for each folder. When syncing, be sure to use the same FilterType for all sync operations in that folder; otherwise, the server will invalidate your sync key and force you to perform a full resync.