// Common import { DefaultRest } from '../../common/lib/client/defaultrest'; import { DefaultRealtime } from '../../common/lib/client/defaultrealtime'; import Platform from '../../common/platform'; import ErrorInfo from '../../common/lib/types/errorinfo'; import { makeFromDeserializedWithDependencies as makeProtocolMessageFromDeserialized } from '../../common/lib/types/protocolmessage'; // Platform Specific import BufferUtils from './lib/util/bufferutils'; // @ts-ignore import { createCryptoClass } from './lib/util/crypto'; import Http from './lib/util/http'; import Config from './config'; // @ts-ignore import Transports from './lib/transport'; import Logger from '../../common/lib/util/logger'; import { getDefaults } from '../../common/lib/util/defaults'; import PlatformDefaults from './lib/util/defaults'; import msgpack = require('@ably/msgpack-js'); const Crypto = createCryptoClass(BufferUtils); Platform.Crypto = Crypto; Platform.BufferUtils = BufferUtils as typeof Platform.BufferUtils; Platform.Http = Http; Platform.Config = Config; Platform.Transports = Transports; Platform.WebStorage = null; for (const clientClass of [DefaultRest, DefaultRealtime]) { clientClass.Crypto = Crypto; clientClass._MsgPack = msgpack; } Logger.initLogHandlers(); Platform.Defaults = getDefaults(PlatformDefaults); if (Platform.Config.agent) { // @ts-ignore Platform.Defaults.agent += ' ' + Platform.Config.agent; } module.exports = { ErrorInfo, Rest: DefaultRest, Realtime: DefaultRealtime, msgpack: null, makeProtocolMessageFromDeserialized, };