jspurefix 1.4.1 → 2.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.js +6 -0
- package/appveyor.yml +4 -0
- package/dist/buffer/{ascii-chars.d.ts → ascii/ascii-chars.d.ts} +0 -0
- package/dist/buffer/{ascii-chars.js → ascii/ascii-chars.js} +0 -0
- package/dist/buffer/ascii/ascii-chars.js.map +1 -0
- package/dist/buffer/ascii/ascii-encoder.d.ts +4 -2
- package/dist/buffer/ascii/ascii-encoder.js +54 -32
- package/dist/buffer/ascii/ascii-encoder.js.map +1 -1
- package/dist/buffer/ascii/ascii-parser-state.d.ts +3 -10
- package/dist/buffer/ascii/ascii-parser-state.js +37 -25
- package/dist/buffer/ascii/ascii-parser-state.js.map +1 -1
- package/dist/buffer/ascii/ascii-parser.d.ts +7 -7
- package/dist/buffer/ascii/ascii-parser.js +50 -24
- package/dist/buffer/ascii/ascii-parser.js.map +1 -1
- package/dist/buffer/ascii/ascii-segment-parser.d.ts +2 -2
- package/dist/buffer/ascii/ascii-segment-parser.js +34 -13
- package/dist/buffer/ascii/ascii-segment-parser.js.map +1 -1
- package/dist/buffer/ascii/ascii-view.d.ts +2 -4
- package/dist/buffer/ascii/ascii-view.js +11 -15
- package/dist/buffer/ascii/ascii-view.js.map +1 -1
- package/dist/buffer/ascii/index.d.ts +1 -0
- package/dist/buffer/ascii/index.js +1 -0
- package/dist/buffer/ascii/index.js.map +1 -1
- package/dist/buffer/ascii/parse-state.d.ts +8 -0
- package/dist/buffer/ascii/parse-state.js +13 -0
- package/dist/buffer/ascii/parse-state.js.map +1 -0
- package/dist/buffer/ascii/time-formatter.js +1 -1
- package/dist/buffer/ascii/time-formatter.js.map +1 -1
- package/dist/buffer/elastic-buffer.js +29 -8
- package/dist/buffer/elastic-buffer.js.map +1 -1
- package/dist/buffer/encode-proxy.d.ts +1 -1
- package/dist/buffer/encode-proxy.js +16 -17
- package/dist/buffer/encode-proxy.js.map +1 -1
- package/dist/buffer/fixml/fixml-encoder.d.ts +2 -1
- package/dist/buffer/fixml/fixml-encoder.js +43 -20
- package/dist/buffer/fixml/fixml-encoder.js.map +1 -1
- package/dist/buffer/fixml/fixml-parser.js +47 -24
- package/dist/buffer/fixml/fixml-parser.js.map +1 -1
- package/dist/buffer/fixml/fixml-view.d.ts +2 -4
- package/dist/buffer/fixml/fixml-view.js +13 -16
- package/dist/buffer/fixml/fixml-view.js.map +1 -1
- package/dist/buffer/fixml/populated-attributes.d.ts +5 -0
- package/dist/buffer/fixml/populated-attributes.js +3 -0
- package/dist/buffer/fixml/populated-attributes.js.map +1 -0
- package/dist/buffer/index.d.ts +4 -8
- package/dist/buffer/index.js +4 -8
- package/dist/buffer/index.js.map +1 -1
- package/dist/buffer/msg-encoder.d.ts +2 -1
- package/dist/buffer/msg-encoder.js.map +1 -1
- package/dist/buffer/msg-view.d.ts +3 -5
- package/dist/buffer/msg-view.js +8 -5
- package/dist/buffer/msg-view.js.map +1 -1
- package/dist/buffer/{segment-description.d.ts → segment/segment-description.d.ts} +3 -10
- package/dist/buffer/{segment-description.js → segment/segment-description.js} +5 -13
- package/dist/buffer/segment/segment-description.js.map +1 -0
- package/dist/buffer/{segment-summary.d.ts → segment/segment-summary.d.ts} +0 -0
- package/dist/buffer/{segment-summary.js → segment/segment-summary.js} +0 -0
- package/dist/buffer/segment/segment-summary.js.map +1 -0
- package/dist/buffer/segment/segment-type.d.ts +8 -0
- package/dist/buffer/segment/segment-type.js +13 -0
- package/dist/buffer/segment/segment-type.js.map +1 -0
- package/dist/buffer/structure.d.ts +3 -3
- package/dist/buffer/structure.js +1 -1
- package/dist/buffer/structure.js.map +1 -1
- package/dist/buffer/{tag-pos.d.ts → tag/tag-pos.d.ts} +0 -0
- package/dist/buffer/{tag-pos.js → tag/tag-pos.js} +0 -0
- package/dist/buffer/tag/tag-pos.js.map +1 -0
- package/dist/buffer/tag/tag-type.d.ts +13 -0
- package/dist/buffer/tag/tag-type.js +18 -0
- package/dist/buffer/tag/tag-type.js.map +1 -0
- package/dist/buffer/{tags.d.ts → tag/tags.d.ts} +3 -14
- package/dist/buffer/{tags.js → tag/tags.js} +24 -37
- package/dist/buffer/tag/tags.js.map +1 -0
- package/dist/config/get-js-fx-logger.d.ts +4 -0
- package/dist/config/get-js-fx-logger.js +3 -0
- package/dist/config/get-js-fx-logger.js.map +1 -0
- package/dist/config/index.d.ts +1 -0
- package/dist/config/index.js +1 -0
- package/dist/config/index.js.map +1 -1
- package/dist/config/js-fix-config.d.ts +4 -1
- package/dist/config/js-fix-config.js +3 -3
- package/dist/config/js-fix-config.js.map +1 -1
- package/dist/config/js-fix-logger.d.ts +0 -3
- package/dist/config/js-fix-logger.js.map +1 -1
- package/dist/dict-parser.js +28 -23
- package/dist/dict-parser.js.map +1 -1
- package/dist/dictionary/compiler/compiler-type.js +7 -7
- package/dist/dictionary/compiler/compiler-type.js.map +1 -1
- package/dist/dictionary/compiler/enum-compiler.d.ts +1 -0
- package/dist/dictionary/compiler/enum-compiler.js +11 -1
- package/dist/dictionary/compiler/enum-compiler.js.map +1 -1
- package/dist/dictionary/compiler/msg-compiler.js +8 -6
- package/dist/dictionary/compiler/msg-compiler.js.map +1 -1
- package/dist/dictionary/contained/contained-component-field.js +2 -1
- package/dist/dictionary/contained/contained-component-field.js.map +1 -1
- package/dist/dictionary/contained/contained-field-dispatch.d.ts +1 -14
- package/dist/dictionary/contained/contained-field-dispatch.js +4 -4
- package/dist/dictionary/contained/contained-field-dispatch.js.map +1 -1
- package/dist/dictionary/contained/contained-field-dispatcher.d.ts +14 -0
- package/dist/dictionary/contained/contained-field-dispatcher.js +3 -0
- package/dist/dictionary/contained/contained-field-dispatcher.js.map +1 -0
- package/dist/dictionary/contained/contained-field-set.d.ts +1 -1
- package/dist/dictionary/contained/contained-field-set.js +12 -11
- package/dist/dictionary/contained/contained-field-set.js.map +1 -1
- package/dist/dictionary/contained/contained-field-type.d.ts +5 -0
- package/dist/dictionary/contained/contained-field-type.js +10 -0
- package/dist/dictionary/contained/contained-field-type.js.map +1 -0
- package/dist/dictionary/contained/contained-field.d.ts +1 -5
- package/dist/dictionary/contained/contained-field.js +1 -7
- package/dist/dictionary/contained/contained-field.js.map +1 -1
- package/dist/dictionary/contained/contained-group-field.js +2 -1
- package/dist/dictionary/contained/contained-group-field.js.map +1 -1
- package/dist/dictionary/contained/contained-simple-field.js +2 -1
- package/dist/dictionary/contained/contained-simple-field.js.map +1 -1
- package/dist/dictionary/{fields-dispatch.d.ts → contained/field-dispatcher.d.ts} +3 -2
- package/dist/dictionary/contained/field-dispatcher.js +3 -0
- package/dist/dictionary/contained/field-dispatcher.js.map +1 -0
- package/dist/dictionary/contained/fields-dispatch.d.ts +6 -0
- package/dist/dictionary/contained/fields-dispatch.js +42 -0
- package/dist/dictionary/contained/fields-dispatch.js.map +1 -0
- package/dist/dictionary/contained/index.d.ts +2 -0
- package/dist/dictionary/contained/index.js +2 -0
- package/dist/dictionary/contained/index.js.map +1 -1
- package/dist/dictionary/contained-set-type.d.ts +5 -0
- package/dist/dictionary/contained-set-type.js +10 -0
- package/dist/dictionary/contained-set-type.js.map +1 -0
- package/dist/dictionary/definition/component-field-definition.js +2 -2
- package/dist/dictionary/definition/component-field-definition.js.map +1 -1
- package/dist/dictionary/definition/fix-definitions.d.ts +2 -1
- package/dist/dictionary/definition/fix-definitions.js.map +1 -1
- package/dist/dictionary/definition/group-field-definition.js +2 -2
- package/dist/dictionary/definition/group-field-definition.js.map +1 -1
- package/dist/dictionary/definition/index.d.ts +0 -1
- package/dist/dictionary/definition/index.js +0 -1
- package/dist/dictionary/definition/index.js.map +1 -1
- package/dist/dictionary/definition/message-definition.js +2 -2
- package/dist/dictionary/definition/message-definition.js.map +1 -1
- package/dist/dictionary/definition/simple-field-definition.d.ts +1 -1
- package/dist/dictionary/definition/simple-field-definition.js +5 -4
- package/dist/dictionary/definition/simple-field-definition.js.map +1 -1
- package/dist/dictionary/dict-primitive.d.ts +0 -11
- package/dist/dictionary/dict-primitive.js +0 -7
- package/dist/dictionary/dict-primitive.js.map +1 -1
- package/dist/dictionary/fix-definition-source.d.ts +6 -0
- package/dist/dictionary/fix-definition-source.js +11 -0
- package/dist/dictionary/fix-definition-source.js.map +1 -0
- package/dist/dictionary/fix-versions.d.ts +0 -9
- package/dist/dictionary/fix-versions.js +1 -39
- package/dist/dictionary/fix-versions.js.map +1 -1
- package/dist/dictionary/index.d.ts +1 -5
- package/dist/dictionary/index.js +1 -5
- package/dist/dictionary/index.js.map +1 -1
- package/dist/dictionary/parser/fix-repository/abbreviations-parser.d.ts +1 -3
- package/dist/dictionary/parser/fix-repository/abbreviations-parser.js +2 -3
- package/dist/dictionary/parser/fix-repository/abbreviations-parser.js.map +1 -1
- package/dist/dictionary/parser/fix-repository/base-parser.d.ts +2 -4
- package/dist/dictionary/parser/fix-repository/base-parser.js +1 -2
- package/dist/dictionary/parser/fix-repository/base-parser.js.map +1 -1
- package/dist/dictionary/parser/fix-repository/components-parser.d.ts +1 -3
- package/dist/dictionary/parser/fix-repository/components-parser.js +2 -3
- package/dist/dictionary/parser/fix-repository/components-parser.js.map +1 -1
- package/dist/dictionary/parser/fix-repository/data-types-parser.d.ts +1 -3
- package/dist/dictionary/parser/fix-repository/data-types-parser.js +2 -3
- package/dist/dictionary/parser/fix-repository/data-types-parser.js.map +1 -1
- package/dist/dictionary/parser/fix-repository/enums-parser.d.ts +1 -3
- package/dist/dictionary/parser/fix-repository/enums-parser.js +2 -3
- package/dist/dictionary/parser/fix-repository/enums-parser.js.map +1 -1
- package/dist/dictionary/parser/fix-repository/fields-parser.d.ts +1 -3
- package/dist/dictionary/parser/fix-repository/fields-parser.js +2 -3
- package/dist/dictionary/parser/fix-repository/fields-parser.js.map +1 -1
- package/dist/dictionary/parser/fix-repository/messages-parser.d.ts +1 -3
- package/dist/dictionary/parser/fix-repository/messages-parser.js +2 -3
- package/dist/dictionary/parser/fix-repository/messages-parser.js.map +1 -1
- package/dist/dictionary/parser/fix-repository/msg-contents-parser.d.ts +1 -3
- package/dist/dictionary/parser/fix-repository/msg-contents-parser.js +2 -3
- package/dist/dictionary/parser/fix-repository/msg-contents-parser.js.map +1 -1
- package/dist/dictionary/parser/fix-repository/repository-abbreviation.d.ts +5 -0
- package/dist/dictionary/parser/fix-repository/repository-abbreviation.js +3 -0
- package/dist/dictionary/parser/fix-repository/repository-abbreviation.js.map +1 -0
- package/dist/dictionary/parser/fix-repository/repository-component.d.ts +10 -0
- package/dist/dictionary/parser/fix-repository/repository-component.js +3 -0
- package/dist/dictionary/parser/fix-repository/repository-component.js.map +1 -0
- package/dist/dictionary/parser/fix-repository/repository-data-type.d.ts +6 -0
- package/dist/dictionary/parser/fix-repository/repository-data-type.js +3 -0
- package/dist/dictionary/parser/fix-repository/repository-data-type.js.map +1 -0
- package/dist/dictionary/parser/fix-repository/repository-enum.d.ts +7 -0
- package/dist/{transport/fix-msg-factory.js → dictionary/parser/fix-repository/repository-enum.js} +1 -1
- package/dist/dictionary/parser/fix-repository/repository-enum.js.map +1 -0
- package/dist/dictionary/parser/fix-repository/repository-field.d.ts +11 -0
- package/dist/dictionary/parser/fix-repository/repository-field.js +3 -0
- package/dist/dictionary/parser/fix-repository/repository-field.js.map +1 -0
- package/dist/dictionary/parser/fix-repository/repository-message.d.ts +11 -0
- package/dist/{transport/make-fixl-session.js → dictionary/parser/fix-repository/repository-message.js} +1 -1
- package/dist/dictionary/parser/fix-repository/repository-message.js.map +1 -0
- package/dist/dictionary/parser/fix-repository/repository-msg-content.d.ts +9 -0
- package/dist/dictionary/parser/fix-repository/repository-msg-content.js +3 -0
- package/dist/dictionary/parser/fix-repository/repository-msg-content.js.map +1 -0
- package/dist/dictionary/parser/fix-repository/repository-type.d.ts +0 -53
- package/dist/dictionary/parser/fix-repository/repository-type.js +0 -2
- package/dist/dictionary/parser/fix-repository/repository-type.js.map +1 -1
- package/dist/dictionary/parser/fix-repository/repository-xml-parser.js +10 -10
- package/dist/dictionary/parser/fix-repository/repository-xml-parser.js.map +1 -1
- package/dist/dictionary/parser/fix-repository/repository.d.ts +12 -1
- package/dist/dictionary/parser/fix-repository/repository.js +50 -28
- 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.map +1 -1
- package/dist/dictionary/parser/fixml/fields-parser.d.ts +1 -1
- 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.js.map +1 -1
- package/dist/dictionary/parser/fixml/xsd-parser.d.ts +1 -1
- package/dist/dictionary/parser/fixml/xsd-parser.js.map +1 -1
- package/dist/dictionary/parser/quickfix/field-definition-parser.d.ts +4 -4
- package/dist/dictionary/parser/quickfix/field-definition-parser.js +3 -3
- package/dist/dictionary/parser/quickfix/field-definition-parser.js.map +1 -1
- package/dist/dictionary/parser/quickfix/field-set-parser.d.ts +4 -4
- package/dist/dictionary/parser/quickfix/field-set-parser.js +3 -3
- package/dist/dictionary/parser/quickfix/field-set-parser.js.map +1 -1
- package/dist/dictionary/parser/quickfix/message-parser.d.ts +4 -4
- package/dist/dictionary/parser/quickfix/message-parser.js +3 -3
- package/dist/dictionary/parser/quickfix/message-parser.js.map +1 -1
- package/dist/dictionary/parser/quickfix/node-parser.d.ts +4 -5
- package/dist/dictionary/parser/quickfix/node-parser.js +4 -4
- package/dist/dictionary/parser/quickfix/node-parser.js.map +1 -1
- package/dist/dictionary/parser/quickfix/parse-state.d.ts +8 -0
- package/dist/dictionary/parser/quickfix/parse-state.js +13 -0
- package/dist/dictionary/parser/quickfix/parse-state.js.map +1 -0
- package/dist/dictionary/parser/quickfix/quick-fix-xml-file-parser.d.ts +1 -9
- package/dist/dictionary/parser/quickfix/quick-fix-xml-file-parser.js +28 -35
- package/dist/dictionary/parser/quickfix/quick-fix-xml-file-parser.js.map +1 -1
- package/dist/dictionary/sax-node.d.ts +6 -0
- package/dist/{types/FIX4.4/quickfix/set/trailer.js → dictionary/sax-node.js} +1 -1
- package/dist/dictionary/sax-node.js.map +1 -0
- package/dist/dictionary/set-reduce.d.ts +5 -12
- package/dist/dictionary/set-reduce.js +28 -26
- package/dist/dictionary/set-reduce.js.map +1 -1
- package/dist/dictionary/type-dispatcher.d.ts +12 -0
- package/dist/dictionary/type-dispatcher.js +3 -0
- package/dist/dictionary/type-dispatcher.js.map +1 -0
- package/dist/dictionary/version-util.d.ts +4 -0
- package/dist/dictionary/version-util.js +36 -0
- package/dist/dictionary/version-util.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/jsfix-cmd.d.ts +5 -0
- package/dist/jsfix-cmd.js +28 -21
- package/dist/jsfix-cmd.js.map +1 -1
- package/dist/runtime/di-tokens.d.ts +28 -0
- package/dist/runtime/di-tokens.js +33 -0
- package/dist/runtime/di-tokens.js.map +1 -0
- package/dist/runtime/engine-factory.d.ts +4 -0
- package/dist/runtime/engine-factory.js +3 -0
- package/dist/runtime/engine-factory.js.map +1 -0
- package/dist/runtime/index.d.ts +5 -0
- package/dist/runtime/index.js +18 -0
- package/dist/runtime/index.js.map +1 -0
- package/dist/runtime/make-config.d.ts +11 -0
- package/dist/runtime/make-config.js +57 -0
- package/dist/runtime/make-config.js.map +1 -0
- package/dist/runtime/session-container.d.ts +16 -0
- package/dist/runtime/session-container.js +168 -0
- package/dist/runtime/session-container.js.map +1 -0
- package/dist/runtime/session-launcher.d.ts +27 -0
- package/dist/runtime/session-launcher.js +131 -0
- package/dist/runtime/session-launcher.js.map +1 -0
- package/dist/sample/http/oms/app.d.ts +1 -1
- package/dist/sample/http/oms/app.js +16 -14
- package/dist/sample/http/oms/app.js.map +1 -1
- package/dist/sample/http/oms/http-client.js +22 -2
- package/dist/sample/http/oms/http-client.js.map +1 -1
- package/dist/sample/http/oms/http-server.js +21 -2
- package/dist/sample/http/oms/http-server.js.map +1 -1
- package/dist/sample/tcp/qf-md/app.d.ts +1 -1
- package/dist/sample/tcp/qf-md/app.js +11 -11
- package/dist/sample/tcp/qf-md/app.js.map +1 -1
- package/dist/sample/tcp/qf-md/md-client.js +21 -2
- package/dist/sample/tcp/qf-md/md-client.js.map +1 -1
- package/dist/sample/tcp/qf-md/md-server.js +20 -2
- package/dist/sample/tcp/qf-md/md-server.js.map +1 -1
- package/dist/sample/tcp/recovering-skeleton/app.d.ts +1 -1
- package/dist/sample/tcp/recovering-skeleton/app.js +36 -16
- package/dist/sample/tcp/recovering-skeleton/app.js.map +1 -1
- package/dist/sample/tcp/recovering-skeleton/respawn-acceptor.d.ts +3 -1
- package/dist/sample/tcp/recovering-skeleton/respawn-acceptor.js +30 -8
- package/dist/sample/tcp/recovering-skeleton/respawn-acceptor.js.map +1 -1
- package/dist/sample/tcp/recovering-skeleton/skeleton-client.d.ts +1 -1
- package/dist/sample/tcp/recovering-skeleton/skeleton-client.js +22 -3
- package/dist/sample/tcp/recovering-skeleton/skeleton-client.js.map +1 -1
- package/dist/sample/tcp/recovering-skeleton/skeleton-server.js +21 -2
- package/dist/sample/tcp/recovering-skeleton/skeleton-server.js.map +1 -1
- package/dist/sample/tcp/skeleton/app.d.ts +1 -1
- package/dist/sample/tcp/skeleton/app.js +8 -13
- package/dist/sample/tcp/skeleton/app.js.map +1 -1
- package/dist/sample/tcp/skeleton/skeleton-session.d.ts +1 -1
- package/dist/sample/tcp/skeleton/skeleton-session.js +26 -4
- package/dist/sample/tcp/skeleton/skeleton-session.js.map +1 -1
- package/dist/sample/tcp/tls-trade-capture/app.d.ts +1 -1
- package/dist/sample/tcp/tls-trade-capture/app.js +4 -24
- package/dist/sample/tcp/tls-trade-capture/app.js.map +1 -1
- package/dist/sample/tcp/trade-capture/app-launcher.d.ts +6 -0
- package/dist/sample/tcp/trade-capture/app-launcher.js +21 -0
- package/dist/sample/tcp/trade-capture/app-launcher.js.map +1 -0
- package/dist/sample/tcp/trade-capture/app.d.ts +1 -1
- package/dist/sample/tcp/trade-capture/app.js +4 -21
- package/dist/sample/tcp/trade-capture/app.js.map +1 -1
- package/dist/sample/tcp/trade-capture/trade-capture-client.js.map +1 -1
- package/dist/sample/tcp/trade-capture/trade-capture-server.js.map +1 -1
- package/dist/sample/tcp/trade-capture/trade-factory.js +7 -1
- package/dist/sample/tcp/trade-capture/trade-factory.js.map +1 -1
- package/dist/store/fix-msg-ascii-store-resend.d.ts +1 -1
- package/dist/store/fix-msg-ascii-store-resend.js +2 -1
- package/dist/store/fix-msg-ascii-store-resend.js.map +1 -1
- package/dist/store/fix-msg-memory-store.d.ts +1 -1
- package/dist/store/fix-msg-memory-store.js.map +1 -1
- package/dist/store/fix-msg-store-record.d.ts +2 -0
- package/dist/store/fix-msg-store-record.js +4 -0
- package/dist/store/fix-msg-store-record.js.map +1 -1
- package/dist/store/fix-msg-store-state.d.ts +6 -0
- package/dist/store/fix-msg-store-state.js +3 -0
- package/dist/store/fix-msg-store-state.js.map +1 -0
- package/dist/store/fix-msg-store.d.ts +1 -6
- package/dist/store/fix-msg-store.js.map +1 -1
- package/dist/test/ascii/ascii-encoder.test.d.ts +1 -0
- package/dist/test/{ascii-encoder.test.js → ascii/ascii-encoder.test.js} +57 -55
- package/dist/test/ascii/ascii-encoder.test.js.map +1 -0
- package/dist/test/ascii/ascii-parser.test.d.ts +1 -0
- package/dist/test/{ascii-parser.test.js → ascii/ascii-parser.test.js} +33 -52
- package/dist/test/ascii/ascii-parser.test.js.map +1 -0
- package/dist/test/ascii/ascii-segment.test.d.ts +1 -0
- package/dist/test/{ascii-segment.test.js → ascii/ascii-segment.test.js} +20 -41
- package/dist/test/ascii/ascii-segment.test.js.map +1 -0
- package/dist/test/ascii/ascii-store-replay.test.d.ts +1 -0
- package/dist/test/{ascii-store-replay.test.js → ascii/ascii-store-replay.test.js} +14 -43
- package/dist/test/ascii/ascii-store-replay.test.js.map +1 -0
- package/dist/test/ascii/ascii-tag-pos.test.d.ts +1 -0
- package/dist/test/{ascii-tag-pos.test.js → ascii/ascii-tag-pos.test.js} +10 -10
- package/dist/test/ascii/ascii-tag-pos.test.js.map +1 -0
- package/dist/test/ascii/execution-report.test.d.ts +1 -0
- package/dist/test/{execution-report.test.js → ascii/execution-report.test.js} +51 -52
- package/dist/test/ascii/execution-report.test.js.map +1 -0
- package/dist/test/ascii/fix-log-replay.test.d.ts +1 -0
- package/dist/test/{fix-log-replay.test.js → ascii/fix-log-replay.test.js} +8 -6
- package/dist/test/ascii/fix-log-replay.test.js.map +1 -0
- package/dist/test/ascii/fix-repo-dict.test.d.ts +1 -0
- package/dist/test/{fix-repo-dict.test.js → ascii/fix-repo-dict.test.js} +8 -7
- package/dist/test/ascii/fix-repo-dict.test.js.map +1 -0
- package/dist/test/ascii/includes.test.d.ts +1 -0
- package/dist/test/{includes.test.js → ascii/includes.test.js} +3 -2
- package/dist/test/ascii/includes.test.js.map +1 -0
- package/dist/test/ascii/logon.test.d.ts +1 -0
- package/dist/test/{logon.test.js → ascii/logon.test.js} +11 -13
- package/dist/test/ascii/logon.test.js.map +1 -0
- package/dist/test/ascii/memory-store.test.d.ts +1 -0
- package/dist/test/{memory-store.test.js → ascii/memory-store.test.js} +12 -12
- package/dist/test/ascii/memory-store.test.js.map +1 -0
- package/dist/test/ascii/qf-full-msg.test.d.ts +1 -0
- package/dist/test/{qf-full-msg.test.js → ascii/qf-full-msg.test.js} +21 -17
- package/dist/test/ascii/qf-full-msg.test.js.map +1 -0
- package/dist/test/ascii/repo-full-ascii-msg.test.d.ts +1 -0
- package/dist/test/{repo-full-ascii-msg.test.js → ascii/repo-full-ascii-msg.test.js} +20 -16
- package/dist/test/ascii/repo-full-ascii-msg.test.js.map +1 -0
- package/dist/test/ascii/session-state.test.d.ts +1 -0
- package/dist/test/{session-state.test.js → ascii/session-state.test.js} +2 -1
- package/dist/test/ascii/session-state.test.js.map +1 -0
- package/dist/test/ascii/session.test.d.ts +1 -0
- package/dist/test/{session.test.js → ascii/session.test.js} +14 -145
- package/dist/test/ascii/session.test.js.map +1 -0
- package/dist/test/ascii/time-formatter.test.d.ts +1 -0
- package/dist/test/{time-formatter.test.js → ascii/time-formatter.test.js} +4 -2
- package/dist/test/ascii/time-formatter.test.js.map +1 -0
- package/dist/test/ascii/view-decode.test.d.ts +1 -0
- package/dist/test/{view-decode.test.js → ascii/view-decode.test.js} +11 -36
- package/dist/test/ascii/view-decode.test.js.map +1 -0
- package/dist/test/elastic-buffer.test.d.ts +1 -1
- package/dist/test/elastic-buffer.test.js +3 -1
- package/dist/test/elastic-buffer.test.js.map +1 -1
- package/dist/test/encode-proxy.test.d.ts +1 -1
- package/dist/test/encode-proxy.test.js +9 -9
- package/dist/test/encode-proxy.test.js.map +1 -1
- package/dist/test/env/experiment.d.ts +23 -0
- package/dist/test/env/experiment.js +33 -0
- package/dist/test/env/experiment.js.map +1 -0
- package/dist/test/env/parsing-result.d.ts +10 -0
- package/dist/test/env/parsing-result.js +14 -0
- package/dist/test/env/parsing-result.js.map +1 -0
- package/dist/test/env/setup.d.ts +39 -0
- package/dist/test/env/setup.js +98 -0
- package/dist/test/env/setup.js.map +1 -0
- package/dist/test/env/skeleton-runner.d.ts +15 -0
- package/dist/test/env/skeleton-runner.js +108 -0
- package/dist/test/env/skeleton-runner.js.map +1 -0
- package/dist/test/env/test-recovery.d.ts +13 -0
- package/dist/test/env/test-recovery.js +41 -0
- package/dist/test/env/test-recovery.js.map +1 -0
- package/dist/test/{to-views.d.ts → env/to-views.d.ts} +2 -2
- package/dist/test/{to-views.js → env/to-views.js} +8 -7
- package/dist/test/env/to-views.js.map +1 -0
- package/dist/test/fixml/fixml-alloc-parse.test.d.ts +1 -0
- package/dist/test/{fixml-alloc-parse.test.js → fixml/fixml-alloc-parse.test.js} +2 -1
- package/dist/test/fixml/fixml-alloc-parse.test.js.map +1 -0
- package/dist/test/fixml/fixml-mkt-data-fut-parse.test.d.ts +1 -0
- package/dist/test/{fixml-mkt-data-fut-parse.test.js → fixml/fixml-mkt-data-fut-parse.test.js} +2 -1
- package/dist/test/fixml/fixml-mkt-data-fut-parse.test.js.map +1 -0
- package/dist/test/fixml/fixml-mkt-data-settle-parse.test.d.ts +1 -0
- package/dist/test/{fixml-mkt-data-settle-parse.test.js → fixml/fixml-mkt-data-settle-parse.test.js} +2 -1
- package/dist/test/fixml/fixml-mkt-data-settle-parse.test.js.map +1 -0
- package/dist/test/fixml/fixml-tc-bi-lateral-parse.test.d.ts +1 -0
- package/dist/test/{fixml-tc-bi-lateral-parse.test.js → fixml/fixml-tc-bi-lateral-parse.test.js} +2 -1
- package/dist/test/fixml/fixml-tc-bi-lateral-parse.test.js.map +1 -0
- package/dist/test/fixml/repo-full-fixml-msg.test.d.ts +1 -0
- package/dist/test/{repo-full-fixml-msg.test.js → fixml/repo-full-fixml-msg.test.js} +17 -10
- package/dist/test/fixml/repo-full-fixml-msg.test.js.map +1 -0
- package/dist/transport/ascii/ascii-msg-transmitter.js +25 -6
- package/dist/transport/ascii/ascii-msg-transmitter.js.map +1 -1
- package/dist/transport/ascii/ascii-session-msg-factory.d.ts +2 -2
- package/dist/transport/ascii/ascii-session-msg-factory.js +1 -1
- 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 +26 -23
- package/dist/transport/ascii/ascii-session.js.map +1 -1
- package/dist/transport/ascii/index.d.ts +0 -1
- package/dist/transport/ascii/index.js +0 -1
- package/dist/transport/ascii/index.js.map +1 -1
- package/dist/transport/duplex/http-duplex.d.ts +1 -1
- package/dist/transport/duplex/http-duplex.js.map +1 -1
- package/dist/transport/duplex/tcp-duplex.js +22 -2
- package/dist/transport/duplex/tcp-duplex.js.map +1 -1
- package/dist/transport/factory/index.d.ts +1 -0
- package/dist/transport/factory/index.js +14 -0
- package/dist/transport/factory/index.js.map +1 -0
- package/dist/transport/{msg-transport.d.ts → factory/msg-transport.d.ts} +4 -4
- package/dist/transport/factory/msg-transport.js +61 -0
- package/dist/transport/factory/msg-transport.js.map +1 -0
- package/dist/transport/fix-acceptor.d.ts +2 -2
- package/dist/transport/fix-acceptor.js.map +1 -1
- package/dist/transport/fix-entity.d.ts +8 -0
- package/dist/transport/fix-entity.js +12 -0
- package/dist/transport/fix-entity.js.map +1 -0
- 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.js +23 -5
- package/dist/transport/fixml/fixml-msg-transmitter.js.map +1 -1
- package/dist/transport/fixml/fixml-session-msg-factory.d.ts +2 -2
- package/dist/transport/fixml/fixml-session-msg-factory.js +1 -1
- package/dist/transport/fixml/fixml-session-msg-factory.js.map +1 -1
- package/dist/transport/fixml/fixml-session.d.ts +1 -1
- package/dist/transport/fixml/fixml-session.js +3 -3
- package/dist/transport/fixml/fixml-session.js.map +1 -1
- package/dist/transport/fixml/index.d.ts +0 -2
- package/dist/transport/fixml/index.js +0 -2
- package/dist/transport/fixml/index.js.map +1 -1
- package/dist/transport/http/html-options.d.ts +8 -0
- package/dist/{store/replay-record.js → transport/http/html-options.js} +1 -1
- package/dist/transport/http/html-options.js.map +1 -0
- package/dist/transport/http/html-route.d.ts +5 -0
- package/dist/{types/FIX4.4/quickfix/set/header.js → transport/http/html-route.js} +1 -1
- package/dist/transport/http/html-route.js.map +1 -0
- package/dist/transport/http/http-acceptor-listener.d.ts +7 -0
- package/dist/transport/http/http-acceptor-listener.js +68 -0
- package/dist/transport/http/http-acceptor-listener.js.map +1 -0
- package/dist/transport/http/http-acceptor.js +24 -5
- package/dist/transport/http/http-acceptor.js.map +1 -1
- package/dist/transport/http/http-adapter.d.ts +7 -0
- package/dist/transport/http/http-adapter.js +3 -0
- package/dist/transport/http/http-adapter.js.map +1 -0
- package/dist/transport/http/http-initiator.d.ts +9 -3
- package/dist/transport/http/http-initiator.js +57 -26
- package/dist/transport/http/http-initiator.js.map +1 -1
- package/dist/transport/http/http-json-sample-adapter.d.ts +2 -1
- package/dist/transport/http/http-json-sample-adapter.js +21 -2
- package/dist/transport/http/http-json-sample-adapter.js.map +1 -1
- package/dist/transport/http/http-transaction.d.ts +1 -1
- package/dist/transport/http/http-transaction.js.map +1 -1
- package/dist/transport/http/http-transport-description.d.ts +8 -0
- package/dist/transport/http/http-transport-description.js +3 -0
- package/dist/transport/http/http-transport-description.js.map +1 -0
- package/dist/transport/http/index.d.ts +1 -0
- package/dist/transport/http/index.js +1 -0
- package/dist/transport/http/index.js.map +1 -1
- package/dist/transport/index.d.ts +11 -10
- package/dist/transport/index.js +11 -10
- package/dist/transport/index.js.map +1 -1
- package/dist/transport/msg-application.d.ts +12 -0
- package/dist/transport/msg-application.js +3 -0
- package/dist/transport/msg-application.js.map +1 -0
- package/dist/transport/msg-transmitter.d.ts +5 -5
- package/dist/transport/msg-transmitter.js +2 -3
- package/dist/transport/msg-transmitter.js.map +1 -1
- package/dist/transport/{a-session-msg-factory.d.ts → session/a-session-msg-factory.d.ts} +3 -3
- package/dist/transport/{a-session-msg-factory.js → session/a-session-msg-factory.js} +1 -1
- package/dist/transport/session/a-session-msg-factory.js.map +1 -0
- package/dist/transport/session/fix-session-state-args.d.ts +8 -0
- package/dist/transport/session/fix-session-state-args.js +3 -0
- package/dist/transport/session/fix-session-state-args.js.map +1 -0
- package/dist/transport/session/fix-session-state.d.ts +32 -0
- package/dist/transport/{fix-session-state.js → session/fix-session-state.js} +22 -55
- package/dist/transport/session/fix-session-state.js.map +1 -0
- package/dist/transport/{fix-session.d.ts → session/fix-session.d.ts} +6 -5
- package/dist/transport/{fix-session.js → session/fix-session.js} +45 -43
- package/dist/transport/session/fix-session.js.map +1 -0
- package/dist/transport/{make-fixl-session.d.ts → session/make-fix-session.d.ts} +1 -1
- package/dist/transport/session/make-fix-session.js +3 -0
- package/dist/transport/session/make-fix-session.js.map +1 -0
- package/dist/transport/session/session-description.d.ts +17 -0
- package/dist/transport/{session-description.js → session/session-description.js} +0 -0
- package/dist/transport/session/session-description.js.map +1 -0
- package/dist/transport/{fix-msg-factory.d.ts → session/session-msg-factory.d.ts} +2 -2
- package/dist/transport/session/session-msg-factory.js +3 -0
- package/dist/transport/session/session-msg-factory.js.map +1 -0
- package/dist/transport/session/session-state.d.ts +25 -0
- package/dist/transport/session/session-state.js +30 -0
- package/dist/transport/session/session-state.js.map +1 -0
- package/dist/transport/tcp/index.d.ts +3 -2
- package/dist/transport/tcp/index.js +3 -2
- package/dist/transport/tcp/index.js.map +1 -1
- package/dist/transport/tcp/recovering-tcp-initiator.d.ts +7 -9
- package/dist/transport/tcp/recovering-tcp-initiator.js +41 -16
- package/dist/transport/tcp/recovering-tcp-initiator.js.map +1 -1
- package/dist/transport/tcp/tcp-acceptor-listener.d.ts +7 -0
- package/dist/transport/tcp/tcp-acceptor-listener.js +70 -0
- package/dist/transport/tcp/tcp-acceptor-listener.js.map +1 -0
- package/dist/transport/tcp/tcp-acceptor.js +29 -12
- package/dist/transport/tcp/tcp-acceptor.js.map +1 -1
- package/dist/transport/tcp/tcp-initiator-connector.d.ts +10 -0
- package/dist/transport/tcp/tcp-initiator-connector.js +97 -0
- package/dist/transport/tcp/tcp-initiator-connector.js.map +1 -0
- package/dist/transport/tcp/tcp-initiator.d.ts +2 -2
- package/dist/transport/tcp/tcp-initiator.js +28 -9
- package/dist/transport/tcp/tcp-initiator.js.map +1 -1
- package/dist/transport/tcp/tcp-transport-description.d.ts +6 -0
- package/dist/transport/tcp/tcp-transport-description.js +3 -0
- package/dist/transport/tcp/tcp-transport-description.js.map +1 -0
- package/dist/transport/tcp/tls-options-factory.d.ts +9 -0
- package/dist/transport/tcp/tls-options-factory.js +53 -0
- package/dist/transport/tcp/tls-options-factory.js.map +1 -0
- package/dist/transport/tcp/tls-options.d.ts +10 -5
- package/dist/transport/tcp/tls-options.js +0 -49
- package/dist/transport/tcp/tls-options.js.map +1 -1
- package/dist/transport/tick-action.d.ts +8 -0
- package/dist/transport/tick-action.js +13 -0
- package/dist/transport/tick-action.js.map +1 -0
- package/dist/util/buffer-helper.js +1 -1
- package/dist/util/buffer-helper.js.map +1 -1
- package/dist/util/definition-factory.d.ts +10 -0
- package/dist/util/definition-factory.js +56 -0
- package/dist/util/definition-factory.js.map +1 -0
- package/dist/util/dictionary-path.d.ts +4 -0
- package/dist/util/dictionary-path.js +3 -0
- package/dist/util/dictionary-path.js.map +1 -0
- package/dist/util/index.d.ts +1 -1
- package/dist/util/index.js +1 -1
- package/dist/util/index.js.map +1 -1
- package/dist/util/json-helper.d.ts +3 -1
- package/dist/util/json-helper.js +13 -12
- package/dist/util/json-helper.js.map +1 -1
- package/dist/util/message-generator.d.ts +1 -1
- package/dist/util/message-generator.js +16 -15
- package/dist/util/message-generator.js.map +1 -1
- package/dist/util/replay.d.ts +6 -3
- package/dist/util/replay.js +24 -26
- package/dist/util/replay.js.map +1 -1
- package/package.json +18 -13
- package/script/build.cmd +1 -0
- package/script/build.sh +1 -0
- package/script/test.cmd +3 -0
- package/src/buffer/{ascii-chars.ts → ascii/ascii-chars.ts} +0 -0
- package/src/buffer/ascii/ascii-encoder.ts +9 -6
- package/src/buffer/ascii/ascii-parser-state.ts +7 -12
- package/src/buffer/ascii/ascii-parser.ts +23 -16
- package/src/buffer/ascii/ascii-segment-parser.ts +14 -8
- package/src/buffer/ascii/ascii-view.ts +4 -9
- package/src/buffer/ascii/index.ts +1 -0
- package/src/buffer/ascii/parse-state.ts +8 -0
- package/src/buffer/ascii/time-formatter.ts +1 -1
- package/src/buffer/elastic-buffer.ts +7 -2
- package/src/buffer/encode-proxy.ts +9 -4
- package/src/buffer/fixml/fixml-encoder.ts +15 -11
- package/src/buffer/fixml/fixml-parser.ts +16 -6
- package/src/buffer/fixml/fixml-view.ts +4 -9
- package/src/buffer/fixml/populated-attributes.ts +6 -0
- package/src/buffer/index.ts +4 -8
- package/src/buffer/msg-encoder.ts +2 -1
- package/src/buffer/msg-view.ts +13 -9
- package/src/buffer/{segment-description.ts → segment/segment-description.ts} +4 -11
- package/src/buffer/{segment-summary.ts → segment/segment-summary.ts} +0 -0
- package/src/buffer/segment/segment-type.ts +8 -0
- package/src/buffer/structure.ts +3 -3
- package/src/buffer/{tag-pos.ts → tag/tag-pos.ts} +0 -0
- package/src/buffer/tag/tag-type.ts +13 -0
- package/src/buffer/{tags.ts → tag/tags.ts} +4 -16
- package/src/config/get-js-fx-logger.ts +4 -0
- package/src/config/index.ts +1 -0
- package/src/config/js-fix-config.ts +5 -2
- package/src/config/js-fix-logger.ts +0 -3
- package/src/dictionary/compiler/compiler-type.ts +3 -3
- package/src/dictionary/compiler/enum-compiler.ts +12 -1
- package/src/dictionary/compiler/msg-compiler.ts +8 -7
- package/src/dictionary/contained/contained-component-field.ts +2 -1
- package/src/dictionary/contained/contained-field-dispatch.ts +3 -7
- package/src/dictionary/contained/contained-field-dispatcher.ts +9 -0
- package/src/dictionary/contained/contained-field-set.ts +5 -3
- package/src/dictionary/contained/contained-field-type.ts +5 -0
- package/src/dictionary/contained/contained-field.ts +1 -6
- package/src/dictionary/contained/contained-group-field.ts +2 -1
- package/src/dictionary/contained/contained-simple-field.ts +2 -1
- package/src/dictionary/contained/field-dispatcher.ts +9 -0
- package/src/dictionary/contained/fields-dispatch.ts +46 -0
- package/src/dictionary/contained/index.ts +2 -0
- package/src/dictionary/contained-set-type.ts +5 -0
- package/src/dictionary/definition/component-field-definition.ts +1 -1
- package/src/dictionary/definition/fix-definitions.ts +2 -1
- package/src/dictionary/definition/group-field-definition.ts +1 -1
- package/src/dictionary/definition/index.ts +0 -1
- package/src/dictionary/definition/message-definition.ts +1 -1
- package/src/dictionary/definition/simple-field-definition.ts +3 -1
- package/src/dictionary/dict-primitive.ts +0 -13
- package/src/dictionary/fix-definition-source.ts +6 -0
- package/src/dictionary/fix-versions.ts +0 -32
- package/src/dictionary/index.ts +1 -5
- package/src/dictionary/parser/fix-repository/abbreviations-parser.ts +2 -3
- package/src/dictionary/parser/fix-repository/base-parser.ts +2 -3
- package/src/dictionary/parser/fix-repository/components-parser.ts +2 -3
- package/src/dictionary/parser/fix-repository/data-types-parser.ts +2 -3
- package/src/dictionary/parser/fix-repository/enums-parser.ts +2 -3
- package/src/dictionary/parser/fix-repository/fields-parser.ts +2 -3
- package/src/dictionary/parser/fix-repository/messages-parser.ts +2 -3
- package/src/dictionary/parser/fix-repository/msg-contents-parser.ts +2 -3
- package/src/dictionary/parser/fix-repository/repository-abbreviation.ts +6 -0
- package/src/dictionary/parser/fix-repository/repository-component.ts +11 -0
- package/src/dictionary/parser/fix-repository/repository-data-type.ts +7 -0
- package/src/dictionary/parser/fix-repository/repository-enum.ts +8 -0
- package/src/dictionary/parser/fix-repository/repository-field.ts +12 -0
- package/src/dictionary/parser/fix-repository/repository-message.ts +12 -0
- package/src/dictionary/parser/fix-repository/repository-msg-content.ts +10 -0
- package/src/dictionary/parser/fix-repository/repository-type.ts +0 -59
- package/src/dictionary/parser/fix-repository/repository-xml-parser.ts +10 -9
- package/src/dictionary/parser/fix-repository/repository.ts +69 -38
- package/src/dictionary/parser/fixml/components-parser.ts +6 -3
- package/src/dictionary/parser/fixml/fields-parser.ts +1 -1
- package/src/dictionary/parser/fixml/fix-xsd-parser.ts +2 -1
- package/src/dictionary/parser/fixml/include-graph.ts +2 -1
- package/src/dictionary/parser/fixml/xsd-parser.ts +2 -1
- package/src/dictionary/parser/quickfix/field-definition-parser.ts +4 -5
- package/src/dictionary/parser/quickfix/field-set-parser.ts +4 -5
- package/src/dictionary/parser/quickfix/message-parser.ts +4 -5
- package/src/dictionary/parser/quickfix/node-parser.ts +3 -6
- package/src/dictionary/parser/quickfix/parse-state.ts +8 -0
- package/src/dictionary/parser/quickfix/quick-fix-xml-file-parser.ts +9 -15
- package/src/dictionary/sax-node.ts +7 -0
- package/src/dictionary/set-reduce.ts +30 -31
- package/src/dictionary/type-dispatcher.ts +7 -0
- package/src/dictionary/version-util.ts +25 -0
- package/src/index.ts +1 -0
- package/src/jsfix-cmd.ts +31 -16
- package/src/runtime/di-tokens.ts +48 -0
- package/src/runtime/engine-factory.ts +5 -0
- package/src/runtime/index.ts +5 -0
- package/src/runtime/make-config.ts +35 -0
- package/src/runtime/session-container.ts +180 -0
- package/src/runtime/session-launcher.ts +127 -0
- package/src/sample/http/oms/app.ts +20 -14
- package/src/sample/http/oms/http-client.ts +5 -2
- package/src/sample/http/oms/http-server.ts +5 -1
- package/src/sample/tcp/qf-md/app.ts +12 -12
- package/src/sample/tcp/qf-md/md-client.ts +4 -1
- package/src/sample/tcp/qf-md/md-server.ts +3 -1
- package/src/sample/tcp/recovering-skeleton/app.ts +37 -15
- package/src/sample/tcp/recovering-skeleton/respawn-acceptor.ts +16 -9
- package/src/sample/tcp/recovering-skeleton/skeleton-client.ts +4 -2
- package/src/sample/tcp/recovering-skeleton/skeleton-server.ts +4 -2
- package/src/sample/tcp/skeleton/app.ts +10 -15
- package/src/sample/tcp/skeleton/skeleton-session.ts +8 -4
- package/src/sample/tcp/tls-trade-capture/app.ts +8 -31
- package/src/sample/tcp/trade-capture/app-launcher.ts +22 -0
- package/src/sample/tcp/trade-capture/app.ts +3 -26
- package/src/sample/tcp/trade-capture/trade-capture-client.ts +2 -1
- package/src/sample/tcp/trade-capture/trade-capture-server.ts +2 -1
- package/src/sample/tcp/trade-capture/trade-factory.ts +7 -1
- package/src/store/fix-msg-ascii-store-resend.ts +3 -2
- package/src/store/fix-msg-memory-store.ts +1 -1
- package/src/store/fix-msg-store-record.ts +6 -0
- package/src/store/fix-msg-store-state.ts +6 -0
- package/src/store/fix-msg-store.ts +1 -7
- package/src/transport/ascii/ascii-msg-transmitter.ts +9 -5
- package/src/transport/ascii/ascii-session-msg-factory.ts +2 -2
- package/src/transport/ascii/ascii-session.ts +9 -6
- package/src/transport/ascii/index.ts +0 -1
- package/src/transport/duplex/http-duplex.ts +1 -1
- package/src/transport/duplex/tcp-duplex.ts +4 -1
- package/src/transport/factory/index.ts +1 -0
- package/src/transport/factory/msg-transport.ts +55 -0
- package/src/transport/fix-acceptor.ts +2 -2
- package/src/transport/fix-entity.ts +9 -0
- package/src/transport/fix-initiator.ts +2 -2
- package/src/transport/fixml/fixml-msg-transmitter.ts +8 -4
- package/src/transport/fixml/fixml-session-msg-factory.ts +2 -2
- package/src/transport/fixml/fixml-session.ts +2 -2
- package/src/transport/fixml/index.ts +0 -2
- package/src/transport/http/html-options.ts +8 -0
- package/src/transport/http/html-route.ts +6 -0
- package/src/transport/http/http-acceptor-listener.ts +42 -0
- package/src/transport/http/http-acceptor.ts +5 -2
- package/src/transport/http/http-adapter.ts +7 -0
- package/src/transport/http/http-initiator.ts +40 -25
- package/src/transport/http/http-json-sample-adapter.ts +7 -2
- package/src/transport/http/http-transaction.ts +1 -1
- package/src/transport/http/http-transport-description.ts +9 -0
- package/src/transport/http/index.ts +1 -0
- package/src/transport/index.ts +11 -10
- package/src/transport/msg-application.ts +13 -0
- package/src/transport/msg-transmitter.ts +5 -5
- package/src/transport/{a-session-msg-factory.ts → session/a-session-msg-factory.ts} +4 -4
- package/src/transport/session/fix-session-state-args.ts +9 -0
- package/src/transport/{fix-session-state.ts → session/fix-session-state.ts} +4 -44
- package/src/transport/{fix-session.ts → session/fix-session.ts} +10 -7
- package/src/transport/{make-fixl-session.ts → session/make-fix-session.ts} +1 -1
- package/src/transport/session/session-description.ts +18 -0
- package/src/transport/{fix-msg-factory.ts → session/session-msg-factory.ts} +2 -2
- package/src/transport/session/session-state.ts +25 -0
- package/src/transport/tcp/index.ts +3 -2
- package/src/transport/tcp/recovering-tcp-initiator.ts +24 -13
- package/src/transport/tcp/tcp-acceptor-listener.ts +45 -0
- package/src/transport/tcp/tcp-acceptor.ts +11 -10
- package/src/transport/tcp/tcp-initiator-connector.ts +71 -0
- package/src/transport/tcp/tcp-initiator.ts +10 -6
- package/src/transport/tcp/tcp-transport-description.ts +7 -0
- package/src/transport/tcp/tls-options-factory.ts +55 -0
- package/src/transport/tcp/tls-options.ts +9 -51
- package/src/transport/tick-action.ts +8 -0
- package/src/util/definition-factory.ts +47 -0
- package/src/util/dictionary-path.ts +4 -0
- package/src/util/index.ts +1 -1
- package/src/util/json-helper.ts +14 -4
- package/src/util/message-generator.ts +6 -3
- package/src/util/replay.ts +26 -21
- package/tsconfig.json +2 -0
- package/dist/buffer/ascii-chars.js.map +0 -1
- package/dist/buffer/segment-description.js.map +0 -1
- package/dist/buffer/segment-summary.js.map +0 -1
- package/dist/buffer/tag-pos.js.map +0 -1
- package/dist/buffer/tags.js.map +0 -1
- 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/sample/tcp/recovering-skeleton/respawn-2.d.ts +0 -2
- package/dist/sample/tcp/recovering-skeleton/respawn-2.js +0 -3
- package/dist/sample/tcp/recovering-skeleton/respawn-2.js.map +0 -1
- package/dist/store/fix-msg-ascii-store-recovery.d.ts +0 -12
- package/dist/store/fix-msg-ascii-store-recovery.js +0 -60
- package/dist/store/fix-msg-ascii-store-recovery.js.map +0 -1
- package/dist/store/fix-msg-ascii-store-replay.d.ts +0 -13
- package/dist/store/fix-msg-ascii-store-replay.js +0 -60
- package/dist/store/fix-msg-ascii-store-replay.js.map +0 -1
- package/dist/store/fix-replay-record.d.ts +0 -12
- package/dist/store/fix-replay-record.js +0 -12
- package/dist/store/fix-replay-record.js.map +0 -1
- package/dist/store/fix-resend-record.d.ts +0 -12
- package/dist/store/fix-resend-record.js +0 -12
- package/dist/store/fix-resend-record.js.map +0 -1
- package/dist/store/replay-record.d.ts +0 -6
- package/dist/store/replay-record.js.map +0 -1
- package/dist/store/store-replay-record.d.ts +0 -12
- package/dist/store/store-replay-record.js +0 -12
- package/dist/store/store-replay-record.js.map +0 -1
- package/dist/tcp/tls-options.d.ts +0 -5
- package/dist/tcp/tls-options.js +0 -45
- package/dist/tcp/tls-options.js.map +0 -1
- package/dist/test/ascii-encode.test.d.ts +0 -1
- package/dist/test/ascii-encode.test.js +0 -416
- package/dist/test/ascii-encode.test.js.map +0 -1
- package/dist/test/ascii-encoder.test.d.ts +0 -1
- 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.map +0 -1
- package/dist/test/ascii-segment.test.d.ts +0 -1
- package/dist/test/ascii-segment.test.js.map +0 -1
- package/dist/test/ascii-store-recovery.test.d.ts +0 -1
- package/dist/test/ascii-store-recovery.test.js +0 -50
- package/dist/test/ascii-store-recovery.test.js.map +0 -1
- package/dist/test/ascii-store-replay.test.d.ts +0 -1
- 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.map +0 -1
- package/dist/test/execution-report.test.d.ts +0 -1
- 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.map +0 -1
- package/dist/test/fix-repo-dict.test.d.ts +0 -1
- 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.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.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.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.map +0 -1
- package/dist/test/includes.test.d.ts +0 -1
- package/dist/test/includes.test.js.map +0 -1
- package/dist/test/logon.test.d.ts +0 -1
- 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.map +0 -1
- package/dist/test/qf-full-msg.test.d.ts +0 -1
- 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.map +0 -1
- package/dist/test/repo-full-fixml-msg.test.d.ts +0 -1
- 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.map +0 -1
- package/dist/test/session.test.d.ts +0 -1
- 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.map +0 -1
- 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.map +0 -1
- 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.js.map +0 -1
- package/dist/transport/fix-session-state.d.ts +0 -70
- package/dist/transport/fix-session-state.js.map +0 -1
- 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-fixl-session.js.map +0 -1
- 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.map +0 -1
- package/dist/transport/session-msg-factory.d.ts +0 -28
- package/dist/transport/session-msg-factory.js +0 -153
- package/dist/transport/session-msg-factory.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/transport/tcp/recovering-initiator.d.ts +0 -17
- package/dist/transport/tcp/recovering-initiator.js +0 -30
- package/dist/transport/tcp/recovering-initiator.js.map +0 -1
- package/dist/transport/tcp/recovering_initiator.d.ts +0 -12
- package/dist/transport/tcp/recovering_initiator.js +0 -25
- package/dist/transport/tcp/recovering_initiator.js.map +0 -1
- package/dist/transport/tcp/resilient-initiator.d.ts +0 -12
- package/dist/transport/tcp/resilient-initiator.js +0 -41
- package/dist/transport/tcp/resilient-initiator.js.map +0 -1
- package/dist/types/FIX4.4/quickfix/set/header.d.ts +0 -31
- package/dist/types/FIX4.4/quickfix/set/header.js.map +0 -1
- package/dist/types/FIX4.4/quickfix/set/trailer.d.ts +0 -6
- package/dist/types/FIX4.4/quickfix/set/trailer.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/src/dictionary/fields-dispatch.ts +0 -45
- package/src/sample/launcher.ts +0 -56
- package/src/transport/fixml/acceptor.ts +0 -29
- package/src/transport/make-config.ts +0 -19
- package/src/transport/msg-transport.ts +0 -67
- package/src/transport/session-description.ts +0 -70
- package/src/transport/tcp/acceptor.ts +0 -31
- package/src/transport/tcp/initiator.ts +0 -59
- package/src/util/dictionary-definitions.ts +0 -41
package/dist/dict-parser.js
CHANGED
|
@@ -12,27 +12,30 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
12
12
|
const path = require("path");
|
|
13
13
|
const util_1 = require("./util");
|
|
14
14
|
const buffer_1 = require("./buffer");
|
|
15
|
+
const ascii_1 = require("./buffer/ascii");
|
|
16
|
+
const fixml_1 = require("./buffer/fixml");
|
|
15
17
|
const transport_1 = require("./transport");
|
|
16
|
-
const dictionary_1 = require("./dictionary");
|
|
17
18
|
const types_1 = require("./types");
|
|
18
19
|
const config_1 = require("./config");
|
|
19
20
|
const FIXML50SP2_1 = require("./types/FIXML50SP2");
|
|
20
21
|
const rp = require("request-promise-native");
|
|
22
|
+
const compiler_1 = require("./dictionary/compiler");
|
|
23
|
+
const ascii_msg_transmitter_1 = require("./transport/ascii/ascii-msg-transmitter");
|
|
21
24
|
function testEncodeDecode() {
|
|
22
25
|
return __awaiter(this, void 0, void 0, function* () {
|
|
23
26
|
const msgType = 'W';
|
|
24
27
|
const root = path.join(__dirname, '../');
|
|
25
28
|
const sessionDescription = require('../data/session/test-initiator.json');
|
|
26
|
-
const definitions = yield util_1.getDefinitions(path.join(root, sessionDescription.application.dictionary));
|
|
29
|
+
const definitions = yield new util_1.DefinitionFactory().getDefinitions(path.join(root, sessionDescription.application.dictionary));
|
|
27
30
|
const jh = new util_1.JsonHelper(definitions);
|
|
28
31
|
const msg = jh.fromJson(path.join(root, 'data/examples/FIXML/cme/tc/Initial Single Side Submission/fix.xml'), msgType);
|
|
29
|
-
const config = new config_1.JsFixConfig(null, definitions, sessionDescription,
|
|
30
|
-
const session = new
|
|
32
|
+
const config = new config_1.JsFixConfig(null, definitions, sessionDescription, ascii_1.AsciiChars.Pipe);
|
|
33
|
+
const session = new ascii_msg_transmitter_1.AsciiMsgTransmitter(config);
|
|
31
34
|
const payload = new transport_1.MsgPayload(msgType, msg);
|
|
32
35
|
const encoderStream = session.encodeStream;
|
|
33
36
|
encoderStream.write(payload);
|
|
34
37
|
session.encodeMessage(msgType, msg);
|
|
35
|
-
const parser = new
|
|
38
|
+
const parser = new ascii_1.AsciiParser(config, encoderStream, new buffer_1.ElasticBuffer(160 * 1024));
|
|
36
39
|
const fix = session.buffer.toString();
|
|
37
40
|
console.log(fix);
|
|
38
41
|
return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {
|
|
@@ -49,20 +52,20 @@ function testGenerator() {
|
|
|
49
52
|
return __awaiter(this, void 0, void 0, function* () {
|
|
50
53
|
const root = path.join(__dirname, '../');
|
|
51
54
|
const sessionDescription = require('../data/session/test-initiator.json');
|
|
52
|
-
const definitions = yield util_1.getDefinitions('C:/Users/Stephen/dev/ts/jsfix/data/fix_repo/FIX.4.4/Base');
|
|
53
|
-
const lipsum = yield util_1.getWords(path.join(root, 'data/examples/lipsum.txt'));
|
|
55
|
+
const definitions = yield new util_1.DefinitionFactory().getDefinitions('C:/Users/Stephen/dev/ts/jsfix/data/fix_repo/FIX.4.4/Base');
|
|
56
|
+
const lipsum = yield (0, util_1.getWords)(path.join(root, 'data/examples/lipsum.txt'));
|
|
54
57
|
const generator = new util_1.MessageGenerator(lipsum, definitions);
|
|
55
58
|
const msgType = types_1.MsgType.NewOrderSingle;
|
|
56
59
|
const example = generator.generate(msgType);
|
|
57
60
|
console.log(JSON.stringify(example, null, 4));
|
|
58
|
-
const config = new config_1.JsFixConfig(null, definitions, sessionDescription,
|
|
59
|
-
const session = new
|
|
61
|
+
const config = new config_1.JsFixConfig(null, definitions, sessionDescription, ascii_1.AsciiChars.Pipe);
|
|
62
|
+
const session = new ascii_msg_transmitter_1.AsciiMsgTransmitter(config);
|
|
60
63
|
session.encodeMessage(msgType, example);
|
|
61
64
|
const fix = session.buffer.toString();
|
|
62
65
|
const encoderStream = session.encodeStream;
|
|
63
66
|
const payload = new transport_1.MsgPayload(msgType, example);
|
|
64
67
|
encoderStream.write(payload);
|
|
65
|
-
const parser = new
|
|
68
|
+
const parser = new ascii_1.AsciiParser(config, encoderStream, new buffer_1.ElasticBuffer(160 * 1024));
|
|
66
69
|
parser.on('msg', (mt, view) => {
|
|
67
70
|
console.log(view.toString());
|
|
68
71
|
});
|
|
@@ -72,7 +75,7 @@ function testGenerator() {
|
|
|
72
75
|
function repository() {
|
|
73
76
|
return __awaiter(this, void 0, void 0, function* () {
|
|
74
77
|
const root = path.join(__dirname, '../');
|
|
75
|
-
const definitions = yield util_1.getDefinitions('repofixml');
|
|
78
|
+
const definitions = yield new util_1.DefinitionFactory().getDefinitions('repofixml');
|
|
76
79
|
const file = path.join(root, 'data/examples/FIXML/cme/tc/Delivery Fixed Commodity Swap/');
|
|
77
80
|
const so = definitions.message.get('ExecutionReport');
|
|
78
81
|
const t855 = definitions.simple.get('SecondaryTrdType');
|
|
@@ -80,20 +83,20 @@ function repository() {
|
|
|
80
83
|
Text: `no response`,
|
|
81
84
|
BusinessRejectReason: FIXML50SP2_1.BusinessRejectReason.ApplicationNotAvailable
|
|
82
85
|
};
|
|
83
|
-
const fe = new
|
|
86
|
+
const fe = new fixml_1.FixmlEncoder(new buffer_1.ElasticBuffer(), definitions);
|
|
84
87
|
fe.encode(reject, 'BusinessMessageReject');
|
|
85
88
|
const fixml = fe.buffer.toString();
|
|
86
89
|
const jh = new util_1.JsonHelper(definitions);
|
|
87
90
|
const fs = require('fs');
|
|
88
91
|
let readStream = fs.createReadStream(`${file}/fix.xml`);
|
|
89
92
|
const sessionDescription = require('../data/session/test-initiator.json');
|
|
90
|
-
const config = new config_1.JsFixConfig(null, definitions, sessionDescription,
|
|
91
|
-
const xmlParser = new
|
|
93
|
+
const config = new config_1.JsFixConfig(null, definitions, sessionDescription, ascii_1.AsciiChars.Pipe);
|
|
94
|
+
const xmlParser = new fixml_1.FiXmlParser(config, readStream);
|
|
92
95
|
xmlParser.on('batch', (msgType, v) => {
|
|
93
96
|
console.log(`received message ${msgType}`);
|
|
94
97
|
const o = v.toObject();
|
|
95
98
|
console.log(JSON.stringify(o, null, 4));
|
|
96
|
-
const fe = new
|
|
99
|
+
const fe = new fixml_1.FixmlEncoder(new buffer_1.ElasticBuffer(), definitions);
|
|
97
100
|
fe.encode(o, msgType);
|
|
98
101
|
const fixml = fe.buffer.toString();
|
|
99
102
|
console.log(fixml);
|
|
@@ -104,7 +107,7 @@ function repository() {
|
|
|
104
107
|
const o = v.toObject();
|
|
105
108
|
console.log(JSON.stringify(o, null, 4));
|
|
106
109
|
console.log(v.toString());
|
|
107
|
-
const fe = new
|
|
110
|
+
const fe = new fixml_1.FixmlEncoder(new buffer_1.ElasticBuffer(), definitions);
|
|
108
111
|
fe.encode(o, msgType);
|
|
109
112
|
const fixml = fe.buffer.toString();
|
|
110
113
|
console.log(fixml);
|
|
@@ -143,12 +146,12 @@ function streamExample() {
|
|
|
143
146
|
}
|
|
144
147
|
function compileDefinitions(definitionPath, outputPath) {
|
|
145
148
|
return __awaiter(this, void 0, void 0, function* () {
|
|
146
|
-
const definitions = yield util_1.getDefinitions(definitionPath);
|
|
149
|
+
const definitions = yield new util_1.DefinitionFactory().getDefinitions(definitionPath);
|
|
147
150
|
const compilerSettings = require('../data/compiler.json');
|
|
148
151
|
compilerSettings.output = outputPath;
|
|
149
|
-
const msgCompiler = new
|
|
152
|
+
const msgCompiler = new compiler_1.MsgCompiler(definitions, compilerSettings);
|
|
150
153
|
yield msgCompiler.generate();
|
|
151
|
-
const enumCompiler = new
|
|
154
|
+
const enumCompiler = new compiler_1.EnumCompiler(definitions, compilerSettings);
|
|
152
155
|
const writeFile = path.join(compilerSettings.output, './enum/all-enum.ts');
|
|
153
156
|
yield enumCompiler.generate(writeFile);
|
|
154
157
|
const writeFileTypes = path.join(compilerSettings.output, './enum/msg-type.ts');
|
|
@@ -167,12 +170,14 @@ function generateMessage() {
|
|
|
167
170
|
}
|
|
168
171
|
function decode() {
|
|
169
172
|
return __awaiter(this, void 0, void 0, function* () {
|
|
170
|
-
const definitions = yield util_1.getDefinitions('data/fix_repo/FIX.4.4/Base');
|
|
173
|
+
const definitions = yield new util_1.DefinitionFactory().getDefinitions('data/fix_repo/FIX.4.4/Base');
|
|
171
174
|
const txt = '8=FIX4.4|9=0001022|35=AE|49=init-comp|56=accept-comp|34=1|57=fix|52=20180909-14:22:09.841|571=Lorem|487=23513|856=1|568=ipsum|828=6|855=23619|830=dolor|150=F|748=17140|912=N|325=N|263=1|881=sit|818=amet,|820=consectetur|880=adipiscing|17=elit.|39=3|527=Nunc|570=N|423=8|55=odio|65=orci,|48=blandit|22=3|460=4|461=vel|167=MPT|762=semper|200=sed,|541=20180909|201=0|224=20180909|225=20180909|227=-8796.1|228=-23.537|255=bibendum|543=cursus|470=lectus.|471=Aenean|472=vel|240=20180909|202=891.7|947=-2928.1|231=5.7237|223=-1894.1|106=diam|348=9|349=6YYz0zu5s|350=8|351=TuH3tTNd|691=magna.|667=Aenean|875=99|876=et|873=20180909|874=20180909|913=viverra|914=leo,|915=20180909|916=20180909|919=0|898=0.5594|38=96682|152=19226|516=9.1251|854=0|235=PREVCLOSE|236=-2833.5|701=20180909|696=20180909|697=-6.095|698=26303|823=non|32=9253|31=2065.4|194=-73.233|30=iaculis|75=20180909|715=20180909|6=5.9279|218=0.0001953|221=neque.|222=Nullam|663=16216|699=arcu|761=lectus,|824=dignissim|63=3|64=20180909|573=0|574=M3|797=Y|852=Y|853=3|10=16|';
|
|
172
175
|
const startsAt = new Date();
|
|
176
|
+
const sessionDescription = require('../data/session/test-initiator.json');
|
|
177
|
+
const config = new config_1.JsFixConfig(null, definitions, sessionDescription, ascii_1.AsciiChars.Pipe);
|
|
173
178
|
let i = 0;
|
|
174
179
|
const repeats = 1;
|
|
175
|
-
const asciiParser = new
|
|
180
|
+
const asciiParser = new ascii_1.AsciiParser(config, new transport_1.StringDuplex(txt.repeat(repeats)).readable, new buffer_1.ElasticBuffer(160 * 1024));
|
|
176
181
|
asciiParser.on('msg', (msgType, v) => {
|
|
177
182
|
++i;
|
|
178
183
|
console.log(v.toJson());
|
|
@@ -186,9 +191,9 @@ function decode() {
|
|
|
186
191
|
function http() {
|
|
187
192
|
return __awaiter(this, void 0, void 0, function* () {
|
|
188
193
|
const sessionDescription = require('../data/session/test-http-acceptor.json');
|
|
189
|
-
const definitions = yield util_1.getDefinitions(sessionDescription.application.dictionary);
|
|
194
|
+
const definitions = yield new util_1.DefinitionFactory().getDefinitions(sessionDescription.application.dictionary);
|
|
190
195
|
const logFactory = new config_1.JsFixWinstonLogFactory(config_1.WinstonLogger.consoleOptions('info'));
|
|
191
|
-
const config = new config_1.JsFixConfig(null, definitions, sessionDescription,
|
|
196
|
+
const config = new config_1.JsFixConfig(null, definitions, sessionDescription, ascii_1.AsciiChars.Pipe, logFactory);
|
|
192
197
|
const xml = '<?xml version="1.0" encoding="UTF-8"?>\n' +
|
|
193
198
|
'<FIXML v="5.0 SP2" s="20090815" xv="109" cv="CME.0001">\n' +
|
|
194
199
|
' <UserReq UserReqID="123456" UserReqTyp="1" Username="user123" Password="User!Pass5">\n' +
|
package/dist/dict-parser.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dict-parser.js","sourceRoot":"","sources":["../src/dict-parser.ts"],"names":[],"mappings":"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","sourcesContent":["import * as path from 'path'\r\nimport { ILooseObject } from './collections/collection'\r\nimport { MessageGenerator, JsonHelper, getDefinitions, getWords } from './util'\r\nimport { AsciiChars, MsgView, MsgParser, ElasticBuffer, AsciiParser, AsciiView, FiXmlParser, FixmlEncoder } from './buffer'\r\nimport { ReadStream } from 'fs'\r\nimport { ISessionDescription, AsciiMsgTransmitter, StringDuplex, MsgPayload } from './transport'\r\nimport { EnumCompiler, MsgCompiler, ICompilerSettings, FixDefinitions } from './dictionary'\r\nimport { MsgType } from './types'\r\nimport { JsFixWinstonLogFactory, JsFixConfig, WinstonLogger } from './config'\r\nimport { BusinessRejectReason, IBusinessMessageReject } from './types/FIXML50SP2'\r\nimport * as rp from 'request-promise-native'\r\n\r\nasync function testEncodeDecode (): Promise<any> {\r\n const msgType: string = 'W'\r\n const root: string = path.join(__dirname, '../')\r\n const sessionDescription: ISessionDescription = require('../data/session/test-initiator.json')\r\n const definitions = await getDefinitions(path.join(root, sessionDescription.application.dictionary))\r\n const jh: JsonHelper = new JsonHelper(definitions)\r\n const msg: ILooseObject = jh.fromJson(path.join(root, 'data/examples/FIXML/cme/tc/Initial Single Side Submission/fix.xml'), msgType)\r\n const config = new JsFixConfig(null, definitions, sessionDescription, AsciiChars.Pipe)\r\n const session: AsciiMsgTransmitter = new AsciiMsgTransmitter(config)\r\n const payload: MsgPayload = new MsgPayload(msgType, msg)\r\n const encoderStream = session.encodeStream\r\n encoderStream.write(payload)\r\n session.encodeMessage(msgType, msg)\r\n const parser: MsgParser = new AsciiParser(definitions, encoderStream, AsciiChars.Pipe)\r\n const fix: string = session.buffer.toString()\r\n console.log(fix)\r\n return new Promise(async (resolve, reject) => {\r\n parser.on('msg', (msgType: string, view: AsciiView) => {\r\n resolve(view.toObject())\r\n })\r\n parser.on('error', (e: Error) => {\r\n reject(e)\r\n })\r\n })\r\n}\r\n\r\nasync function testGenerator (): Promise<any> {\r\n const root: string = path.join(__dirname, '../')\r\n const sessionDescription: ISessionDescription = require('../data/session/test-initiator.json')\r\n const definitions = await getDefinitions('C:/Users/Stephen/dev/ts/jsfix/data/fix_repo/FIX.4.4/Base')\r\n const lipsum: string[] = await getWords(path.join(root, 'data/examples/lipsum.txt'))\r\n const generator: MessageGenerator = new MessageGenerator(lipsum, definitions)\r\n const msgType: string = MsgType.NewOrderSingle\r\n const example: ILooseObject = generator.generate(msgType)\r\n console.log(JSON.stringify(example, null, 4))\r\n const config = new JsFixConfig(null, definitions, sessionDescription, AsciiChars.Pipe)\r\n const session: AsciiMsgTransmitter = new AsciiMsgTransmitter(config)\r\n session.encodeMessage(msgType, example)\r\n const fix: string = session.buffer.toString()\r\n const encoderStream = session.encodeStream\r\n const payload: MsgPayload = new MsgPayload(msgType, example)\r\n encoderStream.write(payload)\r\n const parser: MsgParser = new AsciiParser(definitions, encoderStream, AsciiChars.Pipe)\r\n parser.on('msg', (mt: string, view: MsgView) => {\r\n console.log(view.toString())\r\n })\r\n console.log(fix)\r\n}\r\n\r\n/*\r\nfix.xml\r\nClearing System Confirms Allocation to Executing Firm.xml\r\nClearing System Confirms Allocation to CME Executing Firm_Cross-exchange.xml\r\nClearing System Confirms Completed Reversal to Executing Firm.xml\r\nClearing System Notifies Allocation to the Claiming Firm.xml\r\nfix.xml\r\nClearing System Notifies Claiming Firm of Completed Reversal.xml\r\nClearing System Notifies Executing Firm of Alleged Reversal.xml\r\nExecuting Firm Un-completes Group-Average_Price.xml\r\nExecuting Firm Marks a Trade for Give-up.xml\r\n */\r\nasync function repository (): Promise<any> {\r\n const root: string = path.join(__dirname, '../')\r\n const definitions: FixDefinitions = await getDefinitions('repofixml')\r\n // cme/alloc/Clearing System Notifies Allocation to the Claiming Firm - Cross-Exchange\r\n // const file: string = path.join(root,'data/examples/FIXML/cme/alloc/Claiming Firm Requests Sub-allocation with Allocation Instructions/')\r\n // const file: string = path.join(root,'data/examples/FIXML/cme/md/settle')\r\n // const file: string = path.join(root, 'data/examples/FIXML/cme/alloc/Clearing System Notifies Allocation to the Claiming Firm - Cross-Exchange/')\r\n const file: string = path.join(root,'data/examples/FIXML/cme/tc/Delivery Fixed Commodity Swap/')\r\n // const file: string = path.join(root, 'data/examples/FIXML/cme/tc/Trading Firm Continued Subscription')\r\n // const file: string = path.join(root,'data/examples/FIXML/cme/md/futures')\r\n // const file: string = path.join(root, 'data/examples/FIXML/cme/tc/Delivery Fixed Commodity Swap')\r\n // const file: string = path.join(root, 'data/examples/FIXML/cme/tc/Initial Single Side Submission/')\r\n // const file: string = path.join(root, 'data/examples/FIXML/cme/tc/Accepted Unmatched')\r\n // const file: string = path.join(root, 'data/examples/FIXML/cme/tc/Trading Firm Continued Subscription/')\r\n // const file: string = path.join(root, 'data/examples/FIXML/om/nso/')\r\n // const file: string = path.join(root, 'data/examples/FIXML/om/er/')\r\n const so = definitions.message.get('ExecutionReport')\r\n const t855 = definitions.simple.get('SecondaryTrdType')\r\n\r\n const reject = {\r\n Text: `no response`,\r\n BusinessRejectReason: BusinessRejectReason.ApplicationNotAvailable\r\n } as IBusinessMessageReject\r\n const fe = new FixmlEncoder(new ElasticBuffer(), definitions)\r\n fe.encode(reject, 'BusinessMessageReject')\r\n const fixml: string = fe.buffer.toString()\r\n // console.log(fixml)\r\n const jh: JsonHelper = new JsonHelper(definitions)\r\n const fs: any = require('fs')\r\n let readStream: ReadStream = fs.createReadStream(`${file}/fix.xml`)\r\n const sessionDescription: ISessionDescription = require('../data/session/test-initiator.json')\r\n const config = new JsFixConfig(null, definitions, sessionDescription, AsciiChars.Pipe)\r\n const xmlParser: MsgParser = new FiXmlParser(config, readStream)\r\n xmlParser.on('batch', (msgType: string, v: MsgView) => {\r\n console.log(`received message ${msgType}`)\r\n const o: ILooseObject = v.toObject()\r\n console.log(JSON.stringify(o, null, 4))\r\n const fe = new FixmlEncoder(new ElasticBuffer(), definitions)\r\n fe.encode(o, msgType)\r\n const fixml: string = fe.buffer.toString()\r\n console.log(fixml)\r\n console.log(v.toString())\r\n })\r\n xmlParser.on('msg', (msgType: string, v: MsgView) => {\r\n console.log(`received message ${msgType}`)\r\n const o: ILooseObject = v.toObject()\r\n console.log(JSON.stringify(o, null, 4))\r\n console.log(v.toString())\r\n const fe = new FixmlEncoder(new ElasticBuffer(), definitions)\r\n fe.encode(o, msgType)\r\n const fixml: string = fe.buffer.toString()\r\n console.log(fixml)\r\n })\r\n}\r\n\r\nasync function runTest (): Promise<any> {\r\n return new Promise<any>(async (accept, reject) => {\r\n try {\r\n const res: any = await testGenerator()\r\n accept(res)\r\n } catch (e) {\r\n console.log(e.message)\r\n reject(e)\r\n }\r\n })\r\n}\r\n\r\nfunction streamExample () {\r\n const fs: any = require('fs')\r\n const root: string = path.join(__dirname, '../')\r\n const file: string = path.join(root,'data/examples/FIXML/cme/Claiming Firm Requests Sub-allocation with Allocation Instructions/')\r\n let readStream: ReadStream = fs.createReadStream(`${file}/fix.xml`)\r\n const Writable = require('stream').Writable\r\n const receiver = new Writable({\r\n write: (data: Buffer, _: any, done: Function) => {\r\n console.log('receive ' + data)\r\n done()\r\n }\r\n })\r\n readStream.pipe(receiver).on('finish', () => {\r\n console.log('done')\r\n })\r\n}\r\n\r\nasync function compileDefinitions (definitionPath: string, outputPath: string) {\r\n const definitions = await getDefinitions(definitionPath)\r\n const compilerSettings: ICompilerSettings = require('../data/compiler.json')\r\n compilerSettings.output = outputPath\r\n const msgCompiler: MsgCompiler = new MsgCompiler(definitions, compilerSettings)\r\n await msgCompiler.generate()\r\n const enumCompiler: EnumCompiler = new EnumCompiler(definitions, compilerSettings)\r\n const writeFile = path.join(compilerSettings.output, './enum/all-enum.ts')\r\n await enumCompiler.generate(writeFile)\r\n\r\n const writeFileTypes = path.join(compilerSettings.output, './enum/msg-type.ts')\r\n await enumCompiler.generate(writeFile)\r\n}\r\n\r\nasync function compiler () {\r\n // 'C:/Users/Stephen/dev/js/jsfix/data/fix_repo/fixmlschema_FIX.5.0SP2_EP228'\r\n // await compileDefinitions('data/fix_repo/FIX.4.4/Base', 'C:/Users/Stephen/dev/ts/jsfix/src/types/FIX4.4/repo')\r\n // await compileDefinitions('data/FIX44.xml', 'C:/Users/Stephen/dev/ts/jsfix/src/types/FIX4.4/quickfix')\r\n await compileDefinitions('data/fix_repo/fixmlschema_FIX.5.0SP2_EP228', 'C:/Users/Stephen/dev/ts/jsfix/src/types/FIXML50SP2')\r\n}\r\n\r\nasync function generateMessage () {\r\n await testGenerator()\r\n}\r\n\r\nasync function decode (): Promise<any> {\r\n const definitions: FixDefinitions = await getDefinitions('data/fix_repo/FIX.4.4/Base')\r\n const txt = '8=FIX4.4|9=0001022|35=AE|49=init-comp|56=accept-comp|34=1|57=fix|52=20180909-14:22:09.841|571=Lorem|487=23513|856=1|568=ipsum|828=6|855=23619|830=dolor|150=F|748=17140|912=N|325=N|263=1|881=sit|818=amet,|820=consectetur|880=adipiscing|17=elit.|39=3|527=Nunc|570=N|423=8|55=odio|65=orci,|48=blandit|22=3|460=4|461=vel|167=MPT|762=semper|200=sed,|541=20180909|201=0|224=20180909|225=20180909|227=-8796.1|228=-23.537|255=bibendum|543=cursus|470=lectus.|471=Aenean|472=vel|240=20180909|202=891.7|947=-2928.1|231=5.7237|223=-1894.1|106=diam|348=9|349=6YYz0zu5s|350=8|351=TuH3tTNd|691=magna.|667=Aenean|875=99|876=et|873=20180909|874=20180909|913=viverra|914=leo,|915=20180909|916=20180909|919=0|898=0.5594|38=96682|152=19226|516=9.1251|854=0|235=PREVCLOSE|236=-2833.5|701=20180909|696=20180909|697=-6.095|698=26303|823=non|32=9253|31=2065.4|194=-73.233|30=iaculis|75=20180909|715=20180909|6=5.9279|218=0.0001953|221=neque.|222=Nullam|663=16216|699=arcu|761=lectus,|824=dignissim|63=3|64=20180909|573=0|574=M3|797=Y|852=Y|853=3|10=16|'\r\n const startsAt: Date = new Date()\r\n let i = 0\r\n const repeats = 1\r\n const asciiParser: MsgParser = new AsciiParser(definitions, new StringDuplex(txt.repeat(repeats)).readable, AsciiChars.Pipe)\r\n asciiParser.on('msg', (msgType: string, v: MsgView) => {\r\n ++i\r\n console.log(v.toJson())\r\n if (i === repeats) {\r\n const elapsed: number = new Date().getTime() - startsAt.getTime()\r\n console.log(`elapsed ms ${elapsed} ${(elapsed / repeats) * 1000} micros per msg`)\r\n }\r\n })\r\n}\r\n\r\nasync function http (): Promise<any> {\r\n const sessionDescription: ISessionDescription = require('../data/session/test-http-acceptor.json')\r\n const definitions = await getDefinitions(sessionDescription.application.dictionary)\r\n const logFactory = new JsFixWinstonLogFactory(WinstonLogger.consoleOptions('info'))\r\n const config = new JsFixConfig(null, definitions, sessionDescription, AsciiChars.Pipe, logFactory)\r\n // const acceptor = acceptor(config)\r\n const xml = '<?xml version=\"1.0\" encoding=\"UTF-8\"?>\\n' +\r\n '<FIXML v=\"5.0 SP2\" s=\"20090815\" xv=\"109\" cv=\"CME.0001\">\\n' +\r\n ' <UserReq UserReqID=\"123456\" UserReqTyp=\"1\" Username=\"user123\" Password=\"User!Pass5\">\\n' +\r\n ' <Hdr SID=\"BRKR\" SSub=\"user123\" TID=\"CME\" TSub=\"CPAPI\"/>\\n' +\r\n ' </UserReq>\\n' +\r\n '</FIXML>'\r\n // acceptor.listen()\r\n rp({\r\n method: 'POST',\r\n uri: 'http://localhost:2343/session',\r\n body: {\r\n fixml : xml\r\n },\r\n json: true // Automatically stringifies the body to JSON\r\n }).then(function (parsedBody) {\r\n console.log(parsedBody)\r\n // POST succeeded...\r\n })\r\n .catch((err: Error) => {\r\n console.log(err)\r\n // POST failed...\r\n })\r\n}\r\n\r\n// http()\r\n// decode()\r\n// generateMessage()\r\n// compiler()\r\n// stronglyTyped()\r\n// streamExample()\r\n// testEncodeDecode()\r\nrepository()\r\n// testEncodeDecode()\r\n// runTest();\r\n// testSocket()\r\n// testRead();\r\n"]}
|
|
1
|
+
{"version":3,"file":"dict-parser.js","sourceRoot":"","sources":["../src/dict-parser.ts"],"names":[],"mappings":"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","sourcesContent":["import * as path from 'path'\r\nimport { ILooseObject } from './collections/collection'\r\nimport { MessageGenerator, JsonHelper, getWords, DefinitionFactory } from './util'\r\nimport { MsgView, MsgParser, ElasticBuffer } from './buffer'\r\nimport { AsciiChars, AsciiParser, AsciiView } from './buffer/ascii'\r\nimport { FiXmlParser, FixmlEncoder } from './buffer/fixml'\r\nimport { ReadStream } from 'fs'\r\nimport { ISessionDescription, StringDuplex, MsgPayload } from './transport'\r\nimport { FixDefinitions } from './dictionary/definition'\r\nimport { MsgType } from './types'\r\nimport { JsFixWinstonLogFactory, JsFixConfig, WinstonLogger } from './config'\r\nimport { BusinessRejectReason, IBusinessMessageReject } from './types/FIXML50SP2'\r\nimport * as rp from 'request-promise-native'\r\nimport { EnumCompiler, ICompilerSettings, MsgCompiler } from './dictionary/compiler'\r\nimport { AsciiMsgTransmitter } from './transport/ascii/ascii-msg-transmitter'\r\n\r\nasync function testEncodeDecode (): Promise<any> {\r\n const msgType: string = 'W'\r\n const root: string = path.join(__dirname, '../')\r\n const sessionDescription: ISessionDescription = require('../data/session/test-initiator.json')\r\n const definitions = await new DefinitionFactory().getDefinitions(path.join(root, sessionDescription.application.dictionary))\r\n const jh: JsonHelper = new JsonHelper(definitions)\r\n const msg: ILooseObject = jh.fromJson(path.join(root, 'data/examples/FIXML/cme/tc/Initial Single Side Submission/fix.xml'), msgType)\r\n const config = new JsFixConfig(null, definitions, sessionDescription, AsciiChars.Pipe)\r\n const session: AsciiMsgTransmitter = new AsciiMsgTransmitter(config)\r\n const payload: MsgPayload = new MsgPayload(msgType, msg)\r\n const encoderStream = session.encodeStream\r\n encoderStream.write(payload)\r\n session.encodeMessage(msgType, msg)\r\n const parser: MsgParser = new AsciiParser(config, encoderStream, new ElasticBuffer(160 * 1024))\r\n const fix: string = session.buffer.toString()\r\n console.log(fix)\r\n return new Promise(async (resolve, reject) => {\r\n parser.on('msg', (msgType: string, view: AsciiView) => {\r\n resolve(view.toObject())\r\n })\r\n parser.on('error', (e: Error) => {\r\n reject(e)\r\n })\r\n })\r\n}\r\n\r\nasync function testGenerator (): Promise<any> {\r\n const root: string = path.join(__dirname, '../')\r\n const sessionDescription: ISessionDescription = require('../data/session/test-initiator.json')\r\n const definitions = await new DefinitionFactory().getDefinitions('C:/Users/Stephen/dev/ts/jsfix/data/fix_repo/FIX.4.4/Base')\r\n const lipsum: string[] = await getWords(path.join(root, 'data/examples/lipsum.txt'))\r\n const generator: MessageGenerator = new MessageGenerator(lipsum, definitions)\r\n const msgType: string = MsgType.NewOrderSingle\r\n const example: ILooseObject = generator.generate(msgType)\r\n console.log(JSON.stringify(example, null, 4))\r\n const config = new JsFixConfig(null, definitions, sessionDescription, AsciiChars.Pipe)\r\n const session: AsciiMsgTransmitter = new AsciiMsgTransmitter(config)\r\n session.encodeMessage(msgType, example)\r\n const fix: string = session.buffer.toString()\r\n const encoderStream = session.encodeStream\r\n const payload: MsgPayload = new MsgPayload(msgType, example)\r\n encoderStream.write(payload)\r\n const parser: MsgParser = new AsciiParser(config, encoderStream, new ElasticBuffer(160 * 1024))\r\n parser.on('msg', (mt: string, view: MsgView) => {\r\n console.log(view.toString())\r\n })\r\n console.log(fix)\r\n}\r\n\r\n/*\r\nfix.xml\r\nClearing System Confirms Allocation to Executing Firm.xml\r\nClearing System Confirms Allocation to CME Executing Firm_Cross-exchange.xml\r\nClearing System Confirms Completed Reversal to Executing Firm.xml\r\nClearing System Notifies Allocation to the Claiming Firm.xml\r\nfix.xml\r\nClearing System Notifies Claiming Firm of Completed Reversal.xml\r\nClearing System Notifies Executing Firm of Alleged Reversal.xml\r\nExecuting Firm Un-completes Group-Average_Price.xml\r\nExecuting Firm Marks a Trade for Give-up.xml\r\n */\r\nasync function repository (): Promise<any> {\r\n const root: string = path.join(__dirname, '../')\r\n const definitions: FixDefinitions = await new DefinitionFactory().getDefinitions('repofixml')\r\n // cme/alloc/Clearing System Notifies Allocation to the Claiming Firm - Cross-Exchange\r\n // const file: string = path.join(root,'data/examples/FIXML/cme/alloc/Claiming Firm Requests Sub-allocation with Allocation Instructions/')\r\n // const file: string = path.join(root,'data/examples/FIXML/cme/md/settle')\r\n // const file: string = path.join(root, 'data/examples/FIXML/cme/alloc/Clearing System Notifies Allocation to the Claiming Firm - Cross-Exchange/')\r\n const file: string = path.join(root,'data/examples/FIXML/cme/tc/Delivery Fixed Commodity Swap/')\r\n // const file: string = path.join(root, 'data/examples/FIXML/cme/tc/Trading Firm Continued Subscription')\r\n // const file: string = path.join(root,'data/examples/FIXML/cme/md/futures')\r\n // const file: string = path.join(root, 'data/examples/FIXML/cme/tc/Delivery Fixed Commodity Swap')\r\n // const file: string = path.join(root, 'data/examples/FIXML/cme/tc/Initial Single Side Submission/')\r\n // const file: string = path.join(root, 'data/examples/FIXML/cme/tc/Accepted Unmatched')\r\n // const file: string = path.join(root, 'data/examples/FIXML/cme/tc/Trading Firm Continued Subscription/')\r\n // const file: string = path.join(root, 'data/examples/FIXML/om/nso/')\r\n // const file: string = path.join(root, 'data/examples/FIXML/om/er/')\r\n const so = definitions.message.get('ExecutionReport')\r\n const t855 = definitions.simple.get('SecondaryTrdType')\r\n\r\n const reject = {\r\n Text: `no response`,\r\n BusinessRejectReason: BusinessRejectReason.ApplicationNotAvailable\r\n } as IBusinessMessageReject\r\n const fe = new FixmlEncoder(new ElasticBuffer(), definitions)\r\n fe.encode(reject, 'BusinessMessageReject')\r\n const fixml: string = fe.buffer.toString()\r\n // console.log(fixml)\r\n const jh: JsonHelper = new JsonHelper(definitions)\r\n const fs: any = require('fs')\r\n let readStream: ReadStream = fs.createReadStream(`${file}/fix.xml`)\r\n const sessionDescription: ISessionDescription = require('../data/session/test-initiator.json')\r\n const config = new JsFixConfig(null, definitions, sessionDescription, AsciiChars.Pipe)\r\n const xmlParser: MsgParser = new FiXmlParser(config, readStream)\r\n xmlParser.on('batch', (msgType: string, v: MsgView) => {\r\n console.log(`received message ${msgType}`)\r\n const o: ILooseObject = v.toObject()\r\n console.log(JSON.stringify(o, null, 4))\r\n const fe = new FixmlEncoder(new ElasticBuffer(), definitions)\r\n fe.encode(o, msgType)\r\n const fixml: string = fe.buffer.toString()\r\n console.log(fixml)\r\n console.log(v.toString())\r\n })\r\n xmlParser.on('msg', (msgType: string, v: MsgView) => {\r\n console.log(`received message ${msgType}`)\r\n const o: ILooseObject = v.toObject()\r\n console.log(JSON.stringify(o, null, 4))\r\n console.log(v.toString())\r\n const fe = new FixmlEncoder(new ElasticBuffer(), definitions)\r\n fe.encode(o, msgType)\r\n const fixml: string = fe.buffer.toString()\r\n console.log(fixml)\r\n })\r\n}\r\n\r\nasync function runTest (): Promise<any> {\r\n return new Promise<any>(async (accept, reject) => {\r\n try {\r\n const res: any = await testGenerator()\r\n accept(res)\r\n } catch (e) {\r\n console.log(e.message)\r\n reject(e)\r\n }\r\n })\r\n}\r\n\r\nfunction streamExample () {\r\n const fs: any = require('fs')\r\n const root: string = path.join(__dirname, '../')\r\n const file: string = path.join(root,'data/examples/FIXML/cme/Claiming Firm Requests Sub-allocation with Allocation Instructions/')\r\n let readStream: ReadStream = fs.createReadStream(`${file}/fix.xml`)\r\n const Writable = require('stream').Writable\r\n const receiver = new Writable({\r\n write: (data: Buffer, _: any, done: Function) => {\r\n console.log('receive ' + data)\r\n done()\r\n }\r\n })\r\n readStream.pipe(receiver).on('finish', () => {\r\n console.log('done')\r\n })\r\n}\r\n\r\nasync function compileDefinitions (definitionPath: string, outputPath: string) {\r\n const definitions = await new DefinitionFactory().getDefinitions(definitionPath)\r\n const compilerSettings: ICompilerSettings = require('../data/compiler.json')\r\n compilerSettings.output = outputPath\r\n const msgCompiler: MsgCompiler = new MsgCompiler(definitions, compilerSettings)\r\n await msgCompiler.generate()\r\n const enumCompiler: EnumCompiler = new EnumCompiler(definitions, compilerSettings)\r\n const writeFile = path.join(compilerSettings.output, './enum/all-enum.ts')\r\n await enumCompiler.generate(writeFile)\r\n\r\n const writeFileTypes = path.join(compilerSettings.output, './enum/msg-type.ts')\r\n await enumCompiler.generate(writeFile)\r\n}\r\n\r\nasync function compiler () {\r\n // 'C:/Users/Stephen/dev/js/jsfix/data/fix_repo/fixmlschema_FIX.5.0SP2_EP228'\r\n // await compileDefinitions('data/fix_repo/FIX.4.4/Base', 'C:/Users/Stephen/dev/ts/jsfix/src/types/FIX4.4/repo')\r\n // await compileDefinitions('data/FIX44.xml', 'C:/Users/Stephen/dev/ts/jsfix/src/types/FIX4.4/quickfix')\r\n await compileDefinitions('data/fix_repo/fixmlschema_FIX.5.0SP2_EP228', 'C:/Users/Stephen/dev/ts/jsfix/src/types/FIXML50SP2')\r\n}\r\n\r\nasync function generateMessage () {\r\n await testGenerator()\r\n}\r\n\r\nasync function decode (): Promise<any> {\r\n const definitions: FixDefinitions = await new DefinitionFactory().getDefinitions('data/fix_repo/FIX.4.4/Base')\r\n const txt = '8=FIX4.4|9=0001022|35=AE|49=init-comp|56=accept-comp|34=1|57=fix|52=20180909-14:22:09.841|571=Lorem|487=23513|856=1|568=ipsum|828=6|855=23619|830=dolor|150=F|748=17140|912=N|325=N|263=1|881=sit|818=amet,|820=consectetur|880=adipiscing|17=elit.|39=3|527=Nunc|570=N|423=8|55=odio|65=orci,|48=blandit|22=3|460=4|461=vel|167=MPT|762=semper|200=sed,|541=20180909|201=0|224=20180909|225=20180909|227=-8796.1|228=-23.537|255=bibendum|543=cursus|470=lectus.|471=Aenean|472=vel|240=20180909|202=891.7|947=-2928.1|231=5.7237|223=-1894.1|106=diam|348=9|349=6YYz0zu5s|350=8|351=TuH3tTNd|691=magna.|667=Aenean|875=99|876=et|873=20180909|874=20180909|913=viverra|914=leo,|915=20180909|916=20180909|919=0|898=0.5594|38=96682|152=19226|516=9.1251|854=0|235=PREVCLOSE|236=-2833.5|701=20180909|696=20180909|697=-6.095|698=26303|823=non|32=9253|31=2065.4|194=-73.233|30=iaculis|75=20180909|715=20180909|6=5.9279|218=0.0001953|221=neque.|222=Nullam|663=16216|699=arcu|761=lectus,|824=dignissim|63=3|64=20180909|573=0|574=M3|797=Y|852=Y|853=3|10=16|'\r\n const startsAt: Date = new Date()\r\n const sessionDescription: ISessionDescription = require('../data/session/test-initiator.json')\r\n const config = new JsFixConfig(null, definitions, sessionDescription, AsciiChars.Pipe)\r\n let i = 0\r\n const repeats = 1\r\n const asciiParser: MsgParser = new AsciiParser(config, new StringDuplex(txt.repeat(repeats)).readable, new ElasticBuffer(160 * 1024))\r\n asciiParser.on('msg', (msgType: string, v: MsgView) => {\r\n ++i\r\n console.log(v.toJson())\r\n if (i === repeats) {\r\n const elapsed: number = new Date().getTime() - startsAt.getTime()\r\n console.log(`elapsed ms ${elapsed} ${(elapsed / repeats) * 1000} micros per msg`)\r\n }\r\n })\r\n}\r\n\r\nasync function http (): Promise<any> {\r\n const sessionDescription: ISessionDescription = require('../data/session/test-http-acceptor.json')\r\n const definitions = await new DefinitionFactory().getDefinitions(sessionDescription.application.dictionary)\r\n const logFactory = new JsFixWinstonLogFactory(WinstonLogger.consoleOptions('info'))\r\n const config = new JsFixConfig(null, definitions, sessionDescription, AsciiChars.Pipe, logFactory)\r\n // const acceptor = acceptor(config)\r\n const xml = '<?xml version=\"1.0\" encoding=\"UTF-8\"?>\\n' +\r\n '<FIXML v=\"5.0 SP2\" s=\"20090815\" xv=\"109\" cv=\"CME.0001\">\\n' +\r\n ' <UserReq UserReqID=\"123456\" UserReqTyp=\"1\" Username=\"user123\" Password=\"User!Pass5\">\\n' +\r\n ' <Hdr SID=\"BRKR\" SSub=\"user123\" TID=\"CME\" TSub=\"CPAPI\"/>\\n' +\r\n ' </UserReq>\\n' +\r\n '</FIXML>'\r\n // acceptor.listen()\r\n rp({\r\n method: 'POST',\r\n uri: 'http://localhost:2343/session',\r\n body: {\r\n fixml : xml\r\n },\r\n json: true // Automatically stringifies the body to JSON\r\n }).then(function (parsedBody) {\r\n console.log(parsedBody)\r\n // POST succeeded...\r\n })\r\n .catch((err: Error) => {\r\n console.log(err)\r\n // POST failed...\r\n })\r\n}\r\n\r\n// http()\r\n// decode()\r\n// generateMessage()\r\n// compiler()\r\n// stronglyTyped()\r\n// streamExample()\r\n// testEncodeDecode()\r\nrepository()\r\n// testEncodeDecode()\r\n// runTest();\r\n// testSocket()\r\n// testRead();\r\n"]}
|
|
@@ -2,16 +2,16 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.CompilerType = void 0;
|
|
4
4
|
const contained_1 = require("../contained");
|
|
5
|
-
const fix_versions_1 = require("../fix-versions");
|
|
6
|
-
const dict_primitive_1 = require("../dict-primitive");
|
|
7
5
|
const _ = require("lodash");
|
|
6
|
+
const contained_set_type_1 = require("../contained-set-type");
|
|
7
|
+
const fix_definition_source_1 = require("../fix-definition-source");
|
|
8
8
|
class CompilerType {
|
|
9
9
|
constructor(definitions, set, qualifiedName) {
|
|
10
10
|
this.definitions = definitions;
|
|
11
11
|
this.set = set;
|
|
12
12
|
this.qualifiedName = qualifiedName;
|
|
13
13
|
const snake = _.snakeCase(this.qualifiedName);
|
|
14
|
-
if (set.type ===
|
|
14
|
+
if (set.type === contained_set_type_1.ContainedSetType.Msg) {
|
|
15
15
|
this.snaked = `./${snake}`;
|
|
16
16
|
}
|
|
17
17
|
else {
|
|
@@ -23,10 +23,10 @@ class CompilerType {
|
|
|
23
23
|
case contained_1.ContainedFieldType.Group: {
|
|
24
24
|
const gf = field;
|
|
25
25
|
switch (this.definitions.source) {
|
|
26
|
-
case
|
|
26
|
+
case fix_definition_source_1.FixDefinitionSource.QuickFix: {
|
|
27
27
|
return this.qualifiedName + field.name;
|
|
28
28
|
}
|
|
29
|
-
case
|
|
29
|
+
case fix_definition_source_1.FixDefinitionSource.FixmlRepo: {
|
|
30
30
|
return gf.definition.name;
|
|
31
31
|
}
|
|
32
32
|
default: {
|
|
@@ -37,7 +37,7 @@ class CompilerType {
|
|
|
37
37
|
case contained_1.ContainedFieldType.Component: {
|
|
38
38
|
const cf = field;
|
|
39
39
|
switch (this.definitions.source) {
|
|
40
|
-
case
|
|
40
|
+
case fix_definition_source_1.FixDefinitionSource.FixmlRepo: {
|
|
41
41
|
return cf.definition.name;
|
|
42
42
|
}
|
|
43
43
|
default: {
|
|
@@ -54,7 +54,7 @@ class CompilerType {
|
|
|
54
54
|
case contained_1.ContainedFieldType.Group: {
|
|
55
55
|
const gf = field;
|
|
56
56
|
switch (this.definitions.source) {
|
|
57
|
-
case
|
|
57
|
+
case fix_definition_source_1.FixDefinitionSource.FixmlRepo: {
|
|
58
58
|
return gf.definition.name;
|
|
59
59
|
}
|
|
60
60
|
default: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compiler-type.js","sourceRoot":"","sources":["../../../src/dictionary/compiler/compiler-type.ts"],"names":[],"mappings":";;;AAAA,4CAAkI;
|
|
1
|
+
{"version":3,"file":"compiler-type.js","sourceRoot":"","sources":["../../../src/dictionary/compiler/compiler-type.ts"],"names":[],"mappings":";;;AAAA,4CAAkI;AAGlI,4BAA4B;AAC5B,8DAAwD;AACxD,oEAA8D;AAE9D,MAAa,YAAY;IAEvB,YAA6B,WAA2B,EAAkB,GAAsB,EAAkB,aAAqB;QAA1G,gBAAW,GAAX,WAAW,CAAgB;QAAkB,QAAG,GAAH,GAAG,CAAmB;QAAkB,kBAAa,GAAb,aAAa,CAAQ;QACrI,MAAM,KAAK,GAAG,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;QAC7C,IAAI,GAAG,CAAC,IAAI,KAAK,qCAAgB,CAAC,GAAG,EAAE;YACrC,IAAI,CAAC,MAAM,GAAG,KAAK,KAAK,EAAE,CAAA;SAC3B;aAAM;YACL,IAAI,CAAC,MAAM,GAAG,SAAS,KAAK,EAAE,CAAA;SAC/B;IACH,CAAC;IAEM,WAAW,CAAE,KAAqB;QACvC,QAAQ,KAAK,CAAC,IAAI,EAAE;YAClB,KAAK,8BAAkB,CAAC,KAAK,CAAC,CAAC;gBAC7B,MAAM,EAAE,GAAG,KAA4B,CAAA;gBACvC,QAAQ,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE;oBAC/B,KAAK,2CAAmB,CAAC,QAAQ,CAAC,CAAC;wBACjC,OAAO,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,IAAI,CAAA;qBACvC;oBAED,KAAK,2CAAmB,CAAC,SAAS,CAAC,CAAC;wBAClC,OAAO,EAAE,CAAC,UAAU,CAAC,IAAI,CAAA;qBAC1B;oBACD,OAAO,CAAC,CAAC;wBACP,OAAO,KAAK,CAAC,IAAI,CAAA;qBAClB;iBACF;aACF;YAED,KAAK,8BAAkB,CAAC,SAAS,CAAC,CAAC;gBACjC,MAAM,EAAE,GAAG,KAAgC,CAAA;gBAC3C,QAAQ,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE;oBAC/B,KAAK,2CAAmB,CAAC,SAAS,CAAC,CAAC;wBAClC,OAAO,EAAE,CAAC,UAAU,CAAC,IAAI,CAAA;qBAC1B;oBACD,OAAO,CAAC,CAAC;wBACP,OAAO,KAAK,CAAC,IAAI,CAAA;qBAClB;iBACF;aACF;YAED;gBACE,OAAO,KAAK,CAAC,IAAI,CAAA;SACpB;IACH,CAAC;IAEM,iBAAiB,CAAE,KAAqB;QAC7C,QAAQ,KAAK,CAAC,IAAI,EAAE;YAClB,KAAK,8BAAkB,CAAC,KAAK,CAAC,CAAC;gBAC7B,MAAM,EAAE,GAAG,KAA4B,CAAA;gBACvC,QAAQ,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE;oBAC/B,KAAK,2CAAmB,CAAC,SAAS,CAAC,CAAC;wBAClC,OAAO,EAAE,CAAC,UAAU,CAAC,IAAI,CAAA;qBAC1B;oBACD,OAAO,CAAC,CAAC;wBACP,OAAO,KAAK,CAAC,IAAI,CAAA;qBAClB;iBACF;aACF;YACD;gBACE,OAAO,KAAK,CAAC,IAAI,CAAA;SACpB;IACH,CAAC;CACF;AA/DD,oCA+DC","sourcesContent":["import { ContainedField, ContainedFieldSet, ContainedGroupField, ContainedComponentField, ContainedFieldType } from '../contained'\r\nimport { FixDefinitions } from '../definition'\r\n\r\nimport _ = require('lodash')\r\nimport { ContainedSetType } from '../contained-set-type'\r\nimport { FixDefinitionSource } from '../fix-definition-source'\r\n\r\nexport class CompilerType {\r\n public readonly snaked: string\r\n constructor (public readonly definitions: FixDefinitions, public readonly set: ContainedFieldSet, public readonly qualifiedName: string) {\r\n const snake = _.snakeCase(this.qualifiedName)\r\n if (set.type === ContainedSetType.Msg) {\r\n this.snaked = `./${snake}`\r\n } else {\r\n this.snaked = `./set/${snake}`\r\n }\r\n }\r\n\r\n public getExtended (field: ContainedField): string {\r\n switch (field.type) {\r\n case ContainedFieldType.Group: {\r\n const gf = field as ContainedGroupField\r\n switch (this.definitions.source) {\r\n case FixDefinitionSource.QuickFix: {\r\n return this.qualifiedName + field.name\r\n }\r\n\r\n case FixDefinitionSource.FixmlRepo: {\r\n return gf.definition.name\r\n }\r\n default: {\r\n return field.name\r\n }\r\n }\r\n }\r\n\r\n case ContainedFieldType.Component: {\r\n const cf = field as ContainedComponentField\r\n switch (this.definitions.source) {\r\n case FixDefinitionSource.FixmlRepo: {\r\n return cf.definition.name\r\n }\r\n default: {\r\n return field.name\r\n }\r\n }\r\n }\r\n\r\n default:\r\n return field.name\r\n }\r\n }\r\n\r\n public getFieldGroupName (field: ContainedField) {\r\n switch (field.type) {\r\n case ContainedFieldType.Group: {\r\n const gf = field as ContainedGroupField\r\n switch (this.definitions.source) {\r\n case FixDefinitionSource.FixmlRepo: {\r\n return gf.definition.name\r\n }\r\n default: {\r\n return field.name\r\n }\r\n }\r\n }\r\n default:\r\n return field.name\r\n }\r\n }\r\n}\r\n"]}
|
|
@@ -7,6 +7,7 @@ export declare class EnumCompiler {
|
|
|
7
7
|
private readonly consolidated;
|
|
8
8
|
private readonly snippets;
|
|
9
9
|
constructor(definitions: FixDefinitions, settings: ICompilerSettings);
|
|
10
|
+
private static getIndex;
|
|
10
11
|
generate(asOneFile?: string): Promise<void>;
|
|
11
12
|
oneEnum(field: SimpleFieldDefinition, asOneFile: string): Promise<void>;
|
|
12
13
|
generateEnum(field: SimpleFieldDefinition): string;
|
|
@@ -16,6 +16,7 @@ const fs = require("fs");
|
|
|
16
16
|
const util = require("util");
|
|
17
17
|
const Path = require("path");
|
|
18
18
|
const _ = require("lodash");
|
|
19
|
+
const tag_type_1 = require("../../buffer/tag/tag-type");
|
|
19
20
|
class EnumCompiler {
|
|
20
21
|
constructor(definitions, settings) {
|
|
21
22
|
this.definitions = definitions;
|
|
@@ -24,6 +25,14 @@ class EnumCompiler {
|
|
|
24
25
|
this.consolidated = new buffer_1.ElasticBuffer();
|
|
25
26
|
this.snippets = new standard_snippet_1.StandardSnippet(settings);
|
|
26
27
|
}
|
|
28
|
+
static getIndex() {
|
|
29
|
+
const lines = [
|
|
30
|
+
`export * from './all-enum'`,
|
|
31
|
+
`export * from './msg_tag'`,
|
|
32
|
+
''
|
|
33
|
+
];
|
|
34
|
+
return lines.join(require('os').EOL);
|
|
35
|
+
}
|
|
27
36
|
generate(asOneFile = null) {
|
|
28
37
|
return __awaiter(this, void 0, void 0, function* () {
|
|
29
38
|
this.generateTagEnum('MsgTag').then(() => __awaiter(this, void 0, void 0, function* () {
|
|
@@ -33,6 +42,7 @@ class EnumCompiler {
|
|
|
33
42
|
}));
|
|
34
43
|
if (asOneFile) {
|
|
35
44
|
yield this.writeAsOne(asOneFile);
|
|
45
|
+
yield this.writeFile('index', EnumCompiler.getIndex());
|
|
36
46
|
}
|
|
37
47
|
})).catch((e) => {
|
|
38
48
|
throw e;
|
|
@@ -68,7 +78,7 @@ class EnumCompiler {
|
|
|
68
78
|
let k = field.resolveEnum(latest);
|
|
69
79
|
let v = latest;
|
|
70
80
|
switch (field.tagType) {
|
|
71
|
-
case
|
|
81
|
+
case tag_type_1.TagType.Int: {
|
|
72
82
|
v = parseInt(latest, 10);
|
|
73
83
|
break;
|
|
74
84
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enum-compiler.js","sourceRoot":"","sources":["../../../src/dictionary/compiler/enum-compiler.ts"],"names":[],"mappings":"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","sourcesContent":["import { FixDefinitions, SimpleFieldDefinition } from '../definition'\r\nimport { ICompilerSettings } from './compiler-settings'\r\nimport { StandardSnippet } from './standard-snippet'\r\nimport { TagType, ElasticBuffer } from '../../buffer'\r\nimport { ILooseObject } from '../../collections/collection'\r\n\r\nimport * as fs from 'fs'\r\nimport * as util from 'util'\r\nimport * as Path from 'path'\r\nimport * as _ from 'lodash'\r\n\r\nexport class EnumCompiler {\r\n private readonly buffer: ElasticBuffer = new ElasticBuffer()\r\n private readonly consolidated: ElasticBuffer = new ElasticBuffer()\r\n private readonly snippets: StandardSnippet\r\n\r\n constructor (public readonly definitions: FixDefinitions, public readonly settings: ICompilerSettings) {\r\n this.snippets = new StandardSnippet(settings)\r\n }\r\n\r\n /*\r\n enum MessageTypes {\r\n Logon = 'A',\r\n Heartbeat = '0',\r\n TestRequest = '1'\r\n}\r\n */\r\n\r\n public async generate (asOneFile: string = null) {\r\n this.generateTagEnum('MsgTag').then(async () => {\r\n const toDo: SimpleFieldDefinition[] = this.toDo()\r\n toDo.forEach(async (field: SimpleFieldDefinition) => {\r\n await this.oneEnum(field, asOneFile)\r\n })\r\n if (asOneFile) {\r\n await this.writeAsOne(asOneFile)\r\n }\r\n }).catch((e: Error) => {\r\n throw e\r\n })\r\n }\r\n\r\n public async oneEnum (field: SimpleFieldDefinition, asOneFile: string) {\r\n const newLine = require('os').EOL\r\n const api = this.generateEnum(field)\r\n if (!asOneFile) {\r\n await this.writeFile(field.name, api).catch((e: Error) => {\r\n throw e\r\n })\r\n } else {\r\n this.consolidated.writeString(api)\r\n this.consolidated.writeString(newLine)\r\n }\r\n }\r\n\r\n public generateEnum (field: SimpleFieldDefinition): string {\r\n const buffer = this.buffer\r\n if (field == null) {\r\n throw new Error(`no simple field ${name} exists in definitions`)\r\n }\r\n if (!field.isEnum()) {\r\n throw new Error(`field ${name} is not an enum type`)\r\n }\r\n return this.create(field.name, field.description, () => {\r\n const newLine = require('os').EOL\r\n return field.enums.keys().reduce((a: number, latest: string, i: number, arr: string[]) => {\r\n let k = field.resolveEnum(latest)\r\n let v: any = latest\r\n switch (field.tagType) {\r\n case TagType.Int: {\r\n v = parseInt(latest, 10)\r\n break\r\n }\r\n }\r\n\r\n buffer.writeString(this.snippets.enumValue(k, v, 1))\r\n if (i < arr.length - 1) {\r\n buffer.writeString(',')\r\n }\r\n buffer.writeString(newLine)\r\n return 0\r\n }, 0)\r\n })\r\n }\r\n\r\n public async generateTagEnum (name: string) {\r\n const newLine = require('os').EOL\r\n const tags = this.definitions.tagToSimple\r\n const snippets = this.snippets\r\n const api = this.create(name, null, () => {\r\n const buffer = this.buffer\r\n return Object.keys(tags).reduce((a: number, latest: string, i: number, arr: string[]) => {\r\n const tag = parseInt(latest, 10)\r\n const sf = tags[tag]\r\n if (sf) {\r\n if (this.settings.comment && sf.description) {\r\n this.commentBlock(sf.description)\r\n }\r\n buffer.writeString(snippets.enumValue(sf.name, tag, 1))\r\n if (i < arr.length - 1) {\r\n buffer.writeString(',')\r\n }\r\n buffer.writeString(newLine)\r\n }\r\n return a\r\n }, 0)\r\n })\r\n await this.writeFile(name, api)\r\n }\r\n\r\n private toDo (): SimpleFieldDefinition[] {\r\n const done: ILooseObject = {}\r\n return this.definitions.simple.values().reduce((a: SimpleFieldDefinition[], latest: SimpleFieldDefinition) => {\r\n if (latest.isEnum() && !done[latest.name]) {\r\n done[latest.name] = true\r\n a.push(latest)\r\n }\r\n return a\r\n }, [])\r\n }\r\n\r\n private async writeAsOne (asOneFile: string) {\r\n const writer = util.promisify(fs.writeFile)\r\n await writer(asOneFile, this.consolidated.toString(), {\r\n encoding: 'utf8'\r\n }\r\n ).catch((e: Error) => {\r\n throw e\r\n })\r\n }\r\n\r\n private commentBlock (comment: string) {\r\n const buffer = this.buffer\r\n const snippets = this.snippets\r\n const newLine = require('os').EOL\r\n buffer.writeString(snippets.startBlockComment(0))\r\n buffer.writeString(newLine)\r\n buffer.writeString(snippets.commentBox(comment))\r\n buffer.writeString(newLine)\r\n buffer.writeString(snippets.endBlockComment(0))\r\n buffer.writeString(newLine)\r\n }\r\n\r\n private async writeFile (name: string, api: string) {\r\n const writer = util.promisify(fs.writeFile)\r\n const fullName = this.getFileName(name)\r\n await writer(fullName, api, {\r\n encoding: 'utf8'}\r\n ).catch((e: Error) => {\r\n throw e\r\n })\r\n }\r\n\r\n private getFileName (name: string): string {\r\n const snake = _.snakeCase(name)\r\n const settings = this.settings\r\n const fileName = `${snake}.ts`\r\n let path: string = `${settings.output}/enum/`\r\n return Path.join(path, fileName)\r\n }\r\n\r\n private create (name: string, description: string, populateMembers: Function): string {\r\n const newLine = require('os').EOL\r\n const buffer = this.buffer\r\n buffer.reset()\r\n const snippets = this.snippets\r\n\r\n if (this.settings.comment && description) {\r\n this.commentBlock(description)\r\n }\r\n buffer.writeString(snippets.enum(name, 0))\r\n buffer.writeString(' ')\r\n buffer.writeString(snippets.startBlock(0))\r\n buffer.writeString(newLine)\r\n populateMembers()\r\n buffer.writeString(snippets.endBlock(0))\r\n buffer.writeString(newLine)\r\n return buffer.toString()\r\n }\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"enum-compiler.js","sourceRoot":"","sources":["../../../src/dictionary/compiler/enum-compiler.ts"],"names":[],"mappings":"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","sourcesContent":["import { FixDefinitions, SimpleFieldDefinition } from '../definition'\r\nimport { ICompilerSettings } from './compiler-settings'\r\nimport { StandardSnippet } from './standard-snippet'\r\nimport { ElasticBuffer } from '../../buffer'\r\nimport { ILooseObject } from '../../collections/collection'\r\n\r\nimport * as fs from 'fs'\r\nimport * as util from 'util'\r\nimport * as Path from 'path'\r\nimport * as _ from 'lodash'\r\nimport { TagType } from '../../buffer/tag/tag-type'\r\n\r\nexport class EnumCompiler {\r\n private readonly buffer: ElasticBuffer = new ElasticBuffer()\r\n private readonly consolidated: ElasticBuffer = new ElasticBuffer()\r\n private readonly snippets: StandardSnippet\r\n\r\n constructor (public readonly definitions: FixDefinitions, public readonly settings: ICompilerSettings) {\r\n this.snippets = new StandardSnippet(settings)\r\n }\r\n\r\n private static getIndex (): string {\r\n const lines = [\r\n `export * from './all-enum'`,\r\n `export * from './msg_tag'`,\r\n ''\r\n ]\r\n return lines.join(require('os').EOL)\r\n }\r\n\r\n /*\r\n enum MessageTypes {\r\n Logon = 'A',\r\n Heartbeat = '0',\r\n TestRequest = '1'\r\n}\r\n */\r\n\r\n public async generate (asOneFile: string = null) {\r\n this.generateTagEnum('MsgTag').then(async () => {\r\n const toDo: SimpleFieldDefinition[] = this.toDo()\r\n toDo.forEach(async (field: SimpleFieldDefinition) => {\r\n await this.oneEnum(field, asOneFile)\r\n })\r\n if (asOneFile) {\r\n await this.writeAsOne(asOneFile)\r\n await this.writeFile('index', EnumCompiler.getIndex())\r\n }\r\n }).catch((e: Error) => {\r\n throw e\r\n })\r\n }\r\n\r\n public async oneEnum (field: SimpleFieldDefinition, asOneFile: string) {\r\n const newLine = require('os').EOL\r\n const api = this.generateEnum(field)\r\n if (!asOneFile) {\r\n await this.writeFile(field.name, api).catch((e: Error) => {\r\n throw e\r\n })\r\n } else {\r\n this.consolidated.writeString(api)\r\n this.consolidated.writeString(newLine)\r\n }\r\n }\r\n\r\n public generateEnum (field: SimpleFieldDefinition): string {\r\n const buffer = this.buffer\r\n if (field == null) {\r\n throw new Error(`no simple field ${name} exists in definitions`)\r\n }\r\n if (!field.isEnum()) {\r\n throw new Error(`field ${name} is not an enum type`)\r\n }\r\n return this.create(field.name, field.description, () => {\r\n const newLine = require('os').EOL\r\n return field.enums.keys().reduce((a: number, latest: string, i: number, arr: string[]) => {\r\n let k = field.resolveEnum(latest)\r\n let v: any = latest\r\n switch (field.tagType) {\r\n case TagType.Int: {\r\n v = parseInt(latest, 10)\r\n break\r\n }\r\n }\r\n\r\n buffer.writeString(this.snippets.enumValue(k, v, 1))\r\n if (i < arr.length - 1) {\r\n buffer.writeString(',')\r\n }\r\n buffer.writeString(newLine)\r\n return 0\r\n }, 0)\r\n })\r\n }\r\n\r\n public async generateTagEnum (name: string) {\r\n const newLine = require('os').EOL\r\n const tags = this.definitions.tagToSimple\r\n const snippets = this.snippets\r\n const api = this.create(name, null, () => {\r\n const buffer = this.buffer\r\n return Object.keys(tags).reduce((a: number, latest: string, i: number, arr: string[]) => {\r\n const tag = parseInt(latest, 10)\r\n const sf = tags[tag]\r\n if (sf) {\r\n if (this.settings.comment && sf.description) {\r\n this.commentBlock(sf.description)\r\n }\r\n buffer.writeString(snippets.enumValue(sf.name, tag, 1))\r\n if (i < arr.length - 1) {\r\n buffer.writeString(',')\r\n }\r\n buffer.writeString(newLine)\r\n }\r\n return a\r\n }, 0)\r\n })\r\n await this.writeFile(name, api)\r\n }\r\n\r\n private toDo (): SimpleFieldDefinition[] {\r\n const done: ILooseObject = {}\r\n return this.definitions.simple.values().reduce((a: SimpleFieldDefinition[], latest: SimpleFieldDefinition) => {\r\n if (latest.isEnum() && !done[latest.name]) {\r\n done[latest.name] = true\r\n a.push(latest)\r\n }\r\n return a\r\n }, [])\r\n }\r\n\r\n private async writeAsOne (asOneFile: string) {\r\n const writer = util.promisify(fs.writeFile)\r\n await writer(asOneFile, this.consolidated.toString(), {\r\n encoding: 'utf8'\r\n }\r\n ).catch((e: Error) => {\r\n throw e\r\n })\r\n }\r\n\r\n private commentBlock (comment: string) {\r\n const buffer = this.buffer\r\n const snippets = this.snippets\r\n const newLine = require('os').EOL\r\n buffer.writeString(snippets.startBlockComment(0))\r\n buffer.writeString(newLine)\r\n buffer.writeString(snippets.commentBox(comment))\r\n buffer.writeString(newLine)\r\n buffer.writeString(snippets.endBlockComment(0))\r\n buffer.writeString(newLine)\r\n }\r\n\r\n private async writeFile (name: string, api: string) {\r\n const writer = util.promisify(fs.writeFile)\r\n const fullName = this.getFileName(name)\r\n await writer(fullName, api, {\r\n encoding: 'utf8'}\r\n ).catch((e: Error) => {\r\n throw e\r\n })\r\n }\r\n\r\n private getFileName (name: string): string {\r\n const snake = _.snakeCase(name)\r\n const settings = this.settings\r\n const fileName = `${snake}.ts`\r\n let path: string = `${settings.output}/enum/`\r\n return Path.join(path, fileName)\r\n }\r\n\r\n private create (name: string, description: string, populateMembers: Function): string {\r\n const newLine = require('os').EOL\r\n const buffer = this.buffer\r\n buffer.reset()\r\n const snippets = this.snippets\r\n\r\n if (this.settings.comment && description) {\r\n this.commentBlock(description)\r\n }\r\n buffer.writeString(snippets.enum(name, 0))\r\n buffer.writeString(' ')\r\n buffer.writeString(snippets.startBlock(0))\r\n buffer.writeString(newLine)\r\n populateMembers()\r\n buffer.writeString(snippets.endBlock(0))\r\n buffer.writeString(newLine)\r\n return buffer.toString()\r\n }\r\n}\r\n"]}
|
|
@@ -11,15 +11,16 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.MsgCompiler = void 0;
|
|
13
13
|
const buffer_1 = require("../../buffer");
|
|
14
|
+
const ascii_1 = require("../../buffer/ascii/");
|
|
15
|
+
const contained_1 = require("../contained");
|
|
14
16
|
const standard_snippet_1 = require("./standard-snippet");
|
|
15
|
-
const dict_primitive_1 = require("../dict-primitive");
|
|
16
17
|
const compiler_type_1 = require("./compiler-type");
|
|
17
18
|
const collections_1 = require("../../collections");
|
|
18
19
|
const fs = require("fs");
|
|
19
20
|
const Util = require("util");
|
|
20
21
|
const Path = require("path");
|
|
21
|
-
const fields_dispatch_1 = require("../fields-dispatch");
|
|
22
22
|
const set_reduce_1 = require("../set-reduce");
|
|
23
|
+
const contained_set_type_1 = require("../contained-set-type");
|
|
23
24
|
class MsgCompiler {
|
|
24
25
|
constructor(definitions, settings) {
|
|
25
26
|
this.definitions = definitions;
|
|
@@ -110,7 +111,7 @@ class MsgCompiler {
|
|
|
110
111
|
buffer.writeString(newLine);
|
|
111
112
|
}
|
|
112
113
|
buffer.writeString(snippets.interface(compilerType.qualifiedName, 0));
|
|
113
|
-
buffer.writeChar(
|
|
114
|
+
buffer.writeChar(ascii_1.AsciiChars.Space);
|
|
114
115
|
buffer.writeString(snippets.startBlock(0));
|
|
115
116
|
buffer.writeString(newLine);
|
|
116
117
|
this.fields(compilerType);
|
|
@@ -158,7 +159,7 @@ class MsgCompiler {
|
|
|
158
159
|
}
|
|
159
160
|
fields(compilerType) {
|
|
160
161
|
this.attributes(compilerType);
|
|
161
|
-
|
|
162
|
+
new contained_1.FieldsDispatch().dispatchFields(compilerType.set.fields, {
|
|
162
163
|
group: (g) => this.fieldGroup(g, compilerType),
|
|
163
164
|
simple: (simple) => this.fieldSimple(simple),
|
|
164
165
|
component: (c) => this.fieldComponent(c, compilerType)
|
|
@@ -178,9 +179,10 @@ class MsgCompiler {
|
|
|
178
179
|
});
|
|
179
180
|
}
|
|
180
181
|
imports(compilerType) {
|
|
181
|
-
const
|
|
182
|
+
const reducer = new set_reduce_1.SetReduce();
|
|
183
|
+
const isMsg = compilerType.set.type === contained_set_type_1.ContainedSetType.Msg;
|
|
182
184
|
const snippets = this.snippets;
|
|
183
|
-
const imports =
|
|
185
|
+
const imports = reducer.reduce(compilerType.set, {
|
|
184
186
|
component: (a, c) => {
|
|
185
187
|
a.push(`${snippets.import(compilerType.getExtended(c), isMsg, 0)}`);
|
|
186
188
|
return a;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"msg-compiler.js","sourceRoot":"","sources":["../../../src/dictionary/compiler/msg-compiler.ts"],"names":[],"mappings":"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","sourcesContent":["import { ElasticBuffer, AsciiChars, Tags } from '../../buffer'\r\nimport { ICompilerSettings } from './compiler-settings'\r\nimport { FixDefinitions } from '../definition'\r\nimport { ContainedGroupField, ContainedSimpleField, ContainedComponentField } from '../contained'\r\nimport { StandardSnippet } from './standard-snippet'\r\nimport { ContainedSetType } from '../dict-primitive'\r\nimport { CompilerType } from './compiler-type'\r\nimport { Dictionary } from '../../collections'\r\n\r\nimport * as fs from 'fs'\r\nimport * as Util from 'util'\r\nimport * as Path from 'path'\r\nimport { dispatchFields } from '../fields-dispatch'\r\nimport { reduceSet } from '../set-reduce'\r\n\r\nexport class MsgCompiler {\r\n readonly queue: CompilerType[] = []\r\n readonly snippets: StandardSnippet\r\n readonly buffer: ElasticBuffer = new ElasticBuffer()\r\n readonly completed: Dictionary<CompilerType>\r\n\r\n constructor (public readonly definitions: FixDefinitions, public readonly settings: ICompilerSettings) {\r\n this.completed = new Dictionary<CompilerType>()\r\n this.snippets = new StandardSnippet(this.settings)\r\n }\r\n\r\n public async generate () {\r\n const types: string[] = this.settings.types || this.definitions.message.keys()\r\n return this.createTypes(types)\r\n }\r\n\r\n private getFileName (compilerType: CompilerType): string {\r\n const settings = this.settings\r\n const fileName = `${compilerType.snaked}.ts`\r\n return Path.join(settings.output, fileName)\r\n }\r\n\r\n private async createTypes (types: string[]) {\r\n const definitions = this.definitions\r\n types.forEach((type: string) => {\r\n const definition = definitions.containedSet(type)\r\n if (!definition) {\r\n throw new Error(`no type ${type} defined`)\r\n }\r\n const ct = new CompilerType(this.definitions, definition, definition.name)\r\n this.enqueue(ct)\r\n })\r\n await this.work()\r\n await this.index()\r\n }\r\n\r\n private async work () {\r\n const q = this.queue\r\n const writeFile = Util.promisify(fs.writeFile)\r\n while (q.length > 0) {\r\n const compilerType: CompilerType = q.pop()\r\n const api: string = this.generateMessages(compilerType)\r\n const fullName = this.getFileName(compilerType)\r\n await writeFile(fullName, api, {\r\n encoding: 'utf8'}\r\n )\r\n }\r\n }\r\n\r\n private async index () {\r\n const writeFile = Util.promisify(fs.writeFile)\r\n const settings = this.settings\r\n const fileName = 'index.ts'\r\n const done = this.completed.values()\r\n const exports: string[] = done.reduce((prev: string[], current: CompilerType) => {\r\n prev.push(`export * from '${current.snaked}'`)\r\n return prev\r\n }, [`export * from './enum'`] as string[])\r\n const newLine = require('os').EOL\r\n exports.sort()\r\n exports.push('')\r\n const api: string = exports.join(newLine)\r\n const fullName: string = Path.join(settings.output, fileName)\r\n await writeFile(fullName, api, {\r\n encoding: 'utf8'}\r\n )\r\n }\r\n\r\n private generateMessages (compilerType: CompilerType): string {\r\n const definition = compilerType.set\r\n const buffer: ElasticBuffer = this.buffer\r\n buffer.reset()\r\n const snippets = this.snippets\r\n const newLine = require('os').EOL\r\n // a single class with dependencies included\r\n let ptr: number = this.imports(compilerType)\r\n if (ptr > 0) {\r\n buffer.writeString(newLine)\r\n buffer.writeString(newLine)\r\n }\r\n if (this.settings.comment && definition.description) {\r\n const comment = snippets.commentBox(definition.description)\r\n buffer.writeString(snippets.startBlockComment(0))\r\n buffer.writeString(newLine)\r\n buffer.writeString(comment)\r\n buffer.writeString(newLine)\r\n buffer.writeString(snippets.endBlockComment(0))\r\n buffer.writeString(newLine)\r\n }\r\n buffer.writeString(snippets.interface(compilerType.qualifiedName, 0))\r\n buffer.writeChar(AsciiChars.Space)\r\n buffer.writeString(snippets.startBlock(0))\r\n buffer.writeString(newLine)\r\n this.fields(compilerType)\r\n buffer.writeString(snippets.endBlock(0))\r\n buffer.writeString(newLine)\r\n return buffer.toString()\r\n }\r\n\r\n // only generate once\r\n private enqueue (ct: CompilerType): void {\r\n const completed = this.completed\r\n const fullName = this.getFileName(ct)\r\n if (completed.get(fullName)) {\r\n return\r\n }\r\n this.queue.push(ct)\r\n completed.addUpdate(fullName, ct)\r\n }\r\n\r\n private fieldSimple (simple: ContainedSimpleField): void {\r\n const snippets = this.snippets\r\n const settings = this.settings\r\n const buffer = this.buffer\r\n const newLine = require('os').EOL\r\n const len = buffer.writeString(snippets.simple(simple.name, Tags.toJSType(simple), simple.required, 1))\r\n if (settings.tags) {\r\n buffer.writeString(snippets.commentLine(`${simple.definition.tag}`, 50 - len))\r\n }\r\n buffer.writeString(newLine)\r\n }\r\n\r\n private fieldGroup (groupField: ContainedGroupField, compilerType: CompilerType): void {\r\n const newLine = require('os').EOL\r\n const buffer = this.buffer\r\n const snippets = this.snippets\r\n // for a group its field name is as defined in type, its type is qualified to avoid collisions\r\n const extended: string = compilerType.getExtended(groupField)\r\n buffer.writeString(snippets.group(compilerType.getFieldGroupName(groupField), extended, groupField.required, 1))\r\n this.enqueue(new CompilerType(this.definitions, groupField.definition, extended))\r\n buffer.writeString(newLine)\r\n }\r\n\r\n private fieldComponent (componentField: ContainedComponentField, compilerType: CompilerType): void {\r\n const newLine = require('os').EOL\r\n const buffer = this.buffer\r\n const snippets = this.snippets\r\n const extended: string = compilerType.getExtended(componentField)\r\n buffer.writeString(snippets.component(extended, componentField.required, 1))\r\n this.enqueue(new CompilerType(this.definitions, componentField.definition, extended))\r\n buffer.writeString(newLine)\r\n }\r\n\r\n private fields (compilerType: CompilerType): void {\r\n this.attributes(compilerType)\r\n dispatchFields(compilerType.set.fields, {\r\n group: (g: ContainedGroupField) => this.fieldGroup(g, compilerType),\r\n simple: (simple: ContainedSimpleField) => this.fieldSimple(simple),\r\n component: (c: ContainedComponentField) => this.fieldComponent(c, compilerType)\r\n })\r\n }\r\n\r\n private attributes (compilerType: CompilerType): void {\r\n const settings = this.settings\r\n const newLine = require('os').EOL\r\n const snippets = this.snippets\r\n const buffer = this.buffer\r\n compilerType.set.localAttribute.forEach((simple: ContainedSimpleField) => {\r\n const len = buffer.writeString(snippets.simple(simple.definition.name, Tags.toJSType(simple), simple.required, 1))\r\n if (settings.tags) {\r\n buffer.writeString(snippets.commentLine(`${simple.definition.tag}`, 50 - len))\r\n }\r\n buffer.writeString(newLine)\r\n })\r\n }\r\n\r\n private imports (compilerType: CompilerType): number {\r\n const isMsg = compilerType.set.type === ContainedSetType.Msg\r\n const snippets = this.snippets\r\n const imports: string[] = reduceSet<string[]>(compilerType.set, {\r\n component: (a: string[], c: ContainedComponentField) => {\r\n a.push(`${snippets.import(compilerType.getExtended(c), isMsg, 0)}`)\r\n return a\r\n },\r\n group: (a: string[], g: ContainedGroupField) => {\r\n a.push(`${snippets.import(compilerType.getExtended(g), isMsg, 0)}`)\r\n return a\r\n }\r\n }, [])\r\n\r\n return this.buffer.writeString(imports.join(require('os').EOL))\r\n }\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"msg-compiler.js","sourceRoot":"","sources":["../../../src/dictionary/compiler/msg-compiler.ts"],"names":[],"mappings":"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","sourcesContent":["import { ElasticBuffer, Tags } from '../../buffer'\r\nimport { AsciiChars } from '../../buffer/ascii/'\r\nimport { ICompilerSettings } from './compiler-settings'\r\nimport { FixDefinitions } from '../definition'\r\nimport { ContainedGroupField, ContainedSimpleField, ContainedComponentField, FieldsDispatch } from '../contained'\r\nimport { StandardSnippet } from './standard-snippet'\r\nimport { CompilerType } from './compiler-type'\r\nimport { Dictionary } from '../../collections'\r\n\r\nimport * as fs from 'fs'\r\nimport * as Util from 'util'\r\nimport * as Path from 'path'\r\nimport { SetReduce } from '../set-reduce'\r\nimport { ContainedSetType } from '../contained-set-type'\r\n\r\nexport class MsgCompiler {\r\n readonly queue: CompilerType[] = []\r\n readonly snippets: StandardSnippet\r\n readonly buffer: ElasticBuffer = new ElasticBuffer()\r\n readonly completed: Dictionary<CompilerType>\r\n\r\n constructor (public readonly definitions: FixDefinitions, public readonly settings: ICompilerSettings) {\r\n this.completed = new Dictionary<CompilerType>()\r\n this.snippets = new StandardSnippet(this.settings)\r\n }\r\n\r\n public async generate () {\r\n const types: string[] = this.settings.types || this.definitions.message.keys()\r\n return this.createTypes(types)\r\n }\r\n\r\n private getFileName (compilerType: CompilerType): string {\r\n const settings = this.settings\r\n const fileName = `${compilerType.snaked}.ts`\r\n return Path.join(settings.output, fileName)\r\n }\r\n\r\n private async createTypes (types: string[]) {\r\n const definitions = this.definitions\r\n types.forEach((type: string) => {\r\n const definition = definitions.containedSet(type)\r\n if (!definition) {\r\n throw new Error(`no type ${type} defined`)\r\n }\r\n const ct = new CompilerType(this.definitions, definition, definition.name)\r\n this.enqueue(ct)\r\n })\r\n await this.work()\r\n await this.index()\r\n }\r\n\r\n private async work () {\r\n const q = this.queue\r\n const writeFile = Util.promisify(fs.writeFile)\r\n while (q.length > 0) {\r\n const compilerType: CompilerType = q.pop()\r\n const api: string = this.generateMessages(compilerType)\r\n const fullName = this.getFileName(compilerType)\r\n await writeFile(fullName, api, {\r\n encoding: 'utf8'}\r\n )\r\n }\r\n }\r\n\r\n private async index () {\r\n const writeFile = Util.promisify(fs.writeFile)\r\n const settings = this.settings\r\n const fileName = 'index.ts'\r\n const done = this.completed.values()\r\n const exports: string[] = done.reduce((prev: string[], current: CompilerType) => {\r\n prev.push(`export * from '${current.snaked}'`)\r\n return prev\r\n }, [`export * from './enum'`] as string[])\r\n const newLine = require('os').EOL\r\n exports.sort()\r\n exports.push('')\r\n const api: string = exports.join(newLine)\r\n const fullName: string = Path.join(settings.output, fileName)\r\n await writeFile(fullName, api, {\r\n encoding: 'utf8'}\r\n )\r\n }\r\n\r\n private generateMessages (compilerType: CompilerType): string {\r\n const definition = compilerType.set\r\n const buffer: ElasticBuffer = this.buffer\r\n buffer.reset()\r\n const snippets = this.snippets\r\n const newLine = require('os').EOL\r\n // a single class with dependencies included\r\n let ptr: number = this.imports(compilerType)\r\n if (ptr > 0) {\r\n buffer.writeString(newLine)\r\n buffer.writeString(newLine)\r\n }\r\n if (this.settings.comment && definition.description) {\r\n const comment = snippets.commentBox(definition.description)\r\n buffer.writeString(snippets.startBlockComment(0))\r\n buffer.writeString(newLine)\r\n buffer.writeString(comment)\r\n buffer.writeString(newLine)\r\n buffer.writeString(snippets.endBlockComment(0))\r\n buffer.writeString(newLine)\r\n }\r\n buffer.writeString(snippets.interface(compilerType.qualifiedName, 0))\r\n buffer.writeChar(AsciiChars.Space)\r\n buffer.writeString(snippets.startBlock(0))\r\n buffer.writeString(newLine)\r\n this.fields(compilerType)\r\n buffer.writeString(snippets.endBlock(0))\r\n buffer.writeString(newLine)\r\n return buffer.toString()\r\n }\r\n\r\n // only generate once\r\n private enqueue (ct: CompilerType): void {\r\n const completed = this.completed\r\n const fullName = this.getFileName(ct)\r\n if (completed.get(fullName)) {\r\n return\r\n }\r\n this.queue.push(ct)\r\n completed.addUpdate(fullName, ct)\r\n }\r\n\r\n private fieldSimple (simple: ContainedSimpleField): void {\r\n const snippets = this.snippets\r\n const settings = this.settings\r\n const buffer = this.buffer\r\n const newLine = require('os').EOL\r\n const len = buffer.writeString(snippets.simple(simple.name, Tags.toJSType(simple), simple.required, 1))\r\n if (settings.tags) {\r\n buffer.writeString(snippets.commentLine(`${simple.definition.tag}`, 50 - len))\r\n }\r\n buffer.writeString(newLine)\r\n }\r\n\r\n private fieldGroup (groupField: ContainedGroupField, compilerType: CompilerType): void {\r\n const newLine = require('os').EOL\r\n const buffer = this.buffer\r\n const snippets = this.snippets\r\n // for a group its field name is as defined in type, its type is qualified to avoid collisions\r\n const extended: string = compilerType.getExtended(groupField)\r\n buffer.writeString(snippets.group(compilerType.getFieldGroupName(groupField), extended, groupField.required, 1))\r\n this.enqueue(new CompilerType(this.definitions, groupField.definition, extended))\r\n buffer.writeString(newLine)\r\n }\r\n\r\n private fieldComponent (componentField: ContainedComponentField, compilerType: CompilerType): void {\r\n const newLine = require('os').EOL\r\n const buffer = this.buffer\r\n const snippets = this.snippets\r\n const extended: string = compilerType.getExtended(componentField)\r\n buffer.writeString(snippets.component(extended, componentField.required, 1))\r\n this.enqueue(new CompilerType(this.definitions, componentField.definition, extended))\r\n buffer.writeString(newLine)\r\n }\r\n\r\n private fields (compilerType: CompilerType): void {\r\n this.attributes(compilerType)\r\n new FieldsDispatch().dispatchFields(compilerType.set.fields, {\r\n group: (g: ContainedGroupField) => this.fieldGroup(g, compilerType),\r\n simple: (simple: ContainedSimpleField) => this.fieldSimple(simple),\r\n component: (c: ContainedComponentField) => this.fieldComponent(c, compilerType)\r\n })\r\n }\r\n\r\n private attributes (compilerType: CompilerType): void {\r\n const settings = this.settings\r\n const newLine = require('os').EOL\r\n const snippets = this.snippets\r\n const buffer = this.buffer\r\n compilerType.set.localAttribute.forEach((simple: ContainedSimpleField) => {\r\n const len = buffer.writeString(snippets.simple(simple.definition.name, Tags.toJSType(simple), simple.required, 1))\r\n if (settings.tags) {\r\n buffer.writeString(snippets.commentLine(`${simple.definition.tag}`, 50 - len))\r\n }\r\n buffer.writeString(newLine)\r\n })\r\n }\r\n\r\n private imports (compilerType: CompilerType): number {\r\n const reducer = new SetReduce<string[]>()\r\n const isMsg = compilerType.set.type === ContainedSetType.Msg\r\n const snippets = this.snippets\r\n const imports: string[] = reducer.reduce(compilerType.set, {\r\n component: (a: string[], c: ContainedComponentField) => {\r\n a.push(`${snippets.import(compilerType.getExtended(c), isMsg, 0)}`)\r\n return a\r\n },\r\n group: (a: string[], g: ContainedGroupField) => {\r\n a.push(`${snippets.import(compilerType.getExtended(g), isMsg, 0)}`)\r\n return a\r\n }\r\n }, [])\r\n\r\n return this.buffer.writeString(imports.join(require('os').EOL))\r\n }\r\n}\r\n"]}
|
|
@@ -2,9 +2,10 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ContainedComponentField = void 0;
|
|
4
4
|
const contained_field_1 = require("./contained-field");
|
|
5
|
+
const contained_field_type_1 = require("./contained-field-type");
|
|
5
6
|
class ContainedComponentField extends contained_field_1.ContainedField {
|
|
6
7
|
constructor(definition, position, required, override) {
|
|
7
|
-
super(override || definition.name, position,
|
|
8
|
+
super(override || definition.name, position, contained_field_type_1.ContainedFieldType.Component, required);
|
|
8
9
|
this.definition = definition;
|
|
9
10
|
this.position = position;
|
|
10
11
|
this.required = required;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contained-component-field.js","sourceRoot":"","sources":["../../../src/dictionary/contained/contained-component-field.ts"],"names":[],"mappings":";;;AACA,
|
|
1
|
+
{"version":3,"file":"contained-component-field.js","sourceRoot":"","sources":["../../../src/dictionary/contained/contained-component-field.ts"],"names":[],"mappings":";;;AACA,uDAAkD;AAClD,iEAA2D;AAE3D,MAAa,uBAAwB,SAAQ,gCAAc;IACzD,YAA6B,UAAoC,EAC7C,QAAgB,EACP,QAAiB,EACjB,QAAiB;QAC5C,KAAK,CAAC,QAAQ,IAAI,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,yCAAkB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAA;QAJzD,eAAU,GAAV,UAAU,CAA0B;QAC7C,aAAQ,GAAR,QAAQ,CAAQ;QACP,aAAQ,GAAR,QAAQ,CAAS;QACjB,aAAQ,GAAR,QAAQ,CAAS;IAE9C,CAAC;IACM,QAAQ;QACb,OAAO,IAAI,IAAI,CAAC,QAAQ,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,KAAK,IAAI,CAAC,IAAI,GAAG,CAAA;IAC/E,CAAC;CACF;AAVD,0DAUC","sourcesContent":["import { ComponentFieldDefinition } from '../definition'\r\nimport { ContainedField } from './contained-field'\r\nimport { ContainedFieldType } from './contained-field-type'\r\n\r\nexport class ContainedComponentField extends ContainedField {\r\n constructor (public readonly definition: ComponentFieldDefinition,\r\n public position: number,\r\n public readonly required: boolean,\r\n public readonly override?: string) {\r\n super(override || definition.name, position, ContainedFieldType.Component, required)\r\n }\r\n public toString (): string {\r\n return `[${this.position}]=C.${this.definition.fields.length} (${this.name})`\r\n }\r\n}\r\n"]}
|
|
@@ -1,16 +1,3 @@
|
|
|
1
|
-
import { ContainedGroupField } from './contained-group-field';
|
|
2
|
-
import { ContainedSimpleField } from './contained-simple-field';
|
|
3
|
-
import { ContainedComponentField } from './contained-component-field';
|
|
4
1
|
import { ContainedField } from './contained-field';
|
|
5
|
-
|
|
6
|
-
group?: {
|
|
7
|
-
(field: ContainedGroupField): void;
|
|
8
|
-
};
|
|
9
|
-
simple?: {
|
|
10
|
-
(field: ContainedSimpleField): void;
|
|
11
|
-
};
|
|
12
|
-
component?: {
|
|
13
|
-
(field: ContainedComponentField): void;
|
|
14
|
-
};
|
|
15
|
-
}
|
|
2
|
+
import { IContainedFieldDispatcher } from './contained-field-dispatcher';
|
|
16
3
|
export declare function dispatchContainedField(field: ContainedField, dispatcher: IContainedFieldDispatcher): void;
|