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.
- package/.eslintrc +30 -0
- package/README.md +297 -249
- package/data/session/test-http-initiator.json +2 -2
- package/dist/buffer/ascii/ascii-chars.js.map +1 -1
- package/dist/buffer/ascii/ascii-encoder.js +9 -5
- package/dist/buffer/ascii/ascii-encoder.js.map +1 -1
- package/dist/buffer/ascii/ascii-parser-state.d.ts +2 -2
- package/dist/buffer/ascii/ascii-parser-state.js +1 -1
- package/dist/buffer/ascii/ascii-parser-state.js.map +1 -1
- package/dist/buffer/ascii/ascii-parser.d.ts +2 -2
- package/dist/buffer/ascii/ascii-parser.js +17 -11
- package/dist/buffer/ascii/ascii-parser.js.map +1 -1
- package/dist/buffer/ascii/ascii-segment-parser.d.ts +1 -1
- package/dist/buffer/ascii/ascii-segment-parser.js +11 -3
- package/dist/buffer/ascii/ascii-segment-parser.js.map +1 -1
- package/dist/buffer/ascii/ascii-view.d.ts +3 -3
- package/dist/buffer/ascii/ascii-view.js +18 -0
- package/dist/buffer/ascii/ascii-view.js.map +1 -1
- package/dist/buffer/ascii/itime-formatter.d.ts +12 -12
- package/dist/buffer/ascii/itime-formatter.js.map +1 -1
- package/dist/buffer/ascii/time-formatter.d.ts +6 -6
- package/dist/buffer/ascii/time-formatter.js.map +1 -1
- package/dist/buffer/elastic-buffer.d.ts +1 -1
- package/dist/buffer/elastic-buffer.js +2 -2
- package/dist/buffer/elastic-buffer.js.map +1 -1
- package/dist/buffer/encode-proxy.js +1 -1
- package/dist/buffer/encode-proxy.js.map +1 -1
- package/dist/buffer/encoder-state.d.ts +2 -2
- package/dist/buffer/encoder-state.js +4 -1
- package/dist/buffer/encoder-state.js.map +1 -1
- package/dist/buffer/fixml/fixml-encoder.js +4 -2
- package/dist/buffer/fixml/fixml-encoder.js.map +1 -1
- package/dist/buffer/fixml/fixml-parser.js +61 -39
- package/dist/buffer/fixml/fixml-parser.js.map +1 -1
- package/dist/buffer/fixml/fixml-view.js +3 -3
- package/dist/buffer/fixml/fixml-view.js.map +1 -1
- package/dist/buffer/fixml/populated-attributes.js.map +1 -1
- package/dist/buffer/msg-encoder.js +2 -1
- package/dist/buffer/msg-encoder.js.map +1 -1
- package/dist/buffer/msg-view.d.ts +9 -9
- package/dist/buffer/msg-view.js +58 -25
- package/dist/buffer/msg-view.js.map +1 -1
- package/dist/buffer/segment/segment-description.d.ts +4 -4
- package/dist/buffer/segment/segment-description.js +7 -5
- package/dist/buffer/segment/segment-description.js.map +1 -1
- package/dist/buffer/segment/segment-summary.js +2 -1
- package/dist/buffer/segment/segment-summary.js.map +1 -1
- package/dist/buffer/structure.d.ts +1 -1
- package/dist/buffer/structure.js +1 -2
- package/dist/buffer/structure.js.map +1 -1
- package/dist/buffer/time-format-template.js.map +1 -1
- package/dist/collections/collection.d.ts +3 -7
- package/dist/collections/collection.js.map +1 -1
- package/dist/collections/dictionary.d.ts +1 -1
- package/dist/collections/dictionary.js +2 -1
- package/dist/collections/dictionary.js.map +1 -1
- package/dist/config/empty-log-factory.js.map +1 -1
- package/dist/config/get-js-fx-logger.d.ts +1 -3
- package/dist/config/get-js-fx-logger.js.map +1 -1
- package/dist/config/js-fix-config.d.ts +3 -3
- package/dist/config/js-fix-config.js.map +1 -1
- package/dist/config/js-fix-logger.d.ts +5 -5
- package/dist/config/js-fix-logger.js.map +1 -1
- package/dist/config/js-fix-winston-log-factory.d.ts +1 -1
- package/dist/config/js-fix-winston-log-factory.js.map +1 -1
- package/dist/config/winston-logger.js +7 -7
- package/dist/config/winston-logger.js.map +1 -1
- package/dist/dict-parser.js +27 -21
- package/dist/dict-parser.js.map +1 -1
- package/dist/dictionary/compiler/compiler-settings.js.map +1 -1
- package/dist/dictionary/compiler/compiler-type.js.map +1 -1
- package/dist/dictionary/compiler/enum-compiler.d.ts +2 -2
- package/dist/dictionary/compiler/enum-compiler.js +7 -10
- package/dist/dictionary/compiler/enum-compiler.js.map +1 -1
- package/dist/dictionary/compiler/msg-compiler.js +9 -10
- package/dist/dictionary/compiler/msg-compiler.js.map +1 -1
- package/dist/dictionary/compiler/standard-snippet.d.ts +1 -1
- package/dist/dictionary/compiler/standard-snippet.js +11 -10
- package/dist/dictionary/compiler/standard-snippet.js.map +1 -1
- package/dist/dictionary/contained/contained-component-field.d.ts +2 -2
- package/dist/dictionary/contained/contained-component-field.js +1 -1
- package/dist/dictionary/contained/contained-component-field.js.map +1 -1
- package/dist/dictionary/contained/contained-field-dispatcher.d.ts +3 -9
- package/dist/dictionary/contained/contained-field-dispatcher.js.map +1 -1
- package/dist/dictionary/contained/contained-field-set.d.ts +4 -4
- package/dist/dictionary/contained/contained-field-set.js +1 -1
- package/dist/dictionary/contained/contained-field-set.js.map +1 -1
- package/dist/dictionary/contained/contained-field.d.ts +1 -0
- package/dist/dictionary/contained/contained-field.js +3 -0
- package/dist/dictionary/contained/contained-field.js.map +1 -1
- package/dist/dictionary/contained/contained-group-field.d.ts +2 -2
- package/dist/dictionary/contained/contained-group-field.js +1 -1
- package/dist/dictionary/contained/contained-group-field.js.map +1 -1
- package/dist/dictionary/contained/contained-simple-field.d.ts +2 -2
- package/dist/dictionary/contained/contained-simple-field.js +1 -1
- package/dist/dictionary/contained/contained-simple-field.js.map +1 -1
- package/dist/dictionary/contained/field-dispatcher.d.ts +3 -9
- package/dist/dictionary/contained/field-dispatcher.js.map +1 -1
- package/dist/dictionary/contained/fields-dispatch.js +0 -1
- package/dist/dictionary/contained/fields-dispatch.js.map +1 -1
- package/dist/dictionary/definition/component-field-definition.d.ts +3 -3
- package/dist/dictionary/definition/component-field-definition.js +1 -1
- package/dist/dictionary/definition/component-field-definition.js.map +1 -1
- package/dist/dictionary/definition/fix-definitions.d.ts +3 -3
- package/dist/dictionary/definition/fix-definitions.js +3 -2
- package/dist/dictionary/definition/fix-definitions.js.map +1 -1
- package/dist/dictionary/definition/group-field-definition.d.ts +4 -4
- package/dist/dictionary/definition/group-field-definition.js +1 -1
- package/dist/dictionary/definition/group-field-definition.js.map +1 -1
- package/dist/dictionary/definition/message-definition.d.ts +2 -2
- package/dist/dictionary/definition/message-definition.js.map +1 -1
- package/dist/dictionary/definition/simple-field-definition.d.ts +4 -4
- package/dist/dictionary/definition/simple-field-definition.js +3 -2
- package/dist/dictionary/definition/simple-field-definition.js.map +1 -1
- package/dist/dictionary/dict-primitive.d.ts +1 -1
- package/dist/dictionary/dict-primitive.js.map +1 -1
- package/dist/dictionary/field-enum.js.map +1 -1
- package/dist/dictionary/fix-versions.js.map +1 -1
- package/dist/dictionary/parser/fix-repository/repository-xml-parser.js +20 -18
- package/dist/dictionary/parser/fix-repository/repository-xml-parser.js.map +1 -1
- package/dist/dictionary/parser/fix-repository/repository.js +24 -16
- package/dist/dictionary/parser/fix-repository/repository.js.map +1 -1
- package/dist/dictionary/parser/fixml/components-parser.d.ts +1 -1
- package/dist/dictionary/parser/fixml/components-parser.js +24 -15
- package/dist/dictionary/parser/fixml/components-parser.js.map +1 -1
- package/dist/dictionary/parser/fixml/fields-parser.d.ts +1 -1
- package/dist/dictionary/parser/fixml/fields-parser.js +5 -5
- package/dist/dictionary/parser/fixml/fields-parser.js.map +1 -1
- package/dist/dictionary/parser/fixml/fix-xsd-parser.js +3 -2
- package/dist/dictionary/parser/fixml/fix-xsd-parser.js.map +1 -1
- package/dist/dictionary/parser/fixml/include-graph.d.ts +1 -1
- package/dist/dictionary/parser/fixml/include-graph.js +58 -48
- package/dist/dictionary/parser/fixml/include-graph.js.map +1 -1
- package/dist/dictionary/parser/fixml/xsd-parser.d.ts +1 -1
- package/dist/dictionary/parser/fixml/xsd-parser.js +34 -23
- package/dist/dictionary/parser/fixml/xsd-parser.js.map +1 -1
- package/dist/dictionary/parser/quickfix/field-definition-parser.js +0 -2
- package/dist/dictionary/parser/quickfix/field-definition-parser.js.map +1 -1
- package/dist/dictionary/parser/quickfix/field-set-parser.js +3 -2
- package/dist/dictionary/parser/quickfix/field-set-parser.js.map +1 -1
- package/dist/dictionary/parser/quickfix/message-parser.js +10 -5
- package/dist/dictionary/parser/quickfix/message-parser.js.map +1 -1
- package/dist/dictionary/parser/quickfix/node-parser.js +14 -8
- package/dist/dictionary/parser/quickfix/node-parser.js.map +1 -1
- package/dist/dictionary/parser/quickfix/parse-context.d.ts +5 -5
- package/dist/dictionary/parser/quickfix/parse-context.js.map +1 -1
- package/dist/dictionary/parser/quickfix/quick-fix-xml-file-parser.js +22 -19
- package/dist/dictionary/parser/quickfix/quick-fix-xml-file-parser.js.map +1 -1
- package/dist/dictionary/set-reduce.js.map +1 -1
- package/dist/dictionary/type-dispatcher.d.ts +3 -9
- package/dist/dictionary/type-dispatcher.js.map +1 -1
- package/dist/dictionary/version-util.js +8 -8
- package/dist/dictionary/version-util.js.map +1 -1
- package/dist/jsfix-cmd.d.ts +3 -1
- package/dist/jsfix-cmd.js +134 -99
- package/dist/jsfix-cmd.js.map +1 -1
- package/dist/runtime/make-config.js +34 -14
- package/dist/runtime/make-config.js.map +1 -1
- package/dist/runtime/session-container.d.ts +3 -2
- package/dist/runtime/session-container.js +36 -16
- package/dist/runtime/session-container.js.map +1 -1
- package/dist/runtime/session-launcher.d.ts +10 -6
- package/dist/runtime/session-launcher.js +80 -43
- package/dist/runtime/session-launcher.js.map +1 -1
- package/dist/sample/http/oms/app.js +37 -7
- package/dist/sample/http/oms/app.js.map +1 -1
- package/dist/sample/http/oms/http-client.js +4 -2
- package/dist/sample/http/oms/http-client.js.map +1 -1
- package/dist/sample/http/oms/http-server.js +7 -1
- package/dist/sample/http/oms/http-server.js.map +1 -1
- package/dist/sample/http/oms/oms-factory.js +4 -3
- package/dist/sample/http/oms/oms-factory.js.map +1 -1
- package/dist/sample/tcp/qf-md/app.js +3 -3
- package/dist/sample/tcp/qf-md/app.js.map +1 -1
- package/dist/sample/tcp/qf-md/md-client.js +2 -1
- package/dist/sample/tcp/qf-md/md-client.js.map +1 -1
- package/dist/sample/tcp/qf-md/md-factory.js.map +1 -1
- package/dist/sample/tcp/qf-md/md-server.d.ts +1 -1
- package/dist/sample/tcp/qf-md/md-server.js +2 -1
- package/dist/sample/tcp/qf-md/md-server.js.map +1 -1
- package/dist/sample/tcp/recovering-skeleton/app.js +29 -16
- package/dist/sample/tcp/recovering-skeleton/app.js.map +1 -1
- package/dist/sample/tcp/recovering-skeleton/respawn-acceptor.d.ts +9 -1
- package/dist/sample/tcp/recovering-skeleton/respawn-acceptor.js +51 -2
- package/dist/sample/tcp/recovering-skeleton/respawn-acceptor.js.map +1 -1
- package/dist/sample/tcp/recovering-skeleton/skeleton-client.js +2 -1
- package/dist/sample/tcp/recovering-skeleton/skeleton-client.js.map +1 -1
- package/dist/sample/tcp/recovering-skeleton/skeleton-server.js +4 -3
- package/dist/sample/tcp/recovering-skeleton/skeleton-server.js.map +1 -1
- package/dist/sample/tcp/skeleton/app.js.map +1 -1
- package/dist/sample/tcp/skeleton/skeleton-session.js +7 -4
- package/dist/sample/tcp/skeleton/skeleton-session.js.map +1 -1
- package/dist/sample/tcp/tls-trade-capture/app.js.map +1 -1
- package/dist/sample/tcp/trade-capture/app-launcher.js +3 -3
- package/dist/sample/tcp/trade-capture/app-launcher.js.map +1 -1
- package/dist/sample/tcp/trade-capture/trade-capture-client.d.ts +1 -1
- package/dist/sample/tcp/trade-capture/trade-capture-client.js +2 -1
- package/dist/sample/tcp/trade-capture/trade-capture-client.js.map +1 -1
- package/dist/sample/tcp/trade-capture/trade-capture-server.js +7 -2
- package/dist/sample/tcp/trade-capture/trade-capture-server.js.map +1 -1
- package/dist/sample/tcp/trade-capture/trade-factory.js.map +1 -1
- package/dist/store/fix-msg-ascii-store-resend.js +18 -7
- package/dist/store/fix-msg-ascii-store-resend.js.map +1 -1
- package/dist/store/fix-msg-memory-store.d.ts +3 -3
- package/dist/store/fix-msg-memory-store.js +93 -69
- package/dist/store/fix-msg-memory-store.js.map +1 -1
- package/dist/store/fix-msg-store-record.d.ts +6 -6
- package/dist/store/fix-msg-store-record.js +2 -1
- package/dist/store/fix-msg-store-record.js.map +1 -1
- package/dist/store/fix-msg-store-state.js.map +1 -1
- package/dist/store/fix-msg-store.d.ts +7 -7
- package/dist/store/fix-msg-store.js.map +1 -1
- package/dist/test/ascii/ascii-encoder.test.js +93 -63
- package/dist/test/ascii/ascii-encoder.test.js.map +1 -1
- package/dist/test/ascii/ascii-parser.test.js +28 -24
- package/dist/test/ascii/ascii-parser.test.js.map +1 -1
- package/dist/test/ascii/ascii-segment.test.js +16 -11
- package/dist/test/ascii/ascii-segment.test.js.map +1 -1
- package/dist/test/ascii/ascii-store-replay.test.js +1 -1
- package/dist/test/ascii/ascii-store-replay.test.js.map +1 -1
- package/dist/test/ascii/ascii-tag-pos.test.js +7 -3
- package/dist/test/ascii/ascii-tag-pos.test.js.map +1 -1
- package/dist/test/ascii/execution-report.test.js +80 -72
- package/dist/test/ascii/execution-report.test.js.map +1 -1
- package/dist/test/ascii/fix-log-replay.test.js +1 -1
- package/dist/test/ascii/fix-log-replay.test.js.map +1 -1
- package/dist/test/ascii/fix-repo-dict.test.js +58 -55
- package/dist/test/ascii/fix-repo-dict.test.js.map +1 -1
- package/dist/test/ascii/includes.test.js +1 -1
- package/dist/test/ascii/includes.test.js.map +1 -1
- package/dist/test/ascii/logon.test.js +3 -3
- package/dist/test/ascii/logon.test.js.map +1 -1
- package/dist/test/ascii/memory-store.test.js +3 -3
- package/dist/test/ascii/memory-store.test.js.map +1 -1
- package/dist/test/ascii/qf-full-msg.test.js +19 -16
- package/dist/test/ascii/qf-full-msg.test.js.map +1 -1
- package/dist/test/ascii/repo-full-ascii-msg.test.js +11 -11
- package/dist/test/ascii/repo-full-ascii-msg.test.js.map +1 -1
- package/dist/test/ascii/session-state.test.js.map +1 -1
- package/dist/test/ascii/session.test.js +59 -42
- package/dist/test/ascii/session.test.js.map +1 -1
- package/dist/test/ascii/view-decode.test.js +30 -22
- package/dist/test/ascii/view-decode.test.js.map +1 -1
- package/dist/test/encode-proxy.test.js +29 -29
- package/dist/test/encode-proxy.test.js.map +1 -1
- package/dist/test/env/experiment.js +5 -5
- package/dist/test/env/experiment.js.map +1 -1
- package/dist/test/env/parsing-result.d.ts +3 -3
- package/dist/test/env/parsing-result.js.map +1 -1
- package/dist/test/env/setup.d.ts +2 -2
- package/dist/test/env/setup.js +13 -11
- package/dist/test/env/setup.js.map +1 -1
- package/dist/test/env/skeleton-runner.d.ts +1 -1
- package/dist/test/env/skeleton-runner.js +16 -16
- package/dist/test/env/skeleton-runner.js.map +1 -1
- package/dist/test/env/test-recovery.d.ts +3 -3
- package/dist/test/env/test-recovery.js +1 -1
- package/dist/test/env/test-recovery.js.map +1 -1
- package/dist/test/env/to-views.d.ts +1 -1
- package/dist/test/env/to-views.js +2 -2
- package/dist/test/env/to-views.js.map +1 -1
- package/dist/test/fixml/fixml-alloc-parse.test.js +32 -15
- package/dist/test/fixml/fixml-alloc-parse.test.js.map +1 -1
- package/dist/test/fixml/fixml-mkt-data-fut-parse.test.js +2 -2
- package/dist/test/fixml/fixml-mkt-data-fut-parse.test.js.map +1 -1
- package/dist/test/fixml/fixml-mkt-data-settle-parse.test.js +2 -1
- package/dist/test/fixml/fixml-mkt-data-settle-parse.test.js.map +1 -1
- package/dist/test/fixml/fixml-tc-bi-lateral-parse.test.js +19 -12
- package/dist/test/fixml/fixml-tc-bi-lateral-parse.test.js.map +1 -1
- package/dist/test/fixml/repo-full-fixml-msg.test.js +2 -2
- package/dist/test/fixml/repo-full-fixml-msg.test.js.map +1 -1
- package/dist/transport/ascii/ascii-msg-transmitter.d.ts +1 -1
- package/dist/transport/ascii/ascii-msg-transmitter.js +18 -8
- package/dist/transport/ascii/ascii-msg-transmitter.js.map +1 -1
- package/dist/transport/ascii/ascii-session-msg-factory.d.ts +3 -3
- package/dist/transport/ascii/ascii-session-msg-factory.js +4 -2
- package/dist/transport/ascii/ascii-session-msg-factory.js.map +1 -1
- package/dist/transport/ascii/ascii-session.d.ts +1 -1
- package/dist/transport/ascii/ascii-session.js +34 -16
- package/dist/transport/ascii/ascii-session.js.map +1 -1
- package/dist/transport/duplex/http-duplex.js +10 -8
- package/dist/transport/duplex/http-duplex.js.map +1 -1
- package/dist/transport/duplex/string-duplex.js +2 -2
- package/dist/transport/duplex/string-duplex.js.map +1 -1
- package/dist/transport/factory/msg-transport.js +21 -10
- package/dist/transport/factory/msg-transport.js.map +1 -1
- package/dist/transport/fix-acceptor.d.ts +3 -3
- package/dist/transport/fix-acceptor.js.map +1 -1
- package/dist/transport/fix-entity.d.ts +1 -1
- package/dist/transport/fix-entity.js.map +1 -1
- package/dist/transport/fix-initiator.d.ts +2 -2
- package/dist/transport/fix-initiator.js.map +1 -1
- package/dist/transport/fixml/fixml-msg-transmitter.d.ts +1 -1
- package/dist/transport/fixml/fixml-msg-transmitter.js +4 -2
- package/dist/transport/fixml/fixml-msg-transmitter.js.map +1 -1
- package/dist/transport/fixml/fixml-session-msg-factory.d.ts +1 -1
- package/dist/transport/fixml/fixml-session-msg-factory.js.map +1 -1
- package/dist/transport/fixml/fixml-session.js +7 -3
- package/dist/transport/fixml/fixml-session.js.map +1 -1
- package/dist/transport/http/html-options.d.ts +2 -2
- package/dist/transport/http/html-options.js.map +1 -1
- package/dist/transport/http/html-route.js.map +1 -1
- package/dist/transport/http/http-acceptor-listener.js +27 -23
- package/dist/transport/http/http-acceptor-listener.js.map +1 -1
- package/dist/transport/http/http-acceptor.d.ts +2 -2
- package/dist/transport/http/http-acceptor.js +52 -41
- package/dist/transport/http/http-acceptor.js.map +1 -1
- package/dist/transport/http/http-adapter.d.ts +3 -3
- package/dist/transport/http/http-adapter.js.map +1 -1
- package/dist/transport/http/http-initiator.js +35 -23
- package/dist/transport/http/http-initiator.js.map +1 -1
- package/dist/transport/http/http-json-sample-adapter.d.ts +4 -4
- package/dist/transport/http/http-json-sample-adapter.js +16 -11
- package/dist/transport/http/http-json-sample-adapter.js.map +1 -1
- package/dist/transport/http/http-transaction.js.map +1 -1
- package/dist/transport/http/http-transport-description.js.map +1 -1
- package/dist/transport/msg-application.js.map +1 -1
- package/dist/transport/msg-transmitter.d.ts +1 -1
- package/dist/transport/msg-transmitter.js +2 -2
- package/dist/transport/msg-transmitter.js.map +1 -1
- package/dist/transport/session/a-session-msg-factory.d.ts +3 -5
- package/dist/transport/session/a-session-msg-factory.js.map +1 -1
- package/dist/transport/session/fix-session-state.d.ts +8 -5
- package/dist/transport/session/fix-session-state.js +21 -16
- package/dist/transport/session/fix-session-state.js.map +1 -1
- package/dist/transport/session/fix-session.d.ts +19 -6
- package/dist/transport/session/fix-session.js +197 -110
- package/dist/transport/session/fix-session.js.map +1 -1
- package/dist/transport/session/make-fix-session.d.ts +1 -3
- package/dist/transport/session/make-fix-session.js.map +1 -1
- package/dist/transport/session/session-description.d.ts +1 -1
- package/dist/transport/session/session-description.js.map +1 -1
- package/dist/transport/session/session-msg-factory.d.ts +9 -9
- package/dist/transport/session/session-msg-factory.js.map +1 -1
- package/dist/transport/tcp/recovering-tcp-initiator.d.ts +4 -2
- package/dist/transport/tcp/recovering-tcp-initiator.js +62 -30
- package/dist/transport/tcp/recovering-tcp-initiator.js.map +1 -1
- package/dist/transport/tcp/tcp-acceptor-listener.js +28 -25
- package/dist/transport/tcp/tcp-acceptor-listener.js.map +1 -1
- package/dist/transport/tcp/tcp-acceptor.d.ts +2 -2
- package/dist/transport/tcp/tcp-acceptor.js +23 -15
- package/dist/transport/tcp/tcp-acceptor.js.map +1 -1
- package/dist/transport/tcp/tcp-initiator-connector.js +39 -30
- package/dist/transport/tcp/tcp-initiator-connector.js.map +1 -1
- package/dist/transport/tcp/tcp-initiator.d.ts +1 -1
- package/dist/transport/tcp/tcp-initiator.js +130 -104
- package/dist/transport/tcp/tcp-initiator.js.map +1 -1
- package/dist/transport/tcp/tcp-transport-description.js.map +1 -1
- package/dist/transport/tcp/tls-options-factory.d.ts +3 -3
- package/dist/transport/tcp/tls-options-factory.js +10 -3
- package/dist/transport/tcp/tls-options-factory.js.map +1 -1
- package/dist/transport/tcp/tls-options.d.ts +6 -2
- package/dist/transport/tcp/tls-options.js.map +1 -1
- package/dist/util/json-helper.js +2 -1
- package/dist/util/json-helper.js.map +1 -1
- package/dist/util/message-generator.d.ts +1 -1
- package/dist/util/message-generator.js +1 -1
- package/dist/util/message-generator.js.map +1 -1
- package/package.json +53 -48
- package/src/buffer/ascii/ascii-chars.ts +0 -1
- package/src/buffer/ascii/ascii-encoder.ts +18 -16
- package/src/buffer/ascii/ascii-parser-state.ts +4 -4
- package/src/buffer/ascii/ascii-parser.ts +16 -13
- package/src/buffer/ascii/ascii-segment-parser.ts +16 -15
- package/src/buffer/ascii/ascii-view.ts +22 -14
- package/src/buffer/ascii/itime-formatter.ts +12 -12
- package/src/buffer/ascii/time-formatter.ts +11 -12
- package/src/buffer/elastic-buffer.ts +5 -6
- package/src/buffer/encode-proxy.ts +6 -5
- package/src/buffer/encoder-state.ts +7 -3
- package/src/buffer/fixml/fixml-encoder.ts +10 -10
- package/src/buffer/fixml/fixml-parser.ts +80 -60
- package/src/buffer/fixml/fixml-view.ts +6 -7
- package/src/buffer/fixml/populated-attributes.ts +1 -1
- package/src/buffer/msg-encoder.ts +2 -1
- package/src/buffer/msg-view.ts +73 -53
- package/src/buffer/segment/segment-description.ts +13 -13
- package/src/buffer/segment/segment-summary.ts +3 -2
- package/src/buffer/structure.ts +6 -6
- package/src/buffer/time-format-template.ts +1 -1
- package/src/collections/collection.ts +2 -6
- package/src/collections/dictionary.ts +4 -5
- package/src/config/empty-log-factory.ts +1 -0
- package/src/config/get-js-fx-logger.ts +1 -2
- package/src/config/js-fix-config.ts +6 -6
- package/src/config/js-fix-logger.ts +14 -9
- package/src/config/js-fix-winston-log-factory.ts +2 -1
- package/src/config/winston-logger.ts +9 -7
- package/src/dictionary/compiler/compiler-settings.ts +5 -5
- package/src/dictionary/compiler/compiler-type.ts +1 -1
- package/src/dictionary/compiler/enum-compiler.ts +14 -16
- package/src/dictionary/compiler/msg-compiler.ts +15 -17
- package/src/dictionary/compiler/standard-snippet.ts +28 -27
- package/src/dictionary/contained/contained-component-field.ts +5 -4
- package/src/dictionary/contained/contained-field-dispatcher.ts +3 -3
- package/src/dictionary/contained/contained-field-set.ts +21 -21
- package/src/dictionary/contained/contained-field.ts +4 -1
- package/src/dictionary/contained/contained-group-field.ts +4 -4
- package/src/dictionary/contained/contained-simple-field.ts +5 -5
- package/src/dictionary/contained/field-dispatcher.ts +3 -3
- package/src/dictionary/contained/fields-dispatch.ts +0 -1
- package/src/dictionary/definition/component-field-definition.ts +4 -4
- package/src/dictionary/definition/fix-definitions.ts +8 -8
- package/src/dictionary/definition/group-field-definition.ts +5 -5
- package/src/dictionary/definition/message-definition.ts +4 -4
- package/src/dictionary/definition/simple-field-definition.ts +9 -9
- package/src/dictionary/dict-primitive.ts +2 -2
- package/src/dictionary/field-enum.ts +3 -2
- package/src/dictionary/fix-versions.ts +10 -10
- package/src/dictionary/parser/fix-repository/repository-xml-parser.ts +7 -8
- package/src/dictionary/parser/fix-repository/repository.ts +38 -30
- package/src/dictionary/parser/fixml/components-parser.ts +57 -51
- package/src/dictionary/parser/fixml/fields-parser.ts +9 -10
- package/src/dictionary/parser/fixml/fix-xsd-parser.ts +2 -3
- package/src/dictionary/parser/fixml/include-graph.ts +26 -21
- package/src/dictionary/parser/fixml/xsd-parser.ts +5 -5
- package/src/dictionary/parser/quickfix/field-definition-parser.ts +3 -5
- package/src/dictionary/parser/quickfix/field-set-parser.ts +2 -2
- package/src/dictionary/parser/quickfix/message-parser.ts +9 -6
- package/src/dictionary/parser/quickfix/node-parser.ts +20 -18
- package/src/dictionary/parser/quickfix/parse-context.ts +4 -4
- package/src/dictionary/parser/quickfix/quick-fix-xml-file-parser.ts +13 -15
- package/src/dictionary/set-reduce.ts +4 -3
- package/src/dictionary/type-dispatcher.ts +3 -3
- package/src/dictionary/version-util.ts +8 -8
- package/src/jsfix-cmd.ts +82 -58
- package/src/runtime/make-config.ts +15 -10
- package/src/runtime/session-container.ts +26 -18
- package/src/runtime/session-launcher.ts +58 -30
- package/src/sample/http/oms/app.ts +24 -7
- package/src/sample/http/oms/http-client.ts +3 -3
- package/src/sample/http/oms/http-server.ts +7 -1
- package/src/sample/http/oms/oms-factory.ts +3 -3
- package/src/sample/tcp/qf-md/app.ts +3 -3
- package/src/sample/tcp/qf-md/md-client.ts +1 -1
- package/src/sample/tcp/qf-md/md-factory.ts +3 -2
- package/src/sample/tcp/qf-md/md-server.ts +2 -2
- package/src/sample/tcp/recovering-skeleton/app.ts +37 -20
- package/src/sample/tcp/recovering-skeleton/respawn-acceptor.ts +66 -4
- package/src/sample/tcp/recovering-skeleton/skeleton-client.ts +2 -2
- package/src/sample/tcp/recovering-skeleton/skeleton-server.ts +4 -4
- package/src/sample/tcp/skeleton/app.ts +1 -1
- package/src/sample/tcp/skeleton/skeleton-session.ts +7 -7
- package/src/sample/tcp/tls-trade-capture/app.ts +1 -1
- package/src/sample/tcp/trade-capture/app-launcher.ts +4 -4
- package/src/sample/tcp/trade-capture/trade-capture-client.ts +7 -5
- package/src/sample/tcp/trade-capture/trade-capture-server.ts +10 -5
- package/src/sample/tcp/trade-capture/trade-factory.ts +1 -1
- package/src/store/fix-msg-ascii-store-resend.ts +5 -6
- package/src/store/fix-msg-memory-store.ts +22 -21
- package/src/store/fix-msg-store-record.ts +8 -8
- package/src/store/fix-msg-store-state.ts +2 -2
- package/src/store/fix-msg-store.ts +7 -7
- package/src/transport/ascii/ascii-msg-transmitter.ts +20 -14
- package/src/transport/ascii/ascii-session-msg-factory.ts +5 -6
- package/src/transport/ascii/ascii-session.ts +40 -29
- package/src/transport/duplex/http-duplex.ts +11 -9
- package/src/transport/duplex/string-duplex.ts +4 -5
- package/src/transport/factory/msg-transport.ts +5 -6
- package/src/transport/fix-acceptor.ts +2 -2
- package/src/transport/fix-entity.ts +1 -1
- package/src/transport/fix-initiator.ts +1 -1
- package/src/transport/fixml/fixml-msg-transmitter.ts +4 -3
- package/src/transport/fixml/fixml-session-msg-factory.ts +1 -2
- package/src/transport/fixml/fixml-session.ts +7 -6
- package/src/transport/http/html-options.ts +5 -5
- package/src/transport/http/html-route.ts +1 -1
- package/src/transport/http/http-acceptor-listener.ts +6 -4
- package/src/transport/http/http-acceptor.ts +36 -34
- package/src/transport/http/http-adapter.ts +3 -3
- package/src/transport/http/http-initiator.ts +22 -16
- package/src/transport/http/http-json-sample-adapter.ts +17 -16
- package/src/transport/http/http-transaction.ts +1 -1
- package/src/transport/http/http-transport-description.ts +1 -1
- package/src/transport/msg-application.ts +4 -4
- package/src/transport/msg-transmitter.ts +5 -5
- package/src/transport/session/a-session-msg-factory.ts +2 -3
- package/src/transport/session/fix-session-state.ts +24 -18
- package/src/transport/session/fix-session.ts +169 -96
- package/src/transport/session/make-fix-session.ts +1 -2
- package/src/transport/session/session-description.ts +2 -2
- package/src/transport/session/session-msg-factory.ts +9 -9
- package/src/transport/tcp/recovering-tcp-initiator.ts +39 -21
- package/src/transport/tcp/tcp-acceptor-listener.ts +4 -3
- package/src/transport/tcp/tcp-acceptor.ts +23 -22
- package/src/transport/tcp/tcp-initiator-connector.ts +16 -10
- package/src/transport/tcp/tcp-initiator.ts +57 -46
- package/src/transport/tcp/tcp-transport-description.ts +1 -1
- package/src/transport/tcp/tls-options-factory.ts +21 -8
- package/src/transport/tcp/tls-options.ts +11 -7
- package/src/util/json-helper.ts +6 -5
- package/src/util/message-generator.ts +6 -7
- package/tsconfig.json +2 -0
- package/.eslintrc.js +0 -6
- package/dist/buffer/ascii-chars.d.ts +0 -22
- package/dist/buffer/ascii-chars.js +0 -29
- package/dist/buffer/ascii-chars.js.map +0 -1
- package/dist/buffer/segment-description.d.ts +0 -33
- package/dist/buffer/segment-description.js +0 -80
- package/dist/buffer/segment-description.js.map +0 -1
- package/dist/buffer/segment-summary.d.ts +0 -13
- package/dist/buffer/segment-summary.js +0 -20
- package/dist/buffer/segment-summary.js.map +0 -1
- package/dist/buffer/tag-pos.d.ts +0 -12
- package/dist/buffer/tag-pos.js +0 -55
- package/dist/buffer/tag-pos.js.map +0 -1
- package/dist/buffer/tags.d.ts +0 -32
- package/dist/buffer/tags.js +0 -135
- package/dist/buffer/tags.js.map +0 -1
- package/dist/dictionary/fields-dispatch.d.ts +0 -13
- package/dist/dictionary/fields-dispatch.js +0 -40
- package/dist/dictionary/fields-dispatch.js.map +0 -1
- package/dist/sample/launcher.d.ts +0 -12
- package/dist/sample/launcher.js +0 -63
- package/dist/sample/launcher.js.map +0 -1
- package/dist/test/ascii-encoder.test.d.ts +0 -1
- package/dist/test/ascii-encoder.test.js +0 -529
- package/dist/test/ascii-encoder.test.js.map +0 -1
- package/dist/test/ascii-parser.test.d.ts +0 -1
- package/dist/test/ascii-parser.test.js +0 -142
- package/dist/test/ascii-parser.test.js.map +0 -1
- package/dist/test/ascii-segment.test.d.ts +0 -1
- package/dist/test/ascii-segment.test.js +0 -107
- package/dist/test/ascii-segment.test.js.map +0 -1
- package/dist/test/ascii-store-replay.test.d.ts +0 -1
- package/dist/test/ascii-store-replay.test.js +0 -121
- package/dist/test/ascii-store-replay.test.js.map +0 -1
- package/dist/test/ascii-tag-pos.test.d.ts +0 -1
- package/dist/test/ascii-tag-pos.test.js +0 -105
- package/dist/test/ascii-tag-pos.test.js.map +0 -1
- package/dist/test/execution-report.test.d.ts +0 -1
- package/dist/test/execution-report.test.js +0 -490
- package/dist/test/execution-report.test.js.map +0 -1
- package/dist/test/fix-log-replay.test.d.ts +0 -1
- package/dist/test/fix-log-replay.test.js +0 -45
- package/dist/test/fix-log-replay.test.js.map +0 -1
- package/dist/test/fix-repo-dict.test.d.ts +0 -1
- package/dist/test/fix-repo-dict.test.js +0 -127
- package/dist/test/fix-repo-dict.test.js.map +0 -1
- package/dist/test/fixml-alloc-parse.test.d.ts +0 -1
- package/dist/test/fixml-alloc-parse.test.js +0 -160
- package/dist/test/fixml-alloc-parse.test.js.map +0 -1
- package/dist/test/fixml-mkt-data-fut-parse.test.d.ts +0 -1
- package/dist/test/fixml-mkt-data-fut-parse.test.js +0 -60
- package/dist/test/fixml-mkt-data-fut-parse.test.js.map +0 -1
- package/dist/test/fixml-mkt-data-settle-parse.test.d.ts +0 -1
- package/dist/test/fixml-mkt-data-settle-parse.test.js +0 -33
- package/dist/test/fixml-mkt-data-settle-parse.test.js.map +0 -1
- package/dist/test/fixml-tc-bi-lateral-parse.test.d.ts +0 -1
- package/dist/test/fixml-tc-bi-lateral-parse.test.js +0 -96
- package/dist/test/fixml-tc-bi-lateral-parse.test.js.map +0 -1
- package/dist/test/includes.test.d.ts +0 -1
- package/dist/test/includes.test.js +0 -42
- package/dist/test/includes.test.js.map +0 -1
- package/dist/test/logon.test.d.ts +0 -1
- package/dist/test/logon.test.js +0 -93
- package/dist/test/logon.test.js.map +0 -1
- package/dist/test/memory-store.test.d.ts +0 -1
- package/dist/test/memory-store.test.js +0 -75
- package/dist/test/memory-store.test.js.map +0 -1
- package/dist/test/qf-full-msg.test.d.ts +0 -1
- package/dist/test/qf-full-msg.test.js +0 -76
- package/dist/test/qf-full-msg.test.js.map +0 -1
- package/dist/test/repo-full-ascii-msg.test.d.ts +0 -1
- package/dist/test/repo-full-ascii-msg.test.js +0 -82
- package/dist/test/repo-full-ascii-msg.test.js.map +0 -1
- package/dist/test/repo-full-fixml-msg.test.d.ts +0 -1
- package/dist/test/repo-full-fixml-msg.test.js +0 -136
- package/dist/test/repo-full-fixml-msg.test.js.map +0 -1
- package/dist/test/session-state.test.d.ts +0 -1
- package/dist/test/session-state.test.js +0 -74
- package/dist/test/session-state.test.js.map +0 -1
- package/dist/test/session.test.d.ts +0 -1
- package/dist/test/session.test.js +0 -412
- package/dist/test/session.test.js.map +0 -1
- package/dist/test/time-formatter.test.d.ts +0 -1
- package/dist/test/time-formatter.test.js +0 -78
- package/dist/test/time-formatter.test.js.map +0 -1
- package/dist/test/to-views.d.ts +0 -11
- package/dist/test/to-views.js +0 -55
- package/dist/test/to-views.js.map +0 -1
- package/dist/test/view-decode.test.d.ts +0 -1
- package/dist/test/view-decode.test.js +0 -208
- package/dist/test/view-decode.test.js.map +0 -1
- package/dist/transport/a-session-msg-factory.d.ts +0 -23
- package/dist/transport/a-session-msg-factory.js +0 -58
- package/dist/transport/a-session-msg-factory.js.map +0 -1
- package/dist/transport/ascii-session-msg-factory.d.ts +0 -16
- package/dist/transport/ascii-session-msg-factory.js +0 -47
- package/dist/transport/ascii-session-msg-factory.js.map +0 -1
- package/dist/transport/fix-msg-factory.d.ts +0 -15
- package/dist/transport/fix-msg-factory.js +0 -3
- package/dist/transport/fix-msg-factory.js.map +0 -1
- package/dist/transport/fix-session-state-args.d.ts +0 -8
- package/dist/transport/fix-session-state-args.js +0 -3
- package/dist/transport/fix-session-state-args.js.map +0 -1
- package/dist/transport/fix-session-state.d.ts +0 -32
- package/dist/transport/fix-session-state.js +0 -133
- package/dist/transport/fix-session-state.js.map +0 -1
- package/dist/transport/fix-session.d.ts +0 -50
- package/dist/transport/fix-session.js +0 -290
- package/dist/transport/fix-session.js.map +0 -1
- package/dist/transport/fixml/acceptor.d.ts +0 -3
- package/dist/transport/fixml/acceptor.js +0 -38
- package/dist/transport/fixml/acceptor.js.map +0 -1
- package/dist/transport/fixml-session-msg-factory.d.ts +0 -13
- package/dist/transport/fixml-session-msg-factory.js +0 -68
- package/dist/transport/fixml-session-msg-factory.js.map +0 -1
- package/dist/transport/make-config.d.ts +0 -4
- package/dist/transport/make-config.js +0 -31
- package/dist/transport/make-config.js.map +0 -1
- package/dist/transport/make-fix-session.d.ts +0 -5
- package/dist/transport/make-fix-session.js +0 -3
- package/dist/transport/make-fix-session.js.map +0 -1
- package/dist/transport/make-fixl-session.d.ts +0 -5
- package/dist/transport/make-fixl-session.js +0 -3
- package/dist/transport/make-fixl-session.js.map +0 -1
- package/dist/transport/msg-transport.d.ts +0 -14
- package/dist/transport/msg-transport.js +0 -57
- package/dist/transport/msg-transport.js.map +0 -1
- package/dist/transport/session-description.d.ts +0 -64
- package/dist/transport/session-description.js +0 -3
- package/dist/transport/session-description.js.map +0 -1
- package/dist/transport/session-msg-factory.d.ts +0 -6
- package/dist/transport/session-msg-factory.js +0 -13
- package/dist/transport/session-msg-factory.js.map +0 -1
- package/dist/transport/session-state.d.ts +0 -25
- package/dist/transport/session-state.js +0 -30
- package/dist/transport/session-state.js.map +0 -1
- package/dist/transport/tcp/acceptor.d.ts +0 -3
- package/dist/transport/tcp/acceptor.js +0 -40
- package/dist/transport/tcp/acceptor.js.map +0 -1
- package/dist/transport/tcp/initiator.d.ts +0 -3
- package/dist/transport/tcp/initiator.js +0 -67
- package/dist/transport/tcp/initiator.js.map +0 -1
- package/dist/util/dictionary-definitions.d.ts +0 -8
- package/dist/util/dictionary-definitions.js +0 -51
- package/dist/util/dictionary-definitions.js.map +0 -1
- 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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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 (
|
|
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
|
-
|
|
51
|
-
|
|
52
|
-
|
|
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 (
|
|
73
|
-
parentNode.edges.
|
|
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
|
-
}, {}
|
|
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[]>((
|
|
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
|
-
|
|
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 (
|
|
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 (
|
|
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
|
-
|
|
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>((
|
|
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
|
-
|
|
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 (
|
|
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
|
-
|
|
17
|
-
|
|
18
|
-
|
|
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 =
|
|
21
|
-
|
|
22
|
-
|
|
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
|
|
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
|
-
|
|
29
|
-
parent
|
|
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
|
|
42
|
-
parent
|
|
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
|
-
|
|
59
|
-
|
|
60
|
-
|
|
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
|
-
|
|
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
|
-
|
|
124
|
-
|
|
125
|
-
|
|
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(
|
|
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
|
|
191
|
-
const contained = new ContainedComponentField(trailer, message
|
|
192
|
-
message
|
|
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 (
|
|
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
|
-
|
|
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 {
|
|
2
|
-
|
|
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?:
|
|
5
|
-
simple?:
|
|
6
|
-
component?:
|
|
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.
|
|
6
|
+
if (description.includes('FIX.4.0')) {
|
|
7
7
|
version = FixVersion.FIX40
|
|
8
|
-
} else if (description.
|
|
8
|
+
} else if (description.includes('FIX.4.1')) {
|
|
9
9
|
version = FixVersion.FIX41
|
|
10
|
-
} else if (description.
|
|
10
|
+
} else if (description.includes('FIX.4.2')) {
|
|
11
11
|
version = FixVersion.FIX42
|
|
12
|
-
} else if (description.
|
|
12
|
+
} else if (description.includes('FIX.4.3')) {
|
|
13
13
|
version = FixVersion.FIX43
|
|
14
|
-
} else if (description.
|
|
14
|
+
} else if (description.includes('FIX.4.4')) {
|
|
15
15
|
version = FixVersion.FIX44
|
|
16
|
-
} else if (description.
|
|
16
|
+
} else if (description.includes('FIX.5.0')) {
|
|
17
17
|
version = FixVersion.FIX50
|
|
18
|
-
} else if (description.
|
|
18
|
+
} else if (description.includes('FIX.5.0SP1')) {
|
|
19
19
|
version = FixVersion.FIX50SP1
|
|
20
|
-
} else if (description.
|
|
20
|
+
} else if (description.includes('FIX.5.0SP1')) {
|
|
21
21
|
version = FixVersion.FIX50SP2
|
|
22
22
|
}
|
|
23
23
|
return version
|