client/index.js

/**
 * @license
 * Copyright (c) 2014-present IRCAM – Centre Pompidou (France, Paris)
 * SPDX-License-Identifier: BSD-3-Clause
 */

// these types must be defined here, so that they can be imported into the application

/**
 * Application configuration object.
 *
 * @typedef ClientAppConfig
 * @type {object}
 * @property {string} [name=''] - Name of the application.
 * @property {string} [author=''] - Name of the author.
 */
/**
 * Environment configuration object.
 *
 * @typedef ClientEnvConfig
 * @type {objecy}
 * @property {number} env.port - Port on which the server is listening.
 * @property {string} env.serverAddress - Domain name or IP of the server.
 *  Mandatory when node clients are declared
 * @property {boolean} env.useHttps - Define is the server run in http or in https.
 * @property {string} [env.baseUrl=''] - If running behind a proxy, base URL of the application.
 */
/**
 * Configuration object for a client running in a browser runtime.
 *
 * @typedef ClientConfig
 * @type {object}
 * @property {string} role - Role of the client in the application (e.g. 'player', 'controller').
 * @property {ClientAppConfig} app - Application configuration object.
 * @property {ClientEnvConfig} env - Environment configuration object.
 */

export { default as Client } from './Client.js';
export { default as ClientPlugin } from './ClientPlugin.js';
export { default as ClientContext } from './ClientContext.js';
export { default as version } from '../common/version.js';