/** * @file Registry for connection information, cached in local file system * @author Shinichi Tomita */ import { Connection } from '..'; import { Schema } from '../types'; export type ConnectionConfig = { instanceUrl?: string; accessToken?: string; refreshToken?: string; loginUrl?: string; oauth2?: ClientConfig; }; export type PersistConnectionConfig = { client?: string; instanceUrl?: string; accessToken?: string; }; export type ClientConfig = { clientId?: string; clientSecret?: string; redirectUri?: string; loginUrl?: string; }; export type RegistryConfig = { default?: string; clients?: { [name: string]: ClientConfig }; connections?: { [name: string]: PersistConnectionConfig }; }; /** * */ export type Registry = { getConnectionNames(): Promise; getConnection( name?: string, ): Promise | null>; getConnectionConfig(name?: string): Promise; saveConnectionConfig( name: string, connConfig: ConnectionConfig, ): Promise; setDefaultConnection(name: string): Promise; removeConnectionConfig(name: string): Promise; getClientConfig(name: string): Promise; getClientNames(): Promise; registerClientConfig(name: string, clientConfig: ClientConfig): Promise; }