jspurefix 1.1.2 → 1.4.1

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 (602) hide show
  1. package/.travis.yml +1 -1
  2. package/README.md +48 -2
  3. package/appveyor.yml +43 -11
  4. package/data/FIX44-MD.xml +6596 -0
  5. package/data/examples/FIX.4.4/jsfix.test_client.txt +15 -13
  6. package/data/session/test-qf44-acceptor.json +21 -0
  7. package/data/session/test-qf44-initiator.json +22 -0
  8. package/dist/buffer/ascii/ascii-encoder.d.ts +9 -2
  9. package/dist/buffer/ascii/ascii-encoder.js +72 -31
  10. package/dist/buffer/ascii/ascii-encoder.js.map +1 -1
  11. package/dist/buffer/ascii/ascii-parser.d.ts +1 -0
  12. package/dist/buffer/ascii/ascii-parser.js +7 -1
  13. package/dist/buffer/ascii/ascii-parser.js.map +1 -1
  14. package/dist/buffer/ascii/ascii-segment-parser.d.ts +0 -2
  15. package/dist/buffer/ascii/ascii-segment-parser.js +19 -25
  16. package/dist/buffer/ascii/ascii-segment-parser.js.map +1 -1
  17. package/dist/buffer/ascii/ascii-view.d.ts +2 -0
  18. package/dist/buffer/ascii/ascii-view.js +4 -0
  19. package/dist/buffer/ascii/ascii-view.js.map +1 -1
  20. package/dist/buffer/ascii/time-formatter.js.map +1 -1
  21. package/dist/buffer/ascii-chars.d.ts +1 -0
  22. package/dist/buffer/ascii-chars.js +1 -0
  23. package/dist/buffer/ascii-chars.js.map +1 -1
  24. package/dist/buffer/elastic-buffer.d.ts +1 -0
  25. package/dist/buffer/elastic-buffer.js +8 -0
  26. package/dist/buffer/elastic-buffer.js.map +1 -1
  27. package/dist/buffer/encode-proxy.js.map +1 -1
  28. package/dist/buffer/fixml/fixml-encoder.d.ts +3 -0
  29. package/dist/buffer/fixml/fixml-encoder.js +6 -0
  30. package/dist/buffer/fixml/fixml-encoder.js.map +1 -1
  31. package/dist/buffer/fixml/fixml-view.d.ts +2 -0
  32. package/dist/buffer/fixml/fixml-view.js +3 -0
  33. package/dist/buffer/fixml/fixml-view.js.map +1 -1
  34. package/dist/buffer/msg-encoder.d.ts +2 -0
  35. package/dist/buffer/msg-encoder.js.map +1 -1
  36. package/dist/buffer/msg-view.d.ts +2 -0
  37. package/dist/buffer/msg-view.js.map +1 -1
  38. package/dist/buffer/tags.js +5 -5
  39. package/dist/buffer/tags.js.map +1 -1
  40. package/dist/collections/dictionary.d.ts +1 -0
  41. package/dist/collections/dictionary.js +5 -0
  42. package/dist/collections/dictionary.js.map +1 -1
  43. package/dist/config/js-fix-config.d.ts +2 -0
  44. package/dist/config/js-fix-config.js +1 -0
  45. package/dist/config/js-fix-config.js.map +1 -1
  46. package/dist/dict-parser.js +2 -2
  47. package/dist/dict-parser.js.map +1 -1
  48. package/dist/dictionary/parser/quickfix/field-set-parser.js +11 -4
  49. package/dist/dictionary/parser/quickfix/field-set-parser.js.map +1 -1
  50. package/dist/dictionary/parser/quickfix/message-parser.js +4 -0
  51. package/dist/dictionary/parser/quickfix/message-parser.js.map +1 -1
  52. package/dist/dictionary/parser/quickfix/quick-fix-xml-file-parser.d.ts +1 -0
  53. package/dist/dictionary/parser/quickfix/quick-fix-xml-file-parser.js +15 -0
  54. package/dist/dictionary/parser/quickfix/quick-fix-xml-file-parser.js.map +1 -1
  55. package/dist/jsfix-cmd.js +2 -1
  56. package/dist/jsfix-cmd.js.map +1 -1
  57. package/dist/sample/http/oms/app.js +2 -0
  58. package/dist/sample/http/oms/app.js.map +1 -1
  59. package/dist/sample/launcher.d.ts +3 -2
  60. package/dist/sample/launcher.js +12 -3
  61. package/dist/sample/launcher.js.map +1 -1
  62. package/dist/sample/tcp/{trade_capture → qf-md}/app.d.ts +0 -0
  63. package/dist/sample/tcp/qf-md/app.js +22 -0
  64. package/dist/sample/tcp/qf-md/app.js.map +1 -0
  65. package/dist/sample/tcp/qf-md/md-client.d.ts +15 -0
  66. package/dist/sample/tcp/qf-md/md-client.js +42 -0
  67. package/dist/sample/tcp/qf-md/md-client.js.map +1 -0
  68. package/dist/sample/tcp/qf-md/md-factory.d.ts +4 -0
  69. package/dist/sample/tcp/qf-md/md-factory.js +35 -0
  70. package/dist/sample/tcp/qf-md/md-factory.js.map +1 -0
  71. package/dist/sample/tcp/qf-md/md-server.d.ts +16 -0
  72. package/dist/sample/tcp/qf-md/md-server.js +44 -0
  73. package/dist/sample/tcp/qf-md/md-server.js.map +1 -0
  74. package/dist/sample/tcp/recovering-skeleton/app.d.ts +1 -0
  75. package/dist/sample/tcp/recovering-skeleton/app.js +27 -0
  76. package/dist/sample/tcp/recovering-skeleton/app.js.map +1 -0
  77. package/dist/sample/tcp/recovering-skeleton/respawn-2.d.ts +2 -0
  78. package/dist/sample/tcp/recovering-skeleton/respawn-2.js +3 -0
  79. package/dist/sample/tcp/recovering-skeleton/respawn-2.js.map +1 -0
  80. package/dist/sample/tcp/recovering-skeleton/respawn-acceptor.d.ts +7 -0
  81. package/dist/sample/tcp/recovering-skeleton/respawn-acceptor.js +52 -0
  82. package/dist/sample/tcp/recovering-skeleton/respawn-acceptor.js.map +1 -0
  83. package/dist/sample/tcp/recovering-skeleton/skeleton-client.d.ts +16 -0
  84. package/dist/sample/tcp/recovering-skeleton/skeleton-client.js +45 -0
  85. package/dist/sample/tcp/recovering-skeleton/skeleton-client.js.map +1 -0
  86. package/dist/sample/tcp/recovering-skeleton/skeleton-server.d.ts +16 -0
  87. package/dist/sample/tcp/recovering-skeleton/skeleton-server.js +52 -0
  88. package/dist/sample/tcp/recovering-skeleton/skeleton-server.js.map +1 -0
  89. package/dist/sample/tcp/skeleton/app.js +2 -0
  90. package/dist/sample/tcp/skeleton/app.js.map +1 -1
  91. package/dist/sample/tcp/skeleton/skeleton-session.d.ts +5 -1
  92. package/dist/sample/tcp/skeleton/skeleton-session.js +22 -3
  93. package/dist/sample/tcp/skeleton/skeleton-session.js.map +1 -1
  94. package/dist/sample/tcp/tls-trade-capture/app.js +1 -1
  95. package/dist/sample/tcp/tls-trade-capture/app.js.map +1 -1
  96. package/dist/sample/tcp/trade-capture/app.d.ts +1 -0
  97. package/dist/sample/tcp/{trade_capture → trade-capture}/app.js +0 -0
  98. package/dist/sample/tcp/{trade_capture → trade-capture}/app.js.map +1 -1
  99. package/dist/sample/tcp/{trade_capture → trade-capture}/index.d.ts +0 -0
  100. package/dist/sample/tcp/{trade_capture → trade-capture}/index.js +0 -0
  101. package/dist/sample/tcp/{trade_capture → trade-capture}/index.js.map +1 -1
  102. package/dist/sample/tcp/{trade_capture → trade-capture}/trade-capture-client.d.ts +1 -0
  103. package/dist/sample/tcp/{trade_capture → trade-capture}/trade-capture-client.js +8 -4
  104. package/dist/sample/tcp/trade-capture/trade-capture-client.js.map +1 -0
  105. package/dist/sample/tcp/{trade_capture → trade-capture}/trade-capture-server.d.ts +0 -0
  106. package/dist/sample/tcp/{trade_capture → trade-capture}/trade-capture-server.js +1 -1
  107. package/dist/sample/tcp/trade-capture/trade-capture-server.js.map +1 -0
  108. package/dist/sample/tcp/{trade_capture → trade-capture}/trade-factory.d.ts +0 -0
  109. package/dist/sample/tcp/{trade_capture → trade-capture}/trade-factory.js +0 -0
  110. package/dist/sample/tcp/{trade_capture → trade-capture}/trade-factory.js.map +1 -1
  111. package/dist/store/fix-msg-ascii-store-resend.d.ts +6 -2
  112. package/dist/store/fix-msg-ascii-store-resend.js +49 -22
  113. package/dist/store/fix-msg-ascii-store-resend.js.map +1 -1
  114. package/dist/store/fix-msg-memory-store.d.ts +11 -8
  115. package/dist/store/fix-msg-memory-store.js +108 -42
  116. package/dist/store/fix-msg-memory-store.js.map +1 -1
  117. package/dist/store/fix-msg-store-record.d.ts +7 -3
  118. package/dist/store/fix-msg-store-record.js +5 -1
  119. package/dist/store/fix-msg-store-record.js.map +1 -1
  120. package/dist/store/fix-msg-store.d.ts +13 -9
  121. package/dist/store/fix-msg-store.js.map +1 -1
  122. package/dist/test/ascii-encode.test.js +20 -3
  123. package/dist/test/ascii-encode.test.js.map +1 -1
  124. package/dist/test/ascii-encoder.test.d.ts +1 -0
  125. package/dist/test/ascii-encoder.test.js +505 -0
  126. package/dist/test/ascii-encoder.test.js.map +1 -0
  127. package/dist/test/ascii-parser.test.js +8 -6
  128. package/dist/test/ascii-parser.test.js.map +1 -1
  129. package/dist/test/ascii-segment.test.js +6 -5
  130. package/dist/test/ascii-segment.test.js.map +1 -1
  131. package/dist/test/ascii-store-replay.test.js +59 -44
  132. package/dist/test/ascii-store-replay.test.js.map +1 -1
  133. package/dist/test/logon.test.js +1 -1
  134. package/dist/test/logon.test.js.map +1 -1
  135. package/dist/test/memory-store.test.js +24 -19
  136. package/dist/test/memory-store.test.js.map +1 -1
  137. package/dist/test/qf-full-msg.test.js +19 -14
  138. package/dist/test/qf-full-msg.test.js.map +1 -1
  139. package/dist/test/repo-full-ascii-msg.test.js +17 -15
  140. package/dist/test/repo-full-ascii-msg.test.js.map +1 -1
  141. package/dist/test/repo-full-fixml-msg.test.js +14 -14
  142. package/dist/test/repo-full-fixml-msg.test.js.map +1 -1
  143. package/dist/test/session-state.test.js +2 -2
  144. package/dist/test/session-state.test.js.map +1 -1
  145. package/dist/test/session.test.js +263 -143
  146. package/dist/test/session.test.js.map +1 -1
  147. package/dist/test/view-decode.test.js +2 -1
  148. package/dist/test/view-decode.test.js.map +1 -1
  149. package/dist/transport/a-session-msg-factory.d.ts +23 -0
  150. package/dist/transport/a-session-msg-factory.js +58 -0
  151. package/dist/transport/a-session-msg-factory.js.map +1 -0
  152. package/dist/transport/ascii/ascii-msg-transmitter.d.ts +1 -0
  153. package/dist/transport/ascii/ascii-msg-transmitter.js +39 -8
  154. package/dist/transport/ascii/ascii-msg-transmitter.js.map +1 -1
  155. package/dist/transport/ascii/ascii-session-msg-factory.d.ts +16 -0
  156. package/dist/transport/ascii/ascii-session-msg-factory.js +47 -0
  157. package/dist/transport/ascii/ascii-session-msg-factory.js.map +1 -0
  158. package/dist/transport/ascii/ascii-session.d.ts +10 -2
  159. package/dist/transport/ascii/ascii-session.js +86 -31
  160. package/dist/transport/ascii/ascii-session.js.map +1 -1
  161. package/dist/transport/ascii/index.d.ts +1 -0
  162. package/dist/transport/ascii/index.js +1 -0
  163. package/dist/transport/ascii/index.js.map +1 -1
  164. package/dist/transport/ascii-session-msg-factory.d.ts +16 -0
  165. package/dist/transport/ascii-session-msg-factory.js +47 -0
  166. package/dist/transport/ascii-session-msg-factory.js.map +1 -0
  167. package/dist/transport/duplex/http-duplex.js +2 -2
  168. package/dist/transport/duplex/http-duplex.js.map +1 -1
  169. package/dist/transport/fix-msg-factory.d.ts +1 -1
  170. package/dist/transport/fix-msg-factory.js.map +1 -1
  171. package/dist/transport/fix-session-state.d.ts +38 -12
  172. package/dist/transport/fix-session-state.js +49 -15
  173. package/dist/transport/fix-session-state.js.map +1 -1
  174. package/dist/transport/fix-session.d.ts +13 -6
  175. package/dist/transport/fix-session.js +143 -39
  176. package/dist/transport/fix-session.js.map +1 -1
  177. package/dist/transport/fixml/fixml-session-msg-factory.d.ts +13 -0
  178. package/dist/transport/fixml/fixml-session-msg-factory.js +68 -0
  179. package/dist/transport/fixml/fixml-session-msg-factory.js.map +1 -0
  180. package/dist/transport/fixml/fixml-session.js +1 -1
  181. package/dist/transport/fixml/fixml-session.js.map +1 -1
  182. package/dist/transport/fixml/index.d.ts +2 -1
  183. package/dist/transport/fixml/index.js +2 -1
  184. package/dist/transport/fixml/index.js.map +1 -1
  185. package/dist/transport/fixml-session-msg-factory.d.ts +13 -0
  186. package/dist/transport/fixml-session-msg-factory.js +68 -0
  187. package/dist/transport/fixml-session-msg-factory.js.map +1 -0
  188. package/dist/transport/http/http-acceptor.js +8 -7
  189. package/dist/transport/http/http-acceptor.js.map +1 -1
  190. package/dist/transport/index.d.ts +1 -1
  191. package/dist/transport/index.js +1 -1
  192. package/dist/transport/index.js.map +1 -1
  193. package/dist/transport/msg-transmitter.js +4 -3
  194. package/dist/transport/msg-transmitter.js.map +1 -1
  195. package/dist/transport/msg-transport.js +3 -2
  196. package/dist/transport/msg-transport.js.map +1 -1
  197. package/dist/transport/session-description.d.ts +1 -1
  198. package/dist/transport/session-description.js.map +1 -1
  199. package/dist/transport/session-msg-factory.d.ts +2 -2
  200. package/dist/transport/session-msg-factory.js +2 -2
  201. package/dist/transport/session-msg-factory.js.map +1 -1
  202. package/dist/transport/tcp/acceptor.js +5 -3
  203. package/dist/transport/tcp/acceptor.js.map +1 -1
  204. package/dist/transport/tcp/index.d.ts +1 -0
  205. package/dist/transport/tcp/index.js +1 -0
  206. package/dist/transport/tcp/index.js.map +1 -1
  207. package/dist/transport/tcp/initiator.js +1 -0
  208. package/dist/transport/tcp/initiator.js.map +1 -1
  209. package/dist/transport/tcp/recovering-initiator.d.ts +17 -0
  210. package/dist/transport/tcp/recovering-initiator.js +30 -0
  211. package/dist/transport/tcp/recovering-initiator.js.map +1 -0
  212. package/dist/transport/tcp/recovering-tcp-initiator.d.ts +28 -0
  213. package/dist/transport/tcp/recovering-tcp-initiator.js +120 -0
  214. package/dist/transport/tcp/recovering-tcp-initiator.js.map +1 -0
  215. package/dist/transport/tcp/tcp-acceptor.d.ts +7 -0
  216. package/dist/transport/tcp/tcp-acceptor.js +43 -11
  217. package/dist/transport/tcp/tcp-acceptor.js.map +1 -1
  218. package/dist/transport/tcp/tcp-initiator.d.ts +4 -0
  219. package/dist/transport/tcp/tcp-initiator.js +72 -35
  220. package/dist/transport/tcp/tcp-initiator.js.map +1 -1
  221. package/dist/types/FIX4.4/quickfix/advertisement.d.ts +4 -0
  222. package/dist/types/FIX4.4/quickfix/advertisement.js.map +1 -1
  223. package/dist/types/FIX4.4/quickfix/allocation_instruction.d.ts +4 -0
  224. package/dist/types/FIX4.4/quickfix/allocation_instruction.js.map +1 -1
  225. package/dist/types/FIX4.4/quickfix/allocation_instruction_ack.d.ts +4 -0
  226. package/dist/types/FIX4.4/quickfix/allocation_instruction_ack.js.map +1 -1
  227. package/dist/types/FIX4.4/quickfix/allocation_report.d.ts +4 -0
  228. package/dist/types/FIX4.4/quickfix/allocation_report.js.map +1 -1
  229. package/dist/types/FIX4.4/quickfix/allocation_report_ack.d.ts +4 -0
  230. package/dist/types/FIX4.4/quickfix/allocation_report_ack.js.map +1 -1
  231. package/dist/types/FIX4.4/quickfix/assignment_report.d.ts +4 -0
  232. package/dist/types/FIX4.4/quickfix/assignment_report.js.map +1 -1
  233. package/dist/types/FIX4.4/quickfix/bid_request.d.ts +4 -0
  234. package/dist/types/FIX4.4/quickfix/bid_request.js.map +1 -1
  235. package/dist/types/FIX4.4/quickfix/bid_response.d.ts +4 -0
  236. package/dist/types/FIX4.4/quickfix/bid_response.js.map +1 -1
  237. package/dist/types/FIX4.4/quickfix/business_message_reject.d.ts +4 -0
  238. package/dist/types/FIX4.4/quickfix/business_message_reject.js.map +1 -1
  239. package/dist/types/FIX4.4/quickfix/collateral_assignment.d.ts +4 -0
  240. package/dist/types/FIX4.4/quickfix/collateral_assignment.js.map +1 -1
  241. package/dist/types/FIX4.4/quickfix/collateral_inquiry.d.ts +4 -0
  242. package/dist/types/FIX4.4/quickfix/collateral_inquiry.js.map +1 -1
  243. package/dist/types/FIX4.4/quickfix/collateral_inquiry_ack.d.ts +4 -0
  244. package/dist/types/FIX4.4/quickfix/collateral_inquiry_ack.js.map +1 -1
  245. package/dist/types/FIX4.4/quickfix/collateral_report.d.ts +4 -0
  246. package/dist/types/FIX4.4/quickfix/collateral_report.js.map +1 -1
  247. package/dist/types/FIX4.4/quickfix/collateral_request.d.ts +4 -0
  248. package/dist/types/FIX4.4/quickfix/collateral_request.js.map +1 -1
  249. package/dist/types/FIX4.4/quickfix/collateral_response.d.ts +4 -0
  250. package/dist/types/FIX4.4/quickfix/collateral_response.js.map +1 -1
  251. package/dist/types/FIX4.4/quickfix/confirmation.d.ts +4 -0
  252. package/dist/types/FIX4.4/quickfix/confirmation.js.map +1 -1
  253. package/dist/types/FIX4.4/quickfix/confirmation_ack.d.ts +4 -0
  254. package/dist/types/FIX4.4/quickfix/confirmation_ack.js.map +1 -1
  255. package/dist/types/FIX4.4/quickfix/confirmation_request.d.ts +4 -0
  256. package/dist/types/FIX4.4/quickfix/confirmation_request.js.map +1 -1
  257. package/dist/types/FIX4.4/quickfix/cross_order_cancel_replace_request.d.ts +4 -0
  258. package/dist/types/FIX4.4/quickfix/cross_order_cancel_replace_request.js.map +1 -1
  259. package/dist/types/FIX4.4/quickfix/cross_order_cancel_request.d.ts +4 -0
  260. package/dist/types/FIX4.4/quickfix/cross_order_cancel_request.js.map +1 -1
  261. package/dist/types/FIX4.4/quickfix/derivative_security_list.d.ts +4 -0
  262. package/dist/types/FIX4.4/quickfix/derivative_security_list.js.map +1 -1
  263. package/dist/types/FIX4.4/quickfix/derivative_security_list_request.d.ts +4 -0
  264. package/dist/types/FIX4.4/quickfix/derivative_security_list_request.js.map +1 -1
  265. package/dist/types/FIX4.4/quickfix/dont_know_trade.d.ts +4 -0
  266. package/dist/types/FIX4.4/quickfix/dont_know_trade.js.map +1 -1
  267. package/dist/types/FIX4.4/quickfix/email.d.ts +4 -0
  268. package/dist/types/FIX4.4/quickfix/email.js.map +1 -1
  269. package/dist/types/FIX4.4/quickfix/execution_report.d.ts +4 -0
  270. package/dist/types/FIX4.4/quickfix/execution_report.js.map +1 -1
  271. package/dist/types/FIX4.4/quickfix/heartbeat.d.ts +4 -0
  272. package/dist/types/FIX4.4/quickfix/heartbeat.js.map +1 -1
  273. package/dist/types/FIX4.4/quickfix/index.d.ts +4 -0
  274. package/dist/types/FIX4.4/quickfix/index.js +4 -0
  275. package/dist/types/FIX4.4/quickfix/index.js.map +1 -1
  276. package/dist/types/FIX4.4/quickfix/ioi.d.ts +4 -0
  277. package/dist/types/FIX4.4/quickfix/ioi.js.map +1 -1
  278. package/dist/types/FIX4.4/quickfix/list_cancel_request.d.ts +4 -0
  279. package/dist/types/FIX4.4/quickfix/list_cancel_request.js.map +1 -1
  280. package/dist/types/FIX4.4/quickfix/list_execute.d.ts +4 -0
  281. package/dist/types/FIX4.4/quickfix/list_execute.js.map +1 -1
  282. package/dist/types/FIX4.4/quickfix/list_status.d.ts +4 -0
  283. package/dist/types/FIX4.4/quickfix/list_status.js.map +1 -1
  284. package/dist/types/FIX4.4/quickfix/list_status_request.d.ts +4 -0
  285. package/dist/types/FIX4.4/quickfix/list_status_request.js.map +1 -1
  286. package/dist/types/FIX4.4/quickfix/list_strike_price.d.ts +4 -0
  287. package/dist/types/FIX4.4/quickfix/list_strike_price.js.map +1 -1
  288. package/dist/types/FIX4.4/quickfix/logon.d.ts +4 -0
  289. package/dist/types/FIX4.4/quickfix/logon.js.map +1 -1
  290. package/dist/types/FIX4.4/quickfix/logout.d.ts +4 -0
  291. package/dist/types/FIX4.4/quickfix/logout.js.map +1 -1
  292. package/dist/types/FIX4.4/quickfix/market_data_incremental_refresh.d.ts +4 -0
  293. package/dist/types/FIX4.4/quickfix/market_data_incremental_refresh.js.map +1 -1
  294. package/dist/types/FIX4.4/quickfix/market_data_request.d.ts +4 -0
  295. package/dist/types/FIX4.4/quickfix/market_data_request.js.map +1 -1
  296. package/dist/types/FIX4.4/quickfix/market_data_request_reject.d.ts +4 -0
  297. package/dist/types/FIX4.4/quickfix/market_data_request_reject.js.map +1 -1
  298. package/dist/types/FIX4.4/quickfix/market_data_snapshot_full_refresh.d.ts +4 -0
  299. package/dist/types/FIX4.4/quickfix/market_data_snapshot_full_refresh.js.map +1 -1
  300. package/dist/types/FIX4.4/quickfix/mass_quote.d.ts +4 -0
  301. package/dist/types/FIX4.4/quickfix/mass_quote.js.map +1 -1
  302. package/dist/types/FIX4.4/quickfix/mass_quote_acknowledgement.d.ts +4 -0
  303. package/dist/types/FIX4.4/quickfix/mass_quote_acknowledgement.js.map +1 -1
  304. package/dist/types/FIX4.4/quickfix/multileg_order_cancel_replace.d.ts +4 -0
  305. package/dist/types/FIX4.4/quickfix/multileg_order_cancel_replace.js.map +1 -1
  306. package/dist/types/FIX4.4/quickfix/network_counterparty_system_status_request.d.ts +4 -0
  307. package/dist/types/FIX4.4/quickfix/network_counterparty_system_status_request.js.map +1 -1
  308. package/dist/types/FIX4.4/quickfix/network_counterparty_system_status_response.d.ts +4 -0
  309. package/dist/types/FIX4.4/quickfix/network_counterparty_system_status_response.js.map +1 -1
  310. package/dist/types/FIX4.4/quickfix/new_order_cross.d.ts +4 -0
  311. package/dist/types/FIX4.4/quickfix/new_order_cross.js.map +1 -1
  312. package/dist/types/FIX4.4/quickfix/new_order_list.d.ts +4 -0
  313. package/dist/types/FIX4.4/quickfix/new_order_list.js.map +1 -1
  314. package/dist/types/FIX4.4/quickfix/new_order_multileg.d.ts +4 -0
  315. package/dist/types/FIX4.4/quickfix/new_order_multileg.js.map +1 -1
  316. package/dist/types/FIX4.4/quickfix/new_order_single.d.ts +4 -0
  317. package/dist/types/FIX4.4/quickfix/new_order_single.js.map +1 -1
  318. package/dist/types/FIX4.4/quickfix/news.d.ts +4 -0
  319. package/dist/types/FIX4.4/quickfix/news.js.map +1 -1
  320. package/dist/types/FIX4.4/quickfix/order_cancel_reject.d.ts +4 -0
  321. package/dist/types/FIX4.4/quickfix/order_cancel_reject.js.map +1 -1
  322. package/dist/types/FIX4.4/quickfix/order_cancel_replace_request.d.ts +4 -0
  323. package/dist/types/FIX4.4/quickfix/order_cancel_replace_request.js.map +1 -1
  324. package/dist/types/FIX4.4/quickfix/order_cancel_request.d.ts +4 -0
  325. package/dist/types/FIX4.4/quickfix/order_cancel_request.js.map +1 -1
  326. package/dist/types/FIX4.4/quickfix/order_mass_cancel_report.d.ts +4 -0
  327. package/dist/types/FIX4.4/quickfix/order_mass_cancel_report.js.map +1 -1
  328. package/dist/types/FIX4.4/quickfix/order_mass_cancel_request.d.ts +4 -0
  329. package/dist/types/FIX4.4/quickfix/order_mass_cancel_request.js.map +1 -1
  330. package/dist/types/FIX4.4/quickfix/order_mass_status_request.d.ts +4 -0
  331. package/dist/types/FIX4.4/quickfix/order_mass_status_request.js.map +1 -1
  332. package/dist/types/FIX4.4/quickfix/order_status_request.d.ts +4 -0
  333. package/dist/types/FIX4.4/quickfix/order_status_request.js.map +1 -1
  334. package/dist/types/FIX4.4/quickfix/position_maintenance_report.d.ts +4 -0
  335. package/dist/types/FIX4.4/quickfix/position_maintenance_report.js.map +1 -1
  336. package/dist/types/FIX4.4/quickfix/position_maintenance_request.d.ts +4 -0
  337. package/dist/types/FIX4.4/quickfix/position_maintenance_request.js.map +1 -1
  338. package/dist/types/FIX4.4/quickfix/position_report.d.ts +4 -0
  339. package/dist/types/FIX4.4/quickfix/position_report.js.map +1 -1
  340. package/dist/types/FIX4.4/quickfix/quote.d.ts +4 -0
  341. package/dist/types/FIX4.4/quickfix/quote.js.map +1 -1
  342. package/dist/types/FIX4.4/quickfix/quote_cancel.d.ts +4 -0
  343. package/dist/types/FIX4.4/quickfix/quote_cancel.js.map +1 -1
  344. package/dist/types/FIX4.4/quickfix/quote_request.d.ts +4 -0
  345. package/dist/types/FIX4.4/quickfix/quote_request.js.map +1 -1
  346. package/dist/types/FIX4.4/quickfix/quote_request_reject.d.ts +4 -0
  347. package/dist/types/FIX4.4/quickfix/quote_request_reject.js.map +1 -1
  348. package/dist/types/FIX4.4/quickfix/quote_response.d.ts +4 -0
  349. package/dist/types/FIX4.4/quickfix/quote_response.js.map +1 -1
  350. package/dist/types/FIX4.4/quickfix/quote_status_report.d.ts +4 -0
  351. package/dist/types/FIX4.4/quickfix/quote_status_report.js.map +1 -1
  352. package/dist/types/FIX4.4/quickfix/quote_status_request.d.ts +4 -0
  353. package/dist/types/FIX4.4/quickfix/quote_status_request.js.map +1 -1
  354. package/dist/types/FIX4.4/quickfix/registration_instructions.d.ts +4 -0
  355. package/dist/types/FIX4.4/quickfix/registration_instructions.js.map +1 -1
  356. package/dist/types/FIX4.4/quickfix/registration_instructions_response.d.ts +4 -0
  357. package/dist/types/FIX4.4/quickfix/registration_instructions_response.js.map +1 -1
  358. package/dist/types/FIX4.4/quickfix/reject.d.ts +4 -0
  359. package/dist/types/FIX4.4/quickfix/reject.js.map +1 -1
  360. package/dist/types/FIX4.4/quickfix/request_for_positions.d.ts +4 -0
  361. package/dist/types/FIX4.4/quickfix/request_for_positions.js.map +1 -1
  362. package/dist/types/FIX4.4/quickfix/request_for_positions_ack.d.ts +4 -0
  363. package/dist/types/FIX4.4/quickfix/request_for_positions_ack.js.map +1 -1
  364. package/dist/types/FIX4.4/quickfix/resend_request.d.ts +4 -0
  365. package/dist/types/FIX4.4/quickfix/resend_request.js.map +1 -1
  366. package/dist/types/FIX4.4/quickfix/rfq_request.d.ts +4 -0
  367. package/dist/types/FIX4.4/quickfix/rfq_request.js.map +1 -1
  368. package/dist/types/FIX4.4/quickfix/security_definition.d.ts +4 -0
  369. package/dist/types/FIX4.4/quickfix/security_definition.js.map +1 -1
  370. package/dist/types/FIX4.4/quickfix/security_definition_request.d.ts +4 -0
  371. package/dist/types/FIX4.4/quickfix/security_definition_request.js.map +1 -1
  372. package/dist/types/FIX4.4/quickfix/security_list.d.ts +4 -0
  373. package/dist/types/FIX4.4/quickfix/security_list.js.map +1 -1
  374. package/dist/types/FIX4.4/quickfix/security_list_request.d.ts +4 -0
  375. package/dist/types/FIX4.4/quickfix/security_list_request.js.map +1 -1
  376. package/dist/types/FIX4.4/quickfix/security_status.d.ts +4 -0
  377. package/dist/types/FIX4.4/quickfix/security_status.js.map +1 -1
  378. package/dist/types/FIX4.4/quickfix/security_status_request.d.ts +4 -0
  379. package/dist/types/FIX4.4/quickfix/security_status_request.js.map +1 -1
  380. package/dist/types/FIX4.4/quickfix/security_type_request.d.ts +4 -0
  381. package/dist/types/FIX4.4/quickfix/security_type_request.js.map +1 -1
  382. package/dist/types/FIX4.4/quickfix/security_types.d.ts +4 -0
  383. package/dist/types/FIX4.4/quickfix/security_types.js.map +1 -1
  384. package/dist/types/FIX4.4/quickfix/sequence_reset.d.ts +4 -0
  385. package/dist/types/FIX4.4/quickfix/sequence_reset.js.map +1 -1
  386. package/dist/types/FIX4.4/quickfix/set/header.d.ts +31 -0
  387. package/dist/types/FIX4.4/quickfix/set/header.js +3 -0
  388. package/dist/types/FIX4.4/quickfix/set/header.js.map +1 -0
  389. package/dist/types/FIX4.4/quickfix/set/hop.d.ts +4 -0
  390. package/dist/types/FIX4.4/quickfix/set/hop.js +3 -0
  391. package/dist/types/FIX4.4/quickfix/set/hop.js.map +1 -0
  392. package/dist/types/FIX4.4/quickfix/set/hop_no_hops.d.ts +5 -0
  393. package/dist/types/FIX4.4/quickfix/set/hop_no_hops.js +3 -0
  394. package/dist/types/FIX4.4/quickfix/set/hop_no_hops.js.map +1 -0
  395. package/dist/types/FIX4.4/quickfix/set/standard_header.d.ts +31 -0
  396. package/dist/types/FIX4.4/quickfix/set/standard_header.js +3 -0
  397. package/dist/types/FIX4.4/quickfix/set/standard_header.js.map +1 -0
  398. package/dist/types/FIX4.4/quickfix/set/standard_trailer.d.ts +6 -0
  399. package/dist/types/FIX4.4/quickfix/set/standard_trailer.js +3 -0
  400. package/dist/types/FIX4.4/quickfix/set/standard_trailer.js.map +1 -0
  401. package/dist/types/FIX4.4/quickfix/set/trailer.d.ts +6 -0
  402. package/dist/types/FIX4.4/quickfix/set/trailer.js +3 -0
  403. package/dist/types/FIX4.4/quickfix/set/trailer.js.map +1 -0
  404. package/dist/types/FIX4.4/quickfix/settlement_instruction_request.d.ts +4 -0
  405. package/dist/types/FIX4.4/quickfix/settlement_instruction_request.js.map +1 -1
  406. package/dist/types/FIX4.4/quickfix/settlement_instructions.d.ts +4 -0
  407. package/dist/types/FIX4.4/quickfix/settlement_instructions.js.map +1 -1
  408. package/dist/types/FIX4.4/quickfix/test_request.d.ts +4 -0
  409. package/dist/types/FIX4.4/quickfix/test_request.js.map +1 -1
  410. package/dist/types/FIX4.4/quickfix/trade_capture_report.d.ts +4 -0
  411. package/dist/types/FIX4.4/quickfix/trade_capture_report.js.map +1 -1
  412. package/dist/types/FIX4.4/quickfix/trade_capture_report_ack.d.ts +4 -0
  413. package/dist/types/FIX4.4/quickfix/trade_capture_report_ack.js.map +1 -1
  414. package/dist/types/FIX4.4/quickfix/trade_capture_report_request.d.ts +4 -0
  415. package/dist/types/FIX4.4/quickfix/trade_capture_report_request.js.map +1 -1
  416. package/dist/types/FIX4.4/quickfix/trade_capture_report_request_ack.d.ts +4 -0
  417. package/dist/types/FIX4.4/quickfix/trade_capture_report_request_ack.js.map +1 -1
  418. package/dist/types/FIX4.4/quickfix/trading_session_status.d.ts +4 -0
  419. package/dist/types/FIX4.4/quickfix/trading_session_status.js.map +1 -1
  420. package/dist/types/FIX4.4/quickfix/trading_session_status_request.d.ts +4 -0
  421. package/dist/types/FIX4.4/quickfix/trading_session_status_request.js.map +1 -1
  422. package/dist/types/FIX4.4/quickfix/user_request.d.ts +4 -0
  423. package/dist/types/FIX4.4/quickfix/user_request.js.map +1 -1
  424. package/dist/types/FIX4.4/quickfix/user_response.d.ts +4 -0
  425. package/dist/types/FIX4.4/quickfix/user_response.js.map +1 -1
  426. package/dist/types/FIX4.4/quickfix/xm_lnon_fix.d.ts +4 -0
  427. package/dist/types/FIX4.4/quickfix/xm_lnon_fix.js.map +1 -1
  428. package/dist/types/FIX4.4/repo/enum/all-enum.js.map +1 -1
  429. package/package.json +25 -21
  430. package/script/build.sh +1 -0
  431. package/src/buffer/ascii/ascii-encoder.ts +110 -33
  432. package/src/buffer/ascii/ascii-parser.ts +8 -1
  433. package/src/buffer/ascii/ascii-segment-parser.ts +44 -38
  434. package/src/buffer/ascii/ascii-view.ts +5 -0
  435. package/src/buffer/ascii/time-formatter.ts +2 -2
  436. package/src/buffer/ascii-chars.ts +1 -0
  437. package/src/buffer/elastic-buffer.ts +9 -0
  438. package/src/buffer/encode-proxy.ts +2 -2
  439. package/src/buffer/fixml/fixml-encoder.ts +8 -0
  440. package/src/buffer/fixml/fixml-view.ts +5 -0
  441. package/src/buffer/msg-encoder.ts +2 -0
  442. package/src/buffer/msg-view.ts +3 -0
  443. package/src/buffer/tags.ts +1 -1
  444. package/src/collections/dictionary.ts +6 -0
  445. package/src/config/js-fix-config.ts +2 -0
  446. package/src/dictionary/parser/quickfix/field-set-parser.ts +11 -4
  447. package/src/dictionary/parser/quickfix/message-parser.ts +4 -0
  448. package/src/dictionary/parser/quickfix/quick-fix-xml-file-parser.ts +16 -0
  449. package/src/jsfix-cmd.ts +2 -1
  450. package/src/sample/http/oms/app.ts +2 -0
  451. package/src/sample/launcher.ts +17 -7
  452. package/src/sample/tcp/qf-md/app.ts +26 -0
  453. package/src/sample/tcp/qf-md/md-client.ts +51 -0
  454. package/src/sample/tcp/qf-md/md-factory.ts +34 -0
  455. package/src/sample/tcp/qf-md/md-server.ts +56 -0
  456. package/src/sample/tcp/recovering-skeleton/app.ts +33 -0
  457. package/src/sample/tcp/recovering-skeleton/respawn-acceptor.ts +41 -0
  458. package/src/sample/tcp/recovering-skeleton/skeleton-client.ts +54 -0
  459. package/src/sample/tcp/recovering-skeleton/skeleton-server.ts +60 -0
  460. package/src/sample/tcp/skeleton/app.ts +2 -0
  461. package/src/sample/tcp/skeleton/skeleton-session.ts +26 -4
  462. package/src/sample/tcp/tls-trade-capture/app.ts +1 -1
  463. package/src/sample/tcp/{trade_capture → trade-capture}/app.ts +0 -0
  464. package/src/sample/tcp/{trade_capture → trade-capture}/index.ts +0 -0
  465. package/src/sample/tcp/{trade_capture → trade-capture}/trade-capture-client.ts +10 -5
  466. package/src/sample/tcp/{trade_capture → trade-capture}/trade-capture-server.ts +2 -2
  467. package/src/sample/tcp/{trade_capture → trade-capture}/trade-factory.ts +0 -0
  468. package/src/store/fix-msg-ascii-store-resend.ts +87 -0
  469. package/src/store/fix-msg-memory-store.ts +171 -0
  470. package/src/store/fix-msg-store-record.ts +23 -0
  471. package/src/store/fix-msg-store.ts +23 -0
  472. package/src/store/index.ts +4 -0
  473. package/src/transport/a-session-msg-factory.ts +81 -0
  474. package/src/transport/ascii/ascii-msg-transmitter.ts +32 -11
  475. package/src/transport/ascii/ascii-session-msg-factory.ts +62 -0
  476. package/src/transport/ascii/ascii-session.ts +100 -36
  477. package/src/transport/ascii/index.ts +1 -0
  478. package/src/transport/duplex/http-duplex.ts +2 -2
  479. package/src/transport/fix-msg-factory.ts +1 -1
  480. package/src/transport/fix-session-state.ts +67 -15
  481. package/src/transport/fix-session.ts +156 -43
  482. package/src/transport/fixml/fixml-session-msg-factory.ts +76 -0
  483. package/src/transport/fixml/fixml-session.ts +1 -1
  484. package/src/transport/fixml/index.ts +2 -1
  485. package/src/transport/http/http-acceptor.ts +7 -6
  486. package/src/transport/index.ts +1 -1
  487. package/src/transport/msg-transmitter.ts +4 -3
  488. package/src/transport/msg-transport.ts +3 -2
  489. package/src/transport/session-description.ts +1 -1
  490. package/src/transport/tcp/acceptor.ts +5 -3
  491. package/src/transport/tcp/index.ts +1 -0
  492. package/src/transport/tcp/initiator.ts +1 -0
  493. package/src/transport/tcp/recovering-tcp-initiator.ts +149 -0
  494. package/src/transport/tcp/tcp-acceptor.ts +46 -11
  495. package/src/transport/tcp/tcp-initiator.ts +77 -40
  496. package/src/types/FIX4.4/quickfix/advertisement.ts +4 -0
  497. package/src/types/FIX4.4/quickfix/allocation_instruction.ts +4 -0
  498. package/src/types/FIX4.4/quickfix/allocation_instruction_ack.ts +4 -0
  499. package/src/types/FIX4.4/quickfix/allocation_report.ts +4 -0
  500. package/src/types/FIX4.4/quickfix/allocation_report_ack.ts +4 -0
  501. package/src/types/FIX4.4/quickfix/assignment_report.ts +4 -0
  502. package/src/types/FIX4.4/quickfix/bid_request.ts +4 -0
  503. package/src/types/FIX4.4/quickfix/bid_response.ts +4 -0
  504. package/src/types/FIX4.4/quickfix/business_message_reject.ts +5 -0
  505. package/src/types/FIX4.4/quickfix/collateral_assignment.ts +4 -0
  506. package/src/types/FIX4.4/quickfix/collateral_inquiry.ts +4 -0
  507. package/src/types/FIX4.4/quickfix/collateral_inquiry_ack.ts +4 -0
  508. package/src/types/FIX4.4/quickfix/collateral_report.ts +4 -0
  509. package/src/types/FIX4.4/quickfix/collateral_request.ts +4 -0
  510. package/src/types/FIX4.4/quickfix/collateral_response.ts +4 -0
  511. package/src/types/FIX4.4/quickfix/confirmation.ts +4 -0
  512. package/src/types/FIX4.4/quickfix/confirmation_ack.ts +5 -0
  513. package/src/types/FIX4.4/quickfix/confirmation_request.ts +4 -0
  514. package/src/types/FIX4.4/quickfix/cross_order_cancel_replace_request.ts +4 -0
  515. package/src/types/FIX4.4/quickfix/cross_order_cancel_request.ts +4 -0
  516. package/src/types/FIX4.4/quickfix/derivative_security_list.ts +4 -0
  517. package/src/types/FIX4.4/quickfix/derivative_security_list_request.ts +4 -0
  518. package/src/types/FIX4.4/quickfix/dont_know_trade.ts +4 -0
  519. package/src/types/FIX4.4/quickfix/email.ts +4 -0
  520. package/src/types/FIX4.4/quickfix/execution_report.ts +4 -0
  521. package/src/types/FIX4.4/quickfix/heartbeat.ts +5 -0
  522. package/src/types/FIX4.4/quickfix/index.ts +4 -0
  523. package/src/types/FIX4.4/quickfix/ioi.ts +4 -0
  524. package/src/types/FIX4.4/quickfix/list_cancel_request.ts +5 -0
  525. package/src/types/FIX4.4/quickfix/list_execute.ts +6 -1
  526. package/src/types/FIX4.4/quickfix/list_status.ts +4 -0
  527. package/src/types/FIX4.4/quickfix/list_status_request.ts +5 -0
  528. package/src/types/FIX4.4/quickfix/list_strike_price.ts +4 -0
  529. package/src/types/FIX4.4/quickfix/logon.ts +4 -0
  530. package/src/types/FIX4.4/quickfix/logout.ts +6 -1
  531. package/src/types/FIX4.4/quickfix/market_data_incremental_refresh.ts +4 -0
  532. package/src/types/FIX4.4/quickfix/market_data_request.ts +4 -0
  533. package/src/types/FIX4.4/quickfix/market_data_request_reject.ts +4 -0
  534. package/src/types/FIX4.4/quickfix/market_data_snapshot_full_refresh.ts +4 -0
  535. package/src/types/FIX4.4/quickfix/mass_quote.ts +4 -0
  536. package/src/types/FIX4.4/quickfix/mass_quote_acknowledgement.ts +4 -0
  537. package/src/types/FIX4.4/quickfix/multileg_order_cancel_replace.ts +4 -0
  538. package/src/types/FIX4.4/quickfix/network_counterparty_system_status_request.ts +4 -0
  539. package/src/types/FIX4.4/quickfix/network_counterparty_system_status_response.ts +4 -0
  540. package/src/types/FIX4.4/quickfix/new_order_cross.ts +4 -0
  541. package/src/types/FIX4.4/quickfix/new_order_list.ts +4 -0
  542. package/src/types/FIX4.4/quickfix/new_order_multileg.ts +4 -0
  543. package/src/types/FIX4.4/quickfix/new_order_single.ts +4 -0
  544. package/src/types/FIX4.4/quickfix/news.ts +4 -0
  545. package/src/types/FIX4.4/quickfix/order_cancel_reject.ts +5 -0
  546. package/src/types/FIX4.4/quickfix/order_cancel_replace_request.ts +4 -0
  547. package/src/types/FIX4.4/quickfix/order_cancel_request.ts +4 -0
  548. package/src/types/FIX4.4/quickfix/order_mass_cancel_report.ts +4 -0
  549. package/src/types/FIX4.4/quickfix/order_mass_cancel_request.ts +4 -0
  550. package/src/types/FIX4.4/quickfix/order_mass_status_request.ts +4 -0
  551. package/src/types/FIX4.4/quickfix/order_status_request.ts +4 -0
  552. package/src/types/FIX4.4/quickfix/position_maintenance_report.ts +4 -0
  553. package/src/types/FIX4.4/quickfix/position_maintenance_request.ts +4 -0
  554. package/src/types/FIX4.4/quickfix/position_report.ts +4 -0
  555. package/src/types/FIX4.4/quickfix/quote.ts +4 -0
  556. package/src/types/FIX4.4/quickfix/quote_cancel.ts +4 -0
  557. package/src/types/FIX4.4/quickfix/quote_request.ts +4 -0
  558. package/src/types/FIX4.4/quickfix/quote_request_reject.ts +4 -0
  559. package/src/types/FIX4.4/quickfix/quote_response.ts +4 -0
  560. package/src/types/FIX4.4/quickfix/quote_status_report.ts +4 -0
  561. package/src/types/FIX4.4/quickfix/quote_status_request.ts +4 -0
  562. package/src/types/FIX4.4/quickfix/registration_instructions.ts +4 -0
  563. package/src/types/FIX4.4/quickfix/registration_instructions_response.ts +4 -0
  564. package/src/types/FIX4.4/quickfix/reject.ts +6 -1
  565. package/src/types/FIX4.4/quickfix/request_for_positions.ts +4 -0
  566. package/src/types/FIX4.4/quickfix/request_for_positions_ack.ts +4 -0
  567. package/src/types/FIX4.4/quickfix/resend_request.ts +5 -0
  568. package/src/types/FIX4.4/quickfix/rfq_request.ts +4 -0
  569. package/src/types/FIX4.4/quickfix/security_definition.ts +4 -0
  570. package/src/types/FIX4.4/quickfix/security_definition_request.ts +4 -0
  571. package/src/types/FIX4.4/quickfix/security_list.ts +4 -0
  572. package/src/types/FIX4.4/quickfix/security_list_request.ts +4 -0
  573. package/src/types/FIX4.4/quickfix/security_status.ts +4 -0
  574. package/src/types/FIX4.4/quickfix/security_status_request.ts +4 -0
  575. package/src/types/FIX4.4/quickfix/security_type_request.ts +5 -0
  576. package/src/types/FIX4.4/quickfix/security_types.ts +4 -0
  577. package/src/types/FIX4.4/quickfix/sequence_reset.ts +5 -0
  578. package/src/types/FIX4.4/quickfix/set/hop.ts +5 -0
  579. package/src/types/FIX4.4/quickfix/set/hop_no_hops.ts +5 -0
  580. package/src/types/FIX4.4/quickfix/set/standard_header.ts +31 -0
  581. package/src/types/FIX4.4/quickfix/set/standard_trailer.ts +5 -0
  582. package/src/types/FIX4.4/quickfix/settlement_instruction_request.ts +4 -0
  583. package/src/types/FIX4.4/quickfix/settlement_instructions.ts +4 -0
  584. package/src/types/FIX4.4/quickfix/test_request.ts +5 -0
  585. package/src/types/FIX4.4/quickfix/trade_capture_report.ts +4 -0
  586. package/src/types/FIX4.4/quickfix/trade_capture_report_ack.ts +4 -0
  587. package/src/types/FIX4.4/quickfix/trade_capture_report_request.ts +4 -0
  588. package/src/types/FIX4.4/quickfix/trade_capture_report_request_ack.ts +4 -0
  589. package/src/types/FIX4.4/quickfix/trading_session_status.ts +5 -0
  590. package/src/types/FIX4.4/quickfix/trading_session_status_request.ts +5 -0
  591. package/src/types/FIX4.4/quickfix/user_request.ts +5 -0
  592. package/src/types/FIX4.4/quickfix/user_response.ts +5 -0
  593. package/src/types/FIX4.4/quickfix/xm_lnon_fix.ts +5 -0
  594. package/src/types/FIX4.4/repo/enum/all-enum.ts +0 -1
  595. package/dist/sample/tcp/tls-trade-capture/jsfix.test_client.txt +0 -77
  596. package/dist/sample/tcp/tls-trade-capture/jsfix.test_server.txt +0 -77
  597. package/dist/sample/tcp/trade_capture/jsfix.test_client.txt +0 -75
  598. package/dist/sample/tcp/trade_capture/jsfix.test_server.txt +0 -75
  599. package/dist/sample/tcp/trade_capture/trade-capture-client.js.map +0 -1
  600. package/dist/sample/tcp/trade_capture/trade-capture-server.js.map +0 -1
  601. package/src/transport/session-msg-factory.ts +0 -195
  602. package/src/transport/tcp/resilient-initiator.ts +0 -35
@@ -16,6 +16,7 @@ const config_1 = require("../config");
16
16
  const skeleton_session_1 = require("../sample/tcp/skeleton/skeleton-session");
17
17
  const path = require("path");
18
18
  const util_1 = require("../util");
19
+ const ascii_1 = require("../transport/ascii/");
19
20
  const root = path.join(__dirname, '../../data');
20
21
  const logonMsg = '8=FIX4.4|9=0000136|35=A|49=init-comp|56=accept-comp|34=1|57=fix|52=20180902-12:25:28.980|98=0|108=30|141=Y|553=js-client|554=pwd-client|10=177|';
21
22
  const heartbeat = '8=FIX4.4|9=0000123|35=0|49=init-comp|56=accept-comp|34=1|57=fix|52=20180902-12:25:59.161|112=Sun, 02 Sep 2018 12:25:59 GMT|10=95|';
@@ -25,35 +26,46 @@ class FixEntity {
25
26
  this.duplex = duplex;
26
27
  this.transport = transport;
27
28
  this.views = [];
29
+ this.errors = [];
28
30
  }
29
31
  }
30
- let definitions;
31
- let clientDescription;
32
- let serverDescription;
33
- let client;
34
- let clientFactory;
35
- let serverFactory;
36
- let server;
37
- function loopBack(lhs, rhs) {
38
- lhs.writable.on('data', (data) => {
39
- rhs.readable.push(data);
40
- });
32
+ class Setup {
33
+ constructor() {
34
+ this.clientDescription = require(path.join(root, 'session/test-initiator.json'));
35
+ this.serverDescription = require(path.join(root, 'session/test-acceptor.json'));
36
+ }
37
+ init() {
38
+ return __awaiter(this, void 0, void 0, function* () {
39
+ this.definitions = yield util_1.getDefinitions(this.clientDescription.application.dictionary);
40
+ });
41
+ }
42
+ }
43
+ let setup = null;
44
+ let experiment = null;
45
+ class Experiment {
46
+ constructor() {
47
+ this.clientFactory = new ascii_1.AsciiSessionMsgFactory(setup.clientDescription);
48
+ this.serverFactory = new ascii_1.AsciiSessionMsgFactory(setup.serverDescription);
49
+ const clientConfig = new config_1.JsFixConfig(this.clientFactory, setup.definitions, setup.clientDescription, buffer_1.AsciiChars.Pipe);
50
+ const serverConfig = new config_1.JsFixConfig(this.serverFactory, setup.definitions, setup.serverDescription, buffer_1.AsciiChars.Pipe);
51
+ this.client = new FixEntity(clientConfig);
52
+ this.server = new FixEntity(serverConfig);
53
+ this.loopBack(this.client.duplex, this.server.duplex);
54
+ this.loopBack(this.server.duplex, this.client.duplex);
55
+ }
56
+ loopBack(lhs, rhs) {
57
+ lhs.writable.on('data', (data) => {
58
+ rhs.readable.push(data);
59
+ });
60
+ }
41
61
  }
42
62
  beforeAll(() => __awaiter(void 0, void 0, void 0, function* () {
43
- clientDescription = require(path.join(root, 'session/test-initiator.json'));
44
- serverDescription = require(path.join(root, 'session/test-acceptor.json'));
45
- definitions = yield util_1.getDefinitions(clientDescription.application.dictionary);
63
+ setup = new Setup();
64
+ yield setup.init();
46
65
  }), 45000);
47
- beforeEach(() => __awaiter(void 0, void 0, void 0, function* () {
48
- clientFactory = new transport_1.SessionMsgFactory(clientDescription);
49
- serverFactory = new transport_1.SessionMsgFactory(serverDescription);
50
- const clientConfig = new config_1.JsFixConfig(clientFactory, definitions, clientDescription, buffer_1.AsciiChars.Pipe);
51
- const serverConfig = new config_1.JsFixConfig(serverFactory, definitions, serverDescription, buffer_1.AsciiChars.Pipe);
52
- client = new FixEntity(clientConfig);
53
- server = new FixEntity(serverConfig);
54
- loopBack(client.duplex, server.duplex);
55
- loopBack(server.duplex, client.duplex);
56
- }));
66
+ beforeEach(() => {
67
+ experiment = new Experiment();
68
+ });
57
69
  class ParsingResult {
58
70
  constructor(event, msgType, view) {
59
71
  this.event = event;
@@ -63,8 +75,8 @@ class ParsingResult {
63
75
  }
64
76
  function clientToServerWaitFirstMessage(type, obj) {
65
77
  return new Promise((resolve, reject) => {
66
- const clt = client.transport;
67
- const svt = server.transport;
78
+ const clt = experiment.client.transport;
79
+ const svt = experiment.server.transport;
68
80
  clt.transmitter.on('error', (e) => {
69
81
  reject(e);
70
82
  });
@@ -75,66 +87,152 @@ function clientToServerWaitFirstMessage(type, obj) {
75
87
  reject(e);
76
88
  });
77
89
  clt.transmitter.send(type, obj);
78
- client.transport.end();
90
+ experiment.client.transport.end();
79
91
  });
80
92
  }
81
- test('end to end logon', () => __awaiter(void 0, void 0, void 0, function* () {
82
- const lo = client.config.factory.logon();
83
- const res = yield clientToServerWaitFirstMessage(types_1.MsgType.Logon, lo);
84
- expect(res.event).toEqual('msg');
85
- expect(res.msgType).toEqual('A');
86
- const received = res.view.toObject();
87
- expect(received).toBeTruthy();
88
- delete received['StandardHeader'];
89
- delete received['StandardTrailer'];
90
- expect(received).toEqual(lo);
91
- }));
92
- function runSkeletons(logoutSeconds = 1, followOn = null) {
93
- return __awaiter(this, void 0, void 0, function* () {
94
- const s1 = new skeleton_session_1.SkeletonSession(client.config, logoutSeconds);
95
- const s2 = new skeleton_session_1.SkeletonSession(server.config, logoutSeconds);
96
- s1.checkMsgIntegrity = true;
97
- s2.checkMsgIntegrity = true;
98
- function watchdog() {
99
- if (client.views.length > 20 || server.views.length > 20) {
100
- s1.done();
101
- s2.done();
102
- }
103
- }
104
- client.transport.receiver.on('msg', (type, view) => {
105
- client.views.push(view.clone());
106
- watchdog();
93
+ class SkeletonRunner {
94
+ constructor(logoutSeconds = 1) {
95
+ this.logoutSeconds = logoutSeconds;
96
+ this.clientSkeleton = new skeleton_session_1.SkeletonSession(experiment.client.config, logoutSeconds);
97
+ this.serverSkeleton = new skeleton_session_1.SkeletonSession(experiment.server.config, logoutSeconds);
98
+ this.clientSkeleton.checkMsgIntegrity = true;
99
+ this.serverSkeleton.checkMsgIntegrity = true;
100
+ experiment.client.transport.receiver.on('msg', (type, view) => {
101
+ experiment.client.views.push(view.clone());
102
+ this.watchdog();
103
+ });
104
+ experiment.server.transport.receiver.on('msg', (type, view) => {
105
+ experiment.server.views.push(view.clone());
106
+ this.watchdog();
107
+ });
108
+ this.clientSkeleton.on('error', e => {
109
+ experiment.client.errors.push(e);
110
+ });
111
+ this.serverSkeleton.on('error', e => {
112
+ experiment.server.errors.push(e);
107
113
  });
108
- server.transport.receiver.on('msg', (type, view) => {
109
- server.views.push(view.clone());
110
- watchdog();
114
+ }
115
+ watchdog() {
116
+ const cviews = experiment.client.views;
117
+ const sviews = experiment.server.views;
118
+ const cerrors = experiment.client.errors;
119
+ const serrors = experiment.server.errors;
120
+ const clientStop = cviews.length > 20 || cerrors.length > 0;
121
+ const serverStop = sviews.length > 20 || serrors.length > 0;
122
+ const stop = clientStop || serverStop;
123
+ if (stop) {
124
+ this.clientSkeleton.done();
125
+ this.serverSkeleton.done();
126
+ }
127
+ }
128
+ sendMsg(msgType, o) {
129
+ let count = 0;
130
+ experiment.client.transport.receiver.on('msg', m => {
131
+ if (count === 0) {
132
+ count++;
133
+ this.clientSkeleton.sendMessage(msgType, o);
134
+ }
111
135
  });
136
+ }
137
+ sendText(followOn) {
112
138
  if (followOn) {
113
139
  let sent = false;
114
- client.transport.transmitter.on('encoded', () => {
140
+ experiment.client.transport.transmitter.on('encoded', () => {
115
141
  const b1 = new buffer_1.ElasticBuffer();
116
142
  b1.writeString(followOn);
117
143
  if (!sent) {
118
- client.transport.duplex.writable.write(b1.slice());
119
- const at = client.transport.transmitter;
144
+ experiment.client.transport.duplex.writable.write(b1.slice());
145
+ const at = experiment.client.transport.transmitter;
120
146
  at.msgSeqNum++;
121
147
  sent = true;
122
148
  }
123
149
  });
124
150
  }
125
- yield Promise.all([s1.run(client.transport), s2.run(server.transport), new Promise((accept) => {
126
- setTimeout(() => {
127
- s1.done();
128
- s2.done();
129
- accept(true);
130
- }, (logoutSeconds + 2) * 1000);
131
- })]);
151
+ }
152
+ done() {
153
+ this.clientSkeleton.done();
154
+ this.serverSkeleton.done();
155
+ }
156
+ wait() {
157
+ return __awaiter(this, void 0, void 0, function* () {
158
+ yield Promise.all([
159
+ this.clientSkeleton.run(experiment.client.transport),
160
+ this.serverSkeleton.run(experiment.server.transport),
161
+ new Promise((accept, reject) => {
162
+ let handle = null;
163
+ try {
164
+ handle = setTimeout(() => {
165
+ this.done();
166
+ accept(true);
167
+ }, (this.logoutSeconds + 2) * 1000);
168
+ }
169
+ catch (e) {
170
+ if (handle) {
171
+ clearTimeout(handle);
172
+ }
173
+ this.done();
174
+ reject(e);
175
+ }
176
+ })
177
+ ]);
178
+ });
179
+ }
180
+ }
181
+ function runSkeletons(logoutSeconds = 1, followOn = null) {
182
+ return __awaiter(this, void 0, void 0, function* () {
183
+ const runner = new SkeletonRunner(logoutSeconds);
184
+ runner.sendText(followOn);
185
+ yield runner.wait();
132
186
  });
133
187
  }
188
+ test('end to end logon', () => __awaiter(void 0, void 0, void 0, function* () {
189
+ const lo = experiment.client.config.factory.logon();
190
+ const res = yield clientToServerWaitFirstMessage(types_1.MsgType.Logon, lo);
191
+ expect(res.event).toEqual('msg');
192
+ expect(res.msgType).toEqual('A');
193
+ const received = res.view.toObject();
194
+ expect(received).toBeTruthy();
195
+ delete received['StandardHeader'];
196
+ delete received['StandardTrailer'];
197
+ expect(received).toEqual(lo);
198
+ }));
199
+ test('session send resendRequest when logged on', () => __awaiter(void 0, void 0, void 0, function* () {
200
+ const runner = new SkeletonRunner(2);
201
+ const factory = experiment.client.config.factory;
202
+ const resend = factory.resendRequest(1, 2);
203
+ runner.sendMsg(types_1.MsgType.ResendRequest, resend);
204
+ try {
205
+ const cViews = experiment.client.views;
206
+ const sViews = experiment.server.views;
207
+ yield runner.wait();
208
+ const last = experiment.client.views[experiment.client.views.length - 1];
209
+ expect(last).toBeTruthy();
210
+ const clientResets = countOfType('SequenceReset', cViews);
211
+ const serverResets = countOfType('SequenceReset', sViews);
212
+ expect(clientResets).toEqual(1);
213
+ expect(serverResets).toEqual(0);
214
+ }
215
+ catch (e) {
216
+ expect(true).toEqual(false);
217
+ }
218
+ }));
219
+ test('session send logon when logged on', () => __awaiter(void 0, void 0, void 0, function* () {
220
+ const runner = new SkeletonRunner(2);
221
+ const logon = experiment.client.config.factory.logon();
222
+ runner.sendMsg(types_1.MsgType.Logon, logon);
223
+ try {
224
+ yield runner.wait();
225
+ }
226
+ catch (e) {
227
+ expect(experiment.server.errors.length).toEqual(1);
228
+ }
229
+ }));
134
230
  test('session logon / logout', () => __awaiter(void 0, void 0, void 0, function* () {
135
231
  yield runSkeletons();
136
- const cViews = client.views;
137
- const sViews = server.views;
232
+ const cViews = experiment.client.views;
233
+ const sViews = experiment.server.views;
234
+ expect(experiment.client.errors.length).toEqual(0);
235
+ expect(experiment.server.errors.length).toEqual(0);
138
236
  expect(cViews.length).toEqual(2);
139
237
  expect(sViews.length).toEqual(2);
140
238
  expect(cViews[0].segment.name).toEqual('Logon');
@@ -152,10 +250,12 @@ function checkSeqNos(views) {
152
250
  }
153
251
  test('seq No OK', () => __awaiter(void 0, void 0, void 0, function* () {
154
252
  yield runSkeletons();
155
- expect(client.views.length >= 2).toEqual(true);
156
- expect(server.views.length >= 2).toEqual(true);
157
- checkSeqNos(client.views);
158
- checkSeqNos(server.views);
253
+ const cviews = experiment.client.views;
254
+ const sviews = experiment.server.views;
255
+ expect(cviews.length >= 2).toEqual(true);
256
+ expect(sviews.length >= 2).toEqual(true);
257
+ checkSeqNos(cviews);
258
+ checkSeqNos(sviews);
159
259
  }));
160
260
  function mutateSeqNo(description, type, o) {
161
261
  switch (type) {
@@ -170,13 +270,15 @@ function mutateSeqNo(description, type, o) {
170
270
  return o;
171
271
  }
172
272
  test('out of seq logout', () => __awaiter(void 0, void 0, void 0, function* () {
173
- clientFactory.mutator = mutateSeqNo;
273
+ experiment.clientFactory.mutator = mutateSeqNo;
174
274
  yield runSkeletons();
175
- expect(client.views.length).toEqual(1);
176
- expect(client.views[0].segment.name).toEqual('Logon');
177
- expect(server.views.length).toEqual(2);
178
- expect(server.views[0].segment.name).toEqual('Logon');
179
- expect(server.views[1].segment.name).toEqual('Logout');
275
+ const cviews = experiment.client.views;
276
+ const sviews = experiment.server.views;
277
+ expect(cviews.length).toEqual(1);
278
+ expect(cviews[0].segment.name).toEqual('Logon');
279
+ expect(sviews.length).toEqual(2);
280
+ expect(sviews[0].segment.name).toEqual('Logon');
281
+ expect(sviews[1].segment.name).toEqual('Logout');
180
282
  }));
181
283
  function countOfType(type, views) {
182
284
  return views.reduce((c, v) => {
@@ -194,98 +296,116 @@ function mutateRemoveRequiredHeartBtInt(description, type, o) {
194
296
  return o;
195
297
  }
196
298
  test('client logon reject missing 108', () => __awaiter(void 0, void 0, void 0, function* () {
197
- clientFactory.mutator = mutateRemoveRequiredHeartBtInt;
299
+ experiment.clientFactory.mutator = mutateRemoveRequiredHeartBtInt;
198
300
  yield runSkeletons(2);
199
- expect(client.views.length === 1).toEqual(true);
200
- expect(server.views.length === 1).toEqual(true);
201
- expect(client.views[0].segment.name).toEqual('Reject');
202
- expect(server.views[0].segment.name).toEqual('Logon');
203
- const reject = client.views[0].toObject();
301
+ const cviews = experiment.client.views;
302
+ const sviews = experiment.server.views;
303
+ expect(cviews.length === 1).toEqual(true);
304
+ expect(sviews.length === 1).toEqual(true);
305
+ expect(cviews[0].segment.name).toEqual('Reject');
306
+ expect(sviews[0].segment.name).toEqual('Logon');
307
+ const reject = cviews[0].toObject();
204
308
  expect(reject.SessionRejectReason === types_1.SessionRejectReason.RequiredTagMissing);
205
309
  expect(reject.Text).toEqual('msgType A missing required tag 108');
206
310
  }), 10000);
207
311
  test('client unknown msg type', () => __awaiter(void 0, void 0, void 0, function* () {
208
- const at = client.transport.transmitter;
312
+ const at = experiment.client.transport.transmitter;
209
313
  const changed = logonMsg.replace('35=A', '35=ZZ').replace('34=1', `34=${at.msgSeqNum + 1}`);
210
314
  yield runSkeletons(2, changed);
211
- expect(client.views.length === 3).toEqual(true);
212
- expect(server.views.length === 3).toEqual(true);
213
- expect(client.views[0].segment.name).toEqual('Logon');
214
- expect(client.views[1].segment.name).toEqual('Reject');
215
- expect(server.views[0].segment.name).toEqual('Logon');
216
- expect(server.views[1].segment.name).toEqual('unknown');
217
- const reject = client.views[1].toObject();
315
+ const cviews = experiment.client.views;
316
+ const sviews = experiment.server.views;
317
+ expect(cviews.length === 3).toEqual(true);
318
+ expect(sviews.length === 3).toEqual(true);
319
+ expect(cviews[0].segment.name).toEqual('Logon');
320
+ expect(cviews[1].segment.name).toEqual('Reject');
321
+ expect(sviews[0].segment.name).toEqual('Logon');
322
+ expect(sviews[1].segment.name).toEqual('unknown');
323
+ const reject = cviews[1].toObject();
218
324
  expect(reject.SessionRejectReason === types_1.SessionRejectReason.InvalidMsgType);
219
325
  expect(reject.Text).toEqual('msgType ZZ unknown');
220
326
  }), 10000);
221
327
  test('heartbeat invalid tag', () => __awaiter(void 0, void 0, void 0, function* () {
222
- const at = client.transport.transmitter;
328
+ const at = experiment.client.transport.transmitter;
223
329
  const changed = heartbeat.replace('112=', '999=').replace('34=1', `34=${at.msgSeqNum + 1}`);
224
330
  yield runSkeletons(2, changed);
225
- expect(client.views.length === 3).toEqual(true);
226
- expect(server.views.length === 3).toEqual(true);
227
- expect(client.views[0].segment.name).toEqual('Logon');
228
- expect(client.views[1].segment.name).toEqual('Reject');
229
- expect(server.views[0].segment.name).toEqual('Logon');
230
- expect(server.views[1].segment.name).toEqual('Heartbeat');
231
- const reject = client.views[1].toObject();
331
+ const cviews = experiment.client.views;
332
+ const sviews = experiment.server.views;
333
+ expect(cviews.length === 3).toEqual(true);
334
+ expect(sviews.length === 3).toEqual(true);
335
+ expect(cviews[0].segment.name).toEqual('Logon');
336
+ expect(cviews[1].segment.name).toEqual('Reject');
337
+ expect(sviews[0].segment.name).toEqual('Logon');
338
+ expect(sviews[1].segment.name).toEqual('Heartbeat');
339
+ const reject = experiment.client.views[1].toObject();
232
340
  expect(reject.SessionRejectReason === types_1.SessionRejectReason.InvalidTagNumber);
233
- checkSeqNos(client.views);
234
- checkSeqNos(server.views);
341
+ checkSeqNos(cviews);
342
+ checkSeqNos(sviews);
235
343
  }), 10000);
236
344
  test('heartbeat invalid sender comp', () => __awaiter(void 0, void 0, void 0, function* () {
237
- const at = client.transport.transmitter;
345
+ const at = experiment.client.transport.transmitter;
238
346
  const changed = heartbeat.replace('49=init-comp', '49=init-not!').replace('34=1', `34=${at.msgSeqNum + 1}`);
239
347
  yield runSkeletons(2, changed);
240
- expect(client.views.length === 3).toEqual(true);
241
- expect(server.views.length === 3).toEqual(true);
242
- expect(client.views[0].segment.name).toEqual('Logon');
243
- expect(client.views[1].segment.name).toEqual('Reject');
244
- expect(server.views[0].segment.name).toEqual('Logon');
245
- expect(server.views[1].segment.name).toEqual('Heartbeat');
246
- const reject = client.views[1].toObject();
348
+ const cviews = experiment.client.views;
349
+ const sviews = experiment.server.views;
350
+ expect(cviews.length === 3).toEqual(true);
351
+ expect(sviews.length === 3).toEqual(true);
352
+ expect(cviews[0].segment.name).toEqual('Logon');
353
+ expect(cviews[1].segment.name).toEqual('Reject');
354
+ expect(sviews[0].segment.name).toEqual('Logon');
355
+ expect(sviews[1].segment.name).toEqual('Heartbeat');
356
+ const reject = cviews[1].toObject();
247
357
  expect(reject.SessionRejectReason === types_1.SessionRejectReason.CompIDProblem);
248
- checkSeqNos(client.views);
249
- checkSeqNos(server.views);
358
+ checkSeqNos(cviews);
359
+ checkSeqNos(sviews);
250
360
  }), 10000);
251
361
  test('client heartbeats to server', () => __awaiter(void 0, void 0, void 0, function* () {
252
- const preset = client.config.description.HeartBtInt;
253
- client.config.description.HeartBtInt = 2;
362
+ const preset = experiment.client.config.description.HeartBtInt;
363
+ experiment.client.config.description.HeartBtInt = 2;
254
364
  yield runSkeletons(6);
255
- expect(client.views.length === 2).toEqual(true);
256
- expect(server.views.length > 2).toEqual(true);
257
- const serverReceivesHeartbeats = countOfType('Heartbeat', server.views);
365
+ const cviews = experiment.client.views;
366
+ const sviews = experiment.server.views;
367
+ expect(cviews.length === 2).toEqual(true);
368
+ expect(sviews.length > 2).toEqual(true);
369
+ const serverReceivesHeartbeats = countOfType('Heartbeat', sviews);
258
370
  expect(serverReceivesHeartbeats >= 2 && serverReceivesHeartbeats <= 4).toEqual(true);
259
- checkSeqNos(client.views);
260
- checkSeqNos(server.views);
261
- client.config.description.HeartBtInt = preset;
371
+ checkSeqNos(cviews);
372
+ checkSeqNos(sviews);
373
+ experiment.client.config.description.HeartBtInt = preset;
262
374
  }), 10000);
263
375
  test('server heartbeats to client', () => __awaiter(void 0, void 0, void 0, function* () {
264
- const preset = server.config.description.HeartBtInt;
265
- server.config.description.HeartBtInt = 2;
376
+ const preset = experiment.server.config.description.HeartBtInt;
377
+ experiment.server.config.description.HeartBtInt = 2;
266
378
  yield runSkeletons(6);
267
- expect(server.views.length === 2).toEqual(true);
268
- expect(client.views.length > 2).toEqual(true);
269
- const clientReceivesHeartbeats = countOfType('Heartbeat', client.views);
379
+ const cviews = experiment.client.views;
380
+ const sviews = experiment.server.views;
381
+ expect(sviews.length === 2).toEqual(true);
382
+ expect(cviews.length > 2).toEqual(true);
383
+ const clientReceivesHeartbeats = countOfType('Heartbeat', cviews);
270
384
  expect(clientReceivesHeartbeats >= 2 && clientReceivesHeartbeats <= 4).toEqual(true);
271
- checkSeqNos(client.views);
272
- checkSeqNos(server.views);
273
- server.config.description.HeartBtInt = preset;
385
+ checkSeqNos(cviews);
386
+ checkSeqNos(sviews);
387
+ experiment.server.config.description.HeartBtInt = preset;
274
388
  }), 10000);
275
389
  test('client server heartbeat', () => __awaiter(void 0, void 0, void 0, function* () {
276
- const preset = server.config.description.HeartBtInt;
277
- server.config.description.HeartBtInt = 2;
278
- client.config.description.HeartBtInt = 2;
279
- yield runSkeletons(6);
280
- expect(server.views.length > 2).toEqual(true);
281
- expect(client.views.length > 2).toEqual(true);
282
- const clientReceivesHeartbeats = countOfType('Heartbeat', client.views);
283
- const serverReceivesHeartbeats = countOfType('Heartbeat', server.views);
284
- expect(clientReceivesHeartbeats >= 2 && clientReceivesHeartbeats <= 4).toEqual(true);
285
- expect(serverReceivesHeartbeats >= 2 && serverReceivesHeartbeats <= 4).toEqual(true);
286
- checkSeqNos(client.views);
287
- checkSeqNos(server.views);
288
- server.config.description.HeartBtInt = preset;
289
- client.config.description.HeartBtInt = preset;
290
- }), 10000);
390
+ const preset = experiment.server.config.description.HeartBtInt;
391
+ experiment.server.config.description.HeartBtInt = 5;
392
+ experiment.client.config.description.HeartBtInt = 2;
393
+ yield runSkeletons(8);
394
+ const cviews = experiment.client.views;
395
+ const sviews = experiment.server.views;
396
+ expect(sviews.length > 2).toEqual(true);
397
+ expect(cviews.length > 2).toEqual(true);
398
+ const clientReceivesHeartbeats = countOfType('Heartbeat', cviews);
399
+ const clientReceivesTestRequest = countOfType('TestRequest', cviews);
400
+ const clientTotal = clientReceivesHeartbeats + clientReceivesTestRequest;
401
+ const serverReceivesHeartbeats = countOfType('Heartbeat', sviews);
402
+ const serverReceivesTestRequest = countOfType('TestRequest', sviews);
403
+ const serverTotal = serverReceivesHeartbeats + serverReceivesTestRequest;
404
+ expect(clientTotal >= 1 && clientReceivesHeartbeats <= 4).toEqual(true);
405
+ expect(serverTotal >= 3 && serverReceivesHeartbeats <= 4).toEqual(true);
406
+ checkSeqNos(cviews);
407
+ checkSeqNos(sviews);
408
+ experiment.server.config.description.HeartBtInt = preset;
409
+ experiment.client.config.description.HeartBtInt = preset;
410
+ }), 15000);
291
411
  //# sourceMappingURL=session.test.js.map