jspurefix 5.1.0 → 5.3.0
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/BACKPORT_PLAN.md +138 -79
- package/dist/buffer/fixml/fixml-view.js.map +1 -1
- package/dist/buffer/msg-encoder.js +34 -1
- package/dist/buffer/msg-encoder.js.map +1 -1
- package/dist/buffer/msg-parser.js +34 -1
- package/dist/buffer/msg-parser.js.map +1 -1
- package/dist/buffer/msg-view.js.map +1 -1
- package/dist/collections/index.js +1 -0
- package/dist/config/js-fix-config.d.ts +2 -0
- package/dist/config/js-fix-config.js.map +1 -1
- package/dist/config/winston-logger.js.map +1 -1
- package/dist/dict-parser.js +34 -1
- package/dist/dict-parser.js.map +1 -1
- package/dist/dictionary/compiler/enum-compiler.js +37 -4
- package/dist/dictionary/compiler/enum-compiler.js.map +1 -1
- package/dist/dictionary/compiler/msg-compiler.js +36 -3
- package/dist/dictionary/compiler/msg-compiler.js.map +1 -1
- package/dist/dictionary/compiler/standard-snippet.js +34 -1
- package/dist/dictionary/compiler/standard-snippet.js.map +1 -1
- package/dist/dictionary/contained/contained-field-set.js +2 -0
- package/dist/dictionary/contained/contained-field-set.js.map +1 -1
- package/dist/dictionary/definition/simple-field-definition.js +34 -1
- package/dist/dictionary/definition/simple-field-definition.js.map +1 -1
- package/dist/dictionary/fix-parser.js +34 -1
- package/dist/dictionary/fix-parser.js.map +1 -1
- package/dist/dictionary/parser/fix-repository/repository-type.js +1 -0
- package/dist/dictionary/parser/fix-repository/repository-xml-parser.js +35 -2
- package/dist/dictionary/parser/fix-repository/repository-xml-parser.js.map +1 -1
- package/dist/dictionary/parser/fixml/fields-parser.js.map +1 -1
- package/dist/dictionary/parser/fixml/fix-xsd-parser.js +34 -1
- package/dist/dictionary/parser/fixml/fix-xsd-parser.js.map +1 -1
- package/dist/dictionary/parser/fixml/include-graph.js +35 -2
- package/dist/dictionary/parser/fixml/include-graph.js.map +1 -1
- package/dist/dictionary/parser/fixml/node-definitions.js +1 -0
- package/dist/dictionary/parser/fixml/xsd-parser.js +34 -1
- package/dist/dictionary/parser/fixml/xsd-parser.js.map +1 -1
- package/dist/jsfix-cmd.js +39 -3
- package/dist/jsfix-cmd.js.map +1 -1
- package/dist/runtime/session-launcher.js +34 -1
- package/dist/runtime/session-launcher.js.map +1 -1
- package/dist/sample/http/oms/app.js +34 -1
- package/dist/sample/http/oms/app.js.map +1 -1
- package/dist/sample/tcp/recovering-skeleton/app.js +34 -1
- package/dist/sample/tcp/recovering-skeleton/app.js.map +1 -1
- package/dist/store/file-session-store.d.ts +42 -0
- package/dist/store/file-session-store.js +256 -0
- package/dist/store/file-session-store.js.map +1 -0
- package/dist/store/file-session-stream-provider.d.ts +25 -0
- package/dist/store/file-session-stream-provider.js +162 -0
- package/dist/store/file-session-stream-provider.js.map +1 -0
- package/dist/store/fix-msg-ascii-store-resend.js +1 -1
- package/dist/store/fix-msg-ascii-store-resend.js.map +1 -1
- package/dist/store/fix-session-store-factory.d.ts +13 -0
- package/dist/store/fix-session-store-factory.js +21 -0
- package/dist/store/fix-session-store-factory.js.map +1 -0
- package/dist/store/fix-session-store.d.ts +19 -0
- package/dist/store/fix-session-store.js +3 -0
- package/dist/store/fix-session-store.js.map +1 -0
- package/dist/store/index.d.ts +9 -0
- package/dist/store/index.js +9 -0
- package/dist/store/index.js.map +1 -1
- package/dist/store/memory-session-store.d.ts +27 -0
- package/dist/store/memory-session-store.js +104 -0
- package/dist/store/memory-session-store.js.map +1 -0
- package/dist/store/memory-session-stream-provider.d.ts +26 -0
- package/dist/store/memory-session-stream-provider.js +103 -0
- package/dist/store/memory-session-stream-provider.js.map +1 -0
- package/dist/store/session-id.d.ts +9 -0
- package/dist/store/session-id.js +55 -0
- package/dist/store/session-id.js.map +1 -0
- package/dist/store/session-stream-provider.d.ts +15 -0
- package/dist/store/session-stream-provider.js +3 -0
- package/dist/store/session-stream-provider.js.map +1 -0
- package/dist/store/store-config.d.ts +4 -0
- package/dist/store/store-config.js +3 -0
- package/dist/store/store-config.js.map +1 -0
- package/dist/transport/ascii/ascii-session.d.ts +12 -1
- package/dist/transport/ascii/ascii-session.js +154 -5
- package/dist/transport/ascii/ascii-session.js.map +1 -1
- package/dist/transport/duplex/http-duplex.js +4 -1
- package/dist/transport/duplex/http-duplex.js.map +1 -1
- package/dist/transport/duplex/tcp-duplex.js +34 -1
- package/dist/transport/duplex/tcp-duplex.js.map +1 -1
- package/dist/transport/fix-acceptor.js +34 -1
- package/dist/transport/fix-acceptor.js.map +1 -1
- package/dist/transport/fix-entity.js +34 -1
- package/dist/transport/fix-entity.js.map +1 -1
- package/dist/transport/fixml/fixml-msg-transmitter.js +1 -1
- package/dist/transport/fixml/fixml-msg-transmitter.js.map +1 -1
- package/dist/transport/http/http-acceptor.js +34 -1
- package/dist/transport/http/http-acceptor.js.map +1 -1
- package/dist/transport/msg-transmitter.js +34 -1
- package/dist/transport/msg-transmitter.js.map +1 -1
- package/dist/transport/session/a-session-msg-factory.d.ts +1 -1
- package/dist/transport/session/a-session-msg-factory.js.map +1 -1
- package/dist/transport/session/fix-clock.d.ts +6 -0
- package/dist/transport/session/fix-clock.js +10 -0
- package/dist/transport/session/fix-clock.js.map +1 -0
- package/dist/transport/session/fix-session.d.ts +1 -0
- package/dist/transport/session/fix-session.js +37 -1
- package/dist/transport/session/fix-session.js.map +1 -1
- package/dist/transport/session/index.d.ts +4 -0
- package/dist/transport/session/index.js +4 -0
- package/dist/transport/session/index.js.map +1 -1
- package/dist/transport/session/resend-request-manager.d.ts +69 -0
- package/dist/transport/session/resend-request-manager.js +208 -0
- package/dist/transport/session/resend-request-manager.js.map +1 -0
- package/dist/transport/session/session-description.d.ts +2 -0
- package/dist/transport/session/session-description.js.map +1 -1
- package/dist/transport/session/session-msg-factory.d.ts +1 -1
- package/dist/transport/session/session-msg-factory.js.map +1 -1
- package/dist/transport/session/session-sequence-coordinator.d.ts +38 -0
- package/dist/transport/session/session-sequence-coordinator.js +180 -0
- package/dist/transport/session/session-sequence-coordinator.js.map +1 -0
- package/dist/transport/session/session-sequence-store.d.ts +14 -0
- package/dist/transport/session/session-sequence-store.js +36 -0
- package/dist/transport/session/session-sequence-store.js.map +1 -0
- package/dist/transport/tcp/tcp-acceptor.js.map +1 -1
- package/dist/transport/tcp/tcp-initiator.js +34 -1
- package/dist/transport/tcp/tcp-initiator.js.map +1 -1
- package/dist/types/FIX4.4/index.js +1 -0
- package/dist/util/buffer-helper.js +34 -1
- package/dist/util/buffer-helper.js.map +1 -1
- package/dist/util/definition-factory.js +35 -2
- package/dist/util/definition-factory.js.map +1 -1
- package/jsfix.test_client.txt +67 -66
- package/jsfix.test_server.txt +64 -63
- package/package.json +11 -10
- package/src/buffer/fixml/fixml-view.ts +1 -1
- package/src/buffer/msg-view.ts +1 -1
- package/src/config/js-fix-config.ts +2 -0
- package/src/config/winston-logger.ts +3 -3
- package/src/dictionary/contained/contained-field-set.ts +2 -1
- package/src/dictionary/parser/fixml/fields-parser.ts +2 -2
- package/src/jsfix-cmd.ts +1 -1
- package/src/store/file-session-store.ts +294 -0
- package/src/store/file-session-stream-provider.ts +123 -0
- package/src/store/fix-msg-ascii-store-resend.ts +1 -1
- package/src/store/fix-session-store-factory.ts +31 -0
- package/src/store/fix-session-store.ts +37 -0
- package/src/store/index.ts +9 -0
- package/src/store/memory-session-store.ts +102 -0
- package/src/store/memory-session-stream-provider.ts +97 -0
- package/src/store/session-id.ts +32 -0
- package/src/store/session-stream-provider.ts +74 -0
- package/src/store/store-config.ts +15 -0
- package/src/transport/ascii/ascii-session.ts +218 -6
- package/src/transport/fixml/fixml-msg-transmitter.ts +1 -1
- package/src/transport/http/http-acceptor.ts +1 -1
- package/src/transport/session/a-session-msg-factory.ts +1 -1
- package/src/transport/session/fix-clock.ts +9 -0
- package/src/transport/session/fix-session.ts +5 -0
- package/src/transport/session/index.ts +4 -0
- package/src/transport/session/resend-request-manager.ts +268 -0
- package/src/transport/session/session-description.ts +2 -0
- package/src/transport/session/session-msg-factory.ts +1 -1
- package/src/transport/session/session-sequence-coordinator.ts +272 -0
- package/src/transport/session/session-sequence-store.ts +33 -0
- package/src/transport/tcp/tcp-acceptor.ts +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"winston-logger.js","sourceRoot":"","sources":["../../src/config/winston-logger.ts"],"names":[],"mappings":";;;AAEA,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC,CAAA;AAC/D,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,MAAM,CAAA;AAE7C,MAAa,aAAa;IAWxB,YAA6B,UAAe,aAAa,CAAC,cAAc,EAAE;QAA7C,YAAO,GAAP,OAAO,CAAsC;QACxE,IAAI,CAAC,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC,CAAA;IACxC,CAAC;IAEM,MAAM,CAAC,cAAc,CAAE,QAAgB,OAAO;QACnD,OAAO;YACL,MAAM,EAAE,OAAO,CACb,SAAS,EAAE,EACX,aAAa,CAAC,SAAS,CACxB;YACD,KAAK;YACL,UAAU,EAAE;gBACV,IAAI,UAAU,CAAC,OAAO,EAAE;aACzB;SACF,CAAA;IACH,CAAC;IAEM,MAAM,CAAC,WAAW,CAAE,QAAgB,EAAE,QAAgB,OAAO,EAAE,UAAkB,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE,SAAc,OAAO,CAC7H,SAAS,EAAE,EACX,aAAa,CAAC,SAAS,CACxB;QACC,OAAO;YACL,MAAM;YACN,KAAK;YACL,UAAU,EAAE;gBACV,IAAI,UAAU,CAAC,IAAI,CAAC;oBAClB,QAAQ,EAAE,QAAQ;oBAClB,OAAO,EAAE,OAAO;iBACjB,CAAC;aACH;SACF,CAAA;IACH,CAAC;IAEM,KAAK,CAAE,QAAgB,EAAE,UAAkB,EAAE,GAAG,IAAI,GAAG,IAAI;QAChE,MAAM,SAAS,GAAW,YAAY,CAAC;YACrC,MAAM,EAAE,aAAa,CAAC,WAAW;YACjC,KAAK,EAAE,MAAM;YACb,UAAU,EAAE;gBACV,IAAI,UAAU,CAAC,IAAI,CAAC;oBAClB,QAAQ,EAAE,QAAQ;oBAClB,OAAO,EAAE,OAAO;iBACjB,CAAC;aACH;SACF,CAAC,CAAA;QAEF,OAAO;YACL,GAAG,EAAE,UAAU,GAAW;gBACxB,SAAS,CAAC,IAAI,CAAC;oBACb,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE,GAAG;iBACb,CAAC,CAAA;YACJ,CAAC;YAED,IAAI,EAAE,UAAU,GAAW;
|
|
1
|
+
{"version":3,"file":"winston-logger.js","sourceRoot":"","sources":["../../src/config/winston-logger.ts"],"names":[],"mappings":";;;AAEA,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC,CAAA;AAC/D,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,MAAM,CAAA;AAE7C,MAAa,aAAa;IAWxB,YAA6B,UAAe,aAAa,CAAC,cAAc,EAAE;QAA7C,YAAO,GAAP,OAAO,CAAsC;QACxE,IAAI,CAAC,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC,CAAA;IACxC,CAAC;IAEM,MAAM,CAAC,cAAc,CAAE,QAAgB,OAAO;QACnD,OAAO;YACL,MAAM,EAAE,OAAO,CACb,SAAS,EAAE,EACX,aAAa,CAAC,SAAS,CACxB;YACD,KAAK;YACL,UAAU,EAAE;gBACV,IAAI,UAAU,CAAC,OAAO,EAAE;aACzB;SACF,CAAA;IACH,CAAC;IAEM,MAAM,CAAC,WAAW,CAAE,QAAgB,EAAE,QAAgB,OAAO,EAAE,UAAkB,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE,SAAc,OAAO,CAC7H,SAAS,EAAE,EACX,aAAa,CAAC,SAAS,CACxB;QACC,OAAO;YACL,MAAM;YACN,KAAK;YACL,UAAU,EAAE;gBACV,IAAI,UAAU,CAAC,IAAI,CAAC;oBAClB,QAAQ,EAAE,QAAQ;oBAClB,OAAO,EAAE,OAAO;iBACjB,CAAC;aACH;SACF,CAAA;IACH,CAAC;IAEM,KAAK,CAAE,QAAgB,EAAE,UAAkB,EAAE,GAAG,IAAI,GAAG,IAAI;QAChE,MAAM,SAAS,GAAW,YAAY,CAAC;YACrC,MAAM,EAAE,aAAa,CAAC,WAAW;YACjC,KAAK,EAAE,MAAM;YACb,UAAU,EAAE;gBACV,IAAI,UAAU,CAAC,IAAI,CAAC;oBAClB,QAAQ,EAAE,QAAQ;oBAClB,OAAO,EAAE,OAAO;iBACjB,CAAC;aACH;SACF,CAAC,CAAA;QAEF,OAAO;YACL,GAAG,EAAE,UAAU,GAAW;gBACxB,SAAS,CAAC,IAAI,CAAC;oBACb,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE,GAAG;iBACb,CAAC,CAAA;YACJ,CAAC;YAED,IAAI,EAAE,UAAU,GAAW;gBACxB,IAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;YACxB,CAAC;YACD,KAAK,EAAE,UAAU,GAAW;gBACzB,IAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;YACxB,CAAC;YACD,OAAO,EAAE,UAAU,GAAW;gBAC3B,IAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;YACxB,CAAC;YACD,KAAK,EAAE;YAEP,CAAC;SACc,CAAA;IACnB,CAAC;IAEM,IAAI,CAAE,IAAY;QACvB,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAA;QAC7B,OAAO;YACL,IAAI,EAAE,UAAU,GAAW;gBACzB,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI;oBACJ,OAAO,EAAE,GAAG;iBACb,CAAC,CAAA;YACJ,CAAC;YACD,KAAK,EAAE,UAAU,GAAW;gBAC1B,MAAM,CAAC,KAAK,CAAC;oBACX,IAAI;oBACJ,OAAO,EAAE,GAAG;iBACb,CAAC,CAAA;YACJ,CAAC;YACD,OAAO,EAAE,UAAU,GAAW;gBAC5B,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI;oBACJ,OAAO,EAAE,GAAG;iBACb,CAAC,CAAA;YACJ,CAAC;YACD,KAAK,EAAE,UAAU,CAAQ;gBACvB,MAAM,CAAC,KAAK,CAAC;oBACX,IAAI;oBACJ,OAAO,EAAE,GAAG,CAAC,CAAC,OAAO,MAAM,CAAC,CAAC,KAAK,EAAE;iBACrC,CAAC,CAAA;YACJ,CAAC;SACc,CAAA;IACnB,CAAC;;AA3GH,sCA4GC;AA3GwB,uBAAS,GAAG,MAAM,CAAC,CAAC,IAAS,EAAE,EAAE;IACtD,OAAO,GAAG,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,OAAO,EAAE,CAAA;AAC1E,CAAC,CAAC,CAAA;AAEqB,yBAAW,GAAG,MAAM,CAAC,CAAC,IAAS,EAAE,EAAE;IACxD,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,CAAA;AAC1B,CAAC,CAAC,CAAA","sourcesContent":["import { IJsFixLogger } from './js-fix-logger'\nimport { Logger } from 'winston'\nconst { createLogger, format, transports } = require('winston')\nconst { combine, timestamp, printf } = format\n\nexport class WinstonLogger {\n public static readonly appFormat = printf((info: any) => {\n return `${info.timestamp} [${info.type}] ${info.level}: ${info.message}`\n })\n\n public static readonly plainFormat = printf((info: any) => {\n return `${info.message}`\n })\n\n private readonly appLogger: Logger\n\n constructor (public readonly options: any = WinstonLogger.consoleOptions()) {\n this.appLogger = createLogger(options)\n }\n\n public static consoleOptions (level: string = 'debug'): any {\n return {\n format: combine(\n timestamp(),\n WinstonLogger.appFormat\n ),\n level,\n transports: [\n new transports.Console()\n ]\n }\n }\n\n public static fileOptions (fileName: string, level: string = 'debug', maxSize: number = 50 * 1024 * 1024, format: any = combine(\n timestamp(),\n WinstonLogger.appFormat\n )): any {\n return {\n format,\n level,\n transports: [\n new transports.File({\n filename: fileName,\n maxsize: maxSize\n })\n ]\n }\n }\n\n public plain (fileName: string, maxSize: number = 10 * 1024 * 1024): IJsFixLogger {\n const txtLogger: Logger = createLogger({\n format: WinstonLogger.plainFormat,\n level: 'info',\n transports: [\n new transports.File({\n filename: fileName,\n maxsize: maxSize\n })\n ]\n })\n\n return {\n log: function (txt: string) {\n txtLogger.info({\n type: 'info',\n message: txt\n })\n },\n\n info: function (msg: string): void {\n (this as any).log(msg)\n },\n debug: function (msg: string): void {\n (this as any).log(msg)\n },\n warning: function (msg: string): void {\n (this as any).log(msg)\n },\n error: function (): void {\n // nothing\n }\n } as IJsFixLogger\n }\n\n public make (type: string): IJsFixLogger {\n const logger = this.appLogger\n return {\n info: function (msg: string): void {\n logger.info({\n type,\n message: msg\n })\n },\n debug: function (msg: string): void {\n logger.debug({\n type,\n message: msg\n })\n },\n warning: function (msg: string): void {\n logger.warn({\n type,\n message: msg\n })\n },\n error: function (e: Error): void {\n logger.error({\n type,\n message: `${e.message} : ${e.stack}`\n })\n }\n } as IJsFixLogger\n }\n}\n"]}
|
package/dist/dict-parser.js
CHANGED
|
@@ -1,4 +1,37 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
2
35
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
36
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
37
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -9,7 +42,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
9
42
|
});
|
|
10
43
|
};
|
|
11
44
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
const path = require("path");
|
|
45
|
+
const path = __importStar(require("path"));
|
|
13
46
|
const util_1 = require("./util");
|
|
14
47
|
const buffer_1 = require("./buffer");
|
|
15
48
|
const ascii_1 = require("./buffer/ascii");
|
package/dist/dict-parser.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dict-parser.js","sourceRoot":"","sources":["../src/dict-parser.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,6BAA4B;AAE5B,iCAAkF;AAClF,qCAA4D;AAC5D,0CAAmE;AACnE,0CAA0D;AAE1D,2CAA2E;AAE3E,mCAAiC;AACjC,qCAA2F;AAC3F,mDAAiF;AACjF,6CAA4C;AAC5C,oDAAoF;AACpF,mFAA6E;AAE7E,SAAe,gBAAgB;;;QAC7B,MAAM,OAAO,GAAW,GAAG,CAAA;QAC3B,MAAM,IAAI,GAAW,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAA;QAChD,MAAM,kBAAkB,GAAwB,OAAO,CAAC,qCAAqC,CAAC,CAAA;QAC9F,MAAM,WAAW,GAAG,MAAM,IAAI,wBAAiB,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,MAAA,MAAA,kBAAkB,CAAC,WAAW,0CAAE,UAAU,mCAAI,EAAE,CAAC,CAAC,CAAA;QACnI,MAAM,EAAE,GAAe,IAAI,iBAAU,CAAC,WAAW,CAAC,CAAA;QAClD,MAAM,GAAG,GAAiB,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,mEAAmE,CAAC,EAAE,OAAO,CAAC,CAAA;QACpI,MAAM,MAAM,GAAG,IAAI,oBAAW,CAAC,IAAI,EAAE,WAAW,EAAE,kBAAkB,EAAE,kBAAU,CAAC,IAAI,CAAC,CAAA;QACtF,MAAM,OAAO,GAAwB,IAAI,2CAAmB,CAAC,MAAM,CAAC,CAAA;QACpE,MAAM,OAAO,GAAe,IAAI,sBAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;QACxD,MAAM,aAAa,GAAG,OAAO,CAAC,YAAY,CAAA;QAC1C,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QAC5B,OAAO,CAAC,aAAa,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;QACnC,MAAM,MAAM,GAAc,IAAI,mBAAW,CAAC,MAAM,EAAE,aAAa,EAAE,IAAI,sBAAa,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,CAAA;QAC/F,MAAM,GAAG,GAAW,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAA;QAC7C,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAChB,OAAO,MAAM,IAAI,OAAO,CAAC,CAAO,OAAO,EAAE,MAAM,EAAE,EAAE;YACjD,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,OAAe,EAAE,IAAe,EAAE,EAAE;gBACpD,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAA;YAC1B,CAAC,CAAC,CAAA;YACF,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAQ,EAAE,EAAE;gBAC9B,MAAM,CAAC,CAAC,CAAC,CAAA;YACX,CAAC,CAAC,CAAA;QACJ,CAAC,CAAA,CAAC,CAAA;IACJ,CAAC;CAAA;AAED,SAAe,aAAa;;QAC1B,MAAM,IAAI,GAAW,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAA;QAChD,MAAM,kBAAkB,GAAwB,OAAO,CAAC,qCAAqC,CAAC,CAAA;QAC9F,MAAM,WAAW,GAAG,MAAM,IAAI,wBAAiB,EAAE,CAAC,cAAc,CAAC,0DAA0D,CAAC,CAAA;QAC5H,MAAM,MAAM,GAAa,MAAM,IAAA,eAAQ,EAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,0BAA0B,CAAC,CAAC,CAAA;QACpF,MAAM,SAAS,GAAqB,IAAI,uBAAgB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;QAC7E,MAAM,OAAO,GAAW,eAAO,CAAC,cAAc,CAAA;QAC9C,MAAM,OAAO,GAAiB,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;QACzD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;QAC7C,MAAM,MAAM,GAAiB,IAAI,oBAAW,CAAC,IAAI,EAAE,WAAW,EAAE,kBAAkB,EAAE,kBAAU,CAAC,IAAI,CAAC,CAAA;QACpG,MAAM,OAAO,GAAwB,IAAI,2CAAmB,CAAC,MAAM,CAAC,CAAA;QACpE,OAAO,CAAC,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;QACvC,MAAM,GAAG,GAAW,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAA;QAC7C,MAAM,aAAa,GAAG,OAAO,CAAC,YAAY,CAAA;QAC1C,MAAM,OAAO,GAAe,IAAI,sBAAU,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;QAC5D,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QAC5B,MAAM,MAAM,GAAc,IAAI,mBAAW,CAAC,MAAM,EAAE,aAAa,EAAE,IAAI,sBAAa,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,CAAA;QAC/F,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,EAAU,EAAE,IAAa,EAAE,EAAE;YAC7C,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAA;QAC9B,CAAC,CAAC,CAAA;QACF,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IAClB,CAAC;CAAA;AAcD,SAAe,UAAU;;QACvB,MAAM,IAAI,GAAW,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAA;QAChD,MAAM,WAAW,GAAmB,MAAM,IAAI,wBAAiB,EAAE,CAAC,cAAc,CAAC,WAAW,CAAC,CAAA;QAK7F,MAAM,IAAI,GAAW,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,2DAA2D,CAAC,CAAA;QASjG,MAAM,EAAE,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;QACrD,MAAM,IAAI,GAAG,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAA;QAEvD,MAAM,MAAM,GAAG;YACb,IAAI,EAAE,aAAa;YACnB,oBAAoB,EAAE,iCAAoB,CAAC,uBAAuB;SACzC,CAAA;QAC3B,MAAM,EAAE,GAAG,IAAI,oBAAY,CAAC,IAAI,sBAAa,EAAE,EAAE,WAAW,CAAC,CAAA;QAC7D,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAA;QAC1C,MAAM,KAAK,GAAW,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAA;QAE1C,MAAM,EAAE,GAAe,IAAI,iBAAU,CAAC,WAAW,CAAC,CAAA;QAClD,MAAM,EAAE,GAAQ,OAAO,CAAC,IAAI,CAAC,CAAA;QAC7B,MAAM,UAAU,GAAe,EAAE,CAAC,gBAAgB,CAAC,GAAG,IAAI,UAAU,CAAC,CAAA;QACrE,MAAM,kBAAkB,GAAwB,OAAO,CAAC,qCAAqC,CAAC,CAAA;QAC9F,MAAM,MAAM,GAAG,IAAI,oBAAW,CAAC,IAAI,EAAE,WAAW,EAAE,kBAAkB,EAAE,kBAAU,CAAC,IAAI,CAAC,CAAA;QACtF,MAAM,SAAS,GAAc,IAAI,mBAAW,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;QAChE,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,OAAe,EAAE,CAAU,EAAE,EAAE;YACpD,OAAO,CAAC,GAAG,CAAC,oBAAoB,OAAO,EAAE,CAAC,CAAA;YAC1C,MAAM,CAAC,GAAiB,CAAC,CAAC,QAAQ,EAAkB,CAAA;YACpD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;YACvC,MAAM,EAAE,GAAG,IAAI,oBAAY,CAAC,IAAI,sBAAa,EAAE,EAAE,WAAW,CAAC,CAAA;YAC7D,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,CAAA;YACrB,MAAM,KAAK,GAAW,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAA;YAC1C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;YAClB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAA;QAC3B,CAAC,CAAC,CAAA;QACF,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,OAAe,EAAE,CAAU,EAAE,EAAE;YAClD,OAAO,CAAC,GAAG,CAAC,oBAAoB,OAAO,EAAE,CAAC,CAAA;YAC1C,MAAM,CAAC,GAAiB,CAAC,CAAC,QAAQ,EAAkB,CAAA;YACpD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;YACvC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAA;YACzB,MAAM,EAAE,GAAG,IAAI,oBAAY,CAAC,IAAI,sBAAa,EAAE,EAAE,WAAW,CAAC,CAAA;YAC7D,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,CAAA;YACrB,MAAM,KAAK,GAAW,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAA;YAC1C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QACpB,CAAC,CAAC,CAAA;IACJ,CAAC;CAAA;AAED,SAAe,OAAO;;QACpB,OAAO,MAAM,IAAI,OAAO,CAAM,CAAO,OAAO,EAAE,MAAM,EAAE,EAAE;YACtD,IAAI,CAAC;gBACH,MAAM,GAAG,GAAQ,MAAM,aAAa,EAAE,CAAA;gBACtC,OAAO,CAAC,GAAG,CAAC,CAAA;YACd,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;gBACtB,MAAM,CAAC,CAAC,CAAC,CAAA;YACX,CAAC;QACH,CAAC,CAAA,CAAC,CAAA;IACJ,CAAC;CAAA;AAED,SAAe,kBAAkB,CAAE,cAAsB,EAAE,UAAkB;;QAC3E,MAAM,WAAW,GAAG,MAAM,IAAI,wBAAiB,EAAE,CAAC,cAAc,CAAC,cAAc,CAAC,CAAA;QAChF,MAAM,gBAAgB,GAAsB,OAAO,CAAC,uBAAuB,CAAC,CAAA;QAC5E,gBAAgB,CAAC,MAAM,GAAG,UAAU,CAAA;QACpC,MAAM,WAAW,GAAgB,IAAI,sBAAW,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAA;QAC/E,MAAM,WAAW,CAAC,QAAQ,EAAE,CAAA;QAC5B,MAAM,YAAY,GAAiB,IAAI,uBAAY,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAA;QAClF,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAA;QAC1E,MAAM,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA;QAEtC,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAA;QAC/E,MAAM,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA;IACxC,CAAC;CAAA;AAED,SAAe,QAAQ;;QAIrB,MAAM,kBAAkB,CAAC,4CAA4C,EAAE,oDAAoD,CAAC,CAAA;IAC9H,CAAC;CAAA;AAED,SAAe,eAAe;;QAC5B,MAAM,aAAa,EAAE,CAAA;IACvB,CAAC;CAAA;AAED,SAAe,MAAM;;QACnB,MAAM,WAAW,GAAmB,MAAM,IAAI,wBAAiB,EAAE,CAAC,cAAc,CAAC,4BAA4B,CAAC,CAAA;QAC9G,MAAM,GAAG,GAAG,sgCAAsgC,CAAA;QAClhC,MAAM,QAAQ,GAAS,IAAI,IAAI,EAAE,CAAA;QACjC,MAAM,kBAAkB,GAAwB,OAAO,CAAC,qCAAqC,CAAC,CAAA;QAC9F,MAAM,MAAM,GAAG,IAAI,oBAAW,CAAC,IAAI,EAAE,WAAW,EAAE,kBAAkB,EAAE,kBAAU,CAAC,IAAI,CAAC,CAAA;QACtF,IAAI,CAAC,GAAG,CAAC,CAAA;QACT,MAAM,OAAO,GAAG,CAAC,CAAA;QACjB,MAAM,WAAW,GAAc,IAAI,mBAAW,CAAC,MAAM,EAAE,IAAI,wBAAY,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE,IAAI,sBAAa,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,CAAA;QACrI,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,OAAe,EAAE,CAAU,EAAE,EAAE;YACpD,EAAE,CAAC,CAAA;YACH,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAA;YACvB,IAAI,CAAC,KAAK,OAAO,EAAE,CAAC;gBAClB,MAAM,OAAO,GAAW,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAA;gBACjE,OAAO,CAAC,GAAG,CAAC,cAAc,OAAO,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,GAAG,IAAI,iBAAiB,CAAC,CAAA;YACnF,CAAC;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;CAAA;AAED,SAAe,IAAI;;;QACjB,MAAM,kBAAkB,GAAwB,OAAO,CAAC,yCAAyC,CAAC,CAAA;QAClG,MAAM,WAAW,GAAG,MAAM,IAAI,wBAAiB,EAAE,CAAC,cAAc,CAAC,MAAA,MAAA,kBAAkB,CAAC,WAAW,0CAAE,UAAU,mCAAI,EAAE,CAAC,CAAA;QAClH,MAAM,UAAU,GAAG,IAAI,+BAAsB,CAAC,sBAAa,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAA;QACnF,MAAM,MAAM,GAAG,IAAI,oBAAW,CAAC,IAAI,EAAE,WAAW,EAAE,kBAAkB,EAAE,kBAAU,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;QAElG,MAAM,GAAG,GAAG,0CAA0C;YACpD,2DAA2D;YAC3D,4FAA4F;YAC5F,mEAAmE;YACnE,kBAAkB;YAClB,UAAU,CAAA;QAEZ,EAAE,CAAC;YACD,MAAM,EAAE,MAAM;YACd,GAAG,EAAE,+BAA+B;YACpC,IAAI,EAAE;gBACJ,KAAK,EAAE,GAAG;aACX;YACD,IAAI,EAAE,IAAI;SACX,CAAC,CAAC,IAAI,CAAC,UAAU,UAAU;YAC1B,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;QAEzB,CAAC,CAAC;aACC,KAAK,CAAC,CAAC,GAAU,EAAE,EAAE;YACpB,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAElB,CAAC,CAAC,CAAA;IACN,CAAC;CAAA;AASD,UAAU,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;IACpC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;AAClB,CAAC,CAAC,CAAA","sourcesContent":["import * as path from 'path'\nimport { ILooseObject } from './collections/collection'\nimport { MessageGenerator, JsonHelper, getWords, DefinitionFactory } from './util'\nimport { MsgView, MsgParser, ElasticBuffer } from './buffer'\nimport { AsciiChars, AsciiParser, AsciiView } from './buffer/ascii'\nimport { FiXmlParser, FixmlEncoder } from './buffer/fixml'\nimport { ReadStream } from 'fs'\nimport { ISessionDescription, StringDuplex, MsgPayload } from './transport'\nimport { FixDefinitions } from './dictionary/definition'\nimport { MsgType } from './types'\nimport { JsFixWinstonLogFactory, JsFixConfig, WinstonLogger, IJsFixConfig } from './config'\nimport { BusinessRejectReason, IBusinessMessageReject } from './types/FIXML50SP2'\nimport * as rp from 'request-promise-native'\nimport { EnumCompiler, ICompilerSettings, MsgCompiler } from './dictionary/compiler'\nimport { AsciiMsgTransmitter } from './transport/ascii/ascii-msg-transmitter'\n\nasync function testEncodeDecode (): Promise<any> {\n const msgType: string = 'W'\n const root: string = path.join(__dirname, '../')\n const sessionDescription: ISessionDescription = require('../data/session/test-initiator.json')\n const definitions = await new DefinitionFactory().getDefinitions(path.join(root, sessionDescription.application?.dictionary ?? ''))\n const jh: JsonHelper = new JsonHelper(definitions)\n const msg: ILooseObject = jh.fromJson(path.join(root, 'data/examples/FIXML/cme/tc/Initial Single Side Submission/fix.xml'), msgType)\n const config = new JsFixConfig(null, definitions, sessionDescription, AsciiChars.Pipe)\n const session: AsciiMsgTransmitter = new AsciiMsgTransmitter(config)\n const payload: MsgPayload = new MsgPayload(msgType, msg)\n const encoderStream = session.encodeStream\n encoderStream.write(payload)\n session.encodeMessage(msgType, msg)\n const parser: MsgParser = new AsciiParser(config, encoderStream, new ElasticBuffer(160 * 1024))\n const fix: string = session.buffer.toString()\n console.log(fix)\n return await new Promise(async (resolve, reject) => {\n parser.on('msg', (msgType: string, view: AsciiView) => {\n resolve(view.toObject())\n })\n parser.on('error', (e: Error) => {\n reject(e)\n })\n })\n}\n\nasync function testGenerator (): Promise<any> {\n const root: string = path.join(__dirname, '../')\n const sessionDescription: ISessionDescription = require('../data/session/test-initiator.json')\n const definitions = await new DefinitionFactory().getDefinitions('C:/Users/Stephen/dev/ts/jsfix/data/fix_repo/FIX.4.4/Base')\n const lipsum: string[] = await getWords(path.join(root, 'data/examples/lipsum.txt'))\n const generator: MessageGenerator = new MessageGenerator(lipsum, definitions)\n const msgType: string = MsgType.NewOrderSingle\n const example: ILooseObject = generator.generate(msgType)\n console.log(JSON.stringify(example, null, 4))\n const config: IJsFixConfig = new JsFixConfig(null, definitions, sessionDescription, AsciiChars.Pipe)\n const session: AsciiMsgTransmitter = new AsciiMsgTransmitter(config)\n session.encodeMessage(msgType, example)\n const fix: string = session.buffer.toString()\n const encoderStream = session.encodeStream\n const payload: MsgPayload = new MsgPayload(msgType, example)\n encoderStream.write(payload)\n const parser: MsgParser = new AsciiParser(config, encoderStream, new ElasticBuffer(160 * 1024))\n parser.on('msg', (mt: string, view: MsgView) => {\n console.log(view.toString())\n })\n console.log(fix)\n}\n\n/*\nfix.xml\nClearing System Confirms Allocation to Executing Firm.xml\nClearing System Confirms Allocation to CME Executing Firm_Cross-exchange.xml\nClearing System Confirms Completed Reversal to Executing Firm.xml\nClearing System Notifies Allocation to the Claiming Firm.xml\nfix.xml\nClearing System Notifies Claiming Firm of Completed Reversal.xml\nClearing System Notifies Executing Firm of Alleged Reversal.xml\nExecuting Firm Un-completes Group-Average_Price.xml\nExecuting Firm Marks a Trade for Give-up.xml\n */\nasync function repository (): Promise<any> {\n const root: string = path.join(__dirname, '../')\n const definitions: FixDefinitions = await new DefinitionFactory().getDefinitions('repofixml')\n // cme/alloc/Clearing System Notifies Allocation to the Claiming Firm - Cross-Exchange\n // const file: string = path.join(root,'data/examples/FIXML/cme/alloc/Claiming Firm Requests Sub-allocation with Allocation Instructions/')\n // const file: string = path.join(root,'data/examples/FIXML/cme/md/settle')\n // const file: string = path.join(root, 'data/examples/FIXML/cme/alloc/Clearing System Notifies Allocation to the Claiming Firm - Cross-Exchange/')\n const file: string = path.join(root, 'data/examples/FIXML/cme/tc/Delivery Fixed Commodity Swap/')\n // const file: string = path.join(root, 'data/examples/FIXML/cme/tc/Trading Firm Continued Subscription')\n // const file: string = path.join(root,'data/examples/FIXML/cme/md/futures')\n // const file: string = path.join(root, 'data/examples/FIXML/cme/tc/Delivery Fixed Commodity Swap')\n // const file: string = path.join(root, 'data/examples/FIXML/cme/tc/Initial Single Side Submission/')\n // const file: string = path.join(root, 'data/examples/FIXML/cme/tc/Accepted Unmatched')\n // const file: string = path.join(root, 'data/examples/FIXML/cme/tc/Trading Firm Continued Subscription/')\n // const file: string = path.join(root, 'data/examples/FIXML/om/nso/')\n // const file: string = path.join(root, 'data/examples/FIXML/om/er/')\n const so = definitions.message.get('ExecutionReport')\n const t855 = definitions.simple.get('SecondaryTrdType')\n\n const reject = {\n Text: 'no response',\n BusinessRejectReason: BusinessRejectReason.ApplicationNotAvailable\n } as IBusinessMessageReject\n const fe = new FixmlEncoder(new ElasticBuffer(), definitions)\n fe.encode(reject, 'BusinessMessageReject')\n const fixml: string = fe.buffer.toString()\n // console.log(fixml)\n const jh: JsonHelper = new JsonHelper(definitions)\n const fs: any = require('fs')\n const readStream: ReadStream = fs.createReadStream(`${file}/fix.xml`)\n const sessionDescription: ISessionDescription = require('../data/session/test-initiator.json')\n const config = new JsFixConfig(null, definitions, sessionDescription, AsciiChars.Pipe)\n const xmlParser: MsgParser = new FiXmlParser(config, readStream)\n xmlParser.on('batch', (msgType: string, v: MsgView) => {\n console.log(`received message ${msgType}`)\n const o: ILooseObject = v.toObject() as ILooseObject\n console.log(JSON.stringify(o, null, 4))\n const fe = new FixmlEncoder(new ElasticBuffer(), definitions)\n fe.encode(o, msgType)\n const fixml: string = fe.buffer.toString()\n console.log(fixml)\n console.log(v.toString())\n })\n xmlParser.on('msg', (msgType: string, v: MsgView) => {\n console.log(`received message ${msgType}`)\n const o: ILooseObject = v.toObject() as ILooseObject\n console.log(JSON.stringify(o, null, 4))\n console.log(v.toString())\n const fe = new FixmlEncoder(new ElasticBuffer(), definitions)\n fe.encode(o, msgType)\n const fixml: string = fe.buffer.toString()\n console.log(fixml)\n })\n}\n\nasync function runTest (): Promise<any> {\n return await new Promise<any>(async (resolve, reject) => {\n try {\n const res: any = await testGenerator()\n resolve(res)\n } catch (e) {\n console.log(e.message)\n reject(e)\n }\n })\n}\n\nasync function compileDefinitions (definitionPath: string, outputPath: string): Promise<void> {\n const definitions = await new DefinitionFactory().getDefinitions(definitionPath)\n const compilerSettings: ICompilerSettings = require('../data/compiler.json')\n compilerSettings.output = outputPath\n const msgCompiler: MsgCompiler = new MsgCompiler(definitions, compilerSettings)\n await msgCompiler.generate()\n const enumCompiler: EnumCompiler = new EnumCompiler(definitions, compilerSettings)\n const writeFile = path.join(compilerSettings.output, './enum/all-enum.ts')\n await enumCompiler.generate(writeFile)\n\n const writeFileTypes = path.join(compilerSettings.output, './enum/msg-type.ts')\n await enumCompiler.generate(writeFile)\n}\n\nasync function compiler (): Promise<void> {\n // 'C:/Users/Stephen/dev/js/jsfix/data/fix_repo/fixmlschema_FIX.5.0SP2_EP228'\n // await compileDefinitions('data/fix_repo/FIX.4.4/Base', 'C:/Users/Stephen/dev/ts/jsfix/src/types/FIX4.4/repo')\n // await compileDefinitions('data/FIX44.xml', 'C:/Users/Stephen/dev/ts/jsfix/src/types/FIX4.4/quickfix')\n await compileDefinitions('data/fix_repo/fixmlschema_FIX.5.0SP2_EP228', 'C:/Users/Stephen/dev/ts/jsfix/src/types/FIXML50SP2')\n}\n\nasync function generateMessage (): Promise<void> {\n await testGenerator()\n}\n\nasync function decode (): Promise<any> {\n const definitions: FixDefinitions = await new DefinitionFactory().getDefinitions('data/fix_repo/FIX.4.4/Base')\n const txt = '8=FIX4.4|9=0001022|35=AE|49=init-comp|56=accept-comp|34=1|57=fix|52=20180909-14:22:09.841|571=Lorem|487=23513|856=1|568=ipsum|828=6|855=23619|830=dolor|150=F|748=17140|912=N|325=N|263=1|881=sit|818=amet,|820=consectetur|880=adipiscing|17=elit.|39=3|527=Nunc|570=N|423=8|55=odio|65=orci,|48=blandit|22=3|460=4|461=vel|167=MPT|762=semper|200=sed,|541=20180909|201=0|224=20180909|225=20180909|227=-8796.1|228=-23.537|255=bibendum|543=cursus|470=lectus.|471=Aenean|472=vel|240=20180909|202=891.7|947=-2928.1|231=5.7237|223=-1894.1|106=diam|348=9|349=6YYz0zu5s|350=8|351=TuH3tTNd|691=magna.|667=Aenean|875=99|876=et|873=20180909|874=20180909|913=viverra|914=leo,|915=20180909|916=20180909|919=0|898=0.5594|38=96682|152=19226|516=9.1251|854=0|235=PREVCLOSE|236=-2833.5|701=20180909|696=20180909|697=-6.095|698=26303|823=non|32=9253|31=2065.4|194=-73.233|30=iaculis|75=20180909|715=20180909|6=5.9279|218=0.0001953|221=neque.|222=Nullam|663=16216|699=arcu|761=lectus,|824=dignissim|63=3|64=20180909|573=0|574=M3|797=Y|852=Y|853=3|10=16|'\n const startsAt: Date = new Date()\n const sessionDescription: ISessionDescription = require('../data/session/test-initiator.json')\n const config = new JsFixConfig(null, definitions, sessionDescription, AsciiChars.Pipe)\n let i = 0\n const repeats = 1\n const asciiParser: MsgParser = new AsciiParser(config, new StringDuplex(txt.repeat(repeats)).readable, new ElasticBuffer(160 * 1024))\n asciiParser.on('msg', (msgType: string, v: MsgView) => {\n ++i\n console.log(v.toJson())\n if (i === repeats) {\n const elapsed: number = new Date().getTime() - startsAt.getTime()\n console.log(`elapsed ms ${elapsed} ${(elapsed / repeats) * 1000} micros per msg`)\n }\n })\n}\n\nasync function http (): Promise<any> {\n const sessionDescription: ISessionDescription = require('../data/session/test-http-acceptor.json')\n const definitions = await new DefinitionFactory().getDefinitions(sessionDescription.application?.dictionary ?? '')\n const logFactory = new JsFixWinstonLogFactory(WinstonLogger.consoleOptions('info'))\n const config = new JsFixConfig(null, definitions, sessionDescription, AsciiChars.Pipe, logFactory)\n // const acceptor = acceptor(config)\n const xml = '<?xml version=\"1.0\" encoding=\"UTF-8\"?>\\n' +\n '<FIXML v=\"5.0 SP2\" s=\"20090815\" xv=\"109\" cv=\"CME.0001\">\\n' +\n ' <UserReq UserReqID=\"123456\" UserReqTyp=\"1\" Username=\"user123\" Password=\"User!Pass5\">\\n' +\n ' <Hdr SID=\"BRKR\" SSub=\"user123\" TID=\"CME\" TSub=\"CPAPI\"/>\\n' +\n ' </UserReq>\\n' +\n '</FIXML>'\n // acceptor.listen()\n rp({\n method: 'POST',\n uri: 'http://localhost:2343/session',\n body: {\n fixml: xml\n },\n json: true // Automatically stringifies the body to JSON\n }).then(function (parsedBody) {\n console.log(parsedBody)\n // POST succeeded...\n })\n .catch((err: Error) => {\n console.log(err)\n // POST failed...\n })\n}\n\n// http()\n// decode()\n// generateMessage()\n// compiler()\n// stronglyTyped()\n// streamExample()\n// testEncodeDecode()\nrepository().then(() => {}).catch(e => {\n console.error(e)\n})\n// testEncodeDecode()\n// runTest();\n// testSocket()\n// testRead();\n"]}
|
|
1
|
+
{"version":3,"file":"dict-parser.js","sourceRoot":"","sources":["../src/dict-parser.ts"],"names":[],"mappings":"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","sourcesContent":["import * as path from 'path'\nimport { ILooseObject } from './collections/collection'\nimport { MessageGenerator, JsonHelper, getWords, DefinitionFactory } from './util'\nimport { MsgView, MsgParser, ElasticBuffer } from './buffer'\nimport { AsciiChars, AsciiParser, AsciiView } from './buffer/ascii'\nimport { FiXmlParser, FixmlEncoder } from './buffer/fixml'\nimport { ReadStream } from 'fs'\nimport { ISessionDescription, StringDuplex, MsgPayload } from './transport'\nimport { FixDefinitions } from './dictionary/definition'\nimport { MsgType } from './types'\nimport { JsFixWinstonLogFactory, JsFixConfig, WinstonLogger, IJsFixConfig } from './config'\nimport { BusinessRejectReason, IBusinessMessageReject } from './types/FIXML50SP2'\nimport rp = require('request-promise-native')\nimport { EnumCompiler, ICompilerSettings, MsgCompiler } from './dictionary/compiler'\nimport { AsciiMsgTransmitter } from './transport/ascii/ascii-msg-transmitter'\n\nasync function testEncodeDecode (): Promise<any> {\n const msgType: string = 'W'\n const root: string = path.join(__dirname, '../')\n const sessionDescription: ISessionDescription = require('../data/session/test-initiator.json')\n const definitions = await new DefinitionFactory().getDefinitions(path.join(root, sessionDescription.application?.dictionary ?? ''))\n const jh: JsonHelper = new JsonHelper(definitions)\n const msg: ILooseObject = jh.fromJson(path.join(root, 'data/examples/FIXML/cme/tc/Initial Single Side Submission/fix.xml'), msgType)\n const config = new JsFixConfig(null, definitions, sessionDescription, AsciiChars.Pipe)\n const session: AsciiMsgTransmitter = new AsciiMsgTransmitter(config)\n const payload: MsgPayload = new MsgPayload(msgType, msg)\n const encoderStream = session.encodeStream\n encoderStream.write(payload)\n session.encodeMessage(msgType, msg)\n const parser: MsgParser = new AsciiParser(config, encoderStream, new ElasticBuffer(160 * 1024))\n const fix: string = session.buffer.toString()\n console.log(fix)\n return await new Promise(async (resolve, reject) => {\n parser.on('msg', (msgType: string, view: AsciiView) => {\n resolve(view.toObject())\n })\n parser.on('error', (e: Error) => {\n reject(e)\n })\n })\n}\n\nasync function testGenerator (): Promise<any> {\n const root: string = path.join(__dirname, '../')\n const sessionDescription: ISessionDescription = require('../data/session/test-initiator.json')\n const definitions = await new DefinitionFactory().getDefinitions('C:/Users/Stephen/dev/ts/jsfix/data/fix_repo/FIX.4.4/Base')\n const lipsum: string[] = await getWords(path.join(root, 'data/examples/lipsum.txt'))\n const generator: MessageGenerator = new MessageGenerator(lipsum, definitions)\n const msgType: string = MsgType.NewOrderSingle\n const example: ILooseObject = generator.generate(msgType)\n console.log(JSON.stringify(example, null, 4))\n const config: IJsFixConfig = new JsFixConfig(null, definitions, sessionDescription, AsciiChars.Pipe)\n const session: AsciiMsgTransmitter = new AsciiMsgTransmitter(config)\n session.encodeMessage(msgType, example)\n const fix: string = session.buffer.toString()\n const encoderStream = session.encodeStream\n const payload: MsgPayload = new MsgPayload(msgType, example)\n encoderStream.write(payload)\n const parser: MsgParser = new AsciiParser(config, encoderStream, new ElasticBuffer(160 * 1024))\n parser.on('msg', (mt: string, view: MsgView) => {\n console.log(view.toString())\n })\n console.log(fix)\n}\n\n/*\nfix.xml\nClearing System Confirms Allocation to Executing Firm.xml\nClearing System Confirms Allocation to CME Executing Firm_Cross-exchange.xml\nClearing System Confirms Completed Reversal to Executing Firm.xml\nClearing System Notifies Allocation to the Claiming Firm.xml\nfix.xml\nClearing System Notifies Claiming Firm of Completed Reversal.xml\nClearing System Notifies Executing Firm of Alleged Reversal.xml\nExecuting Firm Un-completes Group-Average_Price.xml\nExecuting Firm Marks a Trade for Give-up.xml\n */\nasync function repository (): Promise<any> {\n const root: string = path.join(__dirname, '../')\n const definitions: FixDefinitions = await new DefinitionFactory().getDefinitions('repofixml')\n // cme/alloc/Clearing System Notifies Allocation to the Claiming Firm - Cross-Exchange\n // const file: string = path.join(root,'data/examples/FIXML/cme/alloc/Claiming Firm Requests Sub-allocation with Allocation Instructions/')\n // const file: string = path.join(root,'data/examples/FIXML/cme/md/settle')\n // const file: string = path.join(root, 'data/examples/FIXML/cme/alloc/Clearing System Notifies Allocation to the Claiming Firm - Cross-Exchange/')\n const file: string = path.join(root, 'data/examples/FIXML/cme/tc/Delivery Fixed Commodity Swap/')\n // const file: string = path.join(root, 'data/examples/FIXML/cme/tc/Trading Firm Continued Subscription')\n // const file: string = path.join(root,'data/examples/FIXML/cme/md/futures')\n // const file: string = path.join(root, 'data/examples/FIXML/cme/tc/Delivery Fixed Commodity Swap')\n // const file: string = path.join(root, 'data/examples/FIXML/cme/tc/Initial Single Side Submission/')\n // const file: string = path.join(root, 'data/examples/FIXML/cme/tc/Accepted Unmatched')\n // const file: string = path.join(root, 'data/examples/FIXML/cme/tc/Trading Firm Continued Subscription/')\n // const file: string = path.join(root, 'data/examples/FIXML/om/nso/')\n // const file: string = path.join(root, 'data/examples/FIXML/om/er/')\n const so = definitions.message.get('ExecutionReport')\n const t855 = definitions.simple.get('SecondaryTrdType')\n\n const reject = {\n Text: 'no response',\n BusinessRejectReason: BusinessRejectReason.ApplicationNotAvailable\n } as IBusinessMessageReject\n const fe = new FixmlEncoder(new ElasticBuffer(), definitions)\n fe.encode(reject, 'BusinessMessageReject')\n const fixml: string = fe.buffer.toString()\n // console.log(fixml)\n const jh: JsonHelper = new JsonHelper(definitions)\n const fs: any = require('fs')\n const readStream: ReadStream = fs.createReadStream(`${file}/fix.xml`)\n const sessionDescription: ISessionDescription = require('../data/session/test-initiator.json')\n const config = new JsFixConfig(null, definitions, sessionDescription, AsciiChars.Pipe)\n const xmlParser: MsgParser = new FiXmlParser(config, readStream)\n xmlParser.on('batch', (msgType: string, v: MsgView) => {\n console.log(`received message ${msgType}`)\n const o: ILooseObject = v.toObject() as ILooseObject\n console.log(JSON.stringify(o, null, 4))\n const fe = new FixmlEncoder(new ElasticBuffer(), definitions)\n fe.encode(o, msgType)\n const fixml: string = fe.buffer.toString()\n console.log(fixml)\n console.log(v.toString())\n })\n xmlParser.on('msg', (msgType: string, v: MsgView) => {\n console.log(`received message ${msgType}`)\n const o: ILooseObject = v.toObject() as ILooseObject\n console.log(JSON.stringify(o, null, 4))\n console.log(v.toString())\n const fe = new FixmlEncoder(new ElasticBuffer(), definitions)\n fe.encode(o, msgType)\n const fixml: string = fe.buffer.toString()\n console.log(fixml)\n })\n}\n\nasync function runTest (): Promise<any> {\n return await new Promise<any>(async (resolve, reject) => {\n try {\n const res: any = await testGenerator()\n resolve(res)\n } catch (e: any) {\n console.log(e.message)\n reject(e)\n }\n })\n}\n\nasync function compileDefinitions (definitionPath: string, outputPath: string): Promise<void> {\n const definitions = await new DefinitionFactory().getDefinitions(definitionPath)\n const compilerSettings: ICompilerSettings = require('../data/compiler.json')\n compilerSettings.output = outputPath\n const msgCompiler: MsgCompiler = new MsgCompiler(definitions, compilerSettings)\n await msgCompiler.generate()\n const enumCompiler: EnumCompiler = new EnumCompiler(definitions, compilerSettings)\n const writeFile = path.join(compilerSettings.output, './enum/all-enum.ts')\n await enumCompiler.generate(writeFile)\n\n const writeFileTypes = path.join(compilerSettings.output, './enum/msg-type.ts')\n await enumCompiler.generate(writeFile)\n}\n\nasync function compiler (): Promise<void> {\n // 'C:/Users/Stephen/dev/js/jsfix/data/fix_repo/fixmlschema_FIX.5.0SP2_EP228'\n // await compileDefinitions('data/fix_repo/FIX.4.4/Base', 'C:/Users/Stephen/dev/ts/jsfix/src/types/FIX4.4/repo')\n // await compileDefinitions('data/FIX44.xml', 'C:/Users/Stephen/dev/ts/jsfix/src/types/FIX4.4/quickfix')\n await compileDefinitions('data/fix_repo/fixmlschema_FIX.5.0SP2_EP228', 'C:/Users/Stephen/dev/ts/jsfix/src/types/FIXML50SP2')\n}\n\nasync function generateMessage (): Promise<void> {\n await testGenerator()\n}\n\nasync function decode (): Promise<any> {\n const definitions: FixDefinitions = await new DefinitionFactory().getDefinitions('data/fix_repo/FIX.4.4/Base')\n const txt = '8=FIX4.4|9=0001022|35=AE|49=init-comp|56=accept-comp|34=1|57=fix|52=20180909-14:22:09.841|571=Lorem|487=23513|856=1|568=ipsum|828=6|855=23619|830=dolor|150=F|748=17140|912=N|325=N|263=1|881=sit|818=amet,|820=consectetur|880=adipiscing|17=elit.|39=3|527=Nunc|570=N|423=8|55=odio|65=orci,|48=blandit|22=3|460=4|461=vel|167=MPT|762=semper|200=sed,|541=20180909|201=0|224=20180909|225=20180909|227=-8796.1|228=-23.537|255=bibendum|543=cursus|470=lectus.|471=Aenean|472=vel|240=20180909|202=891.7|947=-2928.1|231=5.7237|223=-1894.1|106=diam|348=9|349=6YYz0zu5s|350=8|351=TuH3tTNd|691=magna.|667=Aenean|875=99|876=et|873=20180909|874=20180909|913=viverra|914=leo,|915=20180909|916=20180909|919=0|898=0.5594|38=96682|152=19226|516=9.1251|854=0|235=PREVCLOSE|236=-2833.5|701=20180909|696=20180909|697=-6.095|698=26303|823=non|32=9253|31=2065.4|194=-73.233|30=iaculis|75=20180909|715=20180909|6=5.9279|218=0.0001953|221=neque.|222=Nullam|663=16216|699=arcu|761=lectus,|824=dignissim|63=3|64=20180909|573=0|574=M3|797=Y|852=Y|853=3|10=16|'\n const startsAt: Date = new Date()\n const sessionDescription: ISessionDescription = require('../data/session/test-initiator.json')\n const config = new JsFixConfig(null, definitions, sessionDescription, AsciiChars.Pipe)\n let i = 0\n const repeats = 1\n const asciiParser: MsgParser = new AsciiParser(config, new StringDuplex(txt.repeat(repeats)).readable, new ElasticBuffer(160 * 1024))\n asciiParser.on('msg', (msgType: string, v: MsgView) => {\n ++i\n console.log(v.toJson())\n if (i === repeats) {\n const elapsed: number = new Date().getTime() - startsAt.getTime()\n console.log(`elapsed ms ${elapsed} ${(elapsed / repeats) * 1000} micros per msg`)\n }\n })\n}\n\nasync function http (): Promise<any> {\n const sessionDescription: ISessionDescription = require('../data/session/test-http-acceptor.json')\n const definitions = await new DefinitionFactory().getDefinitions(sessionDescription.application?.dictionary ?? '')\n const logFactory = new JsFixWinstonLogFactory(WinstonLogger.consoleOptions('info'))\n const config = new JsFixConfig(null, definitions, sessionDescription, AsciiChars.Pipe, logFactory)\n // const acceptor = acceptor(config)\n const xml = '<?xml version=\"1.0\" encoding=\"UTF-8\"?>\\n' +\n '<FIXML v=\"5.0 SP2\" s=\"20090815\" xv=\"109\" cv=\"CME.0001\">\\n' +\n ' <UserReq UserReqID=\"123456\" UserReqTyp=\"1\" Username=\"user123\" Password=\"User!Pass5\">\\n' +\n ' <Hdr SID=\"BRKR\" SSub=\"user123\" TID=\"CME\" TSub=\"CPAPI\"/>\\n' +\n ' </UserReq>\\n' +\n '</FIXML>'\n // acceptor.listen()\n rp({\n method: 'POST',\n uri: 'http://localhost:2343/session',\n body: {\n fixml: xml\n },\n json: true // Automatically stringifies the body to JSON\n }).then(function (parsedBody: any) {\n console.log(parsedBody)\n // POST succeeded...\n })\n .catch((err: Error) => {\n console.log(err)\n // POST failed...\n })\n}\n\n// http()\n// decode()\n// generateMessage()\n// compiler()\n// stronglyTyped()\n// streamExample()\n// testEncodeDecode()\nrepository().then(() => {}).catch(e => {\n console.error(e)\n})\n// testEncodeDecode()\n// runTest();\n// testSocket()\n// testRead();\n"]}
|
|
@@ -1,4 +1,37 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
2
35
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
36
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
37
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -12,10 +45,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
12
45
|
exports.EnumCompiler = void 0;
|
|
13
46
|
const standard_snippet_1 = require("./standard-snippet");
|
|
14
47
|
const buffer_1 = require("../../buffer");
|
|
15
|
-
const fs = require("fs");
|
|
16
|
-
const util = require("util");
|
|
17
|
-
const Path = require("path");
|
|
18
|
-
const _ = require("lodash");
|
|
48
|
+
const fs = __importStar(require("fs"));
|
|
49
|
+
const util = __importStar(require("util"));
|
|
50
|
+
const Path = __importStar(require("path"));
|
|
51
|
+
const _ = __importStar(require("lodash"));
|
|
19
52
|
const tag_type_1 = require("../../buffer/tag/tag-type");
|
|
20
53
|
class EnumCompiler {
|
|
21
54
|
constructor(definitions, settings) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enum-compiler.js","sourceRoot":"","sources":["../../../src/dictionary/compiler/enum-compiler.ts"],"names":[],"mappings":"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","sourcesContent":["import { FixDefinitions, SimpleFieldDefinition } from '../definition'\nimport { ICompilerSettings } from './compiler-settings'\nimport { StandardSnippet } from './standard-snippet'\nimport { ElasticBuffer } from '../../buffer'\nimport { ILooseObject } from '../../collections/collection'\n\nimport * as fs from 'fs'\nimport * as util from 'util'\nimport * as Path from 'path'\nimport * as _ from 'lodash'\nimport { TagType } from '../../buffer/tag/tag-type'\n\nexport class EnumCompiler {\n private readonly buffer: ElasticBuffer = new ElasticBuffer()\n private readonly consolidated: ElasticBuffer = new ElasticBuffer()\n private readonly snippets: StandardSnippet\n\n constructor (public readonly definitions: FixDefinitions, public readonly settings: ICompilerSettings) {\n this.snippets = new StandardSnippet(settings)\n }\n\n private static getIndex (): string {\n const lines = [\n 'export * from \\'./all-enum\\'',\n 'export * from \\'./msg_tag\\'',\n ''\n ]\n return lines.join(require('os').EOL)\n }\n\n /*\n enum MessageTypes {\n Logon = 'A',\n Heartbeat = '0',\n TestRequest = '1'\n}\n */\n\n public async generate (asOneFile: string | null = null): Promise<void> {\n this.generateTagEnum('MsgTag').then(async () => {\n const toDo: SimpleFieldDefinition[] = this.toDo()\n const promised = toDo.map(async field => { await this.oneEnum(field, asOneFile) })\n await Promise.all(promised)\n if (asOneFile) {\n await this.writeAsOne(asOneFile)\n await this.writeFile('index', EnumCompiler.getIndex())\n }\n }).catch((e: Error) => {\n throw e\n })\n }\n\n public async oneEnum (field: SimpleFieldDefinition, asOneFile: string | null): Promise<void> {\n const newLine = require('os').EOL\n const api = this.generateEnum(field)\n if (!asOneFile) {\n await this.writeFile(field.name, api).catch((e: Error) => {\n throw e\n })\n } else {\n this.consolidated.writeString(api)\n this.consolidated.writeString(newLine)\n }\n }\n\n public generateEnum (field: SimpleFieldDefinition): string {\n const buffer = this.buffer\n if (field == null) {\n throw new Error(`no simple field ${name} exists in definitions`)\n }\n if (!field.isEnum()) {\n throw new Error(`field ${name} is not an enum type`)\n }\n return this.create(field.name, field.description, () => {\n const newLine = require('os').EOL\n return Array.from(field.enums.keys()).reduce((a: number, latest: string, i: number, arr: string[]) => {\n const k = field.resolveEnum(latest)\n let v: any = latest\n switch (field.tagType) {\n case TagType.Int: {\n v = parseInt(latest, 10)\n break\n }\n }\n\n buffer.writeString(this.snippets.enumValue(k, v, 1))\n if (i < arr.length - 1) {\n buffer.writeString(',')\n }\n buffer.writeString(newLine)\n return 0\n }, 0)\n })\n }\n\n public async generateTagEnum (name: string): Promise<void> {\n const newLine = require('os').EOL\n const tags = this.definitions.tagToSimple\n const snippets = this.snippets\n const api = this.create(name, null, () => {\n const buffer = this.buffer\n return Object.keys(tags).reduce((a: number, latest: string, i: number, arr: string[]) => {\n const tag = parseInt(latest, 10)\n const sf = tags[tag]\n if (sf) {\n if (this.settings.comment && sf.description) {\n this.commentBlock(sf.description)\n }\n buffer.writeString(snippets.enumValue(sf.name, tag, 1))\n if (i < arr.length - 1) {\n buffer.writeString(',')\n }\n buffer.writeString(newLine)\n }\n return a\n }, 0)\n })\n await this.writeFile(name, api)\n }\n\n private toDo (): SimpleFieldDefinition[] {\n const done: ILooseObject = {}\n return Array.from(this.definitions.simple.values()).reduce((a: SimpleFieldDefinition[], latest: SimpleFieldDefinition) => {\n if (latest.isEnum() && !done[latest.name]) {\n done[latest.name] = true\n a.push(latest)\n }\n return a\n }, [])\n }\n\n private async writeAsOne (asOneFile: string): Promise<void> {\n const writer = util.promisify(fs.writeFile)\n await writer(asOneFile, this.consolidated.toString(), {\n encoding: 'utf8'\n }\n ).catch((e: Error) => {\n throw e\n })\n }\n\n private commentBlock (comment: string): void {\n const buffer = this.buffer\n const snippets = this.snippets\n const newLine = require('os').EOL\n buffer.writeString(snippets.startBlockComment(0))\n buffer.writeString(newLine)\n buffer.writeString(snippets.commentBox(comment))\n buffer.writeString(newLine)\n buffer.writeString(snippets.endBlockComment(0))\n buffer.writeString(newLine)\n }\n\n private async writeFile (name: string, api: string): Promise<void> {\n const writer = util.promisify(fs.writeFile)\n const fullName = this.getFileName(name)\n await writer(fullName, api, { encoding: 'utf8' }\n ).catch((e: Error) => {\n throw e\n })\n }\n\n private getFileName (name: string): string {\n const snake = _.snakeCase(name)\n const settings = this.settings\n const fileName = `${snake}.ts`\n const path: string = `${settings.output}/enum/`\n return Path.join(path, fileName)\n }\n\n private create (name: string, description: string | null, populateMembers: Function): string {\n const newLine = require('os').EOL\n const buffer = this.buffer\n buffer.reset()\n const snippets = this.snippets\n\n if (this.settings.comment && description) {\n this.commentBlock(description)\n }\n buffer.writeString(snippets.enum(name, 0))\n buffer.writeString(' ')\n buffer.writeString(snippets.startBlock(0))\n buffer.writeString(newLine)\n populateMembers()\n buffer.writeString(snippets.endBlock(0))\n buffer.writeString(newLine)\n return buffer.toString()\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"enum-compiler.js","sourceRoot":"","sources":["../../../src/dictionary/compiler/enum-compiler.ts"],"names":[],"mappings":"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","sourcesContent":["import { FixDefinitions, SimpleFieldDefinition } from '../definition'\nimport { ICompilerSettings } from './compiler-settings'\nimport { StandardSnippet } from './standard-snippet'\nimport { ElasticBuffer } from '../../buffer'\nimport { ILooseObject } from '../../collections/collection'\n\nimport * as fs from 'fs'\nimport * as util from 'util'\nimport * as Path from 'path'\nimport * as _ from 'lodash'\nimport { TagType } from '../../buffer/tag/tag-type'\n\nexport class EnumCompiler {\n private readonly buffer: ElasticBuffer = new ElasticBuffer()\n private readonly consolidated: ElasticBuffer = new ElasticBuffer()\n private readonly snippets: StandardSnippet\n\n constructor (public readonly definitions: FixDefinitions, public readonly settings: ICompilerSettings) {\n this.snippets = new StandardSnippet(settings)\n }\n\n private static getIndex (): string {\n const lines = [\n 'export * from \\'./all-enum\\'',\n 'export * from \\'./msg_tag\\'',\n ''\n ]\n return lines.join(require('os').EOL)\n }\n\n /*\n enum MessageTypes {\n Logon = 'A',\n Heartbeat = '0',\n TestRequest = '1'\n}\n */\n\n public async generate (asOneFile: string | null = null): Promise<void> {\n this.generateTagEnum('MsgTag').then(async () => {\n const toDo: SimpleFieldDefinition[] = this.toDo()\n const promised = toDo.map(async field => { await this.oneEnum(field, asOneFile) })\n await Promise.all(promised)\n if (asOneFile) {\n await this.writeAsOne(asOneFile)\n await this.writeFile('index', EnumCompiler.getIndex())\n }\n }).catch((e: Error) => {\n throw e\n })\n }\n\n public async oneEnum (field: SimpleFieldDefinition, asOneFile: string | null): Promise<void> {\n const newLine = require('os').EOL\n const api = this.generateEnum(field)\n if (!asOneFile) {\n await this.writeFile(field.name, api).catch((e: Error) => {\n throw e\n })\n } else {\n this.consolidated.writeString(api)\n this.consolidated.writeString(newLine)\n }\n }\n\n public generateEnum (field: SimpleFieldDefinition): string {\n const buffer = this.buffer\n if (field == null) {\n throw new Error(`no simple field ${name} exists in definitions`)\n }\n if (!field.isEnum()) {\n throw new Error(`field ${name} is not an enum type`)\n }\n return this.create(field.name, field.description, () => {\n const newLine = require('os').EOL\n return Array.from(field.enums.keys()).reduce((a: number, latest: string, i: number, arr: string[]) => {\n const k = field.resolveEnum(latest)\n let v: any = latest\n switch (field.tagType) {\n case TagType.Int: {\n v = parseInt(latest, 10)\n break\n }\n }\n\n buffer.writeString(this.snippets.enumValue(k, v, 1))\n if (i < arr.length - 1) {\n buffer.writeString(',')\n }\n buffer.writeString(newLine)\n return 0\n }, 0)\n })\n }\n\n public async generateTagEnum (name: string): Promise<void> {\n const newLine = require('os').EOL\n const tags = this.definitions.tagToSimple\n const snippets = this.snippets\n const api = this.create(name, null, () => {\n const buffer = this.buffer\n return Object.keys(tags).reduce((a: number, latest: string, i: number, arr: string[]) => {\n const tag = parseInt(latest, 10)\n const sf = tags[tag]\n if (sf) {\n if (this.settings.comment && sf.description) {\n this.commentBlock(sf.description)\n }\n buffer.writeString(snippets.enumValue(sf.name, tag, 1))\n if (i < arr.length - 1) {\n buffer.writeString(',')\n }\n buffer.writeString(newLine)\n }\n return a\n }, 0)\n })\n await this.writeFile(name, api)\n }\n\n private toDo (): SimpleFieldDefinition[] {\n const done: ILooseObject = {}\n return Array.from(this.definitions.simple.values()).reduce((a: SimpleFieldDefinition[], latest: SimpleFieldDefinition) => {\n if (latest.isEnum() && !done[latest.name]) {\n done[latest.name] = true\n a.push(latest)\n }\n return a\n }, [])\n }\n\n private async writeAsOne (asOneFile: string): Promise<void> {\n const writer = util.promisify(fs.writeFile)\n await writer(asOneFile, this.consolidated.toString(), {\n encoding: 'utf8'\n }\n ).catch((e: Error) => {\n throw e\n })\n }\n\n private commentBlock (comment: string): void {\n const buffer = this.buffer\n const snippets = this.snippets\n const newLine = require('os').EOL\n buffer.writeString(snippets.startBlockComment(0))\n buffer.writeString(newLine)\n buffer.writeString(snippets.commentBox(comment))\n buffer.writeString(newLine)\n buffer.writeString(snippets.endBlockComment(0))\n buffer.writeString(newLine)\n }\n\n private async writeFile (name: string, api: string): Promise<void> {\n const writer = util.promisify(fs.writeFile)\n const fullName = this.getFileName(name)\n await writer(fullName, api, { encoding: 'utf8' }\n ).catch((e: Error) => {\n throw e\n })\n }\n\n private getFileName (name: string): string {\n const snake = _.snakeCase(name)\n const settings = this.settings\n const fileName = `${snake}.ts`\n const path: string = `${settings.output}/enum/`\n return Path.join(path, fileName)\n }\n\n private create (name: string, description: string | null, populateMembers: Function): string {\n const newLine = require('os').EOL\n const buffer = this.buffer\n buffer.reset()\n const snippets = this.snippets\n\n if (this.settings.comment && description) {\n this.commentBlock(description)\n }\n buffer.writeString(snippets.enum(name, 0))\n buffer.writeString(' ')\n buffer.writeString(snippets.startBlock(0))\n buffer.writeString(newLine)\n populateMembers()\n buffer.writeString(snippets.endBlock(0))\n buffer.writeString(newLine)\n return buffer.toString()\n }\n}\n"]}
|
|
@@ -1,4 +1,37 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
2
35
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
36
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
37
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -15,9 +48,9 @@ const ascii_1 = require("../../buffer/ascii/");
|
|
|
15
48
|
const contained_1 = require("../contained");
|
|
16
49
|
const standard_snippet_1 = require("./standard-snippet");
|
|
17
50
|
const compiler_type_1 = require("./compiler-type");
|
|
18
|
-
const fs = require("fs");
|
|
19
|
-
const Util = require("util");
|
|
20
|
-
const Path = require("path");
|
|
51
|
+
const fs = __importStar(require("fs"));
|
|
52
|
+
const Util = __importStar(require("util"));
|
|
53
|
+
const Path = __importStar(require("path"));
|
|
21
54
|
const set_reduce_1 = require("../set-reduce");
|
|
22
55
|
const contained_set_type_1 = require("../contained-set-type");
|
|
23
56
|
const tag_type_1 = require("../../buffer/tag/tag-type");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"msg-compiler.js","sourceRoot":"","sources":["../../../src/dictionary/compiler/msg-compiler.ts"],"names":[],"mappings":"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","sourcesContent":["import { ElasticBuffer, Tags } from '../../buffer'\nimport { AsciiChars } from '../../buffer/ascii/'\nimport { ICompilerSettings } from './compiler-settings'\nimport { FixDefinitions } from '../definition'\nimport {\n ContainedComponentField,\n IContainedSet,\n ContainedGroupField,\n ContainedSimpleField,\n FieldsDispatch\n} from '../contained'\nimport { StandardSnippet } from './standard-snippet'\nimport { CompilerType } from './compiler-type'\n\nimport * as fs from 'fs'\nimport * as Util from 'util'\nimport * as Path from 'path'\nimport { SetReduce } from '../set-reduce'\nimport { ContainedSetType } from '../contained-set-type'\nimport { TagType } from '../../buffer/tag/tag-type'\n\nconst newLine: string = require('os').EOL\nconst justifiedWidth: number = 50\n\nexport class MsgCompiler {\n readonly queue: CompilerType[] = []\n readonly snippets: StandardSnippet\n readonly buffer: ElasticBuffer = new ElasticBuffer()\n readonly completed: Map<string, CompilerType>\n\n constructor (public readonly definitions: FixDefinitions, public readonly settings: ICompilerSettings) {\n this.completed = new Map<string, CompilerType>()\n this.snippets = new StandardSnippet(this.settings)\n }\n\n public async generate (): Promise<void> {\n const types: string[] = this.settings.types ?? Array.from(this.definitions.message.keys())\n await this.createTypes(types)\n }\n\n private getFileName (compilerType: CompilerType): string {\n const settings = this.settings\n const fileName = `${compilerType.snaked}.ts`\n return Path.join(settings.output, fileName)\n }\n\n private async createTypes (types: string[]): Promise<void> {\n const definitions = this.definitions\n types.forEach((type: string) => {\n const definition = definitions.containedSet(type)\n if (!definition) {\n throw new Error(`no type ${type} defined`)\n }\n const ct = new CompilerType(this.definitions, definition, definition.name)\n this.enqueue(ct)\n })\n await this.work()\n await this.index()\n }\n\n private async work (): Promise<void> {\n const q = this.queue\n const writeFile = Util.promisify(fs.writeFile)\n while (q.length > 0) {\n const compilerType = q.pop()\n if (!compilerType) continue\n const api: string = this.generateMessages(compilerType)\n const fullName = this.getFileName(compilerType)\n await writeFile(fullName, api, { encoding: 'utf8' }\n )\n }\n }\n\n private async index (): Promise<void> {\n const writeFile = Util.promisify(fs.writeFile)\n const settings = this.settings\n const fileName = 'index.ts'\n const done = Array.from(this.completed.values())\n const exports: string[] = done.reduce<string[]>((prev: string[], current: CompilerType) => {\n prev.push(`export * from '${current.snaked}'`)\n return prev\n }, ['export * from \\'./enum\\''])\n exports.sort()\n exports.push('')\n const api: string = exports.join(newLine)\n const fullName: string = Path.join(settings.output, fileName)\n await writeFile(fullName, api, { encoding: 'utf8' })\n }\n\n private generateMessages (compilerType: CompilerType): string {\n const definition = compilerType.set\n const buffer: ElasticBuffer = this.buffer\n buffer.reset()\n const snippets = this.snippets\n // a single class with dependencies included\n const ptr: number = this.imports(compilerType)\n if (ptr > 0) {\n buffer.writeString(newLine)\n buffer.writeString(newLine)\n }\n if (this.settings.comment && definition.description) {\n const comment = snippets.commentBox(definition.description)\n buffer.writeString(snippets.startBlockComment(0))\n buffer.writeString(newLine)\n buffer.writeString(comment)\n buffer.writeString(newLine)\n buffer.writeString(snippets.endBlockComment(0))\n buffer.writeString(newLine)\n }\n buffer.writeString(snippets.interface(compilerType.qualifiedName, 0))\n buffer.writeChar(AsciiChars.Space)\n buffer.writeString(snippets.startBlock(0))\n buffer.writeString(newLine)\n this.fields(compilerType)\n buffer.writeString(snippets.endBlock(0))\n buffer.writeString(newLine)\n return buffer.toString()\n }\n\n // only generate once\n private enqueue (ct: CompilerType): void {\n const completed = this.completed\n const fullName = this.getFileName(ct)\n if (completed.get(fullName)) {\n return\n }\n this.queue.push(ct)\n completed.set(fullName, ct)\n }\n\n private simpleComment (simple: ContainedSimpleField): string {\n return `[${simple.position + 1}] ${simple.definition.tag} (${TagType[simple.definition.tagType]})`\n }\n\n private fieldSimple (simple: ContainedSimpleField): void {\n const snippets = this.snippets\n const settings = this.settings\n const buffer = this.buffer\n const len = buffer.writeString(snippets.simple(simple.name, Tags.toJSType(simple.definition.tagType), simple.required, 1))\n if (settings.tags) {\n buffer.writeString(snippets.commentLine(this.simpleComment(simple), justifiedWidth - len))\n }\n buffer.writeString(newLine)\n }\n\n private fieldGroup (groupField: ContainedGroupField, compilerType: CompilerType): void {\n const buffer = this.buffer\n const snippets = this.snippets\n // for a group its field name is as defined in type, its type is qualified to avoid collisions\n const extended: string = compilerType.getExtended(groupField)\n const len = buffer.writeString(snippets.group(compilerType.getFieldGroupName(groupField), extended, groupField.required, 1))\n this.setComment(groupField.definition, groupField.position, len)\n this.enqueue(new CompilerType(this.definitions, groupField.definition, extended))\n buffer.writeString(newLine)\n }\n\n private tagSummary (definition: IContainedSet, max: number = 3): string {\n function tagTxt (tag: number): string {\n const name = definition.getFieldName(tag)\n return `${name}.${tag}`\n }\n\n function setTxt (flattened: number[]): string {\n return flattened.map(f => tagTxt(f)).join(', ')\n }\n\n const flattened = definition.flattenedTag\n if (max >= flattened.length) {\n return setTxt(flattened)\n }\n\n const front = setTxt(flattened.slice(0, max - 1))\n return `${front} .. ${tagTxt(flattened[flattened.length - 1])}`\n }\n\n private setComment (set: IContainedSet, position: number, len: number): void {\n if (this.settings.tags) {\n const tagTxt = this.tagSummary(set)\n const buffer = this.buffer\n buffer.writeString(this.snippets.commentLine(`[${position + 1}] ${tagTxt}`, justifiedWidth - len))\n }\n }\n\n private fieldComponent (componentField: ContainedComponentField, compilerType: CompilerType): void {\n const buffer = this.buffer\n const snippets = this.snippets\n const extended: string = compilerType.getExtended(componentField)\n const len = buffer.writeString(snippets.component(extended, componentField.required, 1))\n this.enqueue(new CompilerType(this.definitions, componentField.definition, extended))\n this.setComment(componentField.definition, componentField.position, len)\n buffer.writeString(newLine)\n }\n\n private fields (compilerType: CompilerType): void {\n this.attributes(compilerType)\n new FieldsDispatch().dispatchFields(compilerType.set.fields, {\n group: (g: ContainedGroupField) => { this.fieldGroup(g, compilerType) },\n simple: (simple: ContainedSimpleField) => { this.fieldSimple(simple) },\n component: (c: ContainedComponentField) => { this.fieldComponent(c, compilerType) }\n })\n }\n\n private attributes (compilerType: CompilerType): void {\n const settings = this.settings\n const snippets = this.snippets\n const buffer = this.buffer\n compilerType.set.localAttribute.forEach((simple: ContainedSimpleField) => {\n const len = buffer.writeString(snippets.simple(simple.definition.name, Tags.toJSType(simple.definition.tagType), simple.required, 1))\n if (settings.tags) {\n buffer.writeString(snippets.commentLine(this.simpleComment(simple), justifiedWidth - len))\n }\n buffer.writeString(newLine)\n })\n }\n\n private imports (compilerType: CompilerType): number {\n const reducer = new SetReduce<string[]>()\n const isMsg = compilerType.set.type === ContainedSetType.Msg\n const snippets = this.snippets\n const imports: string[] = reducer.reduce(compilerType.set, {\n component: (a: string[], c: ContainedComponentField) => {\n a.push(`${snippets.import(compilerType.getExtended(c), isMsg, 0)}`)\n return a\n },\n group: (a: string[], g: ContainedGroupField) => {\n a.push(`${snippets.import(compilerType.getExtended(g), isMsg, 0)}`)\n return a\n }\n }, [])\n\n return this.buffer.writeString(imports.join(newLine))\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"msg-compiler.js","sourceRoot":"","sources":["../../../src/dictionary/compiler/msg-compiler.ts"],"names":[],"mappings":"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","sourcesContent":["import { ElasticBuffer, Tags } from '../../buffer'\nimport { AsciiChars } from '../../buffer/ascii/'\nimport { ICompilerSettings } from './compiler-settings'\nimport { FixDefinitions } from '../definition'\nimport {\n ContainedComponentField,\n IContainedSet,\n ContainedGroupField,\n ContainedSimpleField,\n FieldsDispatch\n} from '../contained'\nimport { StandardSnippet } from './standard-snippet'\nimport { CompilerType } from './compiler-type'\n\nimport * as fs from 'fs'\nimport * as Util from 'util'\nimport * as Path from 'path'\nimport { SetReduce } from '../set-reduce'\nimport { ContainedSetType } from '../contained-set-type'\nimport { TagType } from '../../buffer/tag/tag-type'\n\nconst newLine: string = require('os').EOL\nconst justifiedWidth: number = 50\n\nexport class MsgCompiler {\n readonly queue: CompilerType[] = []\n readonly snippets: StandardSnippet\n readonly buffer: ElasticBuffer = new ElasticBuffer()\n readonly completed: Map<string, CompilerType>\n\n constructor (public readonly definitions: FixDefinitions, public readonly settings: ICompilerSettings) {\n this.completed = new Map<string, CompilerType>()\n this.snippets = new StandardSnippet(this.settings)\n }\n\n public async generate (): Promise<void> {\n const types: string[] = this.settings.types ?? Array.from(this.definitions.message.keys())\n await this.createTypes(types)\n }\n\n private getFileName (compilerType: CompilerType): string {\n const settings = this.settings\n const fileName = `${compilerType.snaked}.ts`\n return Path.join(settings.output, fileName)\n }\n\n private async createTypes (types: string[]): Promise<void> {\n const definitions = this.definitions\n types.forEach((type: string) => {\n const definition = definitions.containedSet(type)\n if (!definition) {\n throw new Error(`no type ${type} defined`)\n }\n const ct = new CompilerType(this.definitions, definition, definition.name)\n this.enqueue(ct)\n })\n await this.work()\n await this.index()\n }\n\n private async work (): Promise<void> {\n const q = this.queue\n const writeFile = Util.promisify(fs.writeFile)\n while (q.length > 0) {\n const compilerType = q.pop()\n if (!compilerType) continue\n const api: string = this.generateMessages(compilerType)\n const fullName = this.getFileName(compilerType)\n await writeFile(fullName, api, { encoding: 'utf8' }\n )\n }\n }\n\n private async index (): Promise<void> {\n const writeFile = Util.promisify(fs.writeFile)\n const settings = this.settings\n const fileName = 'index.ts'\n const done = Array.from(this.completed.values())\n const exports: string[] = done.reduce<string[]>((prev: string[], current: CompilerType) => {\n prev.push(`export * from '${current.snaked}'`)\n return prev\n }, ['export * from \\'./enum\\''])\n exports.sort()\n exports.push('')\n const api: string = exports.join(newLine)\n const fullName: string = Path.join(settings.output, fileName)\n await writeFile(fullName, api, { encoding: 'utf8' })\n }\n\n private generateMessages (compilerType: CompilerType): string {\n const definition = compilerType.set\n const buffer: ElasticBuffer = this.buffer\n buffer.reset()\n const snippets = this.snippets\n // a single class with dependencies included\n const ptr: number = this.imports(compilerType)\n if (ptr > 0) {\n buffer.writeString(newLine)\n buffer.writeString(newLine)\n }\n if (this.settings.comment && definition.description) {\n const comment = snippets.commentBox(definition.description)\n buffer.writeString(snippets.startBlockComment(0))\n buffer.writeString(newLine)\n buffer.writeString(comment)\n buffer.writeString(newLine)\n buffer.writeString(snippets.endBlockComment(0))\n buffer.writeString(newLine)\n }\n buffer.writeString(snippets.interface(compilerType.qualifiedName, 0))\n buffer.writeChar(AsciiChars.Space)\n buffer.writeString(snippets.startBlock(0))\n buffer.writeString(newLine)\n this.fields(compilerType)\n buffer.writeString(snippets.endBlock(0))\n buffer.writeString(newLine)\n return buffer.toString()\n }\n\n // only generate once\n private enqueue (ct: CompilerType): void {\n const completed = this.completed\n const fullName = this.getFileName(ct)\n if (completed.get(fullName)) {\n return\n }\n this.queue.push(ct)\n completed.set(fullName, ct)\n }\n\n private simpleComment (simple: ContainedSimpleField): string {\n return `[${simple.position + 1}] ${simple.definition.tag} (${TagType[simple.definition.tagType]})`\n }\n\n private fieldSimple (simple: ContainedSimpleField): void {\n const snippets = this.snippets\n const settings = this.settings\n const buffer = this.buffer\n const len = buffer.writeString(snippets.simple(simple.name, Tags.toJSType(simple.definition.tagType), simple.required, 1))\n if (settings.tags) {\n buffer.writeString(snippets.commentLine(this.simpleComment(simple), justifiedWidth - len))\n }\n buffer.writeString(newLine)\n }\n\n private fieldGroup (groupField: ContainedGroupField, compilerType: CompilerType): void {\n const buffer = this.buffer\n const snippets = this.snippets\n // for a group its field name is as defined in type, its type is qualified to avoid collisions\n const extended: string = compilerType.getExtended(groupField)\n const len = buffer.writeString(snippets.group(compilerType.getFieldGroupName(groupField), extended, groupField.required, 1))\n this.setComment(groupField.definition, groupField.position, len)\n this.enqueue(new CompilerType(this.definitions, groupField.definition, extended))\n buffer.writeString(newLine)\n }\n\n private tagSummary (definition: IContainedSet, max: number = 3): string {\n function tagTxt (tag: number): string {\n const name = definition.getFieldName(tag)\n return `${name}.${tag}`\n }\n\n function setTxt (flattened: number[]): string {\n return flattened.map(f => tagTxt(f)).join(', ')\n }\n\n const flattened = definition.flattenedTag\n if (max >= flattened.length) {\n return setTxt(flattened)\n }\n\n const front = setTxt(flattened.slice(0, max - 1))\n return `${front} .. ${tagTxt(flattened[flattened.length - 1])}`\n }\n\n private setComment (set: IContainedSet, position: number, len: number): void {\n if (this.settings.tags) {\n const tagTxt = this.tagSummary(set)\n const buffer = this.buffer\n buffer.writeString(this.snippets.commentLine(`[${position + 1}] ${tagTxt}`, justifiedWidth - len))\n }\n }\n\n private fieldComponent (componentField: ContainedComponentField, compilerType: CompilerType): void {\n const buffer = this.buffer\n const snippets = this.snippets\n const extended: string = compilerType.getExtended(componentField)\n const len = buffer.writeString(snippets.component(extended, componentField.required, 1))\n this.enqueue(new CompilerType(this.definitions, componentField.definition, extended))\n this.setComment(componentField.definition, componentField.position, len)\n buffer.writeString(newLine)\n }\n\n private fields (compilerType: CompilerType): void {\n this.attributes(compilerType)\n new FieldsDispatch().dispatchFields(compilerType.set.fields, {\n group: (g: ContainedGroupField) => { this.fieldGroup(g, compilerType) },\n simple: (simple: ContainedSimpleField) => { this.fieldSimple(simple) },\n component: (c: ContainedComponentField) => { this.fieldComponent(c, compilerType) }\n })\n }\n\n private attributes (compilerType: CompilerType): void {\n const settings = this.settings\n const snippets = this.snippets\n const buffer = this.buffer\n compilerType.set.localAttribute.forEach((simple: ContainedSimpleField) => {\n const len = buffer.writeString(snippets.simple(simple.definition.name, Tags.toJSType(simple.definition.tagType), simple.required, 1))\n if (settings.tags) {\n buffer.writeString(snippets.commentLine(this.simpleComment(simple), justifiedWidth - len))\n }\n buffer.writeString(newLine)\n })\n }\n\n private imports (compilerType: CompilerType): number {\n const reducer = new SetReduce<string[]>()\n const isMsg = compilerType.set.type === ContainedSetType.Msg\n const snippets = this.snippets\n const imports: string[] = reducer.reduce(compilerType.set, {\n component: (a: string[], c: ContainedComponentField) => {\n a.push(`${snippets.import(compilerType.getExtended(c), isMsg, 0)}`)\n return a\n },\n group: (a: string[], g: ContainedGroupField) => {\n a.push(`${snippets.import(compilerType.getExtended(g), isMsg, 0)}`)\n return a\n }\n }, [])\n\n return this.buffer.writeString(imports.join(newLine))\n }\n}\n"]}
|
|
@@ -1,7 +1,40 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
2
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
36
|
exports.StandardSnippet = void 0;
|
|
4
|
-
const _ = require("lodash");
|
|
37
|
+
const _ = __importStar(require("lodash"));
|
|
5
38
|
class StandardSnippet {
|
|
6
39
|
constructor(settings) {
|
|
7
40
|
this.settings = settings;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"standard-snippet.js","sourceRoot":"","sources":["../../../src/dictionary/compiler/standard-snippet.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"standard-snippet.js","sourceRoot":"","sources":["../../../src/dictionary/compiler/standard-snippet.ts"],"names":[],"mappings":"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","sourcesContent":["import { ICompilerSettings } from './compiler-settings'\nimport * as _ from 'lodash'\n\nexport class StandardSnippet {\n constructor (public readonly settings: ICompilerSettings) {\n }\n\n private static rhsJustify (txt: string, width: number): string {\n const align = require('align-text')\n return align(txt, width)\n }\n\n // import { camelName } from './component/name_underscore'\n public import (name: string, isMsg: boolean, indent: number): string {\n const spaces: string = this.spaces(indent)\n const fileName = _.snakeCase(name)\n const path = isMsg ? `./set/${fileName}` : `./${fileName}`\n return `${spaces}import { I${name} } from '${path}'`\n }\n\n public interface (name: string, indent: number): string {\n const spaces: string = this.spaces(indent)\n return `${spaces}export interface I${name}`\n }\n\n public startBlockComment (indent: number): string {\n const spaces: string = this.spaces(indent)\n return `${spaces}/*`\n }\n\n public endBlockComment (indent: number): string {\n const spaces: string = this.spaces(indent)\n return `${spaces}*/`\n }\n\n public startBlock (indent: number): string {\n const spaces: string = this.spaces(indent)\n return `${spaces}{`\n }\n\n public endBlock (indent: number): string {\n const spaces: string = this.spaces(indent)\n return `${spaces}}`\n }\n\n public group (name: string, type: string, required: boolean, indent: number): string {\n const spaces: string = this.spaces(indent)\n return `${spaces}${name}${required ? '' : '?'}: I${type}[]`\n }\n\n public component (name: string, required: boolean, indent: number): string {\n const spaces: string = this.spaces(indent)\n return `${spaces}${name}${required ? '' : '?'}: I${name}`\n }\n\n public simple (name: string, type: string, required: boolean, indent: number): string {\n const spaces: string = this.spaces(indent)\n return `${spaces}${name}${required ? '' : '?'}: ${type}`\n }\n\n public enum (name: string, indent: number): string {\n const spaces: string = this.spaces(indent)\n return `export ${spaces}enum ${name}`\n }\n\n public enumValue (name: string, val: any, indent: number): string {\n const spaces: string = this.spaces(indent)\n if (typeof (val) === 'string') {\n return `${spaces}${name} = '${val}'`\n }\n return `${spaces}${name} = ${val}`\n }\n\n public spaces (indent: number): string {\n return ' '.repeat(this.settings.spaces * indent)\n }\n\n public commentLine (line: string, justify: number): string {\n return StandardSnippet.rhsJustify(`// ${line}`, justify)\n }\n\n public commentBox (str: string): string {\n const wrap = require('word-wrap')\n const text = wrap(str, {\n width: 60,\n indent: ' '\n }\n )\n let lines = text.split('\\n').map((a: string) => a.trim())\n const max = this.longest(lines).length + 2\n const newLine: string = require('os').EOL\n lines = lines.map(function (line: string) {\n line = ` ${line} `\n const diff = max - line.length\n return '*' + line + ' '.repeat(diff) + '*'\n })\n const stars: string = '*'.repeat(lines[0].length)\n const joined: string = lines.join(newLine)\n return stars + newLine +\n joined +\n newLine +\n stars\n }\n\n private longest (arr: string[]): string {\n return arr.reduce(function (a, b) {\n return a.length > b.length ? a : b\n })\n }\n}\n"]}
|
|
@@ -72,6 +72,8 @@ class ContainedFieldSet {
|
|
|
72
72
|
return null;
|
|
73
73
|
return path.split('.').reduce((set, next) => {
|
|
74
74
|
var _a, _b;
|
|
75
|
+
if (!set)
|
|
76
|
+
return null;
|
|
75
77
|
return (_b = (_a = set.groups.get(next)) !== null && _a !== void 0 ? _a : set.components.get(next)) !== null && _b !== void 0 ? _b : null;
|
|
76
78
|
}, this);
|
|
77
79
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contained-field-set.js","sourceRoot":"","sources":["../../../src/dictionary/contained/contained-field-set.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"contained-field-set.js","sourceRoot":"","sources":["../../../src/dictionary/contained/contained-field-set.ts"],"names":[],"mappings":"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","sourcesContent":["import { INumericKeyed } from '../../collections/collection'\nimport { ContainedField } from './contained-field'\nimport { ContainedSimpleField } from './contained-simple-field'\nimport { ElasticBuffer } from '../../buffer/elastic-buffer'\nimport { ContainedSetType } from '../contained-set-type'\nimport { IContainedSet } from './contained-set'\n\nexport abstract class ContainedFieldSet implements IContainedSet {\n /**\n * index of name to any group that may be present within the field list\n */\n public readonly groups: Map<string, IContainedSet> = new Map<string, IContainedSet>()\n /**\n * index of name to any component that may be present within the field list\n */\n public readonly components: Map<string, IContainedSet> = new Map<string, IContainedSet>()\n /**\n * index of name to any simple field that may be present within the field list\n */\n public readonly simple: Map<string, ContainedSimpleField> = new Map<string, ContainedSimpleField>()\n /**\n * sequence of fields representing this type - can be simple, group or component\n */\n public readonly fields: ContainedField[] = []\n /**\n * any tag at any level i.e. does this set contain a tag\n */\n public readonly containedTag: INumericKeyed<boolean> = {}\n /**\n * any tag at any level ordered i.e. all tags flattened to list\n */\n public readonly flattenedTag: number[] = []\n /**\n * any data tags contained length within this set.\n */\n public readonly containedLength: INumericKeyed<boolean> = {}\n /**\n * tags only in repository at this level, not from any at deeper levels\n */\n public readonly localTag: INumericKeyed<ContainedSimpleField> = {}\n /**\n * tags marked required at this level only\n */\n public readonly localRequired: INumericKeyed<ContainedSimpleField> = {}\n /**\n * all tags contained within this field set flattened from all levels\n */\n public readonly tagToSimple: INumericKeyed<ContainedSimpleField> = {}\n /**\n * direct any tag contained within this set to field one level down where it belongs.\n */\n public readonly tagToField: INumericKeyed<ContainedField> = {}\n /**\n * only repository directly in this set indexed by name\n */\n public readonly localNameToField: Map<string, ContainedField> = new Map<string, ContainedField>()\n /**\n * for FixMl notation this set of fields appear as attributes i.e. <Pty ID=\"323\" R=\"38\">\n */\n public readonly nameToLocalAttribute: Map<string, ContainedSimpleField> = new Map<string, ContainedSimpleField>()\n /**\n * all attributes in order of being declared\n */\n public readonly localAttribute: ContainedSimpleField[] = []\n /**\n * at any level on this set, first declared simple field\n */\n public firstSimple: (ContainedSimpleField | null)\n /**\n * parser needs to know about raw fields, any present in this set?\n */\n public containsRaw: boolean = false\n\n protected constructor (public readonly type: ContainedSetType,\n public readonly name: string,\n public readonly category: string | null,\n public readonly abbreviation: string | null,\n public readonly description: string | null) {\n }\n\n /**\n * not for generral usage, this partially resets the set such it can be used on a second\n * pass of the xml parser\n */\n public reset (): void {\n this.groups.clear()\n this.components.clear()\n this.simple.clear()\n this.empty(this.fields)\n this.empty(this.flattenedTag)\n this.empty(this.localAttribute)\n this.localNameToField.clear()\n }\n\n private empty<T> (arr: T[]): void {\n while (arr.length > 0) {\n arr.pop()\n }\n }\n\n public toString (): string {\n const buffer = new ElasticBuffer(2 * 1024)\n const fields = this.fields\n buffer.writeString(`Set: ${this.name}(${this.getPrefix()}) fields [${fields.length}]: `)\n const set: string[] = fields.map((f: ContainedField) => f.toString())\n const s = set.join(', ')\n buffer.writeString(s)\n return buffer.toString()\n }\n\n public abstract getPrefix (): string\n\n public keys (): number[] {\n const keys: string[] = Object.keys(this.containedTag)\n const nums: number[] = new Array(keys.length)\n for (let j: number = 0; j < keys.length; ++j) {\n nums[j] = parseInt(keys[j], 10)\n }\n return nums\n }\n\n public getFieldName (tag: number): string {\n const s = this.tagToSimple[tag]\n if (s == null) {\n const gf: ContainedField = this.tagToField[tag]\n if (gf !== null) {\n return `${gf.name}`\n }\n return `${tag}`\n }\n return s.name\n }\n\n /**\n * recurses down a path to return nested set definitiom of a group or component\n * given in dot notation 'SecListGrp.NoRelatedSym.SecurityTradingRules.BaseTradingRules'\n * @param path in dot notation\n */\n public getSet (path: string): (IContainedSet | null) {\n if (!path) return null\n return path.split('.').reduce<IContainedSet | null>((set: IContainedSet | null, next: string): (IContainedSet | null) => {\n if (!set) return null\n return set.groups.get(next) ?? set.components.get(next) ?? null\n }, this)\n }\n}\n"]}
|
|
@@ -1,10 +1,43 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
2
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
36
|
exports.SimpleFieldDefinition = void 0;
|
|
4
37
|
const field_enum_1 = require("../field-enum");
|
|
5
38
|
const tags_1 = require("../../buffer/tag/tags");
|
|
6
39
|
const ascii_chars_1 = require("../../buffer/ascii/ascii-chars");
|
|
7
|
-
const _ = require("lodash");
|
|
40
|
+
const _ = __importStar(require("lodash"));
|
|
8
41
|
class SimpleFieldDefinition {
|
|
9
42
|
constructor(num, name, abbreviation, baseCategory, baseCategoryAbbreviation, type, description) {
|
|
10
43
|
this.num = num;
|