@himalaya-quant/ctrader-x 0.0.7
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/.env +6 -0
- package/.prettierrc +7 -0
- package/README.md +96 -0
- package/changelog.md +46 -0
- package/dist/src/classes/client.d.ts +21 -0
- package/dist/src/classes/client.d.ts.map +1 -0
- package/dist/src/classes/client.js +83 -0
- package/dist/src/classes/client.js.map +1 -0
- package/dist/src/classes/client.test.d.ts +2 -0
- package/dist/src/classes/client.test.d.ts.map +1 -0
- package/dist/src/classes/client.test.js +83 -0
- package/dist/src/classes/client.test.js.map +1 -0
- package/dist/src/classes/errors/client-not-connected.error.d.ts +5 -0
- package/dist/src/classes/errors/client-not-connected.error.d.ts.map +1 -0
- package/dist/src/classes/errors/client-not-connected.error.js +11 -0
- package/dist/src/classes/errors/client-not-connected.error.js.map +1 -0
- package/dist/src/classes/errors/connection.error.d.ts +5 -0
- package/dist/src/classes/errors/connection.error.d.ts.map +1 -0
- package/dist/src/classes/errors/connection.error.js +11 -0
- package/dist/src/classes/errors/connection.error.js.map +1 -0
- package/dist/src/classes/logger.d.ts +13 -0
- package/dist/src/classes/logger.d.ts.map +1 -0
- package/dist/src/classes/logger.js +21 -0
- package/dist/src/classes/logger.js.map +1 -0
- package/dist/src/classes/managers/authentication/authentication.manager.d.ts +13 -0
- package/dist/src/classes/managers/authentication/authentication.manager.d.ts.map +1 -0
- package/dist/src/classes/managers/authentication/authentication.manager.js +49 -0
- package/dist/src/classes/managers/authentication/authentication.manager.js.map +1 -0
- package/dist/src/classes/managers/authentication/authentication.manager.test.d.ts +2 -0
- package/dist/src/classes/managers/authentication/authentication.manager.test.d.ts.map +1 -0
- package/dist/src/classes/managers/authentication/authentication.manager.test.js +114 -0
- package/dist/src/classes/managers/authentication/authentication.manager.test.js.map +1 -0
- package/dist/src/classes/managers/authentication/errors/application-auth.error.d.ts +5 -0
- package/dist/src/classes/managers/authentication/errors/application-auth.error.d.ts.map +1 -0
- package/dist/src/classes/managers/authentication/errors/application-auth.error.js +11 -0
- package/dist/src/classes/managers/authentication/errors/application-auth.error.js.map +1 -0
- package/dist/src/classes/managers/authentication/errors/user-auth.error.d.ts +5 -0
- package/dist/src/classes/managers/authentication/errors/user-auth.error.d.ts.map +1 -0
- package/dist/src/classes/managers/authentication/errors/user-auth.error.js +11 -0
- package/dist/src/classes/managers/authentication/errors/user-auth.error.js.map +1 -0
- package/dist/src/classes/managers/models/base.manager.d.ts +15 -0
- package/dist/src/classes/managers/models/base.manager.d.ts.map +1 -0
- package/dist/src/classes/managers/models/base.manager.js +35 -0
- package/dist/src/classes/managers/models/base.manager.js.map +1 -0
- package/dist/src/classes/managers/models/credentials.model.d.ts +8 -0
- package/dist/src/classes/managers/models/credentials.model.d.ts.map +1 -0
- package/dist/src/classes/managers/models/credentials.model.js +3 -0
- package/dist/src/classes/managers/models/credentials.model.js.map +1 -0
- package/dist/src/classes/managers/symbols/errors/get-symbols-details.error.d.ts +5 -0
- package/dist/src/classes/managers/symbols/errors/get-symbols-details.error.d.ts.map +1 -0
- package/dist/src/classes/managers/symbols/errors/get-symbols-details.error.js +11 -0
- package/dist/src/classes/managers/symbols/errors/get-symbols-details.error.js.map +1 -0
- package/dist/src/classes/managers/symbols/errors/get-symbols-list.error.d.ts +5 -0
- package/dist/src/classes/managers/symbols/errors/get-symbols-list.error.d.ts.map +1 -0
- package/dist/src/classes/managers/symbols/errors/get-symbols-list.error.js +11 -0
- package/dist/src/classes/managers/symbols/errors/get-symbols-list.error.js.map +1 -0
- package/dist/src/classes/managers/symbols/errors/get-trend-bars.error.d.ts +6 -0
- package/dist/src/classes/managers/symbols/errors/get-trend-bars.error.d.ts.map +1 -0
- package/dist/src/classes/managers/symbols/errors/get-trend-bars.error.js +13 -0
- package/dist/src/classes/managers/symbols/errors/get-trend-bars.error.js.map +1 -0
- package/dist/src/classes/managers/symbols/errors/subscribe-live-trend-bars.error.d.ts +8 -0
- package/dist/src/classes/managers/symbols/errors/subscribe-live-trend-bars.error.d.ts.map +1 -0
- package/dist/src/classes/managers/symbols/errors/subscribe-live-trend-bars.error.js +17 -0
- package/dist/src/classes/managers/symbols/errors/subscribe-live-trend-bars.error.js.map +1 -0
- package/dist/src/classes/managers/symbols/errors/subscribe-spot-events.error.d.ts +5 -0
- package/dist/src/classes/managers/symbols/errors/subscribe-spot-events.error.d.ts.map +1 -0
- package/dist/src/classes/managers/symbols/errors/subscribe-spot-events.error.js +11 -0
- package/dist/src/classes/managers/symbols/errors/subscribe-spot-events.error.js.map +1 -0
- package/dist/src/classes/managers/symbols/errors/unsubscribe-live-trend-bars.error.d.ts +5 -0
- package/dist/src/classes/managers/symbols/errors/unsubscribe-live-trend-bars.error.d.ts.map +1 -0
- package/dist/src/classes/managers/symbols/errors/unsubscribe-live-trend-bars.error.js +11 -0
- package/dist/src/classes/managers/symbols/errors/unsubscribe-live-trend-bars.error.js.map +1 -0
- package/dist/src/classes/managers/symbols/symbols-updates.manager.d.ts +54 -0
- package/dist/src/classes/managers/symbols/symbols-updates.manager.d.ts.map +1 -0
- package/dist/src/classes/managers/symbols/symbols-updates.manager.js +250 -0
- package/dist/src/classes/managers/symbols/symbols-updates.manager.js.map +1 -0
- package/dist/src/classes/managers/symbols/symbols.manager.d.ts +30 -0
- package/dist/src/classes/managers/symbols/symbols.manager.d.ts.map +1 -0
- package/dist/src/classes/managers/symbols/symbols.manager.js +78 -0
- package/dist/src/classes/managers/symbols/symbols.manager.js.map +1 -0
- package/dist/src/classes/managers/symbols/symbols.manager.test.d.ts +2 -0
- package/dist/src/classes/managers/symbols/symbols.manager.test.d.ts.map +1 -0
- package/dist/src/classes/managers/symbols/symbols.manager.test.js +364 -0
- package/dist/src/classes/managers/symbols/symbols.manager.test.js.map +1 -0
- package/dist/src/classes/models/client-configuration.model.d.ts +10 -0
- package/dist/src/classes/models/client-configuration.model.d.ts.map +1 -0
- package/dist/src/classes/models/client-configuration.model.js +3 -0
- package/dist/src/classes/models/client-configuration.model.js.map +1 -0
- package/dist/src/classes/models/ctrader-x-error.model.d.ts +6 -0
- package/dist/src/classes/models/ctrader-x-error.model.d.ts.map +1 -0
- package/dist/src/classes/models/ctrader-x-error.model.js +21 -0
- package/dist/src/classes/models/ctrader-x-error.model.js.map +1 -0
- package/dist/src/config/config.d.ts +10 -0
- package/dist/src/config/config.d.ts.map +1 -0
- package/dist/src/config/config.js +40 -0
- package/dist/src/config/config.js.map +1 -0
- package/dist/src/examples/authentication.example.d.ts +2 -0
- package/dist/src/examples/authentication.example.d.ts.map +1 -0
- package/dist/src/examples/authentication.example.js +9 -0
- package/dist/src/examples/authentication.example.js.map +1 -0
- package/dist/src/examples/get-symbols-bars.example.d.ts +2 -0
- package/dist/src/examples/get-symbols-bars.example.d.ts.map +1 -0
- package/dist/src/examples/get-symbols-bars.example.js +18 -0
- package/dist/src/examples/get-symbols-bars.example.js.map +1 -0
- package/dist/src/examples/get-symbols-list.example.d.ts +2 -0
- package/dist/src/examples/get-symbols-list.example.d.ts.map +1 -0
- package/dist/src/examples/get-symbols-list.example.js +13 -0
- package/dist/src/examples/get-symbols-list.example.js.map +1 -0
- package/dist/src/examples/subscribe-live-bars.example.d.ts +2 -0
- package/dist/src/examples/subscribe-live-bars.example.d.ts.map +1 -0
- package/dist/src/examples/subscribe-live-bars.example.js +42 -0
- package/dist/src/examples/subscribe-live-bars.example.js.map +1 -0
- package/dist/src/index.d.ts +4 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +20 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/models/common/ohlcv.d.ts +10 -0
- package/dist/src/models/common/ohlcv.d.ts.map +1 -0
- package/dist/src/models/common/ohlcv.js +13 -0
- package/dist/src/models/common/ohlcv.js.map +1 -0
- package/dist/src/models/proto/base-proto.d.ts +5 -0
- package/dist/src/models/proto/base-proto.d.ts.map +1 -0
- package/dist/src/models/proto/base-proto.js +9 -0
- package/dist/src/models/proto/base-proto.js.map +1 -0
- package/dist/src/models/proto/messages/authentication/ProtoOAAccountAuthReq.d.ts +5 -0
- package/dist/src/models/proto/messages/authentication/ProtoOAAccountAuthReq.d.ts.map +1 -0
- package/dist/src/models/proto/messages/authentication/ProtoOAAccountAuthReq.js +9 -0
- package/dist/src/models/proto/messages/authentication/ProtoOAAccountAuthReq.js.map +1 -0
- package/dist/src/models/proto/messages/authentication/ProtoOAAccountAuthRes.d.ts +4 -0
- package/dist/src/models/proto/messages/authentication/ProtoOAAccountAuthRes.d.ts.map +1 -0
- package/dist/src/models/proto/messages/authentication/ProtoOAAccountAuthRes.js +8 -0
- package/dist/src/models/proto/messages/authentication/ProtoOAAccountAuthRes.js.map +1 -0
- package/dist/src/models/proto/messages/authentication/ProtoOAApplicationAuthReq.d.ts +6 -0
- package/dist/src/models/proto/messages/authentication/ProtoOAApplicationAuthReq.d.ts.map +1 -0
- package/dist/src/models/proto/messages/authentication/ProtoOAApplicationAuthReq.js +10 -0
- package/dist/src/models/proto/messages/authentication/ProtoOAApplicationAuthReq.js.map +1 -0
- package/dist/src/models/proto/messages/authentication/ProtoOAApplicationAuthRes.d.ts +4 -0
- package/dist/src/models/proto/messages/authentication/ProtoOAApplicationAuthRes.d.ts.map +1 -0
- package/dist/src/models/proto/messages/authentication/ProtoOAApplicationAuthRes.js +8 -0
- package/dist/src/models/proto/messages/authentication/ProtoOAApplicationAuthRes.js.map +1 -0
- package/dist/src/models/proto/messages/common/ProtoOASubscribeSpotsReq.d.ts +6 -0
- package/dist/src/models/proto/messages/common/ProtoOASubscribeSpotsReq.d.ts.map +1 -0
- package/dist/src/models/proto/messages/common/ProtoOASubscribeSpotsReq.js +10 -0
- package/dist/src/models/proto/messages/common/ProtoOASubscribeSpotsReq.js.map +1 -0
- package/dist/src/models/proto/messages/common/ProtoOASubscribeSpotsRes.d.ts +4 -0
- package/dist/src/models/proto/messages/common/ProtoOASubscribeSpotsRes.d.ts.map +1 -0
- package/dist/src/models/proto/messages/common/ProtoOASubscribeSpotsRes.js +8 -0
- package/dist/src/models/proto/messages/common/ProtoOASubscribeSpotsRes.js.map +1 -0
- package/dist/src/models/proto/messages/symbols/ProtoOAGetTrendbarsReq.d.ts +10 -0
- package/dist/src/models/proto/messages/symbols/ProtoOAGetTrendbarsReq.d.ts.map +1 -0
- package/dist/src/models/proto/messages/symbols/ProtoOAGetTrendbarsReq.js +13 -0
- package/dist/src/models/proto/messages/symbols/ProtoOAGetTrendbarsReq.js.map +1 -0
- package/dist/src/models/proto/messages/symbols/ProtoOAGetTrendbarsRes.d.ts +11 -0
- package/dist/src/models/proto/messages/symbols/ProtoOAGetTrendbarsRes.d.ts.map +1 -0
- package/dist/src/models/proto/messages/symbols/ProtoOAGetTrendbarsRes.js +13 -0
- package/dist/src/models/proto/messages/symbols/ProtoOAGetTrendbarsRes.js.map +1 -0
- package/dist/src/models/proto/messages/symbols/ProtoOASubscribeLiveTrendbarReq.d.ts +7 -0
- package/dist/src/models/proto/messages/symbols/ProtoOASubscribeLiveTrendbarReq.d.ts.map +1 -0
- package/dist/src/models/proto/messages/symbols/ProtoOASubscribeLiveTrendbarReq.js +10 -0
- package/dist/src/models/proto/messages/symbols/ProtoOASubscribeLiveTrendbarReq.js.map +1 -0
- package/dist/src/models/proto/messages/symbols/ProtoOASubscribeLiveTrendbarRes.d.ts +4 -0
- package/dist/src/models/proto/messages/symbols/ProtoOASubscribeLiveTrendbarRes.d.ts.map +1 -0
- package/dist/src/models/proto/messages/symbols/ProtoOASubscribeLiveTrendbarRes.js +8 -0
- package/dist/src/models/proto/messages/symbols/ProtoOASubscribeLiveTrendbarRes.js.map +1 -0
- package/dist/src/models/proto/messages/symbols/ProtoOASymbolByIdReq.d.ts +5 -0
- package/dist/src/models/proto/messages/symbols/ProtoOASymbolByIdReq.d.ts.map +1 -0
- package/dist/src/models/proto/messages/symbols/ProtoOASymbolByIdReq.js +9 -0
- package/dist/src/models/proto/messages/symbols/ProtoOASymbolByIdReq.js.map +1 -0
- package/dist/src/models/proto/messages/symbols/ProtoOASymbolByIdRes.d.ts +8 -0
- package/dist/src/models/proto/messages/symbols/ProtoOASymbolByIdRes.d.ts.map +1 -0
- package/dist/src/models/proto/messages/symbols/ProtoOASymbolByIdRes.js +10 -0
- package/dist/src/models/proto/messages/symbols/ProtoOASymbolByIdRes.js.map +1 -0
- package/dist/src/models/proto/messages/symbols/ProtoOASymbolsListReq.d.ts +5 -0
- package/dist/src/models/proto/messages/symbols/ProtoOASymbolsListReq.d.ts.map +1 -0
- package/dist/src/models/proto/messages/symbols/ProtoOASymbolsListReq.js +9 -0
- package/dist/src/models/proto/messages/symbols/ProtoOASymbolsListReq.js.map +1 -0
- package/dist/src/models/proto/messages/symbols/ProtoOASymbolsListRes.d.ts +7 -0
- package/dist/src/models/proto/messages/symbols/ProtoOASymbolsListRes.d.ts.map +1 -0
- package/dist/src/models/proto/messages/symbols/ProtoOASymbolsListRes.js +10 -0
- package/dist/src/models/proto/messages/symbols/ProtoOASymbolsListRes.js.map +1 -0
- package/dist/src/models/proto/messages/symbols/ProtoOAUnsubscribeLiveTrendbarReq.d.ts +7 -0
- package/dist/src/models/proto/messages/symbols/ProtoOAUnsubscribeLiveTrendbarReq.d.ts.map +1 -0
- package/dist/src/models/proto/messages/symbols/ProtoOAUnsubscribeLiveTrendbarReq.js +10 -0
- package/dist/src/models/proto/messages/symbols/ProtoOAUnsubscribeLiveTrendbarReq.js.map +1 -0
- package/dist/src/models/proto/messages/symbols/ProtoOAUnsubscribeLiveTrendbarRes.d.ts +4 -0
- package/dist/src/models/proto/messages/symbols/ProtoOAUnsubscribeLiveTrendbarRes.d.ts.map +1 -0
- package/dist/src/models/proto/messages/symbols/ProtoOAUnsubscribeLiveTrendbarRes.js +8 -0
- package/dist/src/models/proto/messages/symbols/ProtoOAUnsubscribeLiveTrendbarRes.js.map +1 -0
- package/dist/src/models/proto/models/ProtoOAArchivedSymbol.d.ts +7 -0
- package/dist/src/models/proto/models/ProtoOAArchivedSymbol.d.ts.map +1 -0
- package/dist/src/models/proto/models/ProtoOAArchivedSymbol.js +11 -0
- package/dist/src/models/proto/models/ProtoOAArchivedSymbol.js.map +1 -0
- package/dist/src/models/proto/models/ProtoOAErrorRes.d.ts +8 -0
- package/dist/src/models/proto/models/ProtoOAErrorRes.d.ts.map +1 -0
- package/dist/src/models/proto/models/ProtoOAErrorRes.js +12 -0
- package/dist/src/models/proto/models/ProtoOAErrorRes.js.map +1 -0
- package/dist/src/models/proto/models/ProtoOAHoliday.d.ts +9 -0
- package/dist/src/models/proto/models/ProtoOAHoliday.d.ts.map +1 -0
- package/dist/src/models/proto/models/ProtoOAHoliday.js +13 -0
- package/dist/src/models/proto/models/ProtoOAHoliday.js.map +1 -0
- package/dist/src/models/proto/models/ProtoOAInterval.d.ts +6 -0
- package/dist/src/models/proto/models/ProtoOAInterval.d.ts.map +1 -0
- package/dist/src/models/proto/models/ProtoOAInterval.js +10 -0
- package/dist/src/models/proto/models/ProtoOAInterval.js.map +1 -0
- package/dist/src/models/proto/models/ProtoOALightSymbol.d.ts +11 -0
- package/dist/src/models/proto/models/ProtoOALightSymbol.d.ts.map +1 -0
- package/dist/src/models/proto/models/ProtoOALightSymbol.js +15 -0
- package/dist/src/models/proto/models/ProtoOALightSymbol.js.map +1 -0
- package/dist/src/models/proto/models/ProtoOASpotEvent.d.ts +11 -0
- package/dist/src/models/proto/models/ProtoOASpotEvent.d.ts.map +1 -0
- package/dist/src/models/proto/models/ProtoOASpotEvent.js +14 -0
- package/dist/src/models/proto/models/ProtoOASpotEvent.js.map +1 -0
- package/dist/src/models/proto/models/ProtoOASymbol.d.ts +44 -0
- package/dist/src/models/proto/models/ProtoOASymbol.d.ts.map +1 -0
- package/dist/src/models/proto/models/ProtoOASymbol.js +46 -0
- package/dist/src/models/proto/models/ProtoOASymbol.js.map +1 -0
- package/dist/src/models/proto/models/ProtoOATrendbar.d.ts +11 -0
- package/dist/src/models/proto/models/ProtoOATrendbar.d.ts.map +1 -0
- package/dist/src/models/proto/models/ProtoOATrendbar.js +14 -0
- package/dist/src/models/proto/models/ProtoOATrendbar.js.map +1 -0
- package/dist/src/models/proto/models/ProtoOATrendbarPeriod.d.ts +17 -0
- package/dist/src/models/proto/models/ProtoOATrendbarPeriod.d.ts.map +1 -0
- package/dist/src/models/proto/models/ProtoOATrendbarPeriod.js +21 -0
- package/dist/src/models/proto/models/ProtoOATrendbarPeriod.js.map +1 -0
- package/dist/src/models/proto/payload-types/payload-types.enum.d.ts +78 -0
- package/dist/src/models/proto/payload-types/payload-types.enum.d.ts.map +1 -0
- package/dist/src/models/proto/payload-types/payload-types.enum.js +82 -0
- package/dist/src/models/proto/payload-types/payload-types.enum.js.map +1 -0
- package/dist/src/utils/price.utils.d.ts +4 -0
- package/dist/src/utils/price.utils.d.ts.map +1 -0
- package/dist/src/utils/price.utils.js +36 -0
- package/dist/src/utils/price.utils.js.map +1 -0
- package/dist/src/utils/sleep.utils.d.ts +5 -0
- package/dist/src/utils/sleep.utils.d.ts.map +1 -0
- package/dist/src/utils/sleep.utils.js +15 -0
- package/dist/src/utils/sleep.utils.js.map +1 -0
- package/dist/src/utils/timeframe.utils.d.ts +6 -0
- package/dist/src/utils/timeframe.utils.d.ts.map +1 -0
- package/dist/src/utils/timeframe.utils.js +47 -0
- package/dist/src/utils/timeframe.utils.js.map +1 -0
- package/dist/src/utils/trendbar.utils.d.ts +7 -0
- package/dist/src/utils/trendbar.utils.d.ts.map +1 -0
- package/dist/src/utils/trendbar.utils.js +28 -0
- package/dist/src/utils/trendbar.utils.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/dist/vitest.config.d.ts +3 -0
- package/dist/vitest.config.d.ts.map +1 -0
- package/dist/vitest.config.js +12 -0
- package/dist/vitest.config.js.map +1 -0
- package/package.json +48 -0
- package/src/classes/client.test.ts +100 -0
- package/src/classes/client.ts +102 -0
- package/src/classes/errors/client-not-connected.error.ts +7 -0
- package/src/classes/errors/connection.error.ts +7 -0
- package/src/classes/logger.ts +26 -0
- package/src/classes/managers/authentication/authentication.manager.test.ts +187 -0
- package/src/classes/managers/authentication/authentication.manager.ts +65 -0
- package/src/classes/managers/authentication/errors/application-auth.error.ts +9 -0
- package/src/classes/managers/authentication/errors/user-auth.error.ts +9 -0
- package/src/classes/managers/models/base.manager.ts +50 -0
- package/src/classes/managers/models/credentials.model.ts +15 -0
- package/src/classes/managers/symbols/errors/get-symbols-details.error.ts +9 -0
- package/src/classes/managers/symbols/errors/get-symbols-list.error.ts +9 -0
- package/src/classes/managers/symbols/errors/get-trend-bars.error.ts +7 -0
- package/src/classes/managers/symbols/errors/subscribe-live-trend-bars.error.ts +17 -0
- package/src/classes/managers/symbols/errors/subscribe-spot-events.error.ts +9 -0
- package/src/classes/managers/symbols/errors/unsubscribe-live-trend-bars.error.ts +9 -0
- package/src/classes/managers/symbols/symbols-updates.manager.ts +440 -0
- package/src/classes/managers/symbols/symbols.manager.test.ts +455 -0
- package/src/classes/managers/symbols/symbols.manager.ts +134 -0
- package/src/classes/models/client-configuration.model.ts +39 -0
- package/src/classes/models/ctrader-x-error.model.ts +16 -0
- package/src/config/config.ts +48 -0
- package/src/index.ts +4 -0
- package/src/models/common/ohlcv.ts +19 -0
- package/src/models/proto/base-proto.ts +13 -0
- package/src/models/proto/messages/authentication/ProtoOAAccountAuthReq.ts +8 -0
- package/src/models/proto/messages/authentication/ProtoOAAccountAuthRes.ts +3 -0
- package/src/models/proto/messages/authentication/ProtoOAApplicationAuthReq.ts +13 -0
- package/src/models/proto/messages/authentication/ProtoOAApplicationAuthRes.ts +3 -0
- package/src/models/proto/messages/common/ProtoOASubscribeSpotsReq.ts +6 -0
- package/src/models/proto/messages/common/ProtoOASubscribeSpotsRes.ts +3 -0
- package/src/models/proto/messages/symbols/ProtoOAGetTrendbarsReq.ts +29 -0
- package/src/models/proto/messages/symbols/ProtoOAGetTrendbarsRes.ts +30 -0
- package/src/models/proto/messages/symbols/ProtoOASubscribeLiveTrendbarReq.ts +7 -0
- package/src/models/proto/messages/symbols/ProtoOASubscribeLiveTrendbarRes.ts +3 -0
- package/src/models/proto/messages/symbols/ProtoOASymbolByIdReq.ts +8 -0
- package/src/models/proto/messages/symbols/ProtoOASymbolByIdRes.ts +15 -0
- package/src/models/proto/messages/symbols/ProtoOASymbolsListReq.ts +8 -0
- package/src/models/proto/messages/symbols/ProtoOASymbolsListRes.ts +14 -0
- package/src/models/proto/messages/symbols/ProtoOAUnsubscribeLiveTrendbarReq.ts +11 -0
- package/src/models/proto/messages/symbols/ProtoOAUnsubscribeLiveTrendbarRes.ts +3 -0
- package/src/models/proto/models/ProtoOAArchivedSymbol.ts +21 -0
- package/src/models/proto/models/ProtoOAErrorRes.ts +20 -0
- package/src/models/proto/models/ProtoOAHoliday.ts +31 -0
- package/src/models/proto/models/ProtoOAInterval.ts +16 -0
- package/src/models/proto/models/ProtoOALightSymbol.ts +38 -0
- package/src/models/proto/models/ProtoOASpotEvent.ts +31 -0
- package/src/models/proto/models/ProtoOASymbol.ts +220 -0
- package/src/models/proto/models/ProtoOATrendbar.ts +11 -0
- package/src/models/proto/models/ProtoOATrendbarPeriod.ts +16 -0
- package/src/models/proto/payload-types/payload-types.enum.ts +77 -0
- package/src/utils/price.utils.ts +42 -0
- package/src/utils/sleep.utils.ts +13 -0
- package/src/utils/timeframe.utils.ts +50 -0
- package/src/utils/trendbar.utils.ts +59 -0
- package/tsconfig.tsbuildinfo +1 -0
- package/vitest.config.ts +11 -0
package/.env
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
CTRADERX_SPOTWARE_CTID_TRADER_ACCOUNT_ID="46253140"
|
|
2
|
+
CTRADERX_SPOTWARE_ACCESS_TOKEN="i7-nEn2jYKVUQZ2Qf6dO5fqvd2X4tK8DMLH1B4bN_Ys"
|
|
3
|
+
CTRADERX_SPOTWARE_CLIENT_SECRET="NWbCez6cZQvHRd7uLgoDlJLcI8TnVVr3qRiZSaNXfX1quUdiVE"
|
|
4
|
+
CTRADERX_SPOTWARE_CLIENT_ID="14188_z6yZLtlRvy3qNtD090IZvhdEwkjMfH1ICQHn5X6nZ2IQoucaTb"
|
|
5
|
+
|
|
6
|
+
CTRADERX_DEBUG_LOGS="true"
|
package/.prettierrc
ADDED
package/README.md
ADDED
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
# cTraderX
|
|
2
|
+
|
|
3
|
+
A typescript implementation of the cTrader API.
|
|
4
|
+
Strongly typed and easy to use.
|
|
5
|
+
|
|
6
|
+
Strictly follows the documentation provided by Spotware for the messages and
|
|
7
|
+
payloads definition. You can find the full specification at:
|
|
8
|
+
[Spotware Messages specification](help.ctrader.com/open-api/messages)
|
|
9
|
+
|
|
10
|
+
Under the hood the `cTraderX` uses ProtoBuffer messages for communicating with
|
|
11
|
+
the cTrader API. But to the end user the procedure is completely abstracted
|
|
12
|
+
behind an intuitive and easy to use interface.
|
|
13
|
+
|
|
14
|
+
# Features
|
|
15
|
+
|
|
16
|
+
- Basic authentication (still does not support automatic flow)
|
|
17
|
+
- Symbols information fetching
|
|
18
|
+
- Symbols historical bars fetching
|
|
19
|
+
- Symbol live bars updates subscription
|
|
20
|
+
|
|
21
|
+
# Getting started
|
|
22
|
+
|
|
23
|
+
Install the package:
|
|
24
|
+
|
|
25
|
+
```sh
|
|
26
|
+
npm i @himalaya-quant/ctrader-x
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
Import the client and instantiate it:
|
|
30
|
+
|
|
31
|
+
```ts
|
|
32
|
+
import { cTraderX } from '@himalaya-quant/ctrader-x';
|
|
33
|
+
|
|
34
|
+
const client = new cTraderX({
|
|
35
|
+
// by default cTraderX tries to read the credentials from env
|
|
36
|
+
// see Authentication section for more information.
|
|
37
|
+
// optional configuration options:
|
|
38
|
+
|
|
39
|
+
// live?: boolean;
|
|
40
|
+
// clientId?: string;
|
|
41
|
+
// clientSecret?: string;
|
|
42
|
+
// accessToken?: string;
|
|
43
|
+
// ctidTraderAccountId?: number;
|
|
44
|
+
// logger?: ILogger;
|
|
45
|
+
});
|
|
46
|
+
|
|
47
|
+
await client.connect();
|
|
48
|
+
console.log('connected!');
|
|
49
|
+
|
|
50
|
+
const symbolsList = await client.symbols.getSymbolsList();
|
|
51
|
+
console.log(symbolsList);
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
### Examples:
|
|
55
|
+
|
|
56
|
+
For more examples, see the `src/examples` folder where you can find examples about:
|
|
57
|
+
|
|
58
|
+
- authentication
|
|
59
|
+
- get symbols list & info
|
|
60
|
+
- get symbol bars
|
|
61
|
+
- subscribe to live bars
|
|
62
|
+
|
|
63
|
+
And other examples that might come in the future.
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
# Authentication
|
|
67
|
+
|
|
68
|
+
In order to use any of the client methods, you'll need to provide credentials
|
|
69
|
+
to be used for the application and user authentication.
|
|
70
|
+
|
|
71
|
+
These credentials can be provided during the `cTraderX` client instantiation or
|
|
72
|
+
via .env config:
|
|
73
|
+
|
|
74
|
+
```
|
|
75
|
+
CTRADERX_SPOTWARE_CTID_TRADER_ACCOUNT_ID
|
|
76
|
+
CTRADERX_SPOTWARE_ACCESS_TOKEN
|
|
77
|
+
CTRADERX_SPOTWARE_CLIENT_SECRET
|
|
78
|
+
CTRADERX_SPOTWARE_CLIENT_ID
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
# Logging
|
|
82
|
+
|
|
83
|
+
cTraderX uses a basic logger implementation, that for simplicity sake relies on
|
|
84
|
+
the console logger.
|
|
85
|
+
|
|
86
|
+
You can toggle debug logs on and off via env variable:
|
|
87
|
+
|
|
88
|
+
```
|
|
89
|
+
CTRADERX_DEBUG_LOGS
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
Or you can provide your own logger implementation by implementing the `ILogger`
|
|
93
|
+
interface, and providing it during `cTraderX` client instantiation.
|
|
94
|
+
|
|
95
|
+
<br>
|
|
96
|
+
<center>Developed with ❤️ by Caius Citiriga</center>
|
package/changelog.md
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# 0.0.7
|
|
2
|
+
- Improved the way subscribeLiveTrendBars builds the bars. Now relying mainly on
|
|
3
|
+
the updates found inside the `trendbar` array of the `ProtoOASpotEvent`.
|
|
4
|
+
|
|
5
|
+
# 0.0.6
|
|
6
|
+
|
|
7
|
+
- Fix heartbeat
|
|
8
|
+
- Changed return type of getTrendBars to OHLCV for convenience of consumer's use
|
|
9
|
+
- Changed return type of subscribeLiveTrendBars to OHLCV, symbolId and period for convenience of consumer's use
|
|
10
|
+
- Improved subscribeLiveTrendBars internal workings by tracking subscriptions
|
|
11
|
+
- Adding unsubscribeLiveTrendBars support
|
|
12
|
+
|
|
13
|
+
# 0.0.5
|
|
14
|
+
|
|
15
|
+
Adds subscribeToLiveTrendBars:
|
|
16
|
+
Gives the ability to subscribe to live price data, given a timeframe and a
|
|
17
|
+
symbolId. Returns an RxJs Observable the can be subscribed to and receive
|
|
18
|
+
realtime updates. Still missing unsubscribe feature.
|
|
19
|
+
|
|
20
|
+
# 0.0.4
|
|
21
|
+
|
|
22
|
+
Casting symbolsIds to strings and assigning missing ctidTraderAccountId to
|
|
23
|
+
ProtoOASymbolByIdReq request payload
|
|
24
|
+
|
|
25
|
+
# 0.0.3
|
|
26
|
+
|
|
27
|
+
Now the getSymbolsList will return the full symbols properties lists.
|
|
28
|
+
This is achieved by internally calling the `getSymbolsDetails` method, after we
|
|
29
|
+
receive the `ProtoOALightSymbol` array, and merging the results of the
|
|
30
|
+
`ProtoOALightSymbol` and the `ProtoOASymbol`.
|
|
31
|
+
|
|
32
|
+
# 0.0.2
|
|
33
|
+
|
|
34
|
+
Adds symbols manager, responsible for:
|
|
35
|
+
|
|
36
|
+
- getting symbols list
|
|
37
|
+
|
|
38
|
+
Better code organization.
|
|
39
|
+
|
|
40
|
+
# 0.0.1
|
|
41
|
+
|
|
42
|
+
Basic authentication. Based on:
|
|
43
|
+
CTID_TRADER_ACCOUNT_ID
|
|
44
|
+
ACCESS_TOKEN
|
|
45
|
+
CLIENT_SECRET
|
|
46
|
+
CLIENT_ID
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { IConfiguration } from './models/client-configuration.model';
|
|
2
|
+
import { SymbolsManager } from './managers/symbols/symbols.manager';
|
|
3
|
+
import { SymbolsUpdatesManager } from './managers/symbols/symbols-updates.manager';
|
|
4
|
+
export declare class cTraderX {
|
|
5
|
+
private readonly port;
|
|
6
|
+
private readonly host;
|
|
7
|
+
private readonly logger;
|
|
8
|
+
private readonly connection;
|
|
9
|
+
private readonly symbolsManager;
|
|
10
|
+
private readonly authManager;
|
|
11
|
+
private readonly symbolsUpdatesManager;
|
|
12
|
+
private isConnected;
|
|
13
|
+
constructor(config?: IConfiguration);
|
|
14
|
+
get symbols(): SymbolsManager;
|
|
15
|
+
get symbolsUpdates(): SymbolsUpdatesManager;
|
|
16
|
+
disconnect(): void;
|
|
17
|
+
connect(): Promise<void>;
|
|
18
|
+
private sendHeartbeat;
|
|
19
|
+
private ensureConnectedOrThrow;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/classes/client.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAEpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,4CAA4C,CAAC;AAEnF,qBAAa,QAAQ;IACjB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAQ;IAC7B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAU;IACjC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAoB;IAE/C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiB;IAChD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAwB;IACpD,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAwB;IAE9D,OAAO,CAAC,WAAW,CAAS;gBAEhB,MAAM,CAAC,EAAE,cAAc;IAsCnC,IAAI,OAAO,mBAGV;IAED,IAAI,cAAc,0BAGjB;IAED,UAAU;IAIJ,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAe9B,OAAO,CAAC,aAAa;IAQrB,OAAO,CAAC,sBAAsB;CAGjC"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.cTraderX = void 0;
|
|
4
|
+
const ctrader_layer_1 = require("@reiryoku/ctrader-layer");
|
|
5
|
+
const logger_1 = require("./logger");
|
|
6
|
+
const authentication_manager_1 = require("./managers/authentication/authentication.manager");
|
|
7
|
+
const config_1 = require("../config/config");
|
|
8
|
+
const connection_error_1 = require("./errors/connection.error");
|
|
9
|
+
const ctrader_x_error_model_1 = require("./models/ctrader-x-error.model");
|
|
10
|
+
const symbols_manager_1 = require("./managers/symbols/symbols.manager");
|
|
11
|
+
const client_not_connected_error_1 = require("./errors/client-not-connected.error");
|
|
12
|
+
const symbols_updates_manager_1 = require("./managers/symbols/symbols-updates.manager");
|
|
13
|
+
class cTraderX {
|
|
14
|
+
port = 5035;
|
|
15
|
+
host;
|
|
16
|
+
logger;
|
|
17
|
+
connection;
|
|
18
|
+
symbolsManager;
|
|
19
|
+
authManager;
|
|
20
|
+
symbolsUpdatesManager;
|
|
21
|
+
isConnected = false;
|
|
22
|
+
constructor(config) {
|
|
23
|
+
this.host = config?.live
|
|
24
|
+
? `live.ctraderapi.com`
|
|
25
|
+
: `demo.ctraderapi.com`;
|
|
26
|
+
this.logger = config?.logger || new logger_1.Logger();
|
|
27
|
+
const credentials = {
|
|
28
|
+
clientId: config?.clientId || config_1.Config.SPOTWARE_CLIENT_ID,
|
|
29
|
+
accessToken: config?.accessToken || config_1.Config.SPOTWARE_ACCESS_TOKEN,
|
|
30
|
+
clientSecret: config?.clientSecret || config_1.Config.SPOTWARE_CLIENT_SECRET,
|
|
31
|
+
ctidTraderAccountId: config?.ctidTraderAccountId ||
|
|
32
|
+
config_1.Config.SPOTWARE_CTID_TRADER_ACCOUNT_ID,
|
|
33
|
+
};
|
|
34
|
+
this.connection = new ctrader_layer_1.CTraderConnection({
|
|
35
|
+
host: this.host,
|
|
36
|
+
port: this.port,
|
|
37
|
+
});
|
|
38
|
+
this.symbolsManager = new symbols_manager_1.SymbolsManager(credentials, this.connection, this.logger);
|
|
39
|
+
this.authManager = new authentication_manager_1.AuthenticationManager(credentials, this.connection, this.logger);
|
|
40
|
+
this.symbolsUpdatesManager = new symbols_updates_manager_1.SymbolsUpdatesManager(credentials, this.connection, this.logger, this.symbolsManager);
|
|
41
|
+
}
|
|
42
|
+
get symbols() {
|
|
43
|
+
this.ensureConnectedOrThrow();
|
|
44
|
+
return this.symbolsManager;
|
|
45
|
+
}
|
|
46
|
+
get symbolsUpdates() {
|
|
47
|
+
this.ensureConnectedOrThrow();
|
|
48
|
+
return this.symbolsUpdatesManager;
|
|
49
|
+
}
|
|
50
|
+
disconnect() {
|
|
51
|
+
this.connection.close();
|
|
52
|
+
}
|
|
53
|
+
async connect() {
|
|
54
|
+
if (this.isConnected)
|
|
55
|
+
return;
|
|
56
|
+
try {
|
|
57
|
+
await this.connection.open();
|
|
58
|
+
await this.authManager.authenticateApp();
|
|
59
|
+
await this.authManager.authenticateUser();
|
|
60
|
+
this.isConnected = true;
|
|
61
|
+
this.sendHeartbeat();
|
|
62
|
+
}
|
|
63
|
+
catch (e) {
|
|
64
|
+
const message = ctrader_x_error_model_1.cTraderXError.getMessageError(e);
|
|
65
|
+
this.logger.error(`Error opening connection: ${message}`);
|
|
66
|
+
throw new connection_error_1.ConnectionError(message);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
sendHeartbeat() {
|
|
70
|
+
if (!this.isConnected)
|
|
71
|
+
return;
|
|
72
|
+
this.connection.sendHeartbeat();
|
|
73
|
+
setTimeout(() => {
|
|
74
|
+
this.sendHeartbeat();
|
|
75
|
+
}, 1000 * 9);
|
|
76
|
+
}
|
|
77
|
+
ensureConnectedOrThrow() {
|
|
78
|
+
if (!this.isConnected)
|
|
79
|
+
throw new client_not_connected_error_1.ClientNotConnectedError();
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
exports.cTraderX = cTraderX;
|
|
83
|
+
//# sourceMappingURL=client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/classes/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.test.d.ts","sourceRoot":"","sources":["../../../src/classes/client.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const vitest_1 = require("vitest");
|
|
4
|
+
const config_1 = require("../config/config");
|
|
5
|
+
const connection_error_1 = require("./errors/connection.error");
|
|
6
|
+
const client_1 = require("./client");
|
|
7
|
+
(0, vitest_1.describe)('cTraderX Client - Integration Tests', () => {
|
|
8
|
+
let client;
|
|
9
|
+
(0, vitest_1.describe)('Constructor and Configuration', () => {
|
|
10
|
+
(0, vitest_1.afterEach)(async () => {
|
|
11
|
+
client.disconnect();
|
|
12
|
+
});
|
|
13
|
+
(0, vitest_1.it)('should create client with default demo configuration', () => {
|
|
14
|
+
client = new client_1.cTraderX();
|
|
15
|
+
(0, vitest_1.expect)(client).toBeDefined();
|
|
16
|
+
});
|
|
17
|
+
(0, vitest_1.it)('should create client with custom configuration', () => {
|
|
18
|
+
const config = {
|
|
19
|
+
live: false,
|
|
20
|
+
clientId: config_1.Config.SPOTWARE_CLIENT_ID,
|
|
21
|
+
clientSecret: config_1.Config.SPOTWARE_CLIENT_SECRET,
|
|
22
|
+
accessToken: config_1.Config.SPOTWARE_ACCESS_TOKEN,
|
|
23
|
+
ctidTraderAccountId: config_1.Config.SPOTWARE_CTID_TRADER_ACCOUNT_ID,
|
|
24
|
+
};
|
|
25
|
+
client = new client_1.cTraderX(config);
|
|
26
|
+
(0, vitest_1.expect)(client).toBeDefined();
|
|
27
|
+
});
|
|
28
|
+
});
|
|
29
|
+
(0, vitest_1.describe)('Connection - Manual', () => {
|
|
30
|
+
(0, vitest_1.it)('should connect successfully with valid credentials', async () => {
|
|
31
|
+
client = new client_1.cTraderX({
|
|
32
|
+
clientId: config_1.Config.SPOTWARE_CLIENT_ID,
|
|
33
|
+
clientSecret: config_1.Config.SPOTWARE_CLIENT_SECRET,
|
|
34
|
+
accessToken: config_1.Config.SPOTWARE_ACCESS_TOKEN,
|
|
35
|
+
ctidTraderAccountId: config_1.Config.SPOTWARE_CTID_TRADER_ACCOUNT_ID,
|
|
36
|
+
});
|
|
37
|
+
await (0, vitest_1.expect)(client.connect()).resolves.not.toThrow();
|
|
38
|
+
}, 30000);
|
|
39
|
+
(0, vitest_1.it)('should not reconnect if already connected', async () => {
|
|
40
|
+
client = new client_1.cTraderX({
|
|
41
|
+
clientId: config_1.Config.SPOTWARE_CLIENT_ID,
|
|
42
|
+
clientSecret: config_1.Config.SPOTWARE_CLIENT_SECRET,
|
|
43
|
+
accessToken: config_1.Config.SPOTWARE_ACCESS_TOKEN,
|
|
44
|
+
ctidTraderAccountId: config_1.Config.SPOTWARE_CTID_TRADER_ACCOUNT_ID,
|
|
45
|
+
});
|
|
46
|
+
await client.connect();
|
|
47
|
+
await (0, vitest_1.expect)(client.connect()).resolves.not.toThrow();
|
|
48
|
+
}, 30000);
|
|
49
|
+
(0, vitest_1.it)('should throw ConnectionError with invalid credentials', async () => {
|
|
50
|
+
client = new client_1.cTraderX({
|
|
51
|
+
clientId: 'invalid_id',
|
|
52
|
+
clientSecret: 'invalid_secret',
|
|
53
|
+
accessToken: 'invalid_token',
|
|
54
|
+
ctidTraderAccountId: 123456,
|
|
55
|
+
});
|
|
56
|
+
await (0, vitest_1.expect)(client.connect()).rejects.toThrow(connection_error_1.ConnectionError);
|
|
57
|
+
}, 30000);
|
|
58
|
+
});
|
|
59
|
+
(0, vitest_1.describe)('Host Selection', () => {
|
|
60
|
+
(0, vitest_1.it)('should use demo host by default', () => {
|
|
61
|
+
client = new client_1.cTraderX();
|
|
62
|
+
(0, vitest_1.expect)(client).toBeDefined();
|
|
63
|
+
});
|
|
64
|
+
(0, vitest_1.it)('should use live host when live flag is true', () => {
|
|
65
|
+
client = new client_1.cTraderX({
|
|
66
|
+
live: true,
|
|
67
|
+
});
|
|
68
|
+
(0, vitest_1.expect)(client).toBeDefined();
|
|
69
|
+
});
|
|
70
|
+
});
|
|
71
|
+
(0, vitest_1.describe)('Full Integration Flow', () => {
|
|
72
|
+
(0, vitest_1.it)('should complete full connection flow with real credentials', async () => {
|
|
73
|
+
client = new client_1.cTraderX({
|
|
74
|
+
clientId: config_1.Config.SPOTWARE_CLIENT_ID,
|
|
75
|
+
clientSecret: config_1.Config.SPOTWARE_CLIENT_SECRET,
|
|
76
|
+
accessToken: config_1.Config.SPOTWARE_ACCESS_TOKEN,
|
|
77
|
+
ctidTraderAccountId: config_1.Config.SPOTWARE_CTID_TRADER_ACCOUNT_ID,
|
|
78
|
+
});
|
|
79
|
+
await (0, vitest_1.expect)(client.connect()).resolves.not.toThrow();
|
|
80
|
+
}, 30000);
|
|
81
|
+
});
|
|
82
|
+
});
|
|
83
|
+
//# sourceMappingURL=client.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.test.js","sourceRoot":"","sources":["../../../src/classes/client.test.ts"],"names":[],"mappings":";;AAAA,mCAAqE;AACrE,6CAA0C;AAC1C,gEAA4D;AAC5D,qCAAoC;AAGpC,IAAA,iBAAQ,EAAC,qCAAqC,EAAE,GAAG,EAAE;IACjD,IAAI,MAAgB,CAAC;IAErB,IAAA,iBAAQ,EAAC,+BAA+B,EAAE,GAAG,EAAE;QAC3C,IAAA,kBAAS,EAAC,KAAK,IAAI,EAAE;YACjB,MAAM,CAAC,UAAU,EAAE,CAAC;QACxB,CAAC,CAAC,CAAC;QAEH,IAAA,WAAE,EAAC,sDAAsD,EAAE,GAAG,EAAE;YAC5D,MAAM,GAAG,IAAI,iBAAQ,EAAE,CAAC;YACxB,IAAA,eAAM,EAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;QACjC,CAAC,CAAC,CAAC;QAEH,IAAA,WAAE,EAAC,gDAAgD,EAAE,GAAG,EAAE;YACtD,MAAM,MAAM,GAAmB;gBAC3B,IAAI,EAAE,KAAK;gBACX,QAAQ,EAAE,eAAM,CAAC,kBAAkB;gBACnC,YAAY,EAAE,eAAM,CAAC,sBAAsB;gBAC3C,WAAW,EAAE,eAAM,CAAC,qBAAqB;gBACzC,mBAAmB,EAAE,eAAM,CAAC,+BAA+B;aAC9D,CAAC;YAEF,MAAM,GAAG,IAAI,iBAAQ,CAAC,MAAM,CAAC,CAAC;YAC9B,IAAA,eAAM,EAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;QACjC,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,IAAA,iBAAQ,EAAC,qBAAqB,EAAE,GAAG,EAAE;QACjC,IAAA,WAAE,EAAC,oDAAoD,EAAE,KAAK,IAAI,EAAE;YAChE,MAAM,GAAG,IAAI,iBAAQ,CAAC;gBAClB,QAAQ,EAAE,eAAM,CAAC,kBAAkB;gBACnC,YAAY,EAAE,eAAM,CAAC,sBAAsB;gBAC3C,WAAW,EAAE,eAAM,CAAC,qBAAqB;gBACzC,mBAAmB,EAAE,eAAM,CAAC,+BAA+B;aAC9D,CAAC,CAAC;YAEH,MAAM,IAAA,eAAM,EAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;QAC1D,CAAC,EAAE,KAAK,CAAC,CAAC;QAEV,IAAA,WAAE,EAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;YACvD,MAAM,GAAG,IAAI,iBAAQ,CAAC;gBAClB,QAAQ,EAAE,eAAM,CAAC,kBAAkB;gBACnC,YAAY,EAAE,eAAM,CAAC,sBAAsB;gBAC3C,WAAW,EAAE,eAAM,CAAC,qBAAqB;gBACzC,mBAAmB,EAAE,eAAM,CAAC,+BAA+B;aAC9D,CAAC,CAAC;YAEH,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;YAGvB,MAAM,IAAA,eAAM,EAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;QAC1D,CAAC,EAAE,KAAK,CAAC,CAAC;QAEV,IAAA,WAAE,EAAC,uDAAuD,EAAE,KAAK,IAAI,EAAE;YACnE,MAAM,GAAG,IAAI,iBAAQ,CAAC;gBAClB,QAAQ,EAAE,YAAY;gBACtB,YAAY,EAAE,gBAAgB;gBAC9B,WAAW,EAAE,eAAe;gBAC5B,mBAAmB,EAAE,MAAM;aAC9B,CAAC,CAAC;YAEH,MAAM,IAAA,eAAM,EAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,kCAAe,CAAC,CAAC;QACpE,CAAC,EAAE,KAAK,CAAC,CAAC;IACd,CAAC,CAAC,CAAC;IAEH,IAAA,iBAAQ,EAAC,gBAAgB,EAAE,GAAG,EAAE;QAC5B,IAAA,WAAE,EAAC,iCAAiC,EAAE,GAAG,EAAE;YACvC,MAAM,GAAG,IAAI,iBAAQ,EAAE,CAAC;YAGxB,IAAA,eAAM,EAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;QACjC,CAAC,CAAC,CAAC;QAEH,IAAA,WAAE,EAAC,6CAA6C,EAAE,GAAG,EAAE;YACnD,MAAM,GAAG,IAAI,iBAAQ,CAAC;gBAClB,IAAI,EAAE,IAAI;aACb,CAAC,CAAC;YACH,IAAA,eAAM,EAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;QACjC,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,IAAA,iBAAQ,EAAC,uBAAuB,EAAE,GAAG,EAAE;QACnC,IAAA,WAAE,EAAC,4DAA4D,EAAE,KAAK,IAAI,EAAE;YACxE,MAAM,GAAG,IAAI,iBAAQ,CAAC;gBAClB,QAAQ,EAAE,eAAM,CAAC,kBAAkB;gBACnC,YAAY,EAAE,eAAM,CAAC,sBAAsB;gBAC3C,WAAW,EAAE,eAAM,CAAC,qBAAqB;gBACzC,mBAAmB,EAAE,eAAM,CAAC,+BAA+B;aAC9D,CAAC,CAAC;YAEH,MAAM,IAAA,eAAM,EAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;QAC1D,CAAC,EAAE,KAAK,CAAC,CAAC;IACd,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client-not-connected.error.d.ts","sourceRoot":"","sources":["../../../../src/classes/errors/client-not-connected.error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAEhE,qBAAa,uBAAwB,SAAQ,aAAa;;CAIzD"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ClientNotConnectedError = void 0;
|
|
4
|
+
const ctrader_x_error_model_1 = require("../models/ctrader-x-error.model");
|
|
5
|
+
class ClientNotConnectedError extends ctrader_x_error_model_1.cTraderXError {
|
|
6
|
+
constructor() {
|
|
7
|
+
super(`Client not connected error`);
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
exports.ClientNotConnectedError = ClientNotConnectedError;
|
|
11
|
+
//# sourceMappingURL=client-not-connected.error.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client-not-connected.error.js","sourceRoot":"","sources":["../../../../src/classes/errors/client-not-connected.error.ts"],"names":[],"mappings":";;;AAAA,2EAAgE;AAEhE,MAAa,uBAAwB,SAAQ,qCAAa;IACtD;QACI,KAAK,CAAC,4BAA4B,CAAC,CAAC;IACxC,CAAC;CACJ;AAJD,0DAIC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connection.error.d.ts","sourceRoot":"","sources":["../../../../src/classes/errors/connection.error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAEhE,qBAAa,eAAgB,SAAQ,aAAa;gBAClC,OAAO,EAAE,MAAM;CAG9B"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ConnectionError = void 0;
|
|
4
|
+
const ctrader_x_error_model_1 = require("../models/ctrader-x-error.model");
|
|
5
|
+
class ConnectionError extends ctrader_x_error_model_1.cTraderXError {
|
|
6
|
+
constructor(message) {
|
|
7
|
+
super(`Connection error: ${message}`);
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
exports.ConnectionError = ConnectionError;
|
|
11
|
+
//# sourceMappingURL=connection.error.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connection.error.js","sourceRoot":"","sources":["../../../../src/classes/errors/connection.error.ts"],"names":[],"mappings":";;;AAAA,2EAAgE;AAEhE,MAAa,eAAgB,SAAQ,qCAAa;IAC9C,YAAY,OAAe;QACvB,KAAK,CAAC,qBAAqB,OAAO,EAAE,CAAC,CAAC;IAC1C,CAAC;CACJ;AAJD,0CAIC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export interface ILogger {
|
|
2
|
+
debug(message: string): void;
|
|
3
|
+
log(message: string): void;
|
|
4
|
+
error(message: string): void;
|
|
5
|
+
warn(message: string): void;
|
|
6
|
+
}
|
|
7
|
+
export declare class Logger implements ILogger {
|
|
8
|
+
debug(message: string): void;
|
|
9
|
+
log(message: string): void;
|
|
10
|
+
error(message: string): void;
|
|
11
|
+
warn(message: string): void;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=logger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../src/classes/logger.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,OAAO;IACpB,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAED,qBAAa,MAAO,YAAW,OAAO;IAClC,KAAK,CAAC,OAAO,EAAE,MAAM;IAIrB,GAAG,CAAC,OAAO,EAAE,MAAM;IAInB,KAAK,CAAC,OAAO,EAAE,MAAM;IAIrB,IAAI,CAAC,OAAO,EAAE,MAAM;CAGvB"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Logger = void 0;
|
|
4
|
+
const config_1 = require("../config/config");
|
|
5
|
+
class Logger {
|
|
6
|
+
debug(message) {
|
|
7
|
+
if (config_1.Config.DEBUG_LOGS)
|
|
8
|
+
console.log(`🐛 ${message}`);
|
|
9
|
+
}
|
|
10
|
+
log(message) {
|
|
11
|
+
console.log(`ℹ️ ${message}`);
|
|
12
|
+
}
|
|
13
|
+
error(message) {
|
|
14
|
+
console.log(`❌ ${message}`);
|
|
15
|
+
}
|
|
16
|
+
warn(message) {
|
|
17
|
+
console.log(`⚠️ ${message}`);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
exports.Logger = Logger;
|
|
21
|
+
//# sourceMappingURL=logger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../src/classes/logger.ts"],"names":[],"mappings":";;;AAAA,6CAA0C;AAS1C,MAAa,MAAM;IACf,KAAK,CAAC,OAAe;QACjB,IAAI,eAAM,CAAC,UAAU;YAAE,OAAO,CAAC,GAAG,CAAC,MAAM,OAAO,EAAE,CAAC,CAAC;IACxD,CAAC;IAED,GAAG,CAAC,OAAe;QACf,OAAO,CAAC,GAAG,CAAC,MAAM,OAAO,EAAE,CAAC,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,OAAe;QACjB,OAAO,CAAC,GAAG,CAAC,KAAK,OAAO,EAAE,CAAC,CAAC;IAChC,CAAC;IAED,IAAI,CAAC,OAAe;QAChB,OAAO,CAAC,GAAG,CAAC,MAAM,OAAO,EAAE,CAAC,CAAC;IACjC,CAAC;CACJ;AAhBD,wBAgBC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { CTraderConnection } from '@reiryoku/ctrader-layer';
|
|
2
|
+
import { ILogger } from '../../logger';
|
|
3
|
+
import { BaseManager } from '../models/base.manager';
|
|
4
|
+
import { ICredentials } from '../models/credentials.model';
|
|
5
|
+
export declare class AuthenticationManager extends BaseManager {
|
|
6
|
+
protected readonly credentials: ICredentials;
|
|
7
|
+
protected readonly connection: CTraderConnection;
|
|
8
|
+
protected readonly logger: ILogger;
|
|
9
|
+
constructor(credentials: ICredentials, connection: CTraderConnection, logger: ILogger);
|
|
10
|
+
authenticateApp(): Promise<void>;
|
|
11
|
+
authenticateUser(): Promise<void>;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=authentication.manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authentication.manager.d.ts","sourceRoot":"","sources":["../../../../../src/classes/managers/authentication/authentication.manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE5D,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAM3D,qBAAa,qBAAsB,SAAQ,WAAW;IAE9C,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,YAAY;IAC5C,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,iBAAiB;IAChD,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO;gBAFf,WAAW,EAAE,YAAY,EACzB,UAAU,EAAE,iBAAiB,EAC7B,MAAM,EAAE,OAAO;IAKhC,eAAe;IAuBf,gBAAgB;CAsBzB"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AuthenticationManager = void 0;
|
|
4
|
+
const base_manager_1 = require("../models/base.manager");
|
|
5
|
+
const user_auth_error_1 = require("./errors/user-auth.error");
|
|
6
|
+
const application_auth_error_1 = require("./errors/application-auth.error");
|
|
7
|
+
const ProtoOAAccountAuthReq_1 = require("../../../models/proto/messages/authentication/ProtoOAAccountAuthReq");
|
|
8
|
+
const ProtoOAApplicationAuthReq_1 = require("../../../models/proto/messages/authentication/ProtoOAApplicationAuthReq");
|
|
9
|
+
class AuthenticationManager extends base_manager_1.BaseManager {
|
|
10
|
+
credentials;
|
|
11
|
+
connection;
|
|
12
|
+
logger;
|
|
13
|
+
constructor(credentials, connection, logger) {
|
|
14
|
+
super();
|
|
15
|
+
this.credentials = credentials;
|
|
16
|
+
this.connection = connection;
|
|
17
|
+
this.logger = logger;
|
|
18
|
+
}
|
|
19
|
+
async authenticateApp() {
|
|
20
|
+
try {
|
|
21
|
+
this.logCallAttempt(this.authenticateApp);
|
|
22
|
+
const payload = {
|
|
23
|
+
clientId: this.credentials.clientId,
|
|
24
|
+
clientSecret: this.credentials.clientSecret,
|
|
25
|
+
};
|
|
26
|
+
await this.connection.sendCommand(ProtoOAApplicationAuthReq_1.ProtoOAApplicationAuthReq.name, payload);
|
|
27
|
+
this.logCallAttemptSuccess(this.authenticateApp);
|
|
28
|
+
}
|
|
29
|
+
catch (e) {
|
|
30
|
+
throw this.handleCTraderCallError(e, this.authenticateApp, new application_auth_error_1.ApplicationAuthenticationError(e));
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
async authenticateUser() {
|
|
34
|
+
try {
|
|
35
|
+
this.logCallAttempt(this.authenticateUser);
|
|
36
|
+
const payload = {
|
|
37
|
+
accessToken: this.credentials.accessToken,
|
|
38
|
+
ctidTraderAccountId: this.credentials.ctidTraderAccountId,
|
|
39
|
+
};
|
|
40
|
+
await this.connection.sendCommand(ProtoOAAccountAuthReq_1.ProtoOAAccountAuthReq.name, payload);
|
|
41
|
+
this.logCallAttemptSuccess(this.authenticateUser);
|
|
42
|
+
}
|
|
43
|
+
catch (e) {
|
|
44
|
+
throw this.handleCTraderCallError(e, this.authenticateUser, new user_auth_error_1.UserAuthenticationError(e));
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
exports.AuthenticationManager = AuthenticationManager;
|
|
49
|
+
//# sourceMappingURL=authentication.manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authentication.manager.js","sourceRoot":"","sources":["../../../../../src/classes/managers/authentication/authentication.manager.ts"],"names":[],"mappings":";;;AAGA,yDAAqD;AAErD,8DAAmE;AACnE,4EAAiF;AACjF,+GAA4G;AAC5G,uHAAoH;AAEpH,MAAa,qBAAsB,SAAQ,0BAAW;IAE3B;IACA;IACA;IAHvB,YACuB,WAAyB,EACzB,UAA6B,EAC7B,MAAe;QAElC,KAAK,EAAE,CAAC;QAJW,gBAAW,GAAX,WAAW,CAAc;QACzB,eAAU,GAAV,UAAU,CAAmB;QAC7B,WAAM,GAAN,MAAM,CAAS;IAGtC,CAAC;IAED,KAAK,CAAC,eAAe;QACjB,IAAI,CAAC;YACD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAE1C,MAAM,OAAO,GAA8B;gBACvC,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,QAAQ;gBACnC,YAAY,EAAE,IAAI,CAAC,WAAW,CAAC,YAAY;aAC9C,CAAC;YACF,MAAM,IAAI,CAAC,UAAU,CAAC,WAAW,CAC7B,qDAAyB,CAAC,IAAI,EAC9B,OAAO,CACV,CAAC;YAEF,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACrD,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,MAAM,IAAI,CAAC,sBAAsB,CAC7B,CAAC,EACD,IAAI,CAAC,eAAe,EACpB,IAAI,uDAA8B,CAAC,CAAC,CAAC,CACxC,CAAC;QACN,CAAC;IACL,CAAC;IAED,KAAK,CAAC,gBAAgB;QAClB,IAAI,CAAC;YACD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YAE3C,MAAM,OAAO,GAA0B;gBACnC,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,WAAW;gBACzC,mBAAmB,EAAE,IAAI,CAAC,WAAW,CAAC,mBAAmB;aAC5D,CAAC;YACF,MAAM,IAAI,CAAC,UAAU,CAAC,WAAW,CAC7B,6CAAqB,CAAC,IAAI,EAC1B,OAAO,CACV,CAAC;YAEF,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACtD,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,MAAM,IAAI,CAAC,sBAAsB,CAC7B,CAAC,EACD,IAAI,CAAC,gBAAgB,EACrB,IAAI,yCAAuB,CAAC,CAAC,CAAC,CACjC,CAAC;QACN,CAAC;IACL,CAAC;CACJ;AAtDD,sDAsDC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authentication.manager.test.d.ts","sourceRoot":"","sources":["../../../../../src/classes/managers/authentication/authentication.manager.test.ts"],"names":[],"mappings":""}
|