UNPKG

@activfinancial/cg-api-json

Version:

Implementations of some cg-api interfaces using JSON data.

383 lines (374 loc) 15.2 kB
declare module '@activfinancial/cg-api-json/src/fieldData' { import { FieldId } from '@activfinancial/middleware'; import { IField, IFieldData } from '@activfinancial/cg-api-common'; /** Iterable field data from JSON data. */ export class FieldData implements IFieldData { constructor(json: any); get(fieldId: FieldId): IField; [Symbol.iterator]: () => IterableIterator<IField>; private readonly fields; } /** Convert fields to JSON. */ export function fieldDataToJSON(fieldData: IFieldData): IField[]; } declare module '@activfinancial/cg-api-json/src/messages' { import { MetaData, News, Streaming, SymbolDirectory, TimeSeries } from '@activfinancial/cg-api-common'; /** Message types. */ export enum JsonMessageType { connect = 0, disconnect = 1, onBreak = 2, onError = 3, onServerMessage = 4, onAliasUpdate = 5, onFeedConflationUpdate = 6, onHeartbeat = 7, setSessionConflationParameters = 8, onStreamingImage = 9, onStreamingUpdate = 10, onNewsStory = 11, onNewsUpdate = 12, onTimeSeriesResponse = 13, onContentGatewayInfo = 14, onSymbolDirectoryResponse = 15, delete = 16, isComplete = 17, setRequestConflationParameters = 18, onDynamicConflationUpdate = 19 } /** Message format. */ export interface IJsonMessage<T = any> { messageType: JsonMessageType | keyof MetaData.IMetaDataRequests | keyof News.INewsRequests | keyof Streaming.IStreamingRequests | keyof SymbolDirectory.ISymbolDirectoryRequests | keyof TimeSeries.ITimeSeriesRequests; message: T; } /** Connect/disconnect. */ export interface ISessionMessage { clientUuid: string; } /** Connect response. */ export interface IConnectResponse { serviceUuid: string; } /** Request. */ export interface IRequest { requestId: string; requestParameters: any; timeoutMs: number | undefined; } /** Message used to complete a request. */ export interface IIsComplete { isComplete: boolean; } /** Convert an object to JSON if it has a toJSON method. Otherwise return object as-is. */ export function maybeToJSON(object: any): any; /** Create an AsioError or StatusCodeError if an object looks suitable. */ export function maybeErrorFromJSON(json: any): any; } declare module '@activfinancial/cg-api-json/src/metaDataRequests' { import { IJsonMessage } from '@activfinancial/cg-api-json/src/messages'; import { IterableResponse, MetaData } from '@activfinancial/cg-api-common'; export class ContentGatewayInfoRequestHandle extends IterableResponse<MetaData.IContentGatewayInfo, MetaData.IContentGatewayInfo> implements MetaData.IContentGatewayInfoRequestHandle { protected isEmptyResponse(response: MetaData.IContentGatewayInfo): boolean; protected isRecordAvailable(): boolean; protected makeNextIteratorResult(): IteratorResult<MetaData.IContentGatewayInfo, any>; protected processJsonResponse(jsonMessage: IJsonMessage): void; } /** Convert IContentGatewayInfo to JSON. */ export function contentGatewayInfoToJSON(contentGatewayInfo: MetaData.IContentGatewayInfo): MetaData.IContentGatewayInfo; /** Convert JSON to IExchangeInfo. */ export function exchangeInfoFromJSON(exchangeInfo: any): MetaData.IExchangeInfo; } declare module '@activfinancial/cg-api-json/src/newsRequests' { import { IJsonMessage, IIsComplete } from '@activfinancial/cg-api-json/src/messages'; import { PermissionId } from '@activfinancial/middleware'; import { IterableResponse, News } from '@activfinancial/cg-api-common'; /** Convert IStory to JSON. */ export function storyToJSON(story: News.IStory): { newsSymbol: string; permissionIdList: PermissionId[]; fieldData: import("@activfinancial/cg-api-common").IField[]; }; /** Convert IUpdate to JSON. */ export function updateToJSON(update: News.IUpdate): { updateId: number; isNewRecord: boolean; isDelete: boolean; newsSymbol: string; permissionIdList: PermissionId[]; fieldData: import("@activfinancial/cg-api-common").IField[]; }; export class RequestHandle extends IterableResponse<News.IStory | IIsComplete, News.IStory> { constructor(requestParameters: News.IRequestParameters); protected isEmptyResponse(response: News.IStory): boolean; /** @hidden */ protected isRecordAvailable(): boolean; /** @hidden */ protected makeNextIteratorResult(): IteratorResult<News.IStory, any>; protected processJsonResponse(jsonMessage: IJsonMessage<any>): void; private processStory; private processUpdate; protected readonly requestParameters: any; private readonly updateHandler?; } } declare module '@activfinancial/cg-api-json/src/streamingRequests' { import { IJsonMessage, IIsComplete } from '@activfinancial/cg-api-json/src/messages'; import { EventType, PermissionId, PermissionLevel, RelationshipId, StatusCode } from '@activfinancial/middleware'; import { IterableResponse, Streaming } from '@activfinancial/cg-api-common'; /** Convert IImage to JSON. */ export function imageToJSON(image: Streaming.IImage): { statusCode: StatusCode; isNewRecord: boolean; isDelete: boolean; isAliasKey: boolean; isStale: boolean; streamId: number; permissionId: PermissionId; permissionLevel: PermissionLevel; delayPeriod: number; relationshipId: RelationshipId; requestedKey: Streaming.ISymbolId; resolvedKey: Streaming.ISymbolId; responseKey: Streaming.ISymbolId; fieldData: import("@activfinancial/cg-api-common").IField[]; }; /** Convert IUpdate to JSON. */ export function updateToJSON(update: Streaming.IUpdate): { eventType: EventType; isConflated: boolean; isDeferred: boolean; updateId: number; isNewRecord: boolean; isDelete: boolean; isAliasKey: boolean; isStale: boolean; streamId: number; permissionId: PermissionId; permissionLevel: PermissionLevel; delayPeriod: number; relationshipId: RelationshipId; requestedKey: Streaming.ISymbolId; resolvedKey: Streaming.ISymbolId; responseKey: Streaming.ISymbolId; fieldData: import("@activfinancial/cg-api-common").IField[]; }; export class RequestHandle extends IterableResponse<Streaming.IImage | IIsComplete, Streaming.IImage> { constructor(requestParameters: Streaming.IAllRequestParameters); /** * Set a new update handler for a particular stream. * * @param streamId from a [[Record]] or [[Update]]. * @param updateHandler new function to invoke for future updates. * * @returns Boolean indicating whether the `streamId` was valid. */ setUpdateHandler(streamId: number, updateHandler: Streaming.IUpdateHandler): boolean; protected isEmptyResponse(response: Streaming.IImage): boolean; /** @hidden */ protected isRecordAvailable(): boolean; /** @hidden */ protected makeNextIteratorResult(): IteratorResult<Streaming.IImage, any>; protected processJsonResponse(jsonMessage: IJsonMessage<any>): void; protected processImage(image: any): void; protected processUpdate(update: any): void; private processDynamicConflationUpdate; private readonly updateHandler?; private readonly dynamicConflationHandler?; private streamUpdateHandlers; protected readonly shouldEnableDynamicConflation: boolean; } } declare module '@activfinancial/cg-api-json/src/symbolDirectoryRequests' { import { IJsonMessage, IIsComplete } from '@activfinancial/cg-api-json/src/messages'; import { IterableResponse, SymbolDirectory } from '@activfinancial/cg-api-common'; /** Convert ISymbolResponse to JSON. */ export function symbolResponseToJSON(symbolResponse: SymbolDirectory.ISymbolResponse): SymbolDirectory.ISymbolResponse; export class RequestHandle extends IterableResponse<SymbolDirectory.ISymbolResponse | IIsComplete, SymbolDirectory.ISymbolResponse> { constructor(); protected isEmptyResponse(response: SymbolDirectory.ISymbolResponse): boolean; /** @hidden */ protected isRecordAvailable(): boolean; /** @hidden */ protected makeNextIteratorResult(): IteratorResult<SymbolDirectory.ISymbolResponse, any>; protected processJsonResponse(jsonMessage: IJsonMessage<any>): void; } } declare module '@activfinancial/cg-api-json/src/timeSeriesRequests' { import { IJsonMessage, IIsComplete } from '@activfinancial/cg-api-json/src/messages'; import { Rational } from '@activfinancial/middleware'; import { IterableResponse, Streaming, TimeSeries } from '@activfinancial/cg-api-common'; class FieldSet implements TimeSeries.IFieldSet { constructor(json: any); readonly symbolId: Streaming.ISymbolId; readonly dateTime: Date; } class BarFieldSet extends FieldSet implements TimeSeries.IBarFieldSet { constructor(json: any); readonly open: Rational | null; readonly high: Rational | null; readonly low: Rational | null; readonly close: Rational | null; readonly totalVolume: number | null; readonly totalPrice: Rational | null; readonly totalValue: Rational | null; readonly tickCount: number | null; } export class HistoryBar extends BarFieldSet implements TimeSeries.IHistoryBar { constructor(json: any); readonly openInterest: number | null; } export class IntradayBar extends BarFieldSet implements TimeSeries.IIntradayBar { constructor(json: any); readonly altTotalVolume: number | null; readonly hasRegularTrade: boolean; readonly hasOhlc: boolean; } export class Tick extends FieldSet implements TimeSeries.ITick { constructor(json: any); readonly isLuld: boolean; readonly luldHighPrice: Rational | null; readonly luldLowPrice: Rational | null; readonly isTradingStatus: boolean; readonly tradingStatus: string | null; readonly tradingStatusReason: string | null; readonly tickType: TimeSeries.TickType; readonly updateId: number; readonly price: Rational | null; readonly size: number | null; readonly conditions: Uint8Array | null; readonly exchange: string | null; readonly buyerId: string | null; readonly sellerId: string | null; readonly tradeThroughExemptFlag: string | null; readonly isOutOfSequence: boolean | null; } export type AllFieldSetTypes = HistoryBar | IntradayBar | Tick; /** Convert IHistoryBar to JSON. */ export function historyBarToJSON(historyBar: TimeSeries.IHistoryBar): { openInterest: number | null; open: { numerator: number; denominatorType: import("@activfinancial/middleware").DenominatorType; doubleValue: number; } | null; high: { numerator: number; denominatorType: import("@activfinancial/middleware").DenominatorType; doubleValue: number; } | null; low: { numerator: number; denominatorType: import("@activfinancial/middleware").DenominatorType; doubleValue: number; } | null; close: { numerator: number; denominatorType: import("@activfinancial/middleware").DenominatorType; doubleValue: number; } | null; totalVolume: number | null; totalPrice: { numerator: number; denominatorType: import("@activfinancial/middleware").DenominatorType; doubleValue: number; } | null; totalValue: { numerator: number; denominatorType: import("@activfinancial/middleware").DenominatorType; doubleValue: number; } | null; tickCount: number | null; symbolId: Streaming.ISymbolId; dateTime: Date; }; /** Convert IIntradayBar to JSON. */ export function intradayBarToJSON(intradayBar: TimeSeries.IIntradayBar): { altTotalVolume: number | null; hasRegularTrade: boolean; hasOhlc: boolean; open: { numerator: number; denominatorType: import("@activfinancial/middleware").DenominatorType; doubleValue: number; } | null; high: { numerator: number; denominatorType: import("@activfinancial/middleware").DenominatorType; doubleValue: number; } | null; low: { numerator: number; denominatorType: import("@activfinancial/middleware").DenominatorType; doubleValue: number; } | null; close: { numerator: number; denominatorType: import("@activfinancial/middleware").DenominatorType; doubleValue: number; } | null; totalVolume: number | null; totalPrice: { numerator: number; denominatorType: import("@activfinancial/middleware").DenominatorType; doubleValue: number; } | null; totalValue: { numerator: number; denominatorType: import("@activfinancial/middleware").DenominatorType; doubleValue: number; } | null; tickCount: number | null; symbolId: Streaming.ISymbolId; dateTime: Date; }; /** Convert ITick to JSON. */ export function tickToJSON(tick: TimeSeries.ITick): { tickType: TimeSeries.TickType; updateId: number; price: { numerator: number; denominatorType: import("@activfinancial/middleware").DenominatorType; doubleValue: number; } | null; size: number | null; conditions: Uint8Array | null; exchange: string | null; buyerId: string | null; sellerId: string | null; tradeThroughExemptFlag: string | null; isOutOfSequence: boolean | null; isLuld: boolean; luldHighPrice: Rational | null; luldLowPrice: Rational | null; isTradingStatus: boolean; tradingStatus: string | null; tradingStatusReason: string | null; symbolId: Streaming.ISymbolId; dateTime: Date; }; type Constructor<T> = new (...args: any[]) => T; export class RequestHandle<T extends AllFieldSetTypes> extends IterableResponse<T | IIsComplete, T> { private readonly fieldSetConstructor; constructor(fieldSetConstructor: Constructor<T>); protected isEmptyResponse(response: T): boolean; /** @hidden */ protected isRecordAvailable(): boolean; /** @hidden */ protected makeNextIteratorResult(): IteratorResult<T, any>; protected processJsonResponse(jsonMessage: IJsonMessage): void; } export {}; } declare module '@activfinancial/cg-api-json/src/index' { export * from '@activfinancial/cg-api-json/src/messages'; import * as MetaData from '@activfinancial/cg-api-json/src/metaDataRequests'; export { MetaData }; import * as News from '@activfinancial/cg-api-json/src/newsRequests'; export { News }; import * as Streaming from '@activfinancial/cg-api-json/src/streamingRequests'; export { Streaming }; import * as SymbolDirectory from '@activfinancial/cg-api-json/src/symbolDirectoryRequests'; export { SymbolDirectory }; import * as TimeSeries from '@activfinancial/cg-api-json/src/timeSeriesRequests'; export { TimeSeries }; } declare module '@activfinancial/cg-api-json' { export * from '@activfinancial/cg-api-json/src/index'; }