login : function(credentials, chain) { var remote = 'https://setup.icloud.com/setup/ws/1/login'; var data = merge({ 'extended_login': true, }, credentials), self = this; request(merge(url.parse(remote), {headers: HEADERS, json:true}), data, function(err, body, res) { console.log("Hi %s !", body.dsInfo.fullName); var cookies = res.headers['set-cookie'], jar = {}, session_path = 'session.json'; cookies.forEach(function(cookie){ cookie = parse(cookie); jar[cookie.name] = cookie; }); self.session = sort(body, ['dsInfo', 'webservices']); self.session.jar = jar; self.session.session_creation = Date.now(); chain(); }); },
request : function(query, data, chain){ var query = merge(query, { jar : this.session.jar, headers: HEADERS, json : true, }); request(query, data, chain); },