import { WebApiContext, WebApiConfiguration } from './core/core' import { Environment } from './core/core' import { Oauth2Config } from './core/web-api-configuration'; import { OauthProvider } from './core/oauth-provider'; import { AccessTokenProvider } from './core/access-token-provider'; /** * Allows configuration of CoreSDK * @export * @class CoreSDKConfigurator */ export class CoreSDKConfigurator { /** * Set the WebAPI key. * @param {string} webApiKey * @returns {CoreSDKConfigurator} * * @memberOf CoreSDKConfigurator */ useWebApiKey(webApiKey: string): CoreSDKConfigurator { config.webApiKey = webApiKey; return this; } /** * Specifies the private key for CSCoreSDK request signing. * @param {string} signingKey * @returns {CoreSDKConfigurator} * * @memberOf CoreSDKConfigurator */ useRequestSigning(signingKey: string): CoreSDKConfigurator { config.signingKey = signingKey; return this; } /** * Set other then the default language cs-CZ. * @param {string} language a language to be set * @returns {CoreSDKConfigurator} reference for configuration chaining * * @memberOf CoreSDKConfigurator */ useLanguage(language: string): CoreSDKConfigurator { config.language = language; return this; } /** * Sets the environment which the SDK should use. * * @param {Environment} environment environment to use * @returns {CoreSDKConfigurator} reference for configuration chaining * * @memberOf CoreSDKConfigurator */ useEnvironment(environment: Environment): CoreSDKConfigurator { config.environment = environment; return this; } /** * Sets the config for oAuth 2 * * @param {Oauth2Config} oauth2 Oauth2Config to use * @returns {CoreSDKConfigurator} reference for configuration chaining * * @memberOf CoreSDKConfigurator */ useOauth2(oauth2: Oauth2Config): CoreSDKConfigurator { config.oauth2 = oauth2; var accessTokenProvider = new AccessTokenProvider(config); sharedContext.accessTokenProvider = accessTokenProvider sharedContext.oauthProvider = new OauthProvider(accessTokenProvider, config); return this; } } /** * Shared WebApiConfiguration */ export var config: WebApiConfiguration = new WebApiConfiguration(); var configurator: CoreSDKConfigurator = new CoreSDKConfigurator(); /** * Internal structure to share information between different SDKs */ export var sharedContext: WebApiContext = new WebApiContext(); /** * Set the WebAPI key. * @param {string} webApiKey * @returns {CoreSDKConfigurator} */ export var useWebApiKey = function (webApiKey: string): CoreSDKConfigurator { configurator.useWebApiKey(webApiKey); return configurator; } /** * Specifies the private key for CSCoreSDK request signing. * @param {string} signingKey The private key to sign reguests. * @returns {CoreSDKConfigurator} reference for configuration chaining. */ export var useRequestSigning = function (signingKey: string): CoreSDKConfigurator { configurator.useRequestSigning(signingKey) return configurator; } /** * Set other then the default language cs-CZ. * @param {string} language a language to be set. * @returns {CoreSDKConfigurator} reference for configuration chaining. */ export var useLanguage = function (language: string): CoreSDKConfigurator { configurator.useLanguage(language); return configurator; } /** * Sets the environment which the SDK should use. * @param {Environment} environment environment to use * @returns {CoreSDKConfigurator} reference for configuration chaining. */ export var useEnvironment = function (environment: Environment): CoreSDKConfigurator { configurator.useEnvironment(environment); return configurator; } /** * Sets the config for oAuth 2 * @param {Oauth2Config} oauth2 Oauth2Config to use * @returns {CoreSDKConfigurator} reference for configuration chaining. */ export var useOauth2 = function (oauth2: Oauth2Config): CoreSDKConfigurator { configurator.useOauth2(oauth2); return configurator; } export * from './core/core' export * from './web-api/web-api' export * from './test-utils/judge' export * from './test-utils/test-utils'; export * from './signing/signing';