@activfinancial/cg-api-json
Version:
Implementations of some cg-api interfaces using JSON data.
383 lines (374 loc) • 15.2 kB
TypeScript
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';
}