code: function syncCollection(options) {
    var requestData = template.syncCollection({
      props: options.props,
      syncLevel: options.syncLevel,
      syncToken: options.syncToken
    });
  
    function transformRequest(xhr) {
      setRequestHeaders(xhr, options);
    }
  
    function transformResponse(xhr) {
      var object = (0, _parser.multistatus)(xhr.responseText);
      var responses = object.response.map(function (res) {
        return { href: res.href, props: getProps(res.propstat) };
      });
  
      return { responses: responses, syncToken: object.syncToken };
    }
  
    return new Request({
      method: 'REPORT',
      requestData: requestData,
      transformRequest: transformRequest,
      transformResponse: transformResponse
    });
  }
docs: Options:
  
  (String) depth - option value for Depth header.
  (Array.<Object>) props - list of props to request.
  (Number) syncLevel - indicates scope of the sync report request.
  (String) syncToken - synchronization token provided by the server.