Source: API.js

'use strict';

/**
 * The _API_ module is the entry point of the library.<br />
 * It exports a single {@link Object} that is exposed as, either:
 * * A global `jmap` variable when jmap-client included in a web page through a `script` tag
 * * A NodeJS module when jmap-client is `require`'d in a NodeJS application
 *
 * When extending the library with new models, utility classes, etc. don't forget to update this module
 * so that your new code gets exposed in the public API.<br />
 * <br />
 * The exported object has the following properties:
 *
 * @property Client {Client} The {@link Client} class
 * @property Utils {Utils} The {@link Utils} class
 * @property JSONBuilder {JSONBuilder} The {@link JSONBuilder} class helping to serialize model to json
 * @property PromiseProvider {PromiseProvider} The {@link PromiseProvider} class
 * @property ES6PromiseProvider { ES6PromiseProvider} The {@link  ES6PromiseProvider} class
 * @property QPromiseProvider { QPromiseProvider} The {@link  QPromiseProvider} class
 * @property Transport { Transport} The {@link  Transport} class
 * @property JQueryTransport { JQueryTransport} The {@link  JQueryTransport} class
 * @property RequestTransport { RequestTransport} The {@link  RequestTransport} class
 * @property Model { Model} The {@link  Model} class
 * @property Account { Account} The {@link  Account} class
 * @property EMailer { EMailer} The {@link  EMailer} class
 * @property Mailbox { Mailbox} The {@link  Mailbox} class
 * @property MessageList { MessageList} The {@link  MessageList} class
 * @property Message { Message} The {@link  Message} class
 * @property OutboundMessage {OutboundMessage} The {@link OutboundMessage} class
 * @property CreateMessageAck {CreateMessageAck} The {@link CreateMessageAck} class
 * @property Thread { Thread} The {@link  Thread} class
 * @property MailboxRole {MailboxRole} The {@link MailboxRole} class
 * @property SetResponse {SetResponse} The {@link SetResponse} class
 * @property AuthAccess {AuthAccess} The {@link AuthAccess} class
 * @property AuthContinuation {AuthContinuation} The {@link AuthContinuation} class
 * @property Constants {Constants} The {@link module:Constants|Constants} object
 * @property Attachment {Attachment} The {@link Attachment} class
 * @property Capabilities {Capabilities} The {@link Capabilities} class
 * @property MailCapabilities {MailCapabilities} The {@link MailCapabilities} class
 * @property ServerCapabilities {ServerCapabilities} The {@link ServerCapabilities} class
 * @property VacationResponse {VacationResponse} The {@link VacationResponse} class
 * @property TransportError {TransportError} The {@link TransportError} class
 * @property JmapError {JmapError} The {@link JmapError} class
 *
 * @module API
 */
export default {
  Client: require('./client/Client'),
  Utils: require('./utils/Utils'),
  JSONBuilder: require('./utils/JSONBuilder'),
  PromiseProvider: require('./promises/PromiseProvider'),
  ES6PromiseProvider: require('./promises/ES6PromiseProvider'),
  QPromiseProvider: require('./promises/QPromiseProvider'),
  Transport: require('./transport/Transport'),
  JQueryTransport: require('./transport/JQueryTransport'),
  RequestTransport: require('./transport/RequestTransport'),
  Model: require('./models/Model'),
  Account: require('./models/Account'),
  EMailer: require('./models/EMailer'),
  Mailbox: require('./models/Mailbox'),
  MessageList: require('./models/MessageList'),
  Message: require('./models/Message'),
  OutboundMessage: require('./models/OutboundMessage'),
  CreateMessageAck: require('./models/CreateMessageAck'),
  Thread: require('./models/Thread'),
  MailboxRole: require('./models/MailboxRole'),
  SetResponse: require('./models/SetResponse'),
  AuthAccess: require('./models/AuthAccess'),
  AuthContinuation: require('./models/AuthContinuation'),
  AuthMethod: require('./models/AuthMethod'),
  Constants: require('./utils/Constants'),
  Attachment: require('./models/Attachment'),
  Capabilities: require('./models/Capabilities'),
  MailCapabilities: require('./models/MailCapabilities'),
  ServerCapabilities: require('./models/ServerCapabilities'),
  VacationResponse: require('./models/VacationResponse'),
  TransportError: require('./errors/TransportError'),
  JmapError: require('./errors/JmapError')
};