jspurefix 2.0.2 → 2.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/appveyor.yml +1 -0
- package/dist/runtime/session-launcher.js +2 -2
- package/dist/runtime/session-launcher.js.map +1 -1
- package/package.json +7 -7
- package/src/runtime/session-launcher.ts +2 -2
- package/dist/a-session-msg-factory.d.ts +0 -0
- package/dist/a-session-msg-factory.js +0 -1
- package/dist/a-session-msg-factory.js.map +0 -1
- package/dist/ascii-encoder.test.d.ts +0 -0
- package/dist/ascii-encoder.test.js +0 -1
- package/dist/ascii-encoder.test.js.map +0 -1
- package/dist/ascii-parser.test.d.ts +0 -0
- package/dist/ascii-parser.test.js +0 -1
- package/dist/ascii-parser.test.js.map +0 -1
- package/dist/ascii-segment.test.d.ts +0 -0
- package/dist/ascii-segment.test.js +0 -1
- package/dist/ascii-segment.test.js.map +0 -1
- package/dist/ascii-store-replay.test.d.ts +0 -0
- package/dist/ascii-store-replay.test.js +0 -1
- package/dist/ascii-store-replay.test.js.map +0 -1
- package/dist/ascii-tag-pos.test.d.ts +0 -0
- package/dist/ascii-tag-pos.test.js +0 -1
- package/dist/ascii-tag-pos.test.js.map +0 -1
- package/dist/buffer/segment-description.d.ts +0 -26
- package/dist/buffer/segment-description.js +0 -72
- package/dist/buffer/segment-description.js.map +0 -1
- package/dist/buffer/segment-summary.d.ts +0 -13
- package/dist/buffer/segment-summary.js +0 -20
- package/dist/buffer/segment-summary.js.map +0 -1
- package/dist/buffer/segment-type.d.ts +0 -8
- package/dist/buffer/segment-type.js +0 -13
- package/dist/buffer/segment-type.js.map +0 -1
- package/dist/buffer/tag-pos.d.ts +0 -12
- package/dist/buffer/tag-pos.js +0 -55
- package/dist/buffer/tag-pos.js.map +0 -1
- package/dist/buffer/tag-type.d.ts +0 -13
- package/dist/buffer/tag-type.js +0 -18
- package/dist/buffer/tag-type.js.map +0 -1
- package/dist/buffer/tags.d.ts +0 -21
- package/dist/buffer/tags.js +0 -122
- package/dist/buffer/tags.js.map +0 -1
- package/dist/dictionary/parser/fix-repository/repository-msg.d.ts +0 -0
- package/dist/dictionary/parser/fix-repository/repository-msg.js +0 -1
- package/dist/dictionary/parser/fix-repository/repository-msg.js.map +0 -1
- package/dist/execution-report.test.d.ts +0 -0
- package/dist/execution-report.test.js +0 -1
- package/dist/execution-report.test.js.map +0 -1
- package/dist/experiment.d.ts +0 -0
- package/dist/experiment.js +0 -1
- package/dist/experiment.js.map +0 -1
- package/dist/fix-repo-dict.test.d.ts +0 -0
- package/dist/fix-repo-dict.test.js +0 -1
- package/dist/fix-repo-dict.test.js.map +0 -1
- package/dist/fix-session-state-args.d.ts +0 -0
- package/dist/fix-session-state-args.js +0 -1
- package/dist/fix-session-state-args.js.map +0 -1
- package/dist/fix-session-state.d.ts +0 -0
- package/dist/fix-session-state.js +0 -1
- package/dist/fix-session-state.js.map +0 -1
- package/dist/fix-session.d.ts +0 -0
- package/dist/fix-session.js +0 -1
- package/dist/fix-session.js.map +0 -1
- package/dist/fix.txt +0 -1
- package/dist/fixml-alloc-parse.test.d.ts +0 -0
- package/dist/fixml-alloc-parse.test.js +0 -1
- package/dist/fixml-alloc-parse.test.js.map +0 -1
- package/dist/fixml-mkt-data-fut-parse.test.d.ts +0 -0
- package/dist/fixml-mkt-data-fut-parse.test.js +0 -1
- package/dist/fixml-mkt-data-fut-parse.test.js.map +0 -1
- package/dist/fixml-mkt-data-settle-parse.test.d.ts +0 -0
- package/dist/fixml-mkt-data-settle-parse.test.js +0 -1
- package/dist/fixml-mkt-data-settle-parse.test.js.map +0 -1
- package/dist/fixml-tc-bi-lateral-parse.test.d.ts +0 -0
- package/dist/fixml-tc-bi-lateral-parse.test.js +0 -1
- package/dist/fixml-tc-bi-lateral-parse.test.js.map +0 -1
- package/dist/includes.test.d.ts +0 -0
- package/dist/includes.test.js +0 -1
- package/dist/includes.test.js.map +0 -1
- package/dist/launcher.d.ts +0 -0
- package/dist/launcher.js +0 -1
- package/dist/launcher.js.map +0 -1
- package/dist/logon.test.d.ts +0 -0
- package/dist/logon.test.js +0 -1
- package/dist/logon.test.js.map +0 -1
- package/dist/make-fix-session.d.ts +0 -0
- package/dist/make-fix-session.js +0 -1
- package/dist/make-fix-session.js.map +0 -1
- package/dist/memory-store.test.d.ts +0 -0
- package/dist/memory-store.test.js +0 -1
- package/dist/memory-store.test.js.map +0 -1
- package/dist/object.json +0 -691
- package/dist/qf-full-msg.test.d.ts +0 -0
- package/dist/qf-full-msg.test.js +0 -1
- package/dist/qf-full-msg.test.js.map +0 -1
- package/dist/repo-full-ascii-msg.test.d.ts +0 -0
- package/dist/repo-full-ascii-msg.test.js +0 -1
- package/dist/repo-full-ascii-msg.test.js.map +0 -1
- package/dist/runtime/DITokens.d.ts +0 -20
- package/dist/runtime/DITokens.js +0 -25
- package/dist/runtime/DITokens.js.map +0 -1
- package/dist/runtime/app-launcher.d.ts +0 -27
- package/dist/runtime/app-launcher.js +0 -131
- package/dist/runtime/app-launcher.js.map +0 -1
- package/dist/runtime/launcher.d.ts +0 -29
- package/dist/runtime/launcher.js +0 -131
- package/dist/runtime/launcher.js.map +0 -1
- package/dist/sample/launcher.d.ts +0 -29
- package/dist/sample/launcher.js +0 -131
- package/dist/sample/launcher.js.map +0 -1
- package/dist/sample/tcp/trade-capture/app-launher.d.ts +0 -0
- package/dist/sample/tcp/trade-capture/app-launher.js +0 -1
- package/dist/sample/tcp/trade-capture/app-launher.js.map +0 -1
- package/dist/sample/tcp/trade-capture/jsfix.test_client.txt +0 -11
- package/dist/sample/tcp/trade-capture/jsfix.test_server.txt +0 -10
- package/dist/segment-description.d.ts +0 -0
- package/dist/segment-description.js +0 -1
- package/dist/segment-description.js.map +0 -1
- package/dist/segment-summary.d.ts +0 -0
- package/dist/segment-summary.js +0 -1
- package/dist/segment-summary.js.map +0 -1
- package/dist/segment-type.d.ts +0 -0
- package/dist/segment-type.js +0 -1
- package/dist/segment-type.js.map +0 -1
- package/dist/session-description.d.ts +0 -0
- package/dist/session-description.js +0 -1
- package/dist/session-description.js.map +0 -1
- package/dist/session-msg-factory.d.ts +0 -0
- package/dist/session-msg-factory.js +0 -1
- package/dist/session-msg-factory.js.map +0 -1
- package/dist/session-state.d.ts +0 -0
- package/dist/session-state.js +0 -1
- package/dist/session-state.js.map +0 -1
- package/dist/session-state.test.d.ts +0 -0
- package/dist/session-state.test.js +0 -1
- package/dist/session-state.test.js.map +0 -1
- package/dist/session.test.d.ts +0 -0
- package/dist/session.test.js +0 -1
- package/dist/session.test.js.map +0 -1
- package/dist/setup.d.ts +0 -0
- package/dist/setup.js +0 -1
- package/dist/setup.js.map +0 -1
- package/dist/skeleton-runner.d.ts +0 -0
- package/dist/skeleton-runner.js +0 -1
- package/dist/skeleton-runner.js.map +0 -1
- package/dist/structure.json +0 -631
- package/dist/tag-pos.d.ts +0 -0
- package/dist/tag-pos.js +0 -1
- package/dist/tag-pos.js.map +0 -1
- package/dist/tag-type.d.ts +0 -0
- package/dist/tag-type.js +0 -1
- package/dist/tag-type.js.map +0 -1
- package/dist/tags.d.ts +0 -0
- package/dist/tags.js +0 -1
- package/dist/tags.js.map +0 -1
- package/dist/test/ascii-encoder.test.d.ts +0 -1
- package/dist/test/ascii-encoder.test.js +0 -508
- package/dist/test/ascii-encoder.test.js.map +0 -1
- package/dist/test/ascii-parser.test.d.ts +0 -1
- package/dist/test/ascii-parser.test.js +0 -123
- package/dist/test/ascii-parser.test.js.map +0 -1
- package/dist/test/ascii-segment.test.d.ts +0 -1
- package/dist/test/ascii-segment.test.js +0 -86
- package/dist/test/ascii-segment.test.js.map +0 -1
- package/dist/test/ascii-store-replay.test.d.ts +0 -1
- package/dist/test/ascii-store-replay.test.js +0 -92
- package/dist/test/ascii-store-replay.test.js.map +0 -1
- package/dist/test/ascii-tag-pos.test.d.ts +0 -1
- package/dist/test/ascii-tag-pos.test.js +0 -105
- package/dist/test/ascii-tag-pos.test.js.map +0 -1
- package/dist/test/execution-report.test.d.ts +0 -1
- package/dist/test/execution-report.test.js +0 -494
- package/dist/test/execution-report.test.js.map +0 -1
- package/dist/test/experiment.d.ts +0 -23
- package/dist/test/experiment.js +0 -33
- package/dist/test/experiment.js.map +0 -1
- package/dist/test/expieriment.d.ts +0 -23
- package/dist/test/expieriment.js +0 -33
- package/dist/test/expieriment.js.map +0 -1
- package/dist/test/fix-log-replay.test.d.ts +0 -1
- package/dist/test/fix-log-replay.test.js +0 -47
- package/dist/test/fix-log-replay.test.js.map +0 -1
- package/dist/test/fix-repo-dict.test.d.ts +0 -1
- package/dist/test/fix-repo-dict.test.js +0 -128
- package/dist/test/fix-repo-dict.test.js.map +0 -1
- package/dist/test/fixml-alloc-parse.test.d.ts +0 -1
- package/dist/test/fixml-alloc-parse.test.js +0 -161
- package/dist/test/fixml-alloc-parse.test.js.map +0 -1
- package/dist/test/fixml-mkt-data-fut-parse.test.d.ts +0 -1
- package/dist/test/fixml-mkt-data-fut-parse.test.js +0 -61
- package/dist/test/fixml-mkt-data-fut-parse.test.js.map +0 -1
- package/dist/test/fixml-mkt-data-settle-parse.test.d.ts +0 -1
- package/dist/test/fixml-mkt-data-settle-parse.test.js +0 -34
- package/dist/test/fixml-mkt-data-settle-parse.test.js.map +0 -1
- package/dist/test/fixml-tc-bi-lateral-parse.test.d.ts +0 -1
- package/dist/test/fixml-tc-bi-lateral-parse.test.js +0 -97
- package/dist/test/fixml-tc-bi-lateral-parse.test.js.map +0 -1
- package/dist/test/includes.test.d.ts +0 -1
- package/dist/test/includes.test.js +0 -43
- package/dist/test/includes.test.js.map +0 -1
- package/dist/test/logon.test.d.ts +0 -1
- package/dist/test/logon.test.js +0 -93
- package/dist/test/logon.test.js.map +0 -1
- package/dist/test/memory-store.test.d.ts +0 -1
- package/dist/test/memory-store.test.js +0 -78
- package/dist/test/memory-store.test.js.map +0 -1
- package/dist/test/qf-full-msg.test.d.ts +0 -1
- package/dist/test/qf-full-msg.test.js +0 -81
- package/dist/test/qf-full-msg.test.js.map +0 -1
- package/dist/test/repo-full-ascii-msg.test.d.ts +0 -1
- package/dist/test/repo-full-ascii-msg.test.js +0 -87
- package/dist/test/repo-full-ascii-msg.test.js.map +0 -1
- package/dist/test/repo-full-fixml-msg.test.d.ts +0 -1
- package/dist/test/repo-full-fixml-msg.test.js +0 -139
- package/dist/test/repo-full-fixml-msg.test.js.map +0 -1
- package/dist/test/session-state.test.d.ts +0 -1
- package/dist/test/session-state.test.js +0 -73
- package/dist/test/session-state.test.js.map +0 -1
- package/dist/test/session.test.d.ts +0 -1
- package/dist/test/session.test.js +0 -280
- package/dist/test/session.test.js.map +0 -1
- package/dist/test/setup.d.ts +0 -45
- package/dist/test/setup.js +0 -102
- package/dist/test/setup.js.map +0 -1
- package/dist/test/skeleton-runner.d.ts +0 -15
- package/dist/test/skeleton-runner.js +0 -108
- package/dist/test/skeleton-runner.js.map +0 -1
- package/dist/test/time-formatter.test.d.ts +0 -1
- package/dist/test/time-formatter.test.js +0 -80
- package/dist/test/time-formatter.test.js.map +0 -1
- package/dist/test/to-views.d.ts +0 -11
- package/dist/test/to-views.js +0 -56
- package/dist/test/to-views.js.map +0 -1
- package/dist/test/view-decode.test.d.ts +0 -1
- package/dist/test/view-decode.test.js +0 -183
- package/dist/test/view-decode.test.js.map +0 -1
- package/dist/time-formatter.test.d.ts +0 -0
- package/dist/time-formatter.test.js +0 -1
- package/dist/time-formatter.test.js.map +0 -1
- package/dist/to-views.d.ts +0 -0
- package/dist/to-views.js +0 -1
- package/dist/to-views.js.map +0 -1
- package/dist/token.txt +0 -248
- package/dist/transport/FixEntity.d.ts +0 -8
- package/dist/transport/FixEntity.js +0 -12
- package/dist/transport/FixEntity.js.map +0 -1
- package/dist/transport/a-session-msg-factory.d.ts +0 -23
- package/dist/transport/a-session-msg-factory.js +0 -58
- package/dist/transport/a-session-msg-factory.js.map +0 -1
- package/dist/transport/fix-msg-factory.d.ts +0 -15
- package/dist/transport/fix-msg-factory.js +0 -3
- package/dist/transport/fix-msg-factory.js.map +0 -1
- package/dist/transport/fix-session-state-args.d.ts +0 -8
- package/dist/transport/fix-session-state-args.js +0 -3
- package/dist/transport/fix-session-state-args.js.map +0 -1
- package/dist/transport/fix-session-state.d.ts +0 -32
- package/dist/transport/fix-session-state.js +0 -133
- package/dist/transport/fix-session-state.js.map +0 -1
- package/dist/transport/fix-session.d.ts +0 -50
- package/dist/transport/fix-session.js +0 -291
- package/dist/transport/fix-session.js.map +0 -1
- package/dist/transport/make-fix-session.d.ts +0 -5
- package/dist/transport/make-fix-session.js +0 -3
- package/dist/transport/make-fix-session.js.map +0 -1
- package/dist/transport/session-description.d.ts +0 -17
- package/dist/transport/session-description.js +0 -3
- package/dist/transport/session-description.js.map +0 -1
- package/dist/transport/session-msg-factory.d.ts +0 -15
- package/dist/transport/session-msg-factory.js +0 -3
- package/dist/transport/session-msg-factory.js.map +0 -1
- package/dist/transport/session-state.d.ts +0 -25
- package/dist/transport/session-state.js +0 -30
- package/dist/transport/session-state.js.map +0 -1
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
|
-
import { MsgView } from '../buffer';
|
|
3
|
-
import { IJsFixConfig, IJsFixLogger } from '../config';
|
|
4
|
-
import { FixSessionState } from './fix-session-state';
|
|
5
|
-
import { MsgTransport } from './factory';
|
|
6
|
-
import { ILooseObject } from '../collections/collection';
|
|
7
|
-
import * as events from 'events';
|
|
8
|
-
import { SessionState } from './session-state';
|
|
9
|
-
export declare abstract class FixSession extends events.EventEmitter {
|
|
10
|
-
readonly config: IJsFixConfig;
|
|
11
|
-
logReceivedMsgs: boolean;
|
|
12
|
-
protected timer: NodeJS.Timer;
|
|
13
|
-
protected transport: MsgTransport;
|
|
14
|
-
manageSession: boolean;
|
|
15
|
-
checkMsgIntegrity: boolean;
|
|
16
|
-
protected readonly me: string;
|
|
17
|
-
protected readonly initiator: boolean;
|
|
18
|
-
protected readonly acceptor: boolean;
|
|
19
|
-
protected readonly sessionState: FixSessionState;
|
|
20
|
-
protected readonly sessionLogger: IJsFixLogger;
|
|
21
|
-
protected requestLogoutType: string;
|
|
22
|
-
protected respondLogoutType: string;
|
|
23
|
-
protected requestLogonType: string;
|
|
24
|
-
protected constructor(config: IJsFixConfig);
|
|
25
|
-
setState(state: SessionState): void;
|
|
26
|
-
getState(): SessionState;
|
|
27
|
-
sendLogon(): void;
|
|
28
|
-
private waitPromise;
|
|
29
|
-
run(transport: MsgTransport): Promise<number>;
|
|
30
|
-
protected expectedState(): boolean;
|
|
31
|
-
protected subscribe(): void;
|
|
32
|
-
protected validStateApplicationMsg(): boolean;
|
|
33
|
-
protected stateString(): string;
|
|
34
|
-
protected checkForwardMsg(msgType: string, view: MsgView): void;
|
|
35
|
-
protected terminate(error: Error): void;
|
|
36
|
-
protected peerLogout(view: MsgView): void;
|
|
37
|
-
protected send(msgType: string, obj: ILooseObject): void;
|
|
38
|
-
protected sendLogout(msg: string): void;
|
|
39
|
-
protected sessionLogout(): void;
|
|
40
|
-
done(): void;
|
|
41
|
-
reset(): void;
|
|
42
|
-
protected stop(error?: Error): void;
|
|
43
|
-
protected abstract onMsg(msgType: string, view: MsgView): void;
|
|
44
|
-
protected abstract onDecoded(msgType: string, txt: string): void;
|
|
45
|
-
protected abstract onEncoded(msgType: string, txt: string): void;
|
|
46
|
-
protected abstract onApplicationMsg(msgType: string, view: MsgView): void;
|
|
47
|
-
protected abstract onReady(view: MsgView): void;
|
|
48
|
-
protected abstract onStopped(error?: Error): void;
|
|
49
|
-
protected abstract onLogon(view: MsgView, user: string, password: string): boolean;
|
|
50
|
-
}
|
|
@@ -1,291 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.FixSession = void 0;
|
|
4
|
-
const fix_session_state_1 = require("./fix-session-state");
|
|
5
|
-
const types_1 = require("../types");
|
|
6
|
-
const events = require("events");
|
|
7
|
-
const session_state_1 = require("./session-state");
|
|
8
|
-
const segment_type_1 = require("../buffer/segment/segment-type");
|
|
9
|
-
class FixSession extends events.EventEmitter {
|
|
10
|
-
constructor(config) {
|
|
11
|
-
super();
|
|
12
|
-
this.config = config;
|
|
13
|
-
this.logReceivedMsgs = false;
|
|
14
|
-
this.timer = null;
|
|
15
|
-
this.transport = null;
|
|
16
|
-
this.manageSession = true;
|
|
17
|
-
this.checkMsgIntegrity = false;
|
|
18
|
-
const description = config.description;
|
|
19
|
-
this.me = description.application.name;
|
|
20
|
-
this.sessionState = new fix_session_state_1.FixSessionState({ heartBeat: config.description.HeartBtInt,
|
|
21
|
-
lastPeerMsgSeqNum: config.description.LastReceivedSeqNum });
|
|
22
|
-
this.sessionLogger = config.logFactory.logger(`${this.me}:FixSession`);
|
|
23
|
-
this.initiator = description.application.type === 'initiator';
|
|
24
|
-
this.acceptor = !this.initiator;
|
|
25
|
-
this.checkMsgIntegrity = this.acceptor;
|
|
26
|
-
this.sessionState.compId = description.SenderCompId;
|
|
27
|
-
}
|
|
28
|
-
setState(state) {
|
|
29
|
-
if (state === this.sessionState.state)
|
|
30
|
-
return;
|
|
31
|
-
const logger = this.sessionLogger;
|
|
32
|
-
const prevState = this.sessionState.state;
|
|
33
|
-
const msg = `current state ${session_state_1.SessionState[prevState]} (${prevState}) moves to ${session_state_1.SessionState[state]} (${state})`;
|
|
34
|
-
logger.info(msg);
|
|
35
|
-
this.sessionState.state = state;
|
|
36
|
-
}
|
|
37
|
-
getState() {
|
|
38
|
-
return this.sessionState.state;
|
|
39
|
-
}
|
|
40
|
-
sendLogon() {
|
|
41
|
-
this.send(this.requestLogonType, this.config.factory.logon());
|
|
42
|
-
}
|
|
43
|
-
waitPromise() {
|
|
44
|
-
const logger = this.sessionLogger;
|
|
45
|
-
return new Promise((accept, reject) => {
|
|
46
|
-
if (this.initiator) {
|
|
47
|
-
logger.debug(`initiator sending logon state = ${this.stateString()}`);
|
|
48
|
-
this.sendLogon();
|
|
49
|
-
this.setState(session_state_1.SessionState.InitiationLogonSent);
|
|
50
|
-
}
|
|
51
|
-
else {
|
|
52
|
-
logger.debug(`acceptor waits for logon state = ${this.stateString()}`);
|
|
53
|
-
this.setState(session_state_1.SessionState.WaitingForALogon);
|
|
54
|
-
}
|
|
55
|
-
this.on('error', (e) => {
|
|
56
|
-
logger.error(e);
|
|
57
|
-
reject(e);
|
|
58
|
-
});
|
|
59
|
-
this.on('done', () => {
|
|
60
|
-
accept(this.transport.id);
|
|
61
|
-
});
|
|
62
|
-
});
|
|
63
|
-
}
|
|
64
|
-
run(transport) {
|
|
65
|
-
const logger = this.sessionLogger;
|
|
66
|
-
if (this.transport) {
|
|
67
|
-
logger.info(`reset from previous transport. state ${this.stateString()}`);
|
|
68
|
-
this.reset();
|
|
69
|
-
}
|
|
70
|
-
this.transport = transport;
|
|
71
|
-
this.subscribe();
|
|
72
|
-
return this.waitPromise();
|
|
73
|
-
}
|
|
74
|
-
expectedState() {
|
|
75
|
-
switch (this.sessionState.state) {
|
|
76
|
-
case session_state_1.SessionState.ActiveNormalSession:
|
|
77
|
-
case session_state_1.SessionState.ReceiveLogout:
|
|
78
|
-
case session_state_1.SessionState.Stopped:
|
|
79
|
-
case session_state_1.SessionState.ConfirmingLogout:
|
|
80
|
-
case session_state_1.SessionState.HandleResendRequest:
|
|
81
|
-
case session_state_1.SessionState.AwaitingProcessingResponseToTestRequest:
|
|
82
|
-
case session_state_1.SessionState.AwaitingProcessingResponseToResendRequest:
|
|
83
|
-
return true;
|
|
84
|
-
default:
|
|
85
|
-
return false;
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
subscribe() {
|
|
89
|
-
const transport = this.transport;
|
|
90
|
-
const logger = this.sessionLogger;
|
|
91
|
-
const rx = transport.receiver;
|
|
92
|
-
const tx = transport.transmitter;
|
|
93
|
-
rx.on('msg', (msgType, view) => {
|
|
94
|
-
if (this.logReceivedMsgs) {
|
|
95
|
-
const name = view.segment.type !== segment_type_1.SegmentType.Unknown ? view.segment.set.name : 'unknown';
|
|
96
|
-
logger.info(`${msgType}: ${name}`);
|
|
97
|
-
logger.info(`${view.toString()}`);
|
|
98
|
-
}
|
|
99
|
-
this.sessionState.lastReceivedAt = new Date();
|
|
100
|
-
if (this.manageSession) {
|
|
101
|
-
this.onMsg(msgType, view);
|
|
102
|
-
}
|
|
103
|
-
else {
|
|
104
|
-
this.checkForwardMsg(msgType, view);
|
|
105
|
-
}
|
|
106
|
-
});
|
|
107
|
-
rx.on('error', (e) => {
|
|
108
|
-
logger.warning(`rx error event: ${e.message} ${e.stack || ''}`);
|
|
109
|
-
this.terminate(e);
|
|
110
|
-
});
|
|
111
|
-
rx.on('done', () => {
|
|
112
|
-
logger.info('rx done received');
|
|
113
|
-
this.done();
|
|
114
|
-
});
|
|
115
|
-
rx.on('end', () => {
|
|
116
|
-
logger.info(`rx end received sessionState = [${this.sessionState.toString()}]`);
|
|
117
|
-
const expectedState = this.expectedState();
|
|
118
|
-
if (expectedState) {
|
|
119
|
-
logger.info(`rx graceful end state = ${this.stateString()}`);
|
|
120
|
-
this.done();
|
|
121
|
-
}
|
|
122
|
-
else {
|
|
123
|
-
const e = new Error(`unexpected state - transport failed? = ${this.stateString()}`);
|
|
124
|
-
logger.info(`rx error ${e.message}`);
|
|
125
|
-
this.terminate(e);
|
|
126
|
-
}
|
|
127
|
-
});
|
|
128
|
-
rx.on('decoded', (msgType, data, ptr) => {
|
|
129
|
-
logger.debug(`rx: [${msgType}] ${ptr} bytes`);
|
|
130
|
-
this.onDecoded(msgType, data.toString(ptr));
|
|
131
|
-
});
|
|
132
|
-
tx.on('error', (e) => {
|
|
133
|
-
logger.warning(`tx error event: ${e.message} ${e.stack || ''}`);
|
|
134
|
-
this.terminate(e);
|
|
135
|
-
});
|
|
136
|
-
tx.on('encoded', (msgType, data) => {
|
|
137
|
-
logger.debug(`tx: [${msgType}] ${data.length} bytes`);
|
|
138
|
-
this.onEncoded(msgType, data);
|
|
139
|
-
});
|
|
140
|
-
}
|
|
141
|
-
validStateApplicationMsg() {
|
|
142
|
-
switch (this.sessionState.state) {
|
|
143
|
-
case session_state_1.SessionState.Idle:
|
|
144
|
-
case session_state_1.SessionState.InitiateConnection:
|
|
145
|
-
case session_state_1.SessionState.InitiationLogonSent:
|
|
146
|
-
case session_state_1.SessionState.WaitingForALogon:
|
|
147
|
-
case session_state_1.SessionState.HandleResendRequest:
|
|
148
|
-
case session_state_1.SessionState.AwaitingProcessingResponseToTestRequest:
|
|
149
|
-
case session_state_1.SessionState.AwaitingProcessingResponseToResendRequest:
|
|
150
|
-
return false;
|
|
151
|
-
default:
|
|
152
|
-
return true;
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
stateString() {
|
|
156
|
-
return session_state_1.SessionState[this.sessionState.state];
|
|
157
|
-
}
|
|
158
|
-
checkForwardMsg(msgType, view) {
|
|
159
|
-
this.sessionLogger.info(`forwarding msgType = '${msgType}' to application`);
|
|
160
|
-
this.setState(session_state_1.SessionState.ActiveNormalSession);
|
|
161
|
-
this.onApplicationMsg(msgType, view);
|
|
162
|
-
}
|
|
163
|
-
terminate(error) {
|
|
164
|
-
if (this.sessionState.state === session_state_1.SessionState.Stopped)
|
|
165
|
-
return;
|
|
166
|
-
this.sessionLogger.error(error);
|
|
167
|
-
if (this.timer) {
|
|
168
|
-
clearInterval(this.timer);
|
|
169
|
-
}
|
|
170
|
-
if (this.transport) {
|
|
171
|
-
this.transport.end();
|
|
172
|
-
}
|
|
173
|
-
this.transport = null;
|
|
174
|
-
this.setState(session_state_1.SessionState.Stopped);
|
|
175
|
-
this.emit('error', error);
|
|
176
|
-
}
|
|
177
|
-
peerLogout(view) {
|
|
178
|
-
const msg = view.getString(types_1.MsgTag.Text);
|
|
179
|
-
const state = this.sessionState.state;
|
|
180
|
-
switch (state) {
|
|
181
|
-
case session_state_1.SessionState.WaitingLogoutConfirm: {
|
|
182
|
-
this.sessionLogger.info(`peer confirms logout Text = '${msg}'`);
|
|
183
|
-
this.stop();
|
|
184
|
-
break;
|
|
185
|
-
}
|
|
186
|
-
case session_state_1.SessionState.InitiationLogonResponse:
|
|
187
|
-
case session_state_1.SessionState.ActiveNormalSession:
|
|
188
|
-
case session_state_1.SessionState.InitiationLogonReceived: {
|
|
189
|
-
this.setState(session_state_1.SessionState.ConfirmingLogout);
|
|
190
|
-
this.sessionLogger.info(`peer initiates logout Text = '${msg}'`);
|
|
191
|
-
this.sessionLogout();
|
|
192
|
-
}
|
|
193
|
-
}
|
|
194
|
-
}
|
|
195
|
-
send(msgType, obj) {
|
|
196
|
-
const state = this.sessionState.state;
|
|
197
|
-
switch (state) {
|
|
198
|
-
case session_state_1.SessionState.Stopped: {
|
|
199
|
-
this.sessionLogger.warning(`can't send in state ${this.stateString()}`);
|
|
200
|
-
break;
|
|
201
|
-
}
|
|
202
|
-
default: {
|
|
203
|
-
this.sessionState.LastSentAt = new Date();
|
|
204
|
-
this.transport.transmitter.send(msgType, obj);
|
|
205
|
-
break;
|
|
206
|
-
}
|
|
207
|
-
}
|
|
208
|
-
}
|
|
209
|
-
sendLogout(msg) {
|
|
210
|
-
const factory = this.config.factory;
|
|
211
|
-
this.sessionLogger.info(`sending logout with ${msg}`);
|
|
212
|
-
this.send(this.requestLogoutType, factory.logout(this.requestLogoutType, msg));
|
|
213
|
-
}
|
|
214
|
-
sessionLogout() {
|
|
215
|
-
const sessionState = this.sessionState;
|
|
216
|
-
if (sessionState.logoutSentAt) {
|
|
217
|
-
return;
|
|
218
|
-
}
|
|
219
|
-
switch (sessionState.state) {
|
|
220
|
-
case session_state_1.SessionState.ActiveNormalSession:
|
|
221
|
-
case session_state_1.SessionState.InitiationLogonResponse:
|
|
222
|
-
case session_state_1.SessionState.InitiationLogonReceived: {
|
|
223
|
-
this.setState(session_state_1.SessionState.WaitingLogoutConfirm);
|
|
224
|
-
sessionState.logoutSentAt = new Date();
|
|
225
|
-
const msg = `${this.me} initiate logout`;
|
|
226
|
-
this.sessionLogger.info(msg);
|
|
227
|
-
this.sendLogout(msg);
|
|
228
|
-
break;
|
|
229
|
-
}
|
|
230
|
-
case session_state_1.SessionState.ConfirmingLogout: {
|
|
231
|
-
sessionState.logoutSentAt = new Date();
|
|
232
|
-
const msg = `${this.me} confirming logout`;
|
|
233
|
-
this.sessionLogger.info(msg);
|
|
234
|
-
this.sendLogout(msg);
|
|
235
|
-
break;
|
|
236
|
-
}
|
|
237
|
-
default: {
|
|
238
|
-
this.sessionLogger.info(`sessionLogout ignored as in state ${sessionState.state}`);
|
|
239
|
-
}
|
|
240
|
-
}
|
|
241
|
-
}
|
|
242
|
-
done() {
|
|
243
|
-
switch (this.sessionState.state) {
|
|
244
|
-
case session_state_1.SessionState.InitiationLogonResponse:
|
|
245
|
-
case session_state_1.SessionState.ActiveNormalSession:
|
|
246
|
-
case session_state_1.SessionState.InitiationLogonReceived: {
|
|
247
|
-
this.sessionLogout();
|
|
248
|
-
break;
|
|
249
|
-
}
|
|
250
|
-
case session_state_1.SessionState.Stopped:
|
|
251
|
-
this.sessionLogger.info(`done. session is now stopped`);
|
|
252
|
-
break;
|
|
253
|
-
default: {
|
|
254
|
-
this.stop();
|
|
255
|
-
break;
|
|
256
|
-
}
|
|
257
|
-
}
|
|
258
|
-
this.sessionLogger.info(`done. check logout sequence state ${this.stateString()}`);
|
|
259
|
-
}
|
|
260
|
-
reset() {
|
|
261
|
-
if (this.timer) {
|
|
262
|
-
clearInterval(this.timer);
|
|
263
|
-
}
|
|
264
|
-
this.transport = null;
|
|
265
|
-
const resetSeqNum = this.config.description.ResetSeqNumFlag || true;
|
|
266
|
-
this.sessionState.reset(resetSeqNum);
|
|
267
|
-
this.setState(session_state_1.SessionState.NetworkConnectionEstablished);
|
|
268
|
-
}
|
|
269
|
-
stop(error = null) {
|
|
270
|
-
if (this.sessionState.state === session_state_1.SessionState.Stopped) {
|
|
271
|
-
return;
|
|
272
|
-
}
|
|
273
|
-
if (this.timer) {
|
|
274
|
-
clearInterval(this.timer);
|
|
275
|
-
}
|
|
276
|
-
this.sessionLogger.info(`stop: kill transport`);
|
|
277
|
-
this.transport.end();
|
|
278
|
-
if (error) {
|
|
279
|
-
this.sessionLogger.info(`stop: emit error ${error.message}`);
|
|
280
|
-
this.emit('error', error);
|
|
281
|
-
}
|
|
282
|
-
else {
|
|
283
|
-
this.emit('done');
|
|
284
|
-
}
|
|
285
|
-
this.setState(session_state_1.SessionState.Stopped);
|
|
286
|
-
this.onStopped(error);
|
|
287
|
-
this.transport = null;
|
|
288
|
-
}
|
|
289
|
-
}
|
|
290
|
-
exports.FixSession = FixSession;
|
|
291
|
-
//# sourceMappingURL=fix-session.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fix-session.js","sourceRoot":"","sources":["../../src/transport/fix-session.ts"],"names":[],"mappings":"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","sourcesContent":["import { ElasticBuffer, MsgView } from '../buffer'\r\nimport { IJsFixConfig, IJsFixLogger } from '../config'\r\nimport { FixSessionState } from './fix-session-state'\r\nimport { MsgTransport } from './factory'\r\nimport { MsgTag } from '../types'\r\nimport { ILooseObject } from '../collections/collection'\r\n\r\nimport * as events from 'events'\r\nimport { SessionState } from './session-state'\r\nimport { SegmentType } from '../buffer/segment/segment-type'\r\n\r\nexport abstract class FixSession extends events.EventEmitter {\r\n public logReceivedMsgs: boolean = false\r\n protected timer: NodeJS.Timer = null\r\n protected transport: MsgTransport = null\r\n public manageSession: boolean = true\r\n public checkMsgIntegrity: boolean = false\r\n protected readonly me: string\r\n protected readonly initiator: boolean\r\n protected readonly acceptor: boolean\r\n protected readonly sessionState: FixSessionState\r\n protected readonly sessionLogger: IJsFixLogger\r\n protected requestLogoutType: string\r\n protected respondLogoutType: string\r\n protected requestLogonType: string\r\n\r\n protected constructor (public readonly config: IJsFixConfig) {\r\n super()\r\n const description = config.description\r\n this.me = description.application.name\r\n this.sessionState = new FixSessionState(\r\n { heartBeat: config.description.HeartBtInt,\r\n lastPeerMsgSeqNum: config.description.LastReceivedSeqNum})\r\n this.sessionLogger = config.logFactory.logger(`${this.me}:FixSession`)\r\n this.initiator = description.application.type === 'initiator'\r\n this.acceptor = !this.initiator\r\n this.checkMsgIntegrity = this.acceptor\r\n this.sessionState.compId = description.SenderCompId\r\n }\r\n\r\n public setState (state: SessionState) {\r\n if (state === this.sessionState.state) return\r\n const logger = this.sessionLogger\r\n const prevState = this.sessionState.state\r\n const msg = `current state ${SessionState[prevState]} (${prevState}) moves to ${SessionState[state]} (${state})`\r\n logger.info(msg)\r\n this.sessionState.state = state\r\n }\r\n\r\n public getState (): SessionState {\r\n return this.sessionState.state\r\n }\r\n\r\n public sendLogon () {\r\n this.send(this.requestLogonType, this.config.factory.logon())\r\n }\r\n\r\n private waitPromise (): Promise<any> {\r\n const logger = this.sessionLogger\r\n return new Promise<any>((accept, reject) => {\r\n if (this.initiator) {\r\n logger.debug(`initiator sending logon state = ${this.stateString()}`)\r\n this.sendLogon()\r\n this.setState(SessionState.InitiationLogonSent)\r\n } else {\r\n logger.debug(`acceptor waits for logon state = ${this.stateString()}`)\r\n this.setState(SessionState.WaitingForALogon)\r\n }\r\n\r\n this.on('error', (e: Error) => {\r\n logger.error(e)\r\n reject(e)\r\n })\r\n\r\n this.on('done', () => {\r\n accept(this.transport.id)\r\n })\r\n })\r\n }\r\n\r\n public run (transport: MsgTransport): Promise<number> {\r\n const logger = this.sessionLogger\r\n if (this.transport) {\r\n logger.info(`reset from previous transport. state ${this.stateString()}`)\r\n this.reset()\r\n }\r\n this.transport = transport\r\n this.subscribe()\r\n return this.waitPromise()\r\n }\r\n\r\n protected expectedState (): boolean {\r\n switch (this.sessionState.state) {\r\n case SessionState.ActiveNormalSession:\r\n case SessionState.ReceiveLogout:\r\n case SessionState.Stopped:\r\n case SessionState.ConfirmingLogout:\r\n case SessionState.HandleResendRequest:\r\n case SessionState.AwaitingProcessingResponseToTestRequest:\r\n case SessionState.AwaitingProcessingResponseToResendRequest:\r\n return true\r\n\r\n default:\r\n return false\r\n }\r\n }\r\n\r\n protected subscribe () {\r\n\r\n const transport = this.transport\r\n const logger = this.sessionLogger\r\n\r\n const rx = transport.receiver\r\n const tx = transport.transmitter\r\n\r\n rx.on('msg', (msgType: string, view: MsgView) => {\r\n if (this.logReceivedMsgs) {\r\n const name = view.segment.type !== SegmentType.Unknown ? view.segment.set.name : 'unknown'\r\n logger.info(`${msgType}: ${name}`)\r\n logger.info(`${view.toString()}`)\r\n }\r\n this.sessionState.lastReceivedAt = new Date()\r\n if (this.manageSession) {\r\n this.onMsg(msgType, view)\r\n } else {\r\n this.checkForwardMsg(msgType, view)\r\n }\r\n })\r\n\r\n rx.on('error', (e: Error) => {\r\n logger.warning(`rx error event: ${e.message} ${e.stack || ''}`)\r\n this.terminate(e)\r\n })\r\n\r\n rx.on('done', () => {\r\n logger.info('rx done received')\r\n this.done()\r\n })\r\n\r\n rx.on('end', () => {\r\n logger.info(`rx end received sessionState = [${this.sessionState.toString()}]`)\r\n const expectedState = this.expectedState()\r\n if (expectedState) {\r\n logger.info(`rx graceful end state = ${this.stateString()}`)\r\n this.done()\r\n } else {\r\n const e = new Error(`unexpected state - transport failed? = ${this.stateString()}`)\r\n logger.info(`rx error ${e.message}`)\r\n this.terminate(e)\r\n }\r\n })\r\n\r\n rx.on('decoded', (msgType: string, data: ElasticBuffer, ptr: number) => {\r\n logger.debug(`rx: [${msgType}] ${ptr} bytes`)\r\n this.onDecoded(msgType, data.toString(ptr))\r\n })\r\n\r\n tx.on('error', (e: Error) => {\r\n logger.warning(`tx error event: ${e.message} ${e.stack || ''}`)\r\n this.terminate(e)\r\n })\r\n\r\n tx.on('encoded', (msgType: string, data: string) => {\r\n logger.debug(`tx: [${msgType}] ${data.length} bytes`)\r\n this.onEncoded(msgType, data)\r\n })\r\n }\r\n\r\n protected validStateApplicationMsg (): boolean {\r\n switch (this.sessionState.state) {\r\n case SessionState.Idle:\r\n case SessionState.InitiateConnection:\r\n case SessionState.InitiationLogonSent:\r\n case SessionState.WaitingForALogon:\r\n case SessionState.HandleResendRequest:\r\n case SessionState.AwaitingProcessingResponseToTestRequest:\r\n case SessionState.AwaitingProcessingResponseToResendRequest:\r\n return false\r\n default:\r\n return true\r\n }\r\n }\r\n\r\n protected stateString (): string {\r\n return SessionState[this.sessionState.state]\r\n }\r\n\r\n protected checkForwardMsg (msgType: string, view: MsgView): void {\r\n this.sessionLogger.info(`forwarding msgType = '${msgType}' to application`)\r\n this.setState(SessionState.ActiveNormalSession)\r\n this.onApplicationMsg(msgType, view)\r\n }\r\n\r\n protected terminate (error: Error): void {\r\n if (this.sessionState.state === SessionState.Stopped) return\r\n this.sessionLogger.error(error)\r\n if (this.timer) {\r\n clearInterval(this.timer)\r\n }\r\n if (this.transport) {\r\n this.transport.end()\r\n }\r\n this.transport = null\r\n this.setState(SessionState.Stopped)\r\n this.emit('error', error)\r\n }\r\n\r\n protected peerLogout (view: MsgView) {\r\n const msg = view.getString(MsgTag.Text)\r\n const state = this.sessionState.state\r\n switch (state) {\r\n case SessionState.WaitingLogoutConfirm: {\r\n this.sessionLogger.info(`peer confirms logout Text = '${msg}'`)\r\n this.stop()\r\n break\r\n }\r\n\r\n case SessionState.InitiationLogonResponse:\r\n case SessionState.ActiveNormalSession:\r\n case SessionState.InitiationLogonReceived: {\r\n this.setState(SessionState.ConfirmingLogout)\r\n this.sessionLogger.info(`peer initiates logout Text = '${msg}'`)\r\n this.sessionLogout()\r\n }\r\n }\r\n }\r\n\r\n protected send (msgType: string, obj: ILooseObject) {\r\n const state = this.sessionState.state\r\n switch (state) {\r\n case SessionState.Stopped: {\r\n this.sessionLogger.warning(`can't send in state ${this.stateString()}`)\r\n break\r\n }\r\n\r\n default: {\r\n this.sessionState.LastSentAt = new Date()\r\n this.transport.transmitter.send(msgType, obj)\r\n break\r\n }\r\n }\r\n }\r\n\r\n protected sendLogout (msg: string) {\r\n const factory = this.config.factory\r\n this.sessionLogger.info(`sending logout with ${msg}`)\r\n this.send(this.requestLogoutType, factory.logout(this.requestLogoutType, msg))\r\n }\r\n\r\n protected sessionLogout (): void {\r\n const sessionState = this.sessionState\r\n if (sessionState.logoutSentAt) {\r\n return\r\n }\r\n\r\n switch (sessionState.state) {\r\n case SessionState.ActiveNormalSession:\r\n case SessionState.InitiationLogonResponse:\r\n case SessionState.InitiationLogonReceived: {\r\n // this instance initiates logout\r\n this.setState(SessionState.WaitingLogoutConfirm)\r\n sessionState.logoutSentAt = new Date()\r\n const msg = `${this.me} initiate logout`\r\n this.sessionLogger.info(msg)\r\n this.sendLogout(msg)\r\n break\r\n }\r\n\r\n case SessionState.ConfirmingLogout: {\r\n // this instance responds to logout\r\n sessionState.logoutSentAt = new Date()\r\n const msg = `${this.me} confirming logout`\r\n this.sessionLogger.info(msg)\r\n this.sendLogout(msg)\r\n break\r\n }\r\n\r\n default: {\r\n this.sessionLogger.info(`sessionLogout ignored as in state ${sessionState.state}`)\r\n }\r\n }\r\n }\r\n\r\n public done (): void {\r\n switch (this.sessionState.state) {\r\n case SessionState.InitiationLogonResponse:\r\n case SessionState.ActiveNormalSession:\r\n case SessionState.InitiationLogonReceived: {\r\n this.sessionLogout()\r\n break\r\n }\r\n\r\n case SessionState.Stopped:\r\n this.sessionLogger.info(`done. session is now stopped`)\r\n break\r\n\r\n default: {\r\n this.stop()\r\n break\r\n }\r\n }\r\n this.sessionLogger.info(`done. check logout sequence state ${this.stateString()}`)\r\n }\r\n\r\n public reset (): void {\r\n if (this.timer) {\r\n clearInterval(this.timer)\r\n }\r\n this.transport = null\r\n const resetSeqNum = this.config.description.ResetSeqNumFlag || true\r\n this.sessionState.reset(resetSeqNum) // from header def ... eventually\r\n this.setState(SessionState.NetworkConnectionEstablished)\r\n }\r\n\r\n protected stop (error: Error = null): void {\r\n if (this.sessionState.state === SessionState.Stopped) {\r\n return\r\n }\r\n if (this.timer) {\r\n clearInterval(this.timer)\r\n }\r\n this.sessionLogger.info(`stop: kill transport`)\r\n this.transport.end()\r\n if (error) {\r\n this.sessionLogger.info(`stop: emit error ${error.message}`)\r\n this.emit('error', error)\r\n } else {\r\n this.emit('done')\r\n }\r\n\r\n this.setState(SessionState.Stopped)\r\n this.onStopped(error)\r\n this.transport = null\r\n }\r\n\r\n protected abstract onMsg (msgType: string, view: MsgView): void\r\n // application responsible for writing its own log\r\n protected abstract onDecoded (msgType: string, txt: string): void\r\n protected abstract onEncoded (msgType: string, txt: string): void\r\n // an application level message to be handled by implementation, unless\r\n // manageSession = false in which case all messages will be forwarded\r\n protected abstract onApplicationMsg (msgType: string, view: MsgView): void\r\n // inform application peer has logged in - provide login message\r\n protected abstract onReady (view: MsgView): void\r\n // inform application this session has now ended - either from logout or connection dropped\r\n protected abstract onStopped (error?: Error): void\r\n // does the application accept the inbound logon request\r\n protected abstract onLogon (view: MsgView, user: string, password: string): boolean\r\n}\r\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"make-fix-session.js","sourceRoot":"","sources":["../../src/transport/make-fix-session.ts"],"names":[],"mappings":"","sourcesContent":["import { IJsFixConfig } from '../config'\r\nimport { FixSession } from './fix-session'\r\n\r\nexport interface MakeFixSession { (config: IJsFixConfig): FixSession\r\n}\r\n"]}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { IMsgApplication } from './msg-application';
|
|
2
|
-
export interface ISessionDescription {
|
|
3
|
-
readonly application?: IMsgApplication;
|
|
4
|
-
readonly Name: string;
|
|
5
|
-
readonly Username: string;
|
|
6
|
-
readonly Password: string;
|
|
7
|
-
HeartBtInt: number;
|
|
8
|
-
readonly SenderCompId: string;
|
|
9
|
-
readonly TargetCompID: string;
|
|
10
|
-
readonly ResetSeqNumFlag: boolean;
|
|
11
|
-
readonly LastSentSeqNum?: number;
|
|
12
|
-
readonly LastReceivedSeqNum?: number;
|
|
13
|
-
readonly SenderSubID: string;
|
|
14
|
-
readonly TargetSubID: string;
|
|
15
|
-
readonly BeginString: string;
|
|
16
|
-
readonly BodyLengthChars?: number;
|
|
17
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"session-description.js","sourceRoot":"","sources":["../../src/transport/session-description.ts"],"names":[],"mappings":"","sourcesContent":["import { IMsgApplication } from './msg-application'\r\n\r\nexport interface ISessionDescription {\r\n readonly application?: IMsgApplication\r\n readonly Name: string\r\n readonly Username: string\r\n readonly Password: string\r\n HeartBtInt: number\r\n readonly SenderCompId: string\r\n readonly TargetCompID: string\r\n readonly ResetSeqNumFlag: boolean\r\n readonly LastSentSeqNum?: number\r\n readonly LastReceivedSeqNum?: number\r\n readonly SenderSubID: string\r\n readonly TargetSubID: string\r\n readonly BeginString: string\r\n readonly BodyLengthChars?: number,\r\n}\r\n"]}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { ILooseObject } from '../collections/collection';
|
|
2
|
-
import { IStandardHeader } from '../types/FIX4.4/repo';
|
|
3
|
-
import { ISessionDescription } from './session/session-description';
|
|
4
|
-
export interface ISessionMsgFactory {
|
|
5
|
-
description: ISessionDescription;
|
|
6
|
-
reject(msgType: string, seqNo: number, msg: string, reason: number): ILooseObject;
|
|
7
|
-
logout(msgType: string, text: string): ILooseObject;
|
|
8
|
-
logon(userRequestId?: string, isResponse?: boolean): ILooseObject;
|
|
9
|
-
testRequest(reqId?: string): ILooseObject;
|
|
10
|
-
resendRequest(from: number, to: number): ILooseObject;
|
|
11
|
-
sequenceReset(newSeq: number, gapFill?: boolean): ILooseObject;
|
|
12
|
-
heartbeat(testReqId: string): ILooseObject;
|
|
13
|
-
header(msgType?: string, seqNum?: number, time?: Date, overrideData?: Partial<IStandardHeader>): ILooseObject;
|
|
14
|
-
trailer(checksum: number): ILooseObject;
|
|
15
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"session-msg-factory.js","sourceRoot":"","sources":["../../src/transport/session-msg-factory.ts"],"names":[],"mappings":"","sourcesContent":["import { ILooseObject } from '../collections/collection'\r\nimport { IStandardHeader } from '../types/FIX4.4/repo'\r\nimport { ISessionDescription } from './session/session-description'\r\n\r\nexport interface ISessionMsgFactory {\r\n description: ISessionDescription\r\n reject (msgType: string, seqNo: number, msg: string, reason: number): ILooseObject\r\n logout (msgType: string, text: string): ILooseObject\r\n logon (userRequestId?: string, isResponse?: boolean): ILooseObject\r\n testRequest (reqId?: string): ILooseObject\r\n resendRequest (from: number, to: number): ILooseObject\r\n sequenceReset (newSeq: number, gapFill?: boolean): ILooseObject\r\n heartbeat (testReqId: string): ILooseObject\r\n header (msgType?: string, seqNum?: number, time?: Date, overrideData?: Partial<IStandardHeader>): ILooseObject\r\n trailer (checksum: number): ILooseObject\r\n}\r\n"]}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
export declare enum SessionState {
|
|
2
|
-
DisconnectedNoConnectionToday = 1,
|
|
3
|
-
DisconnectedConnectionToday = 2,
|
|
4
|
-
DetectBrokenNetworkConnection = 3,
|
|
5
|
-
AwaitingConnection = 4,
|
|
6
|
-
InitiateConnection = 5,
|
|
7
|
-
NetworkConnectionEstablished = 6,
|
|
8
|
-
InitiationLogonSent = 7,
|
|
9
|
-
InitiationLogonReceived = 8,
|
|
10
|
-
InitiationLogonResponse = 9,
|
|
11
|
-
HandleResendRequest = 10,
|
|
12
|
-
ReceiveMsgSeqNumTooHigh = 11,
|
|
13
|
-
AwaitingProcessingResponseToResendRequest = 12,
|
|
14
|
-
NoMessagesReceivedInInterval = 13,
|
|
15
|
-
AwaitingProcessingResponseToTestRequest = 14,
|
|
16
|
-
ReceiveLogout = 15,
|
|
17
|
-
InitiateLogout = 16,
|
|
18
|
-
ActiveNormalSession = 17,
|
|
19
|
-
WaitingForALogon = 18,
|
|
20
|
-
PeerLogonRejected = 20,
|
|
21
|
-
WaitingLogoutConfirm = 21,
|
|
22
|
-
ConfirmingLogout = 22,
|
|
23
|
-
Stopped = 23,
|
|
24
|
-
Idle = 24
|
|
25
|
-
}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.SessionState = void 0;
|
|
4
|
-
var SessionState;
|
|
5
|
-
(function (SessionState) {
|
|
6
|
-
SessionState[SessionState["DisconnectedNoConnectionToday"] = 1] = "DisconnectedNoConnectionToday";
|
|
7
|
-
SessionState[SessionState["DisconnectedConnectionToday"] = 2] = "DisconnectedConnectionToday";
|
|
8
|
-
SessionState[SessionState["DetectBrokenNetworkConnection"] = 3] = "DetectBrokenNetworkConnection";
|
|
9
|
-
SessionState[SessionState["AwaitingConnection"] = 4] = "AwaitingConnection";
|
|
10
|
-
SessionState[SessionState["InitiateConnection"] = 5] = "InitiateConnection";
|
|
11
|
-
SessionState[SessionState["NetworkConnectionEstablished"] = 6] = "NetworkConnectionEstablished";
|
|
12
|
-
SessionState[SessionState["InitiationLogonSent"] = 7] = "InitiationLogonSent";
|
|
13
|
-
SessionState[SessionState["InitiationLogonReceived"] = 8] = "InitiationLogonReceived";
|
|
14
|
-
SessionState[SessionState["InitiationLogonResponse"] = 9] = "InitiationLogonResponse";
|
|
15
|
-
SessionState[SessionState["HandleResendRequest"] = 10] = "HandleResendRequest";
|
|
16
|
-
SessionState[SessionState["ReceiveMsgSeqNumTooHigh"] = 11] = "ReceiveMsgSeqNumTooHigh";
|
|
17
|
-
SessionState[SessionState["AwaitingProcessingResponseToResendRequest"] = 12] = "AwaitingProcessingResponseToResendRequest";
|
|
18
|
-
SessionState[SessionState["NoMessagesReceivedInInterval"] = 13] = "NoMessagesReceivedInInterval";
|
|
19
|
-
SessionState[SessionState["AwaitingProcessingResponseToTestRequest"] = 14] = "AwaitingProcessingResponseToTestRequest";
|
|
20
|
-
SessionState[SessionState["ReceiveLogout"] = 15] = "ReceiveLogout";
|
|
21
|
-
SessionState[SessionState["InitiateLogout"] = 16] = "InitiateLogout";
|
|
22
|
-
SessionState[SessionState["ActiveNormalSession"] = 17] = "ActiveNormalSession";
|
|
23
|
-
SessionState[SessionState["WaitingForALogon"] = 18] = "WaitingForALogon";
|
|
24
|
-
SessionState[SessionState["PeerLogonRejected"] = 20] = "PeerLogonRejected";
|
|
25
|
-
SessionState[SessionState["WaitingLogoutConfirm"] = 21] = "WaitingLogoutConfirm";
|
|
26
|
-
SessionState[SessionState["ConfirmingLogout"] = 22] = "ConfirmingLogout";
|
|
27
|
-
SessionState[SessionState["Stopped"] = 23] = "Stopped";
|
|
28
|
-
SessionState[SessionState["Idle"] = 24] = "Idle";
|
|
29
|
-
})(SessionState = exports.SessionState || (exports.SessionState = {}));
|
|
30
|
-
//# sourceMappingURL=session-state.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"session-state.js","sourceRoot":"","sources":["../../src/transport/session-state.ts"],"names":[],"mappings":";;;AAAA,IAAY,YAwBX;AAxBD,WAAY,YAAY;IACtB,iGAAiC,CAAA;IACjC,6FAA+B,CAAA;IAC/B,iGAAiC,CAAA;IACjC,2EAAsB,CAAA;IACtB,2EAAsB,CAAA;IACtB,+FAAgC,CAAA;IAChC,6EAAuB,CAAA;IACvB,qFAA2B,CAAA;IAC3B,qFAA2B,CAAA;IAC3B,8EAAwB,CAAA;IACxB,sFAA4B,CAAA;IAC5B,0HAA8C,CAAA;IAC9C,gGAAiC,CAAA;IACjC,sHAA4C,CAAA;IAC5C,kEAAkB,CAAA;IAClB,oEAAmB,CAAA;IACnB,8EAAwB,CAAA;IACxB,wEAAqB,CAAA;IACrB,0EAAsB,CAAA;IACtB,gFAAyB,CAAA;IACzB,wEAAqB,CAAA;IACrB,sDAAY,CAAA;IACZ,gDAAS,CAAA;AACX,CAAC,EAxBW,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAwBvB","sourcesContent":["export enum SessionState {\r\n DisconnectedNoConnectionToday = 1,\r\n DisconnectedConnectionToday = 2,\r\n DetectBrokenNetworkConnection = 3,\r\n AwaitingConnection = 4,\r\n InitiateConnection = 5,\r\n NetworkConnectionEstablished = 6,\r\n InitiationLogonSent = 7,\r\n InitiationLogonReceived = 8,\r\n InitiationLogonResponse = 9,\r\n HandleResendRequest = 10,\r\n ReceiveMsgSeqNumTooHigh = 11,\r\n AwaitingProcessingResponseToResendRequest = 12,\r\n NoMessagesReceivedInInterval = 13,\r\n AwaitingProcessingResponseToTestRequest = 14,\r\n ReceiveLogout = 15,\r\n InitiateLogout = 16,\r\n ActiveNormalSession = 17,\r\n WaitingForALogon = 18,\r\n PeerLogonRejected = 20,\r\n WaitingLogoutConfirm = 21,\r\n ConfirmingLogout = 22,\r\n Stopped = 23,\r\n Idle = 24\r\n}\r\n"]}
|