jspurefix 2.2.1 → 3.0.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.
Files changed (639) hide show
  1. package/.eslintrc +30 -0
  2. package/README.md +297 -249
  3. package/data/session/test-http-initiator.json +2 -2
  4. package/dist/buffer/ascii/ascii-chars.js.map +1 -1
  5. package/dist/buffer/ascii/ascii-encoder.js +9 -5
  6. package/dist/buffer/ascii/ascii-encoder.js.map +1 -1
  7. package/dist/buffer/ascii/ascii-parser-state.d.ts +2 -2
  8. package/dist/buffer/ascii/ascii-parser-state.js +1 -1
  9. package/dist/buffer/ascii/ascii-parser-state.js.map +1 -1
  10. package/dist/buffer/ascii/ascii-parser.d.ts +2 -2
  11. package/dist/buffer/ascii/ascii-parser.js +17 -11
  12. package/dist/buffer/ascii/ascii-parser.js.map +1 -1
  13. package/dist/buffer/ascii/ascii-segment-parser.d.ts +1 -1
  14. package/dist/buffer/ascii/ascii-segment-parser.js +11 -3
  15. package/dist/buffer/ascii/ascii-segment-parser.js.map +1 -1
  16. package/dist/buffer/ascii/ascii-view.d.ts +3 -3
  17. package/dist/buffer/ascii/ascii-view.js +18 -0
  18. package/dist/buffer/ascii/ascii-view.js.map +1 -1
  19. package/dist/buffer/ascii/itime-formatter.d.ts +12 -12
  20. package/dist/buffer/ascii/itime-formatter.js.map +1 -1
  21. package/dist/buffer/ascii/time-formatter.d.ts +6 -6
  22. package/dist/buffer/ascii/time-formatter.js.map +1 -1
  23. package/dist/buffer/elastic-buffer.d.ts +1 -1
  24. package/dist/buffer/elastic-buffer.js +2 -2
  25. package/dist/buffer/elastic-buffer.js.map +1 -1
  26. package/dist/buffer/encode-proxy.js +1 -1
  27. package/dist/buffer/encode-proxy.js.map +1 -1
  28. package/dist/buffer/encoder-state.d.ts +2 -2
  29. package/dist/buffer/encoder-state.js +4 -1
  30. package/dist/buffer/encoder-state.js.map +1 -1
  31. package/dist/buffer/fixml/fixml-encoder.js +4 -2
  32. package/dist/buffer/fixml/fixml-encoder.js.map +1 -1
  33. package/dist/buffer/fixml/fixml-parser.js +61 -39
  34. package/dist/buffer/fixml/fixml-parser.js.map +1 -1
  35. package/dist/buffer/fixml/fixml-view.js +3 -3
  36. package/dist/buffer/fixml/fixml-view.js.map +1 -1
  37. package/dist/buffer/fixml/populated-attributes.js.map +1 -1
  38. package/dist/buffer/msg-encoder.js +2 -1
  39. package/dist/buffer/msg-encoder.js.map +1 -1
  40. package/dist/buffer/msg-view.d.ts +9 -9
  41. package/dist/buffer/msg-view.js +58 -25
  42. package/dist/buffer/msg-view.js.map +1 -1
  43. package/dist/buffer/segment/segment-description.d.ts +4 -4
  44. package/dist/buffer/segment/segment-description.js +7 -5
  45. package/dist/buffer/segment/segment-description.js.map +1 -1
  46. package/dist/buffer/segment/segment-summary.js +2 -1
  47. package/dist/buffer/segment/segment-summary.js.map +1 -1
  48. package/dist/buffer/structure.d.ts +1 -1
  49. package/dist/buffer/structure.js +1 -2
  50. package/dist/buffer/structure.js.map +1 -1
  51. package/dist/buffer/time-format-template.js.map +1 -1
  52. package/dist/collections/collection.d.ts +3 -7
  53. package/dist/collections/collection.js.map +1 -1
  54. package/dist/collections/dictionary.d.ts +1 -1
  55. package/dist/collections/dictionary.js +2 -1
  56. package/dist/collections/dictionary.js.map +1 -1
  57. package/dist/config/empty-log-factory.js.map +1 -1
  58. package/dist/config/get-js-fx-logger.d.ts +1 -3
  59. package/dist/config/get-js-fx-logger.js.map +1 -1
  60. package/dist/config/js-fix-config.d.ts +3 -3
  61. package/dist/config/js-fix-config.js.map +1 -1
  62. package/dist/config/js-fix-logger.d.ts +5 -5
  63. package/dist/config/js-fix-logger.js.map +1 -1
  64. package/dist/config/js-fix-winston-log-factory.d.ts +1 -1
  65. package/dist/config/js-fix-winston-log-factory.js.map +1 -1
  66. package/dist/config/winston-logger.js +7 -7
  67. package/dist/config/winston-logger.js.map +1 -1
  68. package/dist/dict-parser.js +27 -21
  69. package/dist/dict-parser.js.map +1 -1
  70. package/dist/dictionary/compiler/compiler-settings.js.map +1 -1
  71. package/dist/dictionary/compiler/compiler-type.js.map +1 -1
  72. package/dist/dictionary/compiler/enum-compiler.d.ts +2 -2
  73. package/dist/dictionary/compiler/enum-compiler.js +7 -10
  74. package/dist/dictionary/compiler/enum-compiler.js.map +1 -1
  75. package/dist/dictionary/compiler/msg-compiler.js +9 -10
  76. package/dist/dictionary/compiler/msg-compiler.js.map +1 -1
  77. package/dist/dictionary/compiler/standard-snippet.d.ts +1 -1
  78. package/dist/dictionary/compiler/standard-snippet.js +11 -10
  79. package/dist/dictionary/compiler/standard-snippet.js.map +1 -1
  80. package/dist/dictionary/contained/contained-component-field.d.ts +2 -2
  81. package/dist/dictionary/contained/contained-component-field.js +1 -1
  82. package/dist/dictionary/contained/contained-component-field.js.map +1 -1
  83. package/dist/dictionary/contained/contained-field-dispatcher.d.ts +3 -9
  84. package/dist/dictionary/contained/contained-field-dispatcher.js.map +1 -1
  85. package/dist/dictionary/contained/contained-field-set.d.ts +4 -4
  86. package/dist/dictionary/contained/contained-field-set.js +1 -1
  87. package/dist/dictionary/contained/contained-field-set.js.map +1 -1
  88. package/dist/dictionary/contained/contained-field.d.ts +1 -0
  89. package/dist/dictionary/contained/contained-field.js +3 -0
  90. package/dist/dictionary/contained/contained-field.js.map +1 -1
  91. package/dist/dictionary/contained/contained-group-field.d.ts +2 -2
  92. package/dist/dictionary/contained/contained-group-field.js +1 -1
  93. package/dist/dictionary/contained/contained-group-field.js.map +1 -1
  94. package/dist/dictionary/contained/contained-simple-field.d.ts +2 -2
  95. package/dist/dictionary/contained/contained-simple-field.js +1 -1
  96. package/dist/dictionary/contained/contained-simple-field.js.map +1 -1
  97. package/dist/dictionary/contained/field-dispatcher.d.ts +3 -9
  98. package/dist/dictionary/contained/field-dispatcher.js.map +1 -1
  99. package/dist/dictionary/contained/fields-dispatch.js +0 -1
  100. package/dist/dictionary/contained/fields-dispatch.js.map +1 -1
  101. package/dist/dictionary/definition/component-field-definition.d.ts +3 -3
  102. package/dist/dictionary/definition/component-field-definition.js +1 -1
  103. package/dist/dictionary/definition/component-field-definition.js.map +1 -1
  104. package/dist/dictionary/definition/fix-definitions.d.ts +3 -3
  105. package/dist/dictionary/definition/fix-definitions.js +3 -2
  106. package/dist/dictionary/definition/fix-definitions.js.map +1 -1
  107. package/dist/dictionary/definition/group-field-definition.d.ts +4 -4
  108. package/dist/dictionary/definition/group-field-definition.js +1 -1
  109. package/dist/dictionary/definition/group-field-definition.js.map +1 -1
  110. package/dist/dictionary/definition/message-definition.d.ts +2 -2
  111. package/dist/dictionary/definition/message-definition.js.map +1 -1
  112. package/dist/dictionary/definition/simple-field-definition.d.ts +4 -4
  113. package/dist/dictionary/definition/simple-field-definition.js +3 -2
  114. package/dist/dictionary/definition/simple-field-definition.js.map +1 -1
  115. package/dist/dictionary/dict-primitive.d.ts +1 -1
  116. package/dist/dictionary/dict-primitive.js.map +1 -1
  117. package/dist/dictionary/field-enum.js.map +1 -1
  118. package/dist/dictionary/fix-versions.js.map +1 -1
  119. package/dist/dictionary/parser/fix-repository/repository-xml-parser.js +20 -18
  120. package/dist/dictionary/parser/fix-repository/repository-xml-parser.js.map +1 -1
  121. package/dist/dictionary/parser/fix-repository/repository.js +24 -16
  122. package/dist/dictionary/parser/fix-repository/repository.js.map +1 -1
  123. package/dist/dictionary/parser/fixml/components-parser.d.ts +1 -1
  124. package/dist/dictionary/parser/fixml/components-parser.js +24 -15
  125. package/dist/dictionary/parser/fixml/components-parser.js.map +1 -1
  126. package/dist/dictionary/parser/fixml/fields-parser.d.ts +1 -1
  127. package/dist/dictionary/parser/fixml/fields-parser.js +5 -5
  128. package/dist/dictionary/parser/fixml/fields-parser.js.map +1 -1
  129. package/dist/dictionary/parser/fixml/fix-xsd-parser.js +3 -2
  130. package/dist/dictionary/parser/fixml/fix-xsd-parser.js.map +1 -1
  131. package/dist/dictionary/parser/fixml/include-graph.d.ts +1 -1
  132. package/dist/dictionary/parser/fixml/include-graph.js +58 -48
  133. package/dist/dictionary/parser/fixml/include-graph.js.map +1 -1
  134. package/dist/dictionary/parser/fixml/xsd-parser.d.ts +1 -1
  135. package/dist/dictionary/parser/fixml/xsd-parser.js +34 -23
  136. package/dist/dictionary/parser/fixml/xsd-parser.js.map +1 -1
  137. package/dist/dictionary/parser/quickfix/field-definition-parser.js +0 -2
  138. package/dist/dictionary/parser/quickfix/field-definition-parser.js.map +1 -1
  139. package/dist/dictionary/parser/quickfix/field-set-parser.js +3 -2
  140. package/dist/dictionary/parser/quickfix/field-set-parser.js.map +1 -1
  141. package/dist/dictionary/parser/quickfix/message-parser.js +10 -5
  142. package/dist/dictionary/parser/quickfix/message-parser.js.map +1 -1
  143. package/dist/dictionary/parser/quickfix/node-parser.js +14 -8
  144. package/dist/dictionary/parser/quickfix/node-parser.js.map +1 -1
  145. package/dist/dictionary/parser/quickfix/parse-context.d.ts +5 -5
  146. package/dist/dictionary/parser/quickfix/parse-context.js.map +1 -1
  147. package/dist/dictionary/parser/quickfix/quick-fix-xml-file-parser.js +22 -19
  148. package/dist/dictionary/parser/quickfix/quick-fix-xml-file-parser.js.map +1 -1
  149. package/dist/dictionary/set-reduce.js.map +1 -1
  150. package/dist/dictionary/type-dispatcher.d.ts +3 -9
  151. package/dist/dictionary/type-dispatcher.js.map +1 -1
  152. package/dist/dictionary/version-util.js +8 -8
  153. package/dist/dictionary/version-util.js.map +1 -1
  154. package/dist/jsfix-cmd.d.ts +3 -1
  155. package/dist/jsfix-cmd.js +134 -99
  156. package/dist/jsfix-cmd.js.map +1 -1
  157. package/dist/runtime/make-config.js +34 -14
  158. package/dist/runtime/make-config.js.map +1 -1
  159. package/dist/runtime/session-container.d.ts +3 -2
  160. package/dist/runtime/session-container.js +36 -16
  161. package/dist/runtime/session-container.js.map +1 -1
  162. package/dist/runtime/session-launcher.d.ts +10 -6
  163. package/dist/runtime/session-launcher.js +80 -43
  164. package/dist/runtime/session-launcher.js.map +1 -1
  165. package/dist/sample/http/oms/app.js +37 -7
  166. package/dist/sample/http/oms/app.js.map +1 -1
  167. package/dist/sample/http/oms/http-client.js +4 -2
  168. package/dist/sample/http/oms/http-client.js.map +1 -1
  169. package/dist/sample/http/oms/http-server.js +7 -1
  170. package/dist/sample/http/oms/http-server.js.map +1 -1
  171. package/dist/sample/http/oms/oms-factory.js +4 -3
  172. package/dist/sample/http/oms/oms-factory.js.map +1 -1
  173. package/dist/sample/tcp/qf-md/app.js +3 -3
  174. package/dist/sample/tcp/qf-md/app.js.map +1 -1
  175. package/dist/sample/tcp/qf-md/md-client.js +2 -1
  176. package/dist/sample/tcp/qf-md/md-client.js.map +1 -1
  177. package/dist/sample/tcp/qf-md/md-factory.js.map +1 -1
  178. package/dist/sample/tcp/qf-md/md-server.d.ts +1 -1
  179. package/dist/sample/tcp/qf-md/md-server.js +2 -1
  180. package/dist/sample/tcp/qf-md/md-server.js.map +1 -1
  181. package/dist/sample/tcp/recovering-skeleton/app.js +29 -16
  182. package/dist/sample/tcp/recovering-skeleton/app.js.map +1 -1
  183. package/dist/sample/tcp/recovering-skeleton/respawn-acceptor.d.ts +9 -1
  184. package/dist/sample/tcp/recovering-skeleton/respawn-acceptor.js +51 -2
  185. package/dist/sample/tcp/recovering-skeleton/respawn-acceptor.js.map +1 -1
  186. package/dist/sample/tcp/recovering-skeleton/skeleton-client.js +2 -1
  187. package/dist/sample/tcp/recovering-skeleton/skeleton-client.js.map +1 -1
  188. package/dist/sample/tcp/recovering-skeleton/skeleton-server.js +4 -3
  189. package/dist/sample/tcp/recovering-skeleton/skeleton-server.js.map +1 -1
  190. package/dist/sample/tcp/skeleton/app.js.map +1 -1
  191. package/dist/sample/tcp/skeleton/skeleton-session.js +7 -4
  192. package/dist/sample/tcp/skeleton/skeleton-session.js.map +1 -1
  193. package/dist/sample/tcp/tls-trade-capture/app.js.map +1 -1
  194. package/dist/sample/tcp/trade-capture/app-launcher.js +3 -3
  195. package/dist/sample/tcp/trade-capture/app-launcher.js.map +1 -1
  196. package/dist/sample/tcp/trade-capture/trade-capture-client.d.ts +1 -1
  197. package/dist/sample/tcp/trade-capture/trade-capture-client.js +2 -1
  198. package/dist/sample/tcp/trade-capture/trade-capture-client.js.map +1 -1
  199. package/dist/sample/tcp/trade-capture/trade-capture-server.js +7 -2
  200. package/dist/sample/tcp/trade-capture/trade-capture-server.js.map +1 -1
  201. package/dist/sample/tcp/trade-capture/trade-factory.js.map +1 -1
  202. package/dist/store/fix-msg-ascii-store-resend.js +18 -7
  203. package/dist/store/fix-msg-ascii-store-resend.js.map +1 -1
  204. package/dist/store/fix-msg-memory-store.d.ts +3 -3
  205. package/dist/store/fix-msg-memory-store.js +93 -69
  206. package/dist/store/fix-msg-memory-store.js.map +1 -1
  207. package/dist/store/fix-msg-store-record.d.ts +6 -6
  208. package/dist/store/fix-msg-store-record.js +2 -1
  209. package/dist/store/fix-msg-store-record.js.map +1 -1
  210. package/dist/store/fix-msg-store-state.js.map +1 -1
  211. package/dist/store/fix-msg-store.d.ts +7 -7
  212. package/dist/store/fix-msg-store.js.map +1 -1
  213. package/dist/test/ascii/ascii-encoder.test.js +93 -63
  214. package/dist/test/ascii/ascii-encoder.test.js.map +1 -1
  215. package/dist/test/ascii/ascii-parser.test.js +28 -24
  216. package/dist/test/ascii/ascii-parser.test.js.map +1 -1
  217. package/dist/test/ascii/ascii-segment.test.js +16 -11
  218. package/dist/test/ascii/ascii-segment.test.js.map +1 -1
  219. package/dist/test/ascii/ascii-store-replay.test.js +1 -1
  220. package/dist/test/ascii/ascii-store-replay.test.js.map +1 -1
  221. package/dist/test/ascii/ascii-tag-pos.test.js +7 -3
  222. package/dist/test/ascii/ascii-tag-pos.test.js.map +1 -1
  223. package/dist/test/ascii/execution-report.test.js +80 -72
  224. package/dist/test/ascii/execution-report.test.js.map +1 -1
  225. package/dist/test/ascii/fix-log-replay.test.js +1 -1
  226. package/dist/test/ascii/fix-log-replay.test.js.map +1 -1
  227. package/dist/test/ascii/fix-repo-dict.test.js +58 -55
  228. package/dist/test/ascii/fix-repo-dict.test.js.map +1 -1
  229. package/dist/test/ascii/includes.test.js +1 -1
  230. package/dist/test/ascii/includes.test.js.map +1 -1
  231. package/dist/test/ascii/logon.test.js +3 -3
  232. package/dist/test/ascii/logon.test.js.map +1 -1
  233. package/dist/test/ascii/memory-store.test.js +3 -3
  234. package/dist/test/ascii/memory-store.test.js.map +1 -1
  235. package/dist/test/ascii/qf-full-msg.test.js +19 -16
  236. package/dist/test/ascii/qf-full-msg.test.js.map +1 -1
  237. package/dist/test/ascii/repo-full-ascii-msg.test.js +11 -11
  238. package/dist/test/ascii/repo-full-ascii-msg.test.js.map +1 -1
  239. package/dist/test/ascii/session-state.test.js.map +1 -1
  240. package/dist/test/ascii/session.test.js +59 -42
  241. package/dist/test/ascii/session.test.js.map +1 -1
  242. package/dist/test/ascii/view-decode.test.js +30 -22
  243. package/dist/test/ascii/view-decode.test.js.map +1 -1
  244. package/dist/test/encode-proxy.test.js +29 -29
  245. package/dist/test/encode-proxy.test.js.map +1 -1
  246. package/dist/test/env/experiment.js +5 -5
  247. package/dist/test/env/experiment.js.map +1 -1
  248. package/dist/test/env/parsing-result.d.ts +3 -3
  249. package/dist/test/env/parsing-result.js.map +1 -1
  250. package/dist/test/env/setup.d.ts +2 -2
  251. package/dist/test/env/setup.js +13 -11
  252. package/dist/test/env/setup.js.map +1 -1
  253. package/dist/test/env/skeleton-runner.d.ts +1 -1
  254. package/dist/test/env/skeleton-runner.js +16 -16
  255. package/dist/test/env/skeleton-runner.js.map +1 -1
  256. package/dist/test/env/test-recovery.d.ts +3 -3
  257. package/dist/test/env/test-recovery.js +1 -1
  258. package/dist/test/env/test-recovery.js.map +1 -1
  259. package/dist/test/env/to-views.d.ts +1 -1
  260. package/dist/test/env/to-views.js +2 -2
  261. package/dist/test/env/to-views.js.map +1 -1
  262. package/dist/test/fixml/fixml-alloc-parse.test.js +32 -15
  263. package/dist/test/fixml/fixml-alloc-parse.test.js.map +1 -1
  264. package/dist/test/fixml/fixml-mkt-data-fut-parse.test.js +2 -2
  265. package/dist/test/fixml/fixml-mkt-data-fut-parse.test.js.map +1 -1
  266. package/dist/test/fixml/fixml-mkt-data-settle-parse.test.js +2 -1
  267. package/dist/test/fixml/fixml-mkt-data-settle-parse.test.js.map +1 -1
  268. package/dist/test/fixml/fixml-tc-bi-lateral-parse.test.js +19 -12
  269. package/dist/test/fixml/fixml-tc-bi-lateral-parse.test.js.map +1 -1
  270. package/dist/test/fixml/repo-full-fixml-msg.test.js +2 -2
  271. package/dist/test/fixml/repo-full-fixml-msg.test.js.map +1 -1
  272. package/dist/transport/ascii/ascii-msg-transmitter.d.ts +1 -1
  273. package/dist/transport/ascii/ascii-msg-transmitter.js +18 -8
  274. package/dist/transport/ascii/ascii-msg-transmitter.js.map +1 -1
  275. package/dist/transport/ascii/ascii-session-msg-factory.d.ts +3 -3
  276. package/dist/transport/ascii/ascii-session-msg-factory.js +4 -2
  277. package/dist/transport/ascii/ascii-session-msg-factory.js.map +1 -1
  278. package/dist/transport/ascii/ascii-session.d.ts +1 -1
  279. package/dist/transport/ascii/ascii-session.js +34 -16
  280. package/dist/transport/ascii/ascii-session.js.map +1 -1
  281. package/dist/transport/duplex/http-duplex.js +10 -8
  282. package/dist/transport/duplex/http-duplex.js.map +1 -1
  283. package/dist/transport/duplex/string-duplex.js +2 -2
  284. package/dist/transport/duplex/string-duplex.js.map +1 -1
  285. package/dist/transport/factory/msg-transport.js +21 -10
  286. package/dist/transport/factory/msg-transport.js.map +1 -1
  287. package/dist/transport/fix-acceptor.d.ts +3 -3
  288. package/dist/transport/fix-acceptor.js.map +1 -1
  289. package/dist/transport/fix-entity.d.ts +1 -1
  290. package/dist/transport/fix-entity.js.map +1 -1
  291. package/dist/transport/fix-initiator.d.ts +2 -2
  292. package/dist/transport/fix-initiator.js.map +1 -1
  293. package/dist/transport/fixml/fixml-msg-transmitter.d.ts +1 -1
  294. package/dist/transport/fixml/fixml-msg-transmitter.js +4 -2
  295. package/dist/transport/fixml/fixml-msg-transmitter.js.map +1 -1
  296. package/dist/transport/fixml/fixml-session-msg-factory.d.ts +1 -1
  297. package/dist/transport/fixml/fixml-session-msg-factory.js.map +1 -1
  298. package/dist/transport/fixml/fixml-session.js +7 -3
  299. package/dist/transport/fixml/fixml-session.js.map +1 -1
  300. package/dist/transport/http/html-options.d.ts +2 -2
  301. package/dist/transport/http/html-options.js.map +1 -1
  302. package/dist/transport/http/html-route.js.map +1 -1
  303. package/dist/transport/http/http-acceptor-listener.js +27 -23
  304. package/dist/transport/http/http-acceptor-listener.js.map +1 -1
  305. package/dist/transport/http/http-acceptor.d.ts +2 -2
  306. package/dist/transport/http/http-acceptor.js +52 -41
  307. package/dist/transport/http/http-acceptor.js.map +1 -1
  308. package/dist/transport/http/http-adapter.d.ts +3 -3
  309. package/dist/transport/http/http-adapter.js.map +1 -1
  310. package/dist/transport/http/http-initiator.js +35 -23
  311. package/dist/transport/http/http-initiator.js.map +1 -1
  312. package/dist/transport/http/http-json-sample-adapter.d.ts +4 -4
  313. package/dist/transport/http/http-json-sample-adapter.js +16 -11
  314. package/dist/transport/http/http-json-sample-adapter.js.map +1 -1
  315. package/dist/transport/http/http-transaction.js.map +1 -1
  316. package/dist/transport/http/http-transport-description.js.map +1 -1
  317. package/dist/transport/msg-application.js.map +1 -1
  318. package/dist/transport/msg-transmitter.d.ts +1 -1
  319. package/dist/transport/msg-transmitter.js +2 -2
  320. package/dist/transport/msg-transmitter.js.map +1 -1
  321. package/dist/transport/session/a-session-msg-factory.d.ts +3 -5
  322. package/dist/transport/session/a-session-msg-factory.js.map +1 -1
  323. package/dist/transport/session/fix-session-state.d.ts +8 -5
  324. package/dist/transport/session/fix-session-state.js +21 -16
  325. package/dist/transport/session/fix-session-state.js.map +1 -1
  326. package/dist/transport/session/fix-session.d.ts +19 -6
  327. package/dist/transport/session/fix-session.js +197 -110
  328. package/dist/transport/session/fix-session.js.map +1 -1
  329. package/dist/transport/session/make-fix-session.d.ts +1 -3
  330. package/dist/transport/session/make-fix-session.js.map +1 -1
  331. package/dist/transport/session/session-description.d.ts +1 -1
  332. package/dist/transport/session/session-description.js.map +1 -1
  333. package/dist/transport/session/session-msg-factory.d.ts +9 -9
  334. package/dist/transport/session/session-msg-factory.js.map +1 -1
  335. package/dist/transport/tcp/recovering-tcp-initiator.d.ts +4 -2
  336. package/dist/transport/tcp/recovering-tcp-initiator.js +62 -30
  337. package/dist/transport/tcp/recovering-tcp-initiator.js.map +1 -1
  338. package/dist/transport/tcp/tcp-acceptor-listener.js +28 -25
  339. package/dist/transport/tcp/tcp-acceptor-listener.js.map +1 -1
  340. package/dist/transport/tcp/tcp-acceptor.d.ts +2 -2
  341. package/dist/transport/tcp/tcp-acceptor.js +23 -15
  342. package/dist/transport/tcp/tcp-acceptor.js.map +1 -1
  343. package/dist/transport/tcp/tcp-initiator-connector.js +39 -30
  344. package/dist/transport/tcp/tcp-initiator-connector.js.map +1 -1
  345. package/dist/transport/tcp/tcp-initiator.d.ts +1 -1
  346. package/dist/transport/tcp/tcp-initiator.js +130 -104
  347. package/dist/transport/tcp/tcp-initiator.js.map +1 -1
  348. package/dist/transport/tcp/tcp-transport-description.js.map +1 -1
  349. package/dist/transport/tcp/tls-options-factory.d.ts +3 -3
  350. package/dist/transport/tcp/tls-options-factory.js +10 -3
  351. package/dist/transport/tcp/tls-options-factory.js.map +1 -1
  352. package/dist/transport/tcp/tls-options.d.ts +6 -2
  353. package/dist/transport/tcp/tls-options.js.map +1 -1
  354. package/dist/util/json-helper.js +2 -1
  355. package/dist/util/json-helper.js.map +1 -1
  356. package/dist/util/message-generator.d.ts +1 -1
  357. package/dist/util/message-generator.js +1 -1
  358. package/dist/util/message-generator.js.map +1 -1
  359. package/package.json +53 -48
  360. package/src/buffer/ascii/ascii-chars.ts +0 -1
  361. package/src/buffer/ascii/ascii-encoder.ts +18 -16
  362. package/src/buffer/ascii/ascii-parser-state.ts +4 -4
  363. package/src/buffer/ascii/ascii-parser.ts +16 -13
  364. package/src/buffer/ascii/ascii-segment-parser.ts +16 -15
  365. package/src/buffer/ascii/ascii-view.ts +22 -14
  366. package/src/buffer/ascii/itime-formatter.ts +12 -12
  367. package/src/buffer/ascii/time-formatter.ts +11 -12
  368. package/src/buffer/elastic-buffer.ts +5 -6
  369. package/src/buffer/encode-proxy.ts +6 -5
  370. package/src/buffer/encoder-state.ts +7 -3
  371. package/src/buffer/fixml/fixml-encoder.ts +10 -10
  372. package/src/buffer/fixml/fixml-parser.ts +80 -60
  373. package/src/buffer/fixml/fixml-view.ts +6 -7
  374. package/src/buffer/fixml/populated-attributes.ts +1 -1
  375. package/src/buffer/msg-encoder.ts +2 -1
  376. package/src/buffer/msg-view.ts +73 -53
  377. package/src/buffer/segment/segment-description.ts +13 -13
  378. package/src/buffer/segment/segment-summary.ts +3 -2
  379. package/src/buffer/structure.ts +6 -6
  380. package/src/buffer/time-format-template.ts +1 -1
  381. package/src/collections/collection.ts +2 -6
  382. package/src/collections/dictionary.ts +4 -5
  383. package/src/config/empty-log-factory.ts +1 -0
  384. package/src/config/get-js-fx-logger.ts +1 -2
  385. package/src/config/js-fix-config.ts +6 -6
  386. package/src/config/js-fix-logger.ts +14 -9
  387. package/src/config/js-fix-winston-log-factory.ts +2 -1
  388. package/src/config/winston-logger.ts +9 -7
  389. package/src/dictionary/compiler/compiler-settings.ts +5 -5
  390. package/src/dictionary/compiler/compiler-type.ts +1 -1
  391. package/src/dictionary/compiler/enum-compiler.ts +14 -16
  392. package/src/dictionary/compiler/msg-compiler.ts +15 -17
  393. package/src/dictionary/compiler/standard-snippet.ts +28 -27
  394. package/src/dictionary/contained/contained-component-field.ts +5 -4
  395. package/src/dictionary/contained/contained-field-dispatcher.ts +3 -3
  396. package/src/dictionary/contained/contained-field-set.ts +21 -21
  397. package/src/dictionary/contained/contained-field.ts +4 -1
  398. package/src/dictionary/contained/contained-group-field.ts +4 -4
  399. package/src/dictionary/contained/contained-simple-field.ts +5 -5
  400. package/src/dictionary/contained/field-dispatcher.ts +3 -3
  401. package/src/dictionary/contained/fields-dispatch.ts +0 -1
  402. package/src/dictionary/definition/component-field-definition.ts +4 -4
  403. package/src/dictionary/definition/fix-definitions.ts +8 -8
  404. package/src/dictionary/definition/group-field-definition.ts +5 -5
  405. package/src/dictionary/definition/message-definition.ts +4 -4
  406. package/src/dictionary/definition/simple-field-definition.ts +9 -9
  407. package/src/dictionary/dict-primitive.ts +2 -2
  408. package/src/dictionary/field-enum.ts +3 -2
  409. package/src/dictionary/fix-versions.ts +10 -10
  410. package/src/dictionary/parser/fix-repository/repository-xml-parser.ts +7 -8
  411. package/src/dictionary/parser/fix-repository/repository.ts +38 -30
  412. package/src/dictionary/parser/fixml/components-parser.ts +57 -51
  413. package/src/dictionary/parser/fixml/fields-parser.ts +9 -10
  414. package/src/dictionary/parser/fixml/fix-xsd-parser.ts +2 -3
  415. package/src/dictionary/parser/fixml/include-graph.ts +26 -21
  416. package/src/dictionary/parser/fixml/xsd-parser.ts +5 -5
  417. package/src/dictionary/parser/quickfix/field-definition-parser.ts +3 -5
  418. package/src/dictionary/parser/quickfix/field-set-parser.ts +2 -2
  419. package/src/dictionary/parser/quickfix/message-parser.ts +9 -6
  420. package/src/dictionary/parser/quickfix/node-parser.ts +20 -18
  421. package/src/dictionary/parser/quickfix/parse-context.ts +4 -4
  422. package/src/dictionary/parser/quickfix/quick-fix-xml-file-parser.ts +13 -15
  423. package/src/dictionary/set-reduce.ts +4 -3
  424. package/src/dictionary/type-dispatcher.ts +3 -3
  425. package/src/dictionary/version-util.ts +8 -8
  426. package/src/jsfix-cmd.ts +82 -58
  427. package/src/runtime/make-config.ts +15 -10
  428. package/src/runtime/session-container.ts +26 -18
  429. package/src/runtime/session-launcher.ts +58 -30
  430. package/src/sample/http/oms/app.ts +24 -7
  431. package/src/sample/http/oms/http-client.ts +3 -3
  432. package/src/sample/http/oms/http-server.ts +7 -1
  433. package/src/sample/http/oms/oms-factory.ts +3 -3
  434. package/src/sample/tcp/qf-md/app.ts +3 -3
  435. package/src/sample/tcp/qf-md/md-client.ts +1 -1
  436. package/src/sample/tcp/qf-md/md-factory.ts +3 -2
  437. package/src/sample/tcp/qf-md/md-server.ts +2 -2
  438. package/src/sample/tcp/recovering-skeleton/app.ts +37 -20
  439. package/src/sample/tcp/recovering-skeleton/respawn-acceptor.ts +66 -4
  440. package/src/sample/tcp/recovering-skeleton/skeleton-client.ts +2 -2
  441. package/src/sample/tcp/recovering-skeleton/skeleton-server.ts +4 -4
  442. package/src/sample/tcp/skeleton/app.ts +1 -1
  443. package/src/sample/tcp/skeleton/skeleton-session.ts +7 -7
  444. package/src/sample/tcp/tls-trade-capture/app.ts +1 -1
  445. package/src/sample/tcp/trade-capture/app-launcher.ts +4 -4
  446. package/src/sample/tcp/trade-capture/trade-capture-client.ts +7 -5
  447. package/src/sample/tcp/trade-capture/trade-capture-server.ts +10 -5
  448. package/src/sample/tcp/trade-capture/trade-factory.ts +1 -1
  449. package/src/store/fix-msg-ascii-store-resend.ts +5 -6
  450. package/src/store/fix-msg-memory-store.ts +22 -21
  451. package/src/store/fix-msg-store-record.ts +8 -8
  452. package/src/store/fix-msg-store-state.ts +2 -2
  453. package/src/store/fix-msg-store.ts +7 -7
  454. package/src/transport/ascii/ascii-msg-transmitter.ts +20 -14
  455. package/src/transport/ascii/ascii-session-msg-factory.ts +5 -6
  456. package/src/transport/ascii/ascii-session.ts +40 -29
  457. package/src/transport/duplex/http-duplex.ts +11 -9
  458. package/src/transport/duplex/string-duplex.ts +4 -5
  459. package/src/transport/factory/msg-transport.ts +5 -6
  460. package/src/transport/fix-acceptor.ts +2 -2
  461. package/src/transport/fix-entity.ts +1 -1
  462. package/src/transport/fix-initiator.ts +1 -1
  463. package/src/transport/fixml/fixml-msg-transmitter.ts +4 -3
  464. package/src/transport/fixml/fixml-session-msg-factory.ts +1 -2
  465. package/src/transport/fixml/fixml-session.ts +7 -6
  466. package/src/transport/http/html-options.ts +5 -5
  467. package/src/transport/http/html-route.ts +1 -1
  468. package/src/transport/http/http-acceptor-listener.ts +6 -4
  469. package/src/transport/http/http-acceptor.ts +36 -34
  470. package/src/transport/http/http-adapter.ts +3 -3
  471. package/src/transport/http/http-initiator.ts +22 -16
  472. package/src/transport/http/http-json-sample-adapter.ts +17 -16
  473. package/src/transport/http/http-transaction.ts +1 -1
  474. package/src/transport/http/http-transport-description.ts +1 -1
  475. package/src/transport/msg-application.ts +4 -4
  476. package/src/transport/msg-transmitter.ts +5 -5
  477. package/src/transport/session/a-session-msg-factory.ts +2 -3
  478. package/src/transport/session/fix-session-state.ts +24 -18
  479. package/src/transport/session/fix-session.ts +169 -96
  480. package/src/transport/session/make-fix-session.ts +1 -2
  481. package/src/transport/session/session-description.ts +2 -2
  482. package/src/transport/session/session-msg-factory.ts +9 -9
  483. package/src/transport/tcp/recovering-tcp-initiator.ts +39 -21
  484. package/src/transport/tcp/tcp-acceptor-listener.ts +4 -3
  485. package/src/transport/tcp/tcp-acceptor.ts +23 -22
  486. package/src/transport/tcp/tcp-initiator-connector.ts +16 -10
  487. package/src/transport/tcp/tcp-initiator.ts +57 -46
  488. package/src/transport/tcp/tcp-transport-description.ts +1 -1
  489. package/src/transport/tcp/tls-options-factory.ts +21 -8
  490. package/src/transport/tcp/tls-options.ts +11 -7
  491. package/src/util/json-helper.ts +6 -5
  492. package/src/util/message-generator.ts +6 -7
  493. package/tsconfig.json +2 -0
  494. package/.eslintrc.js +0 -6
  495. package/dist/buffer/ascii-chars.d.ts +0 -22
  496. package/dist/buffer/ascii-chars.js +0 -29
  497. package/dist/buffer/ascii-chars.js.map +0 -1
  498. package/dist/buffer/segment-description.d.ts +0 -33
  499. package/dist/buffer/segment-description.js +0 -80
  500. package/dist/buffer/segment-description.js.map +0 -1
  501. package/dist/buffer/segment-summary.d.ts +0 -13
  502. package/dist/buffer/segment-summary.js +0 -20
  503. package/dist/buffer/segment-summary.js.map +0 -1
  504. package/dist/buffer/tag-pos.d.ts +0 -12
  505. package/dist/buffer/tag-pos.js +0 -55
  506. package/dist/buffer/tag-pos.js.map +0 -1
  507. package/dist/buffer/tags.d.ts +0 -32
  508. package/dist/buffer/tags.js +0 -135
  509. package/dist/buffer/tags.js.map +0 -1
  510. package/dist/dictionary/fields-dispatch.d.ts +0 -13
  511. package/dist/dictionary/fields-dispatch.js +0 -40
  512. package/dist/dictionary/fields-dispatch.js.map +0 -1
  513. package/dist/sample/launcher.d.ts +0 -12
  514. package/dist/sample/launcher.js +0 -63
  515. package/dist/sample/launcher.js.map +0 -1
  516. package/dist/test/ascii-encoder.test.d.ts +0 -1
  517. package/dist/test/ascii-encoder.test.js +0 -529
  518. package/dist/test/ascii-encoder.test.js.map +0 -1
  519. package/dist/test/ascii-parser.test.d.ts +0 -1
  520. package/dist/test/ascii-parser.test.js +0 -142
  521. package/dist/test/ascii-parser.test.js.map +0 -1
  522. package/dist/test/ascii-segment.test.d.ts +0 -1
  523. package/dist/test/ascii-segment.test.js +0 -107
  524. package/dist/test/ascii-segment.test.js.map +0 -1
  525. package/dist/test/ascii-store-replay.test.d.ts +0 -1
  526. package/dist/test/ascii-store-replay.test.js +0 -121
  527. package/dist/test/ascii-store-replay.test.js.map +0 -1
  528. package/dist/test/ascii-tag-pos.test.d.ts +0 -1
  529. package/dist/test/ascii-tag-pos.test.js +0 -105
  530. package/dist/test/ascii-tag-pos.test.js.map +0 -1
  531. package/dist/test/execution-report.test.d.ts +0 -1
  532. package/dist/test/execution-report.test.js +0 -490
  533. package/dist/test/execution-report.test.js.map +0 -1
  534. package/dist/test/fix-log-replay.test.d.ts +0 -1
  535. package/dist/test/fix-log-replay.test.js +0 -45
  536. package/dist/test/fix-log-replay.test.js.map +0 -1
  537. package/dist/test/fix-repo-dict.test.d.ts +0 -1
  538. package/dist/test/fix-repo-dict.test.js +0 -127
  539. package/dist/test/fix-repo-dict.test.js.map +0 -1
  540. package/dist/test/fixml-alloc-parse.test.d.ts +0 -1
  541. package/dist/test/fixml-alloc-parse.test.js +0 -160
  542. package/dist/test/fixml-alloc-parse.test.js.map +0 -1
  543. package/dist/test/fixml-mkt-data-fut-parse.test.d.ts +0 -1
  544. package/dist/test/fixml-mkt-data-fut-parse.test.js +0 -60
  545. package/dist/test/fixml-mkt-data-fut-parse.test.js.map +0 -1
  546. package/dist/test/fixml-mkt-data-settle-parse.test.d.ts +0 -1
  547. package/dist/test/fixml-mkt-data-settle-parse.test.js +0 -33
  548. package/dist/test/fixml-mkt-data-settle-parse.test.js.map +0 -1
  549. package/dist/test/fixml-tc-bi-lateral-parse.test.d.ts +0 -1
  550. package/dist/test/fixml-tc-bi-lateral-parse.test.js +0 -96
  551. package/dist/test/fixml-tc-bi-lateral-parse.test.js.map +0 -1
  552. package/dist/test/includes.test.d.ts +0 -1
  553. package/dist/test/includes.test.js +0 -42
  554. package/dist/test/includes.test.js.map +0 -1
  555. package/dist/test/logon.test.d.ts +0 -1
  556. package/dist/test/logon.test.js +0 -93
  557. package/dist/test/logon.test.js.map +0 -1
  558. package/dist/test/memory-store.test.d.ts +0 -1
  559. package/dist/test/memory-store.test.js +0 -75
  560. package/dist/test/memory-store.test.js.map +0 -1
  561. package/dist/test/qf-full-msg.test.d.ts +0 -1
  562. package/dist/test/qf-full-msg.test.js +0 -76
  563. package/dist/test/qf-full-msg.test.js.map +0 -1
  564. package/dist/test/repo-full-ascii-msg.test.d.ts +0 -1
  565. package/dist/test/repo-full-ascii-msg.test.js +0 -82
  566. package/dist/test/repo-full-ascii-msg.test.js.map +0 -1
  567. package/dist/test/repo-full-fixml-msg.test.d.ts +0 -1
  568. package/dist/test/repo-full-fixml-msg.test.js +0 -136
  569. package/dist/test/repo-full-fixml-msg.test.js.map +0 -1
  570. package/dist/test/session-state.test.d.ts +0 -1
  571. package/dist/test/session-state.test.js +0 -74
  572. package/dist/test/session-state.test.js.map +0 -1
  573. package/dist/test/session.test.d.ts +0 -1
  574. package/dist/test/session.test.js +0 -412
  575. package/dist/test/session.test.js.map +0 -1
  576. package/dist/test/time-formatter.test.d.ts +0 -1
  577. package/dist/test/time-formatter.test.js +0 -78
  578. package/dist/test/time-formatter.test.js.map +0 -1
  579. package/dist/test/to-views.d.ts +0 -11
  580. package/dist/test/to-views.js +0 -55
  581. package/dist/test/to-views.js.map +0 -1
  582. package/dist/test/view-decode.test.d.ts +0 -1
  583. package/dist/test/view-decode.test.js +0 -208
  584. package/dist/test/view-decode.test.js.map +0 -1
  585. package/dist/transport/a-session-msg-factory.d.ts +0 -23
  586. package/dist/transport/a-session-msg-factory.js +0 -58
  587. package/dist/transport/a-session-msg-factory.js.map +0 -1
  588. package/dist/transport/ascii-session-msg-factory.d.ts +0 -16
  589. package/dist/transport/ascii-session-msg-factory.js +0 -47
  590. package/dist/transport/ascii-session-msg-factory.js.map +0 -1
  591. package/dist/transport/fix-msg-factory.d.ts +0 -15
  592. package/dist/transport/fix-msg-factory.js +0 -3
  593. package/dist/transport/fix-msg-factory.js.map +0 -1
  594. package/dist/transport/fix-session-state-args.d.ts +0 -8
  595. package/dist/transport/fix-session-state-args.js +0 -3
  596. package/dist/transport/fix-session-state-args.js.map +0 -1
  597. package/dist/transport/fix-session-state.d.ts +0 -32
  598. package/dist/transport/fix-session-state.js +0 -133
  599. package/dist/transport/fix-session-state.js.map +0 -1
  600. package/dist/transport/fix-session.d.ts +0 -50
  601. package/dist/transport/fix-session.js +0 -290
  602. package/dist/transport/fix-session.js.map +0 -1
  603. package/dist/transport/fixml/acceptor.d.ts +0 -3
  604. package/dist/transport/fixml/acceptor.js +0 -38
  605. package/dist/transport/fixml/acceptor.js.map +0 -1
  606. package/dist/transport/fixml-session-msg-factory.d.ts +0 -13
  607. package/dist/transport/fixml-session-msg-factory.js +0 -68
  608. package/dist/transport/fixml-session-msg-factory.js.map +0 -1
  609. package/dist/transport/make-config.d.ts +0 -4
  610. package/dist/transport/make-config.js +0 -31
  611. package/dist/transport/make-config.js.map +0 -1
  612. package/dist/transport/make-fix-session.d.ts +0 -5
  613. package/dist/transport/make-fix-session.js +0 -3
  614. package/dist/transport/make-fix-session.js.map +0 -1
  615. package/dist/transport/make-fixl-session.d.ts +0 -5
  616. package/dist/transport/make-fixl-session.js +0 -3
  617. package/dist/transport/make-fixl-session.js.map +0 -1
  618. package/dist/transport/msg-transport.d.ts +0 -14
  619. package/dist/transport/msg-transport.js +0 -57
  620. package/dist/transport/msg-transport.js.map +0 -1
  621. package/dist/transport/session-description.d.ts +0 -64
  622. package/dist/transport/session-description.js +0 -3
  623. package/dist/transport/session-description.js.map +0 -1
  624. package/dist/transport/session-msg-factory.d.ts +0 -6
  625. package/dist/transport/session-msg-factory.js +0 -13
  626. package/dist/transport/session-msg-factory.js.map +0 -1
  627. package/dist/transport/session-state.d.ts +0 -25
  628. package/dist/transport/session-state.js +0 -30
  629. package/dist/transport/session-state.js.map +0 -1
  630. package/dist/transport/tcp/acceptor.d.ts +0 -3
  631. package/dist/transport/tcp/acceptor.js +0 -40
  632. package/dist/transport/tcp/acceptor.js.map +0 -1
  633. package/dist/transport/tcp/initiator.d.ts +0 -3
  634. package/dist/transport/tcp/initiator.js +0 -67
  635. package/dist/transport/tcp/initiator.js.map +0 -1
  636. package/dist/util/dictionary-definitions.d.ts +0 -8
  637. package/dist/util/dictionary-definitions.js +0 -51
  638. package/dist/util/dictionary-definitions.js.map +0 -1
  639. package/tslint.json +0 -3
@@ -10,8 +10,8 @@ interface ISimpleField extends ILooseObject {
10
10
  Protocol: string
11
11
  simpleTypeName: string
12
12
  name: string
13
- ComponentType: string,
14
- Tag: string,
13
+ ComponentType: string
14
+ Tag: string
15
15
  Type: string
16
16
  AbbrName: string
17
17
  Category: string
@@ -26,7 +26,7 @@ interface IAlias {
26
26
  }
27
27
 
28
28
  export class FieldsParser extends XsdParser {
29
- private alias: IAlias[] = []
29
+ private readonly alias: IAlias[] = []
30
30
  public constructor (public readonly definitions: FixDefinitions) {
31
31
  super(definitions)
32
32
  }
@@ -39,7 +39,7 @@ export class FieldsParser extends XsdParser {
39
39
  break
40
40
  }
41
41
  case 'xs:documentation': {
42
- this.current['documentation'] = v
42
+ this.current.documentation = v
43
43
  break
44
44
  }
45
45
  }
@@ -48,7 +48,7 @@ export class FieldsParser extends XsdParser {
48
48
  public close (line: number, node: string): void {
49
49
  const current: ISimpleField = this.current as ISimpleField
50
50
  switch (node) {
51
- case'xs:simpleType': {
51
+ case 'xs:simpleType': {
52
52
  this.data[this.data.length] = current
53
53
  break
54
54
  }
@@ -62,10 +62,9 @@ export class FieldsParser extends XsdParser {
62
62
 
63
63
  public open (line: number, node: ISaxNode): void {
64
64
  switch (node.name) {
65
-
66
65
  case 'xs:simpleType': {
67
66
  this.current = {
68
- simpleTypeName: node.attributes['name']
67
+ simpleTypeName: node.attributes.name
69
68
  } as ISimpleField
70
69
  break
71
70
  }
@@ -76,7 +75,7 @@ export class FieldsParser extends XsdParser {
76
75
  }
77
76
 
78
77
  case 'xs:restriction': {
79
- this.current.restrictionBase = node.attributes['base']
78
+ this.current.restrictionBase = node.attributes.base
80
79
  break
81
80
  }
82
81
 
@@ -84,7 +83,7 @@ export class FieldsParser extends XsdParser {
84
83
  if (!this.current.enums) {
85
84
  this.current.enums = new Dictionary<string>()
86
85
  }
87
- this.current.currentEnum = node.attributes['value']
86
+ this.current.currentEnum = node.attributes.value
88
87
  this.pending = node.name
89
88
  break
90
89
  }
@@ -120,7 +119,7 @@ export class FieldsParser extends XsdParser {
120
119
  }
121
120
  alias.push({
122
121
  name: f.simpleTypeName,
123
- mapped: mapped
122
+ mapped
124
123
  })
125
124
  }
126
125
  })
@@ -10,7 +10,6 @@ import { FixDefinitionSource } from '../../fix-definition-source'
10
10
  import { FixVersion } from '../../fix-versions'
11
11
 
12
12
  export class FixXsdParser extends FixParser {
13
-
14
13
  public readonly definitions: FixDefinitions
15
14
  private readonly logger: IJsFixLogger
16
15
 
@@ -28,7 +27,7 @@ export class FixXsdParser extends FixParser {
28
27
  logger.info(`resolve includes ${main} from root ${this.rootPath}`)
29
28
  const t = new IncludeGraph(this.rootPath, main)
30
29
  await t.build()
31
- const resolved: string[] = t.resolve(main)
30
+ const resolved: string[] = t.resolve(main) ?? []
32
31
  const fields: FieldsParser = new FieldsParser(definitions)
33
32
  const components: ComponentsParser = new ComponentsParser(definitions)
34
33
  const filtered: string[] = resolved.reduce((a: string[], f: string) => {
@@ -38,7 +37,7 @@ export class FixXsdParser extends FixParser {
38
37
  return a
39
38
  }, [])
40
39
 
41
- for (let f of filtered) {
40
+ for (const f of filtered) {
42
41
  const parser: XsdParser = f.indexOf('-fields-') > 0 ? fields : components
43
42
  logger.info(`parsing file ${f}`)
44
43
  await parser.parse(path.join(this.rootPath, f))
@@ -33,8 +33,8 @@ export class IncludeGraph {
33
33
  this.getGraph()
34
34
  }
35
35
 
36
- public resolve (file: string): string[] {
37
- const label: number = this.nodes.get(file)
36
+ public resolve (file: string): string[] | null {
37
+ const label: number | null = this.nodes.get(file)
38
38
  if (label == null) {
39
39
  return null
40
40
  }
@@ -47,18 +47,21 @@ export class IncludeGraph {
47
47
 
48
48
  private resolve_nodes (label: number, depends: number[]): void {
49
49
  const node: IGraphNode = this.graph[label]
50
- for (let e of node.edges) {
51
- if (depends.indexOf(e) < 0) {
52
- this.resolve_nodes(e, depends)
53
- }
50
+ if (node) {
51
+ node.edges.forEach(e => {
52
+ if (!depends.includes(e)) {
53
+ this.resolve_nodes(e, depends)
54
+ }
55
+ })
54
56
  }
55
57
  depends.push(label)
56
58
  }
57
59
 
58
- private getGraph () {
60
+ private getGraph (): void {
59
61
  const nodes = this.nodes
60
- this.graph = this.includes.reduce((a: INumericKeyed<IGraphNode>, current: IInclude) => {
61
- const parent: number = nodes.get(current.parent)
62
+ this.graph = this.includes.reduce<INumericKeyed<IGraphNode>>((a: INumericKeyed<IGraphNode>, current: IInclude) => {
63
+ const parent: number | null = nodes.get(current.parent)
64
+ if (parent == null) return a
62
65
  let parentNode = a[parent]
63
66
  if (!parentNode) {
64
67
  a[parent] = parentNode = {
@@ -68,16 +71,18 @@ export class IncludeGraph {
68
71
  } as IGraphNode
69
72
  }
70
73
  current.children.forEach((s: string) => {
71
- const child: number = nodes.get(s)
72
- if (parentNode.edges.indexOf(child) < 0) {
73
- parentNode.edges.push(child)
74
+ const child: number | null = nodes.get(s)
75
+ if (child) {
76
+ if (!parentNode.edges.includes(child)) {
77
+ parentNode.edges.push(child)
78
+ }
74
79
  }
75
80
  })
76
81
  return a
77
- }, {} as INumericKeyed<IGraphNode>)
82
+ }, {})
78
83
  }
79
84
 
80
- private assignNodes () {
85
+ private assignNodes (): void {
81
86
  let next: number = 0
82
87
  this.nodes = this.includes.reduce((a: Dictionary<number>, current: IInclude) => {
83
88
  if (!a.containsKey(current.parent)) {
@@ -92,8 +97,8 @@ export class IncludeGraph {
92
97
  }, new Dictionary<number>())
93
98
  }
94
99
 
95
- private scanIncludes (file: string): Promise<string[]> {
96
- return new Promise<string[]>((accept, reject) => {
100
+ private async scanIncludes (file: string): Promise<string[]> {
101
+ return await new Promise<string[]>((resolve, reject) => {
97
102
  const includes: string[] = []
98
103
  const pass: fs.ReadStream = fs.createReadStream(path.join(this.root, file))
99
104
  const saxStream: SAXStream = require('sax').createStream(true, {})
@@ -107,7 +112,7 @@ export class IncludeGraph {
107
112
  }
108
113
  })
109
114
  saxStream.on('ready', () => {
110
- accept(includes)
115
+ resolve(includes)
111
116
  })
112
117
  saxStream.on('error', (r) => {
113
118
  reject(r)
@@ -116,16 +121,16 @@ export class IncludeGraph {
116
121
  })
117
122
  }
118
123
 
119
- private getIncludes (main: string): Promise<IInclude[]> {
124
+ private async getIncludes (main: string): Promise<IInclude[]> {
120
125
  const q: any[] = []
121
126
  q.push([main])
122
127
  const ordered: IInclude[] = []
123
128
  const seen: Dictionary<boolean> = new Dictionary<boolean>()
124
- return new Promise<IInclude[]>(async (accept, reject) => {
129
+ return await new Promise<IInclude[]>(async (resolve, reject) => {
125
130
  try {
126
131
  while (q.length > 0) {
127
132
  const batch: string[] = q.pop()
128
- for (let next of batch) {
133
+ for (const next of batch) {
129
134
  if (seen.containsKey(next)) {
130
135
  continue
131
136
  }
@@ -138,7 +143,7 @@ export class IncludeGraph {
138
143
  q.push(includes)
139
144
  }
140
145
  }
141
- accept(ordered)
146
+ resolve(ordered)
142
147
  } catch (e) {
143
148
  reject(e)
144
149
  }
@@ -8,13 +8,13 @@ import { ISaxNode } from '../../sax-node'
8
8
  export abstract class XsdParser {
9
9
  public readonly data: ILooseObject[] = []
10
10
  public current: ILooseObject
11
- protected pending: string
11
+ protected pending: string | null
12
12
 
13
13
  protected constructor (public readonly definitions: FixDefinitions) {
14
14
  }
15
15
 
16
- public parse (file: string): Promise<FixDefinitions> {
17
- return new Promise<FixDefinitions>((accept, reject) => {
16
+ public async parse (file: string): Promise<FixDefinitions> {
17
+ return await new Promise<FixDefinitions>((resolve, reject) => {
18
18
  const pass: fs.ReadStream = fs.createReadStream(file)
19
19
  const saxStream: SAXStream = require('sax').createStream(true, {})
20
20
  const saxParser: SAXParser = saxStream._parser
@@ -27,7 +27,7 @@ export abstract class XsdParser {
27
27
  })
28
28
 
29
29
  saxStream.on('ready', () => {
30
- accept(this.definitions)
30
+ resolve(this.definitions)
31
31
  })
32
32
 
33
33
  saxStream.on('text', (t: string) => {
@@ -53,7 +53,7 @@ export abstract class XsdParser {
53
53
  target = this.current
54
54
  }
55
55
  const keys: string[] = Object.keys(node.attributes)
56
- for (let k of keys) {
56
+ for (const k of keys) {
57
57
  target[k] = node.attributes[k]
58
58
  }
59
59
  }
@@ -13,9 +13,9 @@ export class FieldDefinitionParser extends NodeParser {
13
13
  switch (node.name) {
14
14
  case 'field': {
15
15
  this.currentField = new SimpleFieldDefinition(
16
- node.attributes.number,
17
- node.attributes.name,
18
- node.attributes.name,
16
+ node.attributes.number,
17
+ node.attributes.name,
18
+ node.attributes.name,
19
19
  null,
20
20
  null,
21
21
  node.attributes.type,
@@ -32,7 +32,5 @@ export class FieldDefinitionParser extends NodeParser {
32
32
  }
33
33
 
34
34
  public close (line: number, name: string): void {
35
- switch (name) {
36
- }
37
35
  }
38
36
  }
@@ -55,14 +55,14 @@ export class FieldSetParser extends NodeParser {
55
55
  case 'component':
56
56
  case 'header':
57
57
  case 'trailer': {
58
- const latest: ParseContext = this.parseContexts.pop()
58
+ const latest: ParseContext | null = this.parseContexts.pop() ?? null
59
59
  if (latest == null) {
60
60
  throw new Error(`component field ${name} closes yet does not exist.`)
61
61
  }
62
62
  if (!latest.defining) {
63
63
  return
64
64
  }
65
- const asComponent: ComponentFieldDefinition = latest.asComponent()
65
+ const asComponent: ComponentFieldDefinition | null = latest.asComponent() ?? null
66
66
  if (asComponent != null) {
67
67
  this.definitions.addComponentFieldDef(asComponent)
68
68
  } else {
@@ -5,7 +5,6 @@ import { ContainedComponentField } from '../../contained'
5
5
  import { ISaxNode } from '../../sax-node'
6
6
 
7
7
  export class MessageParser extends NodeParser {
8
-
9
8
  constructor (definitions: FixDefinitions, public passes: number) {
10
9
  super(definitions, passes)
11
10
  }
@@ -17,9 +16,13 @@ export class MessageParser extends NodeParser {
17
16
  const msg: MessageDefinition = new MessageDefinition(att.name, att.name, att.msgtype, att.msgcat, null)
18
17
  const context: ParseContext = new ParseContext(msg.name, true, msg)
19
18
  const hdr = this.definitions.component.get('StandardHeader')
20
- const contained = new ContainedComponentField(hdr, msg.fields.length, true)
21
- msg.add(contained)
22
- this.parseContexts.push(context)
19
+ const contained = hdr
20
+ ? new ContainedComponentField(hdr, msg.fields.length, true)
21
+ : null
22
+ if (contained) {
23
+ msg.add(contained)
24
+ this.parseContexts.push(context)
25
+ }
23
26
  break
24
27
  }
25
28
 
@@ -47,8 +50,8 @@ export class MessageParser extends NodeParser {
47
50
  public close (line: number, name: string): void {
48
51
  switch (name) {
49
52
  case 'message': {
50
- const parent: ParseContext = this.parseContexts.pop()
51
- const message: MessageDefinition = parent.asMessage()
53
+ const parent: ParseContext | null = this.parseContexts.pop() ?? null
54
+ const message: MessageDefinition | null = parent?.asMessage() ?? null
52
55
  if (message != null) {
53
56
  this.definitions.addMessage(message)
54
57
  }
@@ -15,31 +15,31 @@ export abstract class NodeParser {
15
15
 
16
16
  protected addSimple (node: ISaxNode): void {
17
17
  if (node.isSelfClosing) {
18
- const parent: ParseContext = this.peek()
18
+ const parent: ParseContext | null = this.peek()
19
19
  if (parent == null) {
20
20
  throw new Error(`simple field ${node.name} has no parent on which to add.`)
21
21
  }
22
22
  const fieldName: string = node.attributes.name
23
- const fieldDefinition: SimpleFieldDefinition = this.definitions.simple.get(fieldName)
23
+ const fieldDefinition: SimpleFieldDefinition | null = this.definitions.simple.get(fieldName)
24
24
  if (fieldDefinition == null) {
25
25
  throw new Error(`simple field ${fieldName} has no declaration in dictionary.`)
26
26
  }
27
27
  const containedField: ContainedSimpleField = new ContainedSimpleField(fieldDefinition,
28
- parent.set.fields.length, node.attributes.required === 'Y', false)
29
- parent.set.add(containedField)
28
+ parent?.set?.fields?.length ?? 0, node.attributes.required === 'Y', false)
29
+ parent?.set?.add(containedField)
30
30
  }
31
31
  }
32
32
 
33
33
  protected addComponentField (componentName: string, node: ISaxNode): void {
34
- const parent: ParseContext = this.peek()
34
+ const parent: ParseContext | null = this.peek()
35
35
  if (parent == null) {
36
36
  throw new Error(`component ${node.name} has no parent on which to add.`)
37
37
  }
38
- const fieldDef: ComponentFieldDefinition = this.definitions.component.get(componentName)
38
+ const fieldDef: ComponentFieldDefinition | null = this.definitions.component.get(componentName)
39
39
  if (fieldDef != null) {
40
40
  const containedField: ContainedComponentField =
41
- new ContainedComponentField(fieldDef, parent.set.fields.length, parent.required)
42
- parent.set.add(containedField)
41
+ new ContainedComponentField(fieldDef, parent?.set?.fields?.length ?? 0, parent.required)
42
+ parent?.set?.add(containedField)
43
43
  } else {
44
44
  if (this.passes >= 4) {
45
45
  throw new Error(`field ${node.name} includes unknown component ${componentName}.`)
@@ -48,16 +48,18 @@ export abstract class NodeParser {
48
48
  }
49
49
 
50
50
  protected addGroupField (name: string): void {
51
- const group: ParseContext = this.parseContexts.pop()
51
+ const group: ParseContext | null = this.parseContexts.pop() ?? null
52
52
  if (group == null) {
53
53
  throw new Error(`group field ${name} closes yet does not exist.`)
54
54
  }
55
- const parent: ParseContext = this.peek()
55
+ const parent: ParseContext | null = this.peek()
56
56
  if (parent != null) {
57
- const asGroup: GroupFieldDefinition = group.asGroup()
58
- const containedField: ContainedGroupField =
59
- new ContainedGroupField(asGroup, parent.set.fields.length, group.required)
60
- parent.set.add(containedField)
57
+ const asGroup: GroupFieldDefinition | null = group.asGroup()
58
+ if (asGroup) {
59
+ const containedField: ContainedGroupField =
60
+ new ContainedGroupField(asGroup, parent?.set?.fields?.length ?? 0, group.required)
61
+ parent?.set?.add(containedField)
62
+ }
61
63
  } else {
62
64
  throw new Error(`group field ${group.name} has no parent on which to add.`)
63
65
  }
@@ -65,21 +67,21 @@ export abstract class NodeParser {
65
67
 
66
68
  protected beginGroupDefinition (node: ISaxNode): void {
67
69
  if (!node.isSelfClosing) {
68
- // a group should have a field that matches its name
70
+ // a group should have a field that matches its name
69
71
  const groupName: string = node.attributes.name
70
- const noOfField: SimpleFieldDefinition = this.definitions.simple.get(groupName)
72
+ const noOfField: SimpleFieldDefinition | null = this.definitions.simple.get(groupName) ?? null
71
73
  if (noOfField == null) {
72
74
  const msg: string = `group ${groupName} has no field defined.`
73
75
  throw new Error(msg)
74
76
  }
75
- const set: GroupFieldDefinition = new GroupFieldDefinition(groupName, groupName, null, noOfField,null)
77
+ const set: GroupFieldDefinition = new GroupFieldDefinition(groupName, groupName, null, noOfField, null)
76
78
  const context: ParseContext = new ParseContext(node.attributes.name, true, set)
77
79
  context.required = node.attributes.required === 'Y'
78
80
  this.parseContexts.push(context)
79
81
  }
80
82
  }
81
83
 
82
- private peek (): ParseContext {
84
+ private peek (): ParseContext | null {
83
85
  return this.parseContexts.length > 0 ? this.parseContexts[this.parseContexts.length - 1] : null
84
86
  }
85
87
  }
@@ -4,11 +4,11 @@ import { ComponentFieldDefinition, GroupFieldDefinition, MessageDefinition } fro
4
4
  export class ParseContext {
5
5
  public required: boolean
6
6
 
7
- constructor (public name: string, public defining: boolean, public set: ContainedFieldSet) {
7
+ constructor (public name: string, public defining: boolean, public set: ContainedFieldSet | null) {
8
8
  this.required = false
9
9
  }
10
10
 
11
- public asMessage (): MessageDefinition {
11
+ public asMessage (): MessageDefinition | null {
12
12
  const res: boolean = this.set != null && this.set instanceof MessageDefinition
13
13
  if (res) {
14
14
  return (this.set) as MessageDefinition
@@ -17,7 +17,7 @@ export class ParseContext {
17
17
  }
18
18
  }
19
19
 
20
- public asComponent (): ComponentFieldDefinition {
20
+ public asComponent (): ComponentFieldDefinition | null {
21
21
  const res: boolean = this.set != null && this.set instanceof ComponentFieldDefinition
22
22
  if (res) {
23
23
  return (this.set) as ComponentFieldDefinition
@@ -26,7 +26,7 @@ export class ParseContext {
26
26
  }
27
27
  }
28
28
 
29
- public asGroup (): GroupFieldDefinition {
29
+ public asGroup (): GroupFieldDefinition | null {
30
30
  const res: boolean = this.set != null && this.set instanceof GroupFieldDefinition
31
31
  if (res) {
32
32
  return (this.set) as GroupFieldDefinition
@@ -16,7 +16,6 @@ import { VersionUtil } from '../../version-util'
16
16
  import { ParseState } from './parse-state'
17
17
 
18
18
  export class QuickFixXmlFileParser extends FixParser {
19
-
20
19
  public parseState: ParseState = ParseState.Begin
21
20
  public numberPasses: number = 0
22
21
  public definitions: FixDefinitions
@@ -27,7 +26,7 @@ export class QuickFixXmlFileParser extends FixParser {
27
26
  }
28
27
 
29
28
  private static subscribe (instance: QuickFixXmlFileParser, saxStream: SAXStream, done: IDictDoneCb): void {
30
- let parser: NodeParser
29
+ let parser: NodeParser | null
31
30
 
32
31
  instance.numberPasses++
33
32
  switch (instance.parseState) {
@@ -79,7 +78,6 @@ export class QuickFixXmlFileParser extends FixParser {
79
78
  const saxNode: ISaxNode = node as ISaxNode
80
79
 
81
80
  switch (saxNode.name) {
82
-
83
81
  case 'fix': {
84
82
  switch (instance.parseState) {
85
83
  case ParseState.FieldDefinitions: {
@@ -120,9 +118,9 @@ export class QuickFixXmlFileParser extends FixParser {
120
118
  }
121
119
 
122
120
  case 'components': {
123
- // can have a group containing components which contain themselves components of groups
124
- // each step will build forward references to a deeper level to ensure final messages
125
- // have all dependencies correctly defined.
121
+ // can have a group containing components which contain themselves components of groups
122
+ // each step will build forward references to a deeper level to ensure final messages
123
+ // have all dependencies correctly defined.
126
124
  switch (instance.parseState) {
127
125
  case ParseState.ComponentsFirstPass:
128
126
  case ParseState.ComponentsSecondPass:
@@ -175,7 +173,7 @@ export class QuickFixXmlFileParser extends FixParser {
175
173
  saxStream.on('ready', () => {
176
174
  if (done) {
177
175
  parser = null
178
- done(null, instance.definitions)
176
+ done(undefined, instance.definitions)
179
177
  }
180
178
  })
181
179
  }
@@ -187,15 +185,15 @@ export class QuickFixXmlFileParser extends FixParser {
187
185
  keys.forEach(k => {
188
186
  const message = messages.get(k)
189
187
  const trailer = this.definitions.component.get(trailerName)
190
- if (trailer && !message.components.containsKey(trailerName)) {
191
- const contained = new ContainedComponentField(trailer, message.fields.length, true)
192
- message.add(contained)
188
+ if (trailer && !message?.components.containsKey(trailerName)) {
189
+ const contained = new ContainedComponentField(trailer, message?.fields?.length ?? 0, true)
190
+ message?.add(contained)
193
191
  }
194
192
  })
195
193
  }
196
194
 
197
- public parse (): Promise<FixDefinitions> {
198
- return new Promise<FixDefinitions>(async (accept, reject) => {
195
+ public async parse (): Promise<FixDefinitions> {
196
+ return await new Promise<FixDefinitions>(async (resolve, reject) => {
199
197
  try {
200
198
  await this.onePass() // first fetch all field definitions
201
199
  await this.onePass() // first pass of components, will not know about forward components.
@@ -203,17 +201,17 @@ export class QuickFixXmlFileParser extends FixParser {
203
201
  await this.onePass() // third pass of components all fully resolved i.e. pick up versions from pass above
204
202
  await this.onePass() // lastly messages with all dependencies
205
203
  this.encloseMessages()
206
- accept(this.definitions)
204
+ resolve(this.definitions)
207
205
  } catch (e) {
208
206
  reject(e)
209
207
  }
210
208
  })
211
209
  }
212
210
 
213
- private async onePass (): Promise<FixDefinitions> {
211
+ private async onePass (): Promise<FixDefinitions | undefined | null> {
214
212
  const pass: fs.ReadStream = fs.createReadStream(this.xmlPath)
215
213
  const saxStream: SAXStream = require('sax').createStream(true, {})
216
214
  pass.pipe(saxStream)
217
- return this.singlePass(this, saxStream)
215
+ return await this.singlePass(this, saxStream)
218
216
  }
219
217
  }
@@ -1,9 +1,10 @@
1
- import { ContainedField, ContainedFieldSet,
2
- ContainedGroupField, ContainedSimpleField, ContainedComponentField, ContainedFieldType } from './contained'
1
+ import {
2
+ ContainedField, ContainedFieldSet,
3
+ ContainedGroupField, ContainedSimpleField, ContainedComponentField, ContainedFieldType
4
+ } from './contained'
3
5
  import { ITypeDispatcher } from './type-dispatcher'
4
6
 
5
7
  export class SetReduce<T> {
6
-
7
8
  reduceField (a: T, field: ContainedField, dispatcher: ITypeDispatcher<T>): void {
8
9
  switch (field.type) {
9
10
  case ContainedFieldType.Group: {
@@ -1,7 +1,7 @@
1
1
  import { ContainedComponentField, ContainedGroupField, ContainedSimpleField } from './contained'
2
2
 
3
3
  export interface ITypeDispatcher<T> {
4
- group?: { (a: T, field: ContainedGroupField): void }
5
- simple?: { (a: T, field: ContainedSimpleField): void }
6
- component?: { (a: T, field: ContainedComponentField): void }
4
+ group?: (a: T, field: ContainedGroupField) => void
5
+ simple?: (a: T, field: ContainedSimpleField) => void
6
+ component?: (a: T, field: ContainedComponentField) => void
7
7
  }
@@ -3,21 +3,21 @@ import { FixVersion } from './fix-versions'
3
3
  export abstract class VersionUtil {
4
4
  public static resolve (description: string): FixVersion {
5
5
  let version: FixVersion = FixVersion.Unknown
6
- if (description.indexOf('FIX.4.0') >= 0) {
6
+ if (description.includes('FIX.4.0')) {
7
7
  version = FixVersion.FIX40
8
- } else if (description.indexOf('FIX.4.1') >= 0) {
8
+ } else if (description.includes('FIX.4.1')) {
9
9
  version = FixVersion.FIX41
10
- } else if (description.indexOf('FIX.4.2') >= 0) {
10
+ } else if (description.includes('FIX.4.2')) {
11
11
  version = FixVersion.FIX42
12
- } else if (description.indexOf('FIX.4.3') >= 0) {
12
+ } else if (description.includes('FIX.4.3')) {
13
13
  version = FixVersion.FIX43
14
- } else if (description.indexOf('FIX.4.4') >= 0) {
14
+ } else if (description.includes('FIX.4.4')) {
15
15
  version = FixVersion.FIX44
16
- } else if (description.indexOf('FIX.5.0') >= 0) {
16
+ } else if (description.includes('FIX.5.0')) {
17
17
  version = FixVersion.FIX50
18
- } else if (description.indexOf('FIX.5.0SP1') >= 0) {
18
+ } else if (description.includes('FIX.5.0SP1')) {
19
19
  version = FixVersion.FIX50SP1
20
- } else if (description.indexOf('FIX.5.0SP1') >= 0) {
20
+ } else if (description.includes('FIX.5.0SP1')) {
21
21
  version = FixVersion.FIX50SP2
22
22
  }
23
23
  return version