UNPKG

@ringcentral/sdk

Version:

- [Installation](#installation) - [Getting Started](#getting-started) - [API Calls](#api-calls) - [Advanced SDK Configuration & Polyfills](#advanced-sdk-configuration--polyfills) - [Making telephony calls](#making-telephony-calls) - [Call mana

141 lines (140 loc) 4.56 kB
/// <reference types="node" /> import { EventEmitter } from 'events'; import Cache from '../core/Cache'; export interface DiscoveryOptions { cache: Cache; cacheId: string; initialEndpoint: string; fetchGet: (url: string, query?: any, options?: any) => Promise<Response>; clientId: string; brandId?: string; refreshHandicapMs?: number; refreshDelayMs?: number; retryCount?: number; retryInterval?: number; } export interface ExternalDiscoveryAuthApiData { authorizationUri: string; oidcDiscoveryUri: string; baseUri: string; tokenUri: string; } export interface InitialDiscoveryAuthApiData { authorizationUri: string; oidcDiscoveryUri: string; defaultTokenUri: string; } export interface DiscoveryCoreApiData { baseUri: string; } export interface ExternalDiscoveryApiData { externalUri: string; initialUri: string; } export interface InitialDiscoveryApiData { defaultExternalUri: string; } export interface DiscoveryGlipData { discovery: string; entry: string; } export interface DiscoveryRcvData { baseWebUri: string; baseApiUri: string; pubnubOrigin: string; } export interface DiscoveryRcmData { baseWebUri: string; sdkDomain: string; } export interface DiscoveryEdcData { baseUri: string; } export interface InitialDiscoveryData { version: string; retryCount: number; retryInterval: number; discoveryApi: InitialDiscoveryApiData; authApi: InitialDiscoveryAuthApiData; coreApi: DiscoveryCoreApiData; rcm: DiscoveryRcmData; rcv: DiscoveryRcvData; edc?: DiscoveryEdcData; glip?: DiscoveryGlipData; } export interface ExternalDiscoveryData { version: string; tag?: string; expiresIn: number; expireTime: number; retryCount: number; retryInterval: number; retryCycleDelay: number; discoveryApi: ExternalDiscoveryApiData; authApi: ExternalDiscoveryAuthApiData; coreApi: DiscoveryCoreApiData; rcm: DiscoveryRcmData; rcv: DiscoveryRcvData; edc?: DiscoveryEdcData; glip?: DiscoveryGlipData; } export declare enum events { initialized = "initialized", externalDataUpdated = "externalDataUpdated", externalRefreshError = "externalRefreshError", initialFetchError = "initialFetchError" } export declare const DEFAULT_RETRY_COUNT = 3; export declare const DEFAULT_RETRY_Interval = 3; export declare const DEFAULT_RENEW_HANDICAP_MS: number; export default class Discovery extends EventEmitter { events: typeof events; private _cache; private _initialCacheId; private _externalCacheId; private _fetchGet; private _initialEndpoint; private _clientId; private _defaultBrandId?; private _initialPromise?; private _initialFetchPromise?; private _externalFetchPromise?; private _externalRefreshPromise?; private _initialized; private _refreshHandicapMs; private _refreshDelayMs; private _initialRetryCount; private _initialRetryMaxCount; private _initialRetryInterval; private _externalRetryCount; private _externalRetryMaxCount; private _externalRetryInterval; private _externalRetryCycleTimeout?; constructor({ cache, cacheId, fetchGet, clientId, initialEndpoint, refreshHandicapMs, refreshDelayMs, retryCount, retryInterval, brandId, }: DiscoveryOptions); init(): Promise<void>; private _init; fetchInitialData(): Promise<InitialDiscoveryData>; private _fetchInitialData; private _fetchExternalData; fetchExternalData(externalEndpoint: string): Promise<ExternalDiscoveryData>; private _refreshExternalData; refreshExternalData(): Promise<void>; initialData(): Promise<InitialDiscoveryData | null>; externalData(): Promise<ExternalDiscoveryData | null>; private _setInitialData; private _setExternalData; removeExternalData(): Promise<void>; removeInitialData(): Promise<void>; /** * Check if there is expired */ externalDataExpired(): Promise<boolean>; get initialized(): boolean; get refreshingExternalData(): boolean; get externalRetryCycleScheduled(): boolean; cancelExternalRetryCycleTimeout(): void; on(event: events.initialized, listener: (discoveryData: InitialDiscoveryData) => void): any; on(event: events.externalDataUpdated, listener: (discoveryData: ExternalDiscoveryData) => void): any; on(event: events.initialFetchError, listener: (e: Error) => void): any; on(event: events.externalRefreshError, listener: (e: Error) => void): any; }