tardis-dev 14.3.0 → 15.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +31 -31
- package/dist/apikeyaccessinfo.d.ts +1 -1
- package/dist/apikeyaccessinfo.d.ts.map +1 -1
- package/dist/apikeyaccessinfo.js +7 -12
- package/dist/apikeyaccessinfo.js.map +1 -1
- package/dist/binarysplit.d.ts +2 -1
- package/dist/binarysplit.d.ts.map +1 -1
- package/dist/binarysplit.js +2 -6
- package/dist/binarysplit.js.map +1 -1
- package/dist/clearcache.d.ts +1 -1
- package/dist/clearcache.d.ts.map +1 -1
- package/dist/clearcache.js +19 -22
- package/dist/clearcache.js.map +1 -1
- package/dist/combine.js +5 -8
- package/dist/combine.js.map +1 -1
- package/dist/computable/booksnapshot.d.ts +3 -3
- package/dist/computable/booksnapshot.d.ts.map +1 -1
- package/dist/computable/booksnapshot.js +5 -9
- package/dist/computable/booksnapshot.js.map +1 -1
- package/dist/computable/computable.d.ts +1 -1
- package/dist/computable/computable.d.ts.map +1 -1
- package/dist/computable/computable.js +1 -4
- package/dist/computable/computable.js.map +1 -1
- package/dist/computable/index.d.ts +3 -3
- package/dist/computable/index.d.ts.map +1 -1
- package/dist/computable/index.js +3 -19
- package/dist/computable/index.js.map +1 -1
- package/dist/computable/tradebar.d.ts +2 -2
- package/dist/computable/tradebar.d.ts.map +1 -1
- package/dist/computable/tradebar.js +1 -5
- package/dist/computable/tradebar.js.map +1 -1
- package/dist/consts.js +2 -5
- package/dist/consts.js.map +1 -1
- package/dist/debug.js +2 -8
- package/dist/debug.js.map +1 -1
- package/dist/downloaddatasets.d.ts +2 -2
- package/dist/downloaddatasets.d.ts.map +1 -1
- package/dist/downloaddatasets.js +21 -28
- package/dist/downloaddatasets.js.map +1 -1
- package/dist/exchangedetails.d.ts +1 -1
- package/dist/exchangedetails.d.ts.map +1 -1
- package/dist/exchangedetails.js +6 -9
- package/dist/exchangedetails.js.map +1 -1
- package/dist/filter.d.ts +1 -1
- package/dist/filter.d.ts.map +1 -1
- package/dist/filter.js +4 -8
- package/dist/filter.js.map +1 -1
- package/dist/handy.d.ts +22 -4
- package/dist/handy.d.ts.map +1 -1
- package/dist/handy.js +257 -130
- package/dist/handy.js.map +1 -1
- package/dist/index.d.ts +16 -16
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +16 -34
- package/dist/index.js.map +1 -1
- package/dist/instrumentinfo.d.ts +2 -2
- package/dist/instrumentinfo.d.ts.map +1 -1
- package/dist/instrumentinfo.js +7 -11
- package/dist/instrumentinfo.js.map +1 -1
- package/dist/mappers/ascendex.d.ts +2 -2
- package/dist/mappers/ascendex.d.ts.map +1 -1
- package/dist/mappers/ascendex.js +11 -18
- package/dist/mappers/ascendex.js.map +1 -1
- package/dist/mappers/binance.d.ts +3 -3
- package/dist/mappers/binance.d.ts.map +1 -1
- package/dist/mappers/binance.js +26 -35
- package/dist/mappers/binance.js.map +1 -1
- package/dist/mappers/binancedex.d.ts +2 -2
- package/dist/mappers/binancedex.d.ts.map +1 -1
- package/dist/mappers/binancedex.js +7 -10
- package/dist/mappers/binancedex.js.map +1 -1
- package/dist/mappers/binanceeuropeanoptions.d.ts +2 -2
- package/dist/mappers/binanceeuropeanoptions.d.ts.map +1 -1
- package/dist/mappers/binanceeuropeanoptions.js +40 -50
- package/dist/mappers/binanceeuropeanoptions.js.map +1 -1
- package/dist/mappers/bitfinex.d.ts +2 -2
- package/dist/mappers/bitfinex.d.ts.map +1 -1
- package/dist/mappers/bitfinex.js +12 -20
- package/dist/mappers/bitfinex.js.map +1 -1
- package/dist/mappers/bitflyer.d.ts +2 -2
- package/dist/mappers/bitflyer.d.ts.map +1 -1
- package/dist/mappers/bitflyer.js +9 -13
- package/dist/mappers/bitflyer.js.map +1 -1
- package/dist/mappers/bitget.d.ts +2 -2
- package/dist/mappers/bitget.d.ts.map +1 -1
- package/dist/mappers/bitget.js +10 -17
- package/dist/mappers/bitget.js.map +1 -1
- package/dist/mappers/bitmex.d.ts +2 -2
- package/dist/mappers/bitmex.d.ts.map +1 -1
- package/dist/mappers/bitmex.js +17 -22
- package/dist/mappers/bitmex.js.map +1 -1
- package/dist/mappers/bitnomial.d.ts +2 -2
- package/dist/mappers/bitnomial.d.ts.map +1 -1
- package/dist/mappers/bitnomial.js +7 -11
- package/dist/mappers/bitnomial.js.map +1 -1
- package/dist/mappers/bitstamp.d.ts +2 -2
- package/dist/mappers/bitstamp.d.ts.map +1 -1
- package/dist/mappers/bitstamp.js +5 -9
- package/dist/mappers/bitstamp.js.map +1 -1
- package/dist/mappers/blockchaincom.d.ts +2 -2
- package/dist/mappers/blockchaincom.d.ts.map +1 -1
- package/dist/mappers/blockchaincom.js +5 -10
- package/dist/mappers/blockchaincom.js.map +1 -1
- package/dist/mappers/bybit.d.ts +2 -2
- package/dist/mappers/bybit.d.ts.map +1 -1
- package/dist/mappers/bybit.js +41 -55
- package/dist/mappers/bybit.js.map +1 -1
- package/dist/mappers/bybitspot.d.ts +2 -2
- package/dist/mappers/bybitspot.d.ts.map +1 -1
- package/dist/mappers/bybitspot.js +7 -13
- package/dist/mappers/bybitspot.js.map +1 -1
- package/dist/mappers/coinbase.d.ts +2 -2
- package/dist/mappers/coinbase.d.ts.map +1 -1
- package/dist/mappers/coinbase.js +11 -15
- package/dist/mappers/coinbase.js.map +1 -1
- package/dist/mappers/coinbaseinternational.d.ts +2 -2
- package/dist/mappers/coinbaseinternational.d.ts.map +1 -1
- package/dist/mappers/coinbaseinternational.js +12 -17
- package/dist/mappers/coinbaseinternational.js.map +1 -1
- package/dist/mappers/coinflex.d.ts +2 -2
- package/dist/mappers/coinflex.d.ts.map +1 -1
- package/dist/mappers/coinflex.js +9 -13
- package/dist/mappers/coinflex.js.map +1 -1
- package/dist/mappers/cryptocom.d.ts +2 -2
- package/dist/mappers/cryptocom.d.ts.map +1 -1
- package/dist/mappers/cryptocom.js +11 -18
- package/dist/mappers/cryptocom.js.map +1 -1
- package/dist/mappers/cryptofacilities.d.ts +2 -2
- package/dist/mappers/cryptofacilities.d.ts.map +1 -1
- package/dist/mappers/cryptofacilities.js +13 -17
- package/dist/mappers/cryptofacilities.js.map +1 -1
- package/dist/mappers/delta.d.ts +2 -2
- package/dist/mappers/delta.d.ts.map +1 -1
- package/dist/mappers/delta.js +17 -24
- package/dist/mappers/delta.js.map +1 -1
- package/dist/mappers/deribit.d.ts +2 -2
- package/dist/mappers/deribit.d.ts.map +1 -1
- package/dist/mappers/deribit.js +20 -25
- package/dist/mappers/deribit.js.map +1 -1
- package/dist/mappers/dydx.d.ts +2 -2
- package/dist/mappers/dydx.d.ts.map +1 -1
- package/dist/mappers/dydx.js +9 -15
- package/dist/mappers/dydx.js.map +1 -1
- package/dist/mappers/dydxv4.d.ts +2 -2
- package/dist/mappers/dydxv4.d.ts.map +1 -1
- package/dist/mappers/dydxv4.js +11 -18
- package/dist/mappers/dydxv4.js.map +1 -1
- package/dist/mappers/ftx.d.ts +2 -2
- package/dist/mappers/ftx.d.ts.map +1 -1
- package/dist/mappers/ftx.js +22 -31
- package/dist/mappers/ftx.js.map +1 -1
- package/dist/mappers/gateio.d.ts +3 -3
- package/dist/mappers/gateio.d.ts.map +1 -1
- package/dist/mappers/gateio.js +17 -26
- package/dist/mappers/gateio.js.map +1 -1
- package/dist/mappers/gateiofutures.d.ts +2 -2
- package/dist/mappers/gateiofutures.d.ts.map +1 -1
- package/dist/mappers/gateiofutures.js +11 -18
- package/dist/mappers/gateiofutures.js.map +1 -1
- package/dist/mappers/gemini.d.ts +2 -2
- package/dist/mappers/gemini.d.ts.map +1 -1
- package/dist/mappers/gemini.js +5 -8
- package/dist/mappers/gemini.js.map +1 -1
- package/dist/mappers/hitbtc.d.ts +2 -2
- package/dist/mappers/hitbtc.d.ts.map +1 -1
- package/dist/mappers/hitbtc.js +5 -8
- package/dist/mappers/hitbtc.js.map +1 -1
- package/dist/mappers/huobi.d.ts +4 -4
- package/dist/mappers/huobi.d.ts.map +1 -1
- package/dist/mappers/huobi.js +32 -42
- package/dist/mappers/huobi.js.map +1 -1
- package/dist/mappers/hyperliquid.d.ts +2 -2
- package/dist/mappers/hyperliquid.d.ts.map +1 -1
- package/dist/mappers/hyperliquid.js +6 -13
- package/dist/mappers/hyperliquid.js.map +1 -1
- package/dist/mappers/index.d.ts +38 -38
- package/dist/mappers/index.d.ts.map +1 -1
- package/dist/mappers/index.js +273 -296
- package/dist/mappers/index.js.map +1 -1
- package/dist/mappers/kraken.d.ts +2 -2
- package/dist/mappers/kraken.d.ts.map +1 -1
- package/dist/mappers/kraken.js +11 -14
- package/dist/mappers/kraken.js.map +1 -1
- package/dist/mappers/kucoin.d.ts +3 -3
- package/dist/mappers/kucoin.d.ts.map +1 -1
- package/dist/mappers/kucoin.js +10 -16
- package/dist/mappers/kucoin.js.map +1 -1
- package/dist/mappers/kucoinfutures.d.ts +3 -3
- package/dist/mappers/kucoinfutures.d.ts.map +1 -1
- package/dist/mappers/kucoinfutures.js +15 -22
- package/dist/mappers/kucoinfutures.js.map +1 -1
- package/dist/mappers/mapper.d.ts +1 -1
- package/dist/mappers/mapper.d.ts.map +1 -1
- package/dist/mappers/mapper.js +1 -5
- package/dist/mappers/mapper.js.map +1 -1
- package/dist/mappers/okex.d.ts +2 -2
- package/dist/mappers/okex.d.ts.map +1 -1
- package/dist/mappers/okex.js +65 -80
- package/dist/mappers/okex.js.map +1 -1
- package/dist/mappers/okexspreads.d.ts +2 -2
- package/dist/mappers/okexspreads.d.ts.map +1 -1
- package/dist/mappers/okexspreads.js +7 -13
- package/dist/mappers/okexspreads.js.map +1 -1
- package/dist/mappers/phemex.d.ts +2 -2
- package/dist/mappers/phemex.d.ts.map +1 -1
- package/dist/mappers/phemex.js +5 -9
- package/dist/mappers/phemex.js.map +1 -1
- package/dist/mappers/poloniex.d.ts +2 -2
- package/dist/mappers/poloniex.d.ts.map +1 -1
- package/dist/mappers/poloniex.js +9 -16
- package/dist/mappers/poloniex.js.map +1 -1
- package/dist/mappers/serum.d.ts +2 -2
- package/dist/mappers/serum.d.ts.map +1 -1
- package/dist/mappers/serum.js +11 -17
- package/dist/mappers/serum.js.map +1 -1
- package/dist/mappers/upbit.d.ts +2 -2
- package/dist/mappers/upbit.d.ts.map +1 -1
- package/dist/mappers/upbit.js +7 -12
- package/dist/mappers/upbit.js.map +1 -1
- package/dist/mappers/woox.d.ts +2 -2
- package/dist/mappers/woox.d.ts.map +1 -1
- package/dist/mappers/woox.js +11 -17
- package/dist/mappers/woox.js.map +1 -1
- package/dist/options.d.ts.map +1 -1
- package/dist/options.js +9 -14
- package/dist/options.js.map +1 -1
- package/dist/orderbook.d.ts +1 -1
- package/dist/orderbook.d.ts.map +1 -1
- package/dist/orderbook.js +4 -8
- package/dist/orderbook.js.map +1 -1
- package/dist/realtimefeeds/ascendex.d.ts +2 -2
- package/dist/realtimefeeds/ascendex.d.ts.map +1 -1
- package/dist/realtimefeeds/ascendex.js +5 -9
- package/dist/realtimefeeds/ascendex.js.map +1 -1
- package/dist/realtimefeeds/binance.d.ts +2 -2
- package/dist/realtimefeeds/binance.d.ts.map +1 -1
- package/dist/realtimefeeds/binance.js +23 -32
- package/dist/realtimefeeds/binance.js.map +1 -1
- package/dist/realtimefeeds/binancedex.d.ts +2 -2
- package/dist/realtimefeeds/binancedex.d.ts.map +1 -1
- package/dist/realtimefeeds/binancedex.js +5 -9
- package/dist/realtimefeeds/binancedex.js.map +1 -1
- package/dist/realtimefeeds/binanceeuropeanoptions.d.ts +2 -2
- package/dist/realtimefeeds/binanceeuropeanoptions.d.ts.map +1 -1
- package/dist/realtimefeeds/binanceeuropeanoptions.js +5 -9
- package/dist/realtimefeeds/binanceeuropeanoptions.js.map +1 -1
- package/dist/realtimefeeds/bitfinex.d.ts +2 -2
- package/dist/realtimefeeds/bitfinex.d.ts.map +1 -1
- package/dist/realtimefeeds/bitfinex.js +2 -6
- package/dist/realtimefeeds/bitfinex.js.map +1 -1
- package/dist/realtimefeeds/bitflyer.d.ts +2 -2
- package/dist/realtimefeeds/bitflyer.d.ts.map +1 -1
- package/dist/realtimefeeds/bitflyer.js +2 -6
- package/dist/realtimefeeds/bitflyer.js.map +1 -1
- package/dist/realtimefeeds/bitget.d.ts +2 -2
- package/dist/realtimefeeds/bitget.d.ts.map +1 -1
- package/dist/realtimefeeds/bitget.js +6 -11
- package/dist/realtimefeeds/bitget.js.map +1 -1
- package/dist/realtimefeeds/bitmex.d.ts +2 -2
- package/dist/realtimefeeds/bitmex.d.ts.map +1 -1
- package/dist/realtimefeeds/bitmex.js +4 -8
- package/dist/realtimefeeds/bitmex.js.map +1 -1
- package/dist/realtimefeeds/bitnomial.d.ts +2 -2
- package/dist/realtimefeeds/bitnomial.d.ts.map +1 -1
- package/dist/realtimefeeds/bitnomial.js +2 -6
- package/dist/realtimefeeds/bitnomial.js.map +1 -1
- package/dist/realtimefeeds/bitstamp.d.ts +2 -2
- package/dist/realtimefeeds/bitstamp.d.ts.map +1 -1
- package/dist/realtimefeeds/bitstamp.js +5 -9
- package/dist/realtimefeeds/bitstamp.js.map +1 -1
- package/dist/realtimefeeds/blockchaincom.d.ts +2 -2
- package/dist/realtimefeeds/blockchaincom.d.ts.map +1 -1
- package/dist/realtimefeeds/blockchaincom.js +4 -8
- package/dist/realtimefeeds/blockchaincom.js.map +1 -1
- package/dist/realtimefeeds/bybit.d.ts +2 -2
- package/dist/realtimefeeds/bybit.d.ts.map +1 -1
- package/dist/realtimefeeds/bybit.js +8 -14
- package/dist/realtimefeeds/bybit.js.map +1 -1
- package/dist/realtimefeeds/coinbase.d.ts +2 -2
- package/dist/realtimefeeds/coinbase.d.ts.map +1 -1
- package/dist/realtimefeeds/coinbase.js +4 -11
- package/dist/realtimefeeds/coinbase.js.map +1 -1
- package/dist/realtimefeeds/coinbaseinternational.d.ts +2 -2
- package/dist/realtimefeeds/coinbaseinternational.d.ts.map +1 -1
- package/dist/realtimefeeds/coinbaseinternational.js +4 -11
- package/dist/realtimefeeds/coinbaseinternational.js.map +1 -1
- package/dist/realtimefeeds/coinflex.d.ts +2 -2
- package/dist/realtimefeeds/coinflex.d.ts.map +1 -1
- package/dist/realtimefeeds/coinflex.js +2 -6
- package/dist/realtimefeeds/coinflex.js.map +1 -1
- package/dist/realtimefeeds/cryptocom.d.ts +2 -2
- package/dist/realtimefeeds/cryptocom.d.ts.map +1 -1
- package/dist/realtimefeeds/cryptocom.js +2 -6
- package/dist/realtimefeeds/cryptocom.js.map +1 -1
- package/dist/realtimefeeds/cryptofacilities.d.ts +2 -2
- package/dist/realtimefeeds/cryptofacilities.d.ts.map +1 -1
- package/dist/realtimefeeds/cryptofacilities.js +2 -6
- package/dist/realtimefeeds/cryptofacilities.js.map +1 -1
- package/dist/realtimefeeds/delta.d.ts +2 -2
- package/dist/realtimefeeds/delta.d.ts.map +1 -1
- package/dist/realtimefeeds/delta.js +2 -6
- package/dist/realtimefeeds/delta.js.map +1 -1
- package/dist/realtimefeeds/deribit.d.ts +2 -2
- package/dist/realtimefeeds/deribit.d.ts.map +1 -1
- package/dist/realtimefeeds/deribit.js +4 -8
- package/dist/realtimefeeds/deribit.js.map +1 -1
- package/dist/realtimefeeds/dydx.d.ts +2 -2
- package/dist/realtimefeeds/dydx.d.ts.map +1 -1
- package/dist/realtimefeeds/dydx.js +2 -6
- package/dist/realtimefeeds/dydx.js.map +1 -1
- package/dist/realtimefeeds/dydx_v4.d.ts +2 -2
- package/dist/realtimefeeds/dydx_v4.d.ts.map +1 -1
- package/dist/realtimefeeds/dydx_v4.js +2 -6
- package/dist/realtimefeeds/dydx_v4.js.map +1 -1
- package/dist/realtimefeeds/ftx.d.ts +2 -2
- package/dist/realtimefeeds/ftx.d.ts.map +1 -1
- package/dist/realtimefeeds/ftx.js +13 -18
- package/dist/realtimefeeds/ftx.js.map +1 -1
- package/dist/realtimefeeds/gateio.d.ts +2 -2
- package/dist/realtimefeeds/gateio.d.ts.map +1 -1
- package/dist/realtimefeeds/gateio.js +2 -6
- package/dist/realtimefeeds/gateio.js.map +1 -1
- package/dist/realtimefeeds/gateiofutures.d.ts +2 -2
- package/dist/realtimefeeds/gateiofutures.d.ts.map +1 -1
- package/dist/realtimefeeds/gateiofutures.js +3 -7
- package/dist/realtimefeeds/gateiofutures.js.map +1 -1
- package/dist/realtimefeeds/gemini.d.ts +2 -2
- package/dist/realtimefeeds/gemini.d.ts.map +1 -1
- package/dist/realtimefeeds/gemini.js +2 -6
- package/dist/realtimefeeds/gemini.js.map +1 -1
- package/dist/realtimefeeds/hitbtc.d.ts +2 -2
- package/dist/realtimefeeds/hitbtc.d.ts.map +1 -1
- package/dist/realtimefeeds/hitbtc.js +2 -6
- package/dist/realtimefeeds/hitbtc.js.map +1 -1
- package/dist/realtimefeeds/huobi.d.ts +2 -2
- package/dist/realtimefeeds/huobi.d.ts.map +1 -1
- package/dist/realtimefeeds/huobi.js +36 -44
- package/dist/realtimefeeds/huobi.js.map +1 -1
- package/dist/realtimefeeds/hyperliquid.d.ts +2 -2
- package/dist/realtimefeeds/hyperliquid.d.ts.map +1 -1
- package/dist/realtimefeeds/hyperliquid.js +2 -6
- package/dist/realtimefeeds/hyperliquid.js.map +1 -1
- package/dist/realtimefeeds/index.d.ts +4 -4
- package/dist/realtimefeeds/index.d.ts.map +1 -1
- package/dist/realtimefeeds/index.js +101 -120
- package/dist/realtimefeeds/index.js.map +1 -1
- package/dist/realtimefeeds/kraken.d.ts +2 -2
- package/dist/realtimefeeds/kraken.d.ts.map +1 -1
- package/dist/realtimefeeds/kraken.js +2 -6
- package/dist/realtimefeeds/kraken.js.map +1 -1
- package/dist/realtimefeeds/kucoin.d.ts +2 -2
- package/dist/realtimefeeds/kucoin.d.ts.map +1 -1
- package/dist/realtimefeeds/kucoin.js +10 -14
- package/dist/realtimefeeds/kucoin.js.map +1 -1
- package/dist/realtimefeeds/kucoinfutures.d.ts +2 -2
- package/dist/realtimefeeds/kucoinfutures.d.ts.map +1 -1
- package/dist/realtimefeeds/kucoinfutures.js +12 -19
- package/dist/realtimefeeds/kucoinfutures.js.map +1 -1
- package/dist/realtimefeeds/mango.d.ts +1 -1
- package/dist/realtimefeeds/mango.d.ts.map +1 -1
- package/dist/realtimefeeds/mango.js +2 -6
- package/dist/realtimefeeds/mango.js.map +1 -1
- package/dist/realtimefeeds/okex.d.ts +2 -2
- package/dist/realtimefeeds/okex.d.ts.map +1 -1
- package/dist/realtimefeeds/okex.js +9 -18
- package/dist/realtimefeeds/okex.js.map +1 -1
- package/dist/realtimefeeds/okexspreads.d.ts +2 -2
- package/dist/realtimefeeds/okexspreads.d.ts.map +1 -1
- package/dist/realtimefeeds/okexspreads.js +6 -13
- package/dist/realtimefeeds/okexspreads.js.map +1 -1
- package/dist/realtimefeeds/phemex.d.ts +2 -2
- package/dist/realtimefeeds/phemex.d.ts.map +1 -1
- package/dist/realtimefeeds/phemex.js +2 -6
- package/dist/realtimefeeds/phemex.js.map +1 -1
- package/dist/realtimefeeds/poloniex.d.ts +2 -2
- package/dist/realtimefeeds/poloniex.d.ts.map +1 -1
- package/dist/realtimefeeds/poloniex.js +2 -6
- package/dist/realtimefeeds/poloniex.js.map +1 -1
- package/dist/realtimefeeds/realtimefeed.d.ts +1 -1
- package/dist/realtimefeeds/realtimefeed.d.ts.map +1 -1
- package/dist/realtimefeeds/realtimefeed.js +29 -38
- package/dist/realtimefeeds/realtimefeed.js.map +1 -1
- package/dist/realtimefeeds/serum.d.ts +2 -2
- package/dist/realtimefeeds/serum.d.ts.map +1 -1
- package/dist/realtimefeeds/serum.js +2 -6
- package/dist/realtimefeeds/serum.js.map +1 -1
- package/dist/realtimefeeds/staratlas.d.ts +1 -1
- package/dist/realtimefeeds/staratlas.d.ts.map +1 -1
- package/dist/realtimefeeds/staratlas.js +2 -6
- package/dist/realtimefeeds/staratlas.js.map +1 -1
- package/dist/realtimefeeds/upbit.d.ts +2 -2
- package/dist/realtimefeeds/upbit.d.ts.map +1 -1
- package/dist/realtimefeeds/upbit.js +2 -6
- package/dist/realtimefeeds/upbit.js.map +1 -1
- package/dist/realtimefeeds/woox.d.ts +2 -2
- package/dist/realtimefeeds/woox.d.ts.map +1 -1
- package/dist/realtimefeeds/woox.js +5 -9
- package/dist/realtimefeeds/woox.js.map +1 -1
- package/dist/replay.d.ts +2 -2
- package/dist/replay.d.ts.map +1 -1
- package/dist/replay.js +53 -60
- package/dist/replay.js.map +1 -1
- package/dist/stream.d.ts +2 -2
- package/dist/stream.d.ts.map +1 -1
- package/dist/stream.js +9 -13
- package/dist/stream.js.map +1 -1
- package/dist/types.d.ts +1 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +1 -2
- package/dist/worker.d.ts +1 -1
- package/dist/worker.d.ts.map +1 -1
- package/dist/worker.js +22 -27
- package/dist/worker.js.map +1 -1
- package/example.js +9 -9
- package/package.json +30 -15
- package/src/apikeyaccessinfo.ts +9 -11
- package/src/binarysplit.ts +2 -1
- package/src/clearcache.ts +8 -7
- package/src/computable/booksnapshot.ts +4 -4
- package/src/computable/computable.ts +1 -1
- package/src/computable/index.ts +3 -3
- package/src/computable/tradebar.ts +2 -2
- package/src/downloaddatasets.ts +7 -7
- package/src/exchangedetails.ts +5 -5
- package/src/filter.ts +2 -2
- package/src/handy.ts +286 -23
- package/src/index.ts +16 -16
- package/src/instrumentinfo.ts +9 -9
- package/src/mappers/ascendex.ts +3 -3
- package/src/mappers/binance.ts +4 -4
- package/src/mappers/binancedex.ts +3 -3
- package/src/mappers/binanceeuropeanoptions.ts +3 -3
- package/src/mappers/bitfinex.ts +3 -3
- package/src/mappers/bitflyer.ts +3 -3
- package/src/mappers/bitget.ts +3 -3
- package/src/mappers/bitmex.ts +3 -3
- package/src/mappers/bitnomial.ts +3 -3
- package/src/mappers/bitstamp.ts +3 -3
- package/src/mappers/blockchaincom.ts +3 -3
- package/src/mappers/bybit.ts +3 -3
- package/src/mappers/bybitspot.ts +3 -3
- package/src/mappers/coinbase.ts +3 -3
- package/src/mappers/coinbaseinternational.ts +3 -3
- package/src/mappers/coinflex.ts +3 -3
- package/src/mappers/cryptocom.ts +3 -3
- package/src/mappers/cryptofacilities.ts +3 -3
- package/src/mappers/delta.ts +3 -3
- package/src/mappers/deribit.ts +3 -3
- package/src/mappers/dydx.ts +3 -3
- package/src/mappers/dydxv4.ts +3 -3
- package/src/mappers/ftx.ts +3 -3
- package/src/mappers/gateio.ts +4 -4
- package/src/mappers/gateiofutures.ts +3 -3
- package/src/mappers/gemini.ts +3 -3
- package/src/mappers/hitbtc.ts +3 -3
- package/src/mappers/huobi.ts +3 -3
- package/src/mappers/hyperliquid.ts +2 -2
- package/src/mappers/index.ts +49 -44
- package/src/mappers/kraken.ts +3 -3
- package/src/mappers/kucoin.ts +4 -4
- package/src/mappers/kucoinfutures.ts +4 -4
- package/src/mappers/mapper.ts +1 -1
- package/src/mappers/okex.ts +3 -3
- package/src/mappers/okexspreads.ts +3 -3
- package/src/mappers/phemex.ts +2 -2
- package/src/mappers/poloniex.ts +3 -3
- package/src/mappers/serum.ts +3 -3
- package/src/mappers/upbit.ts +3 -3
- package/src/mappers/woox.ts +3 -3
- package/src/options.ts +5 -2
- package/src/orderbook.ts +3 -2
- package/src/realtimefeeds/ascendex.ts +3 -3
- package/src/realtimefeeds/binance.ts +15 -19
- package/src/realtimefeeds/binancedex.ts +5 -5
- package/src/realtimefeeds/binanceeuropeanoptions.ts +3 -3
- package/src/realtimefeeds/bitfinex.ts +2 -2
- package/src/realtimefeeds/bitflyer.ts +2 -2
- package/src/realtimefeeds/bitget.ts +3 -3
- package/src/realtimefeeds/bitmex.ts +3 -3
- package/src/realtimefeeds/bitnomial.ts +2 -2
- package/src/realtimefeeds/bitstamp.ts +5 -5
- package/src/realtimefeeds/blockchaincom.ts +3 -3
- package/src/realtimefeeds/bybit.ts +3 -3
- package/src/realtimefeeds/coinbase.ts +2 -2
- package/src/realtimefeeds/coinbaseinternational.ts +2 -2
- package/src/realtimefeeds/coinflex.ts +2 -2
- package/src/realtimefeeds/cryptocom.ts +2 -2
- package/src/realtimefeeds/cryptofacilities.ts +2 -2
- package/src/realtimefeeds/delta.ts +2 -2
- package/src/realtimefeeds/deribit.ts +3 -3
- package/src/realtimefeeds/dydx.ts +2 -2
- package/src/realtimefeeds/dydx_v4.ts +2 -2
- package/src/realtimefeeds/ftx.ts +8 -8
- package/src/realtimefeeds/gateio.ts +2 -3
- package/src/realtimefeeds/gateiofutures.ts +2 -2
- package/src/realtimefeeds/gemini.ts +2 -2
- package/src/realtimefeeds/hitbtc.ts +2 -2
- package/src/realtimefeeds/huobi.ts +18 -18
- package/src/realtimefeeds/hyperliquid.ts +2 -2
- package/src/realtimefeeds/index.ts +43 -43
- package/src/realtimefeeds/kraken.ts +2 -2
- package/src/realtimefeeds/kucoin.ts +9 -9
- package/src/realtimefeeds/kucoinfutures.ts +9 -11
- package/src/realtimefeeds/mango.ts +1 -1
- package/src/realtimefeeds/okex.ts +3 -3
- package/src/realtimefeeds/okexspreads.ts +3 -3
- package/src/realtimefeeds/phemex.ts +2 -2
- package/src/realtimefeeds/poloniex.ts +2 -2
- package/src/realtimefeeds/realtimefeed.ts +6 -6
- package/src/realtimefeeds/serum.ts +2 -2
- package/src/realtimefeeds/staratlas.ts +1 -1
- package/src/realtimefeeds/upbit.ts +2 -2
- package/src/realtimefeeds/woox.ts +3 -3
- package/src/replay.ts +14 -14
- package/src/stream.ts +5 -5
- package/src/types.ts +1 -1
- package/src/worker.ts +3 -4
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { Filter } from '../types'
|
|
3
|
-
import { RealTimeFeedBase } from './realtimefeed'
|
|
1
|
+
import { getJSON } from '../handy.ts'
|
|
2
|
+
import { Filter } from '../types.ts'
|
|
3
|
+
import { RealTimeFeedBase } from './realtimefeed.ts'
|
|
4
4
|
|
|
5
5
|
export class BitstampRealTimeFeed extends RealTimeFeedBase {
|
|
6
6
|
protected wssURL = 'wss://ws.bitstamp.net'
|
|
@@ -50,10 +50,10 @@ export class BitstampRealTimeFeed extends RealTimeFeedBase {
|
|
|
50
50
|
return
|
|
51
51
|
}
|
|
52
52
|
|
|
53
|
-
const
|
|
53
|
+
const { data } = await getJSON(`${this.httpURL}/order_book/${symbol}?group=1`)
|
|
54
54
|
|
|
55
55
|
const snapshot = {
|
|
56
|
-
data
|
|
56
|
+
data,
|
|
57
57
|
event: 'snapshot',
|
|
58
58
|
channel: `diff_order_book_${symbol}`,
|
|
59
59
|
generated: true
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { wait } from '../handy'
|
|
2
|
-
import { Filter } from '../types'
|
|
3
|
-
import { RealTimeFeedBase } from './realtimefeed'
|
|
1
|
+
import { wait } from '../handy.ts'
|
|
2
|
+
import { Filter } from '../types.ts'
|
|
3
|
+
import { RealTimeFeedBase } from './realtimefeed.ts'
|
|
4
4
|
|
|
5
5
|
export class BlockchainComRealTimeFeed extends RealTimeFeedBase {
|
|
6
6
|
protected readonly wssURL = 'wss://ws.blockchain.info/mercury-gateway/v1/ws'
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { batch } from '../handy'
|
|
2
|
-
import { Filter } from '../types'
|
|
3
|
-
import { RealTimeFeedBase, MultiConnectionRealTimeFeedBase } from './realtimefeed'
|
|
1
|
+
import { batch } from '../handy.ts'
|
|
2
|
+
import { Filter } from '../types.ts'
|
|
3
|
+
import { RealTimeFeedBase, MultiConnectionRealTimeFeedBase } from './realtimefeed.ts'
|
|
4
4
|
|
|
5
5
|
export class BybitRealTimeDataFeed extends MultiConnectionRealTimeFeedBase {
|
|
6
6
|
protected *_getRealTimeFeeds(exchange: string, filters: Filter<string>[], timeoutIntervalMS?: number, onError?: (error: Error) => void) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import crypto from 'crypto'
|
|
2
|
-
import { Filter } from '../types'
|
|
3
|
-
import { RealTimeFeedBase } from './realtimefeed'
|
|
2
|
+
import { Filter } from '../types.ts'
|
|
3
|
+
import { RealTimeFeedBase } from './realtimefeed.ts'
|
|
4
4
|
|
|
5
5
|
export class CoinbaseRealTimeFeed extends RealTimeFeedBase {
|
|
6
6
|
private _hasCredentials =
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import crypto from 'crypto'
|
|
2
|
-
import { Filter } from '../types'
|
|
3
|
-
import { RealTimeFeedBase } from './realtimefeed'
|
|
2
|
+
import { Filter } from '../types.ts'
|
|
3
|
+
import { RealTimeFeedBase } from './realtimefeed.ts'
|
|
4
4
|
|
|
5
5
|
export class CoinbaseInternationalRealTimeFeed extends RealTimeFeedBase {
|
|
6
6
|
private _hasCredentials =
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Filter } from '../types'
|
|
2
|
-
import { RealTimeFeedBase } from './realtimefeed'
|
|
1
|
+
import { Filter } from '../types.ts'
|
|
2
|
+
import { RealTimeFeedBase } from './realtimefeed.ts'
|
|
3
3
|
|
|
4
4
|
export class CoinflexRealTimeFeed extends RealTimeFeedBase {
|
|
5
5
|
protected readonly wssURL = 'wss://v2api.coinflex.com/v2/websocket'
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Filter } from '../types'
|
|
2
|
-
import { RealTimeFeedBase } from './realtimefeed'
|
|
1
|
+
import { Filter } from '../types.ts'
|
|
2
|
+
import { RealTimeFeedBase } from './realtimefeed.ts'
|
|
3
3
|
|
|
4
4
|
export class CryptoComRealTimeFeed extends RealTimeFeedBase {
|
|
5
5
|
protected wssURL = 'wss://stream.crypto.com/exchange/v1/market'
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Filter } from '../types'
|
|
2
|
-
import { RealTimeFeedBase } from './realtimefeed'
|
|
1
|
+
import { Filter } from '../types.ts'
|
|
2
|
+
import { RealTimeFeedBase } from './realtimefeed.ts'
|
|
3
3
|
|
|
4
4
|
export class CryptofacilitiesRealTimeFeed extends RealTimeFeedBase {
|
|
5
5
|
protected wssURL = 'wss://futures.kraken.com/ws/v1'
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Filter } from '../types'
|
|
2
|
-
import { RealTimeFeedBase } from './realtimefeed'
|
|
1
|
+
import { Filter } from '../types.ts'
|
|
2
|
+
import { RealTimeFeedBase } from './realtimefeed.ts'
|
|
3
3
|
|
|
4
4
|
export class DeltaRealTimeFeed extends RealTimeFeedBase {
|
|
5
5
|
protected readonly wssURL = 'wss://socket.delta.exchange'
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { wait } from '../handy'
|
|
2
|
-
import { Filter, FilterForExchange } from '../types'
|
|
3
|
-
import { RealTimeFeedBase } from './realtimefeed'
|
|
1
|
+
import { wait } from '../handy.ts'
|
|
2
|
+
import { Filter, FilterForExchange } from '../types.ts'
|
|
3
|
+
import { RealTimeFeedBase } from './realtimefeed.ts'
|
|
4
4
|
|
|
5
5
|
export class DeribitRealTimeDataFeed extends RealTimeFeedBase {
|
|
6
6
|
protected get wssURL() {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Filter } from '../types'
|
|
2
|
-
import { RealTimeFeedBase } from './realtimefeed'
|
|
1
|
+
import { Filter } from '../types.ts'
|
|
2
|
+
import { RealTimeFeedBase } from './realtimefeed.ts'
|
|
3
3
|
|
|
4
4
|
export class DydxRealTimeFeed extends RealTimeFeedBase {
|
|
5
5
|
protected readonly wssURL = 'wss://api.dydx.exchange/v3/ws'
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Filter } from '../types'
|
|
2
|
-
import { RealTimeFeedBase } from './realtimefeed'
|
|
1
|
+
import { Filter } from '../types.ts'
|
|
2
|
+
import { RealTimeFeedBase } from './realtimefeed.ts'
|
|
3
3
|
|
|
4
4
|
export class DydxV4RealTimeFeed extends RealTimeFeedBase {
|
|
5
5
|
protected readonly wssURL = 'wss://indexer.dydx.trade/v4/ws'
|
package/src/realtimefeeds/ftx.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { Writable } from 'stream'
|
|
2
2
|
|
|
3
|
-
import { Filter } from '../types'
|
|
4
|
-
import { RealTimeFeedBase, PoolingClientBase, MultiConnectionRealTimeFeedBase } from './realtimefeed'
|
|
5
|
-
import { batch,
|
|
3
|
+
import { Filter } from '../types.ts'
|
|
4
|
+
import { RealTimeFeedBase, PoolingClientBase, MultiConnectionRealTimeFeedBase } from './realtimefeed.ts'
|
|
5
|
+
import { batch, getJSON } from '../handy.ts'
|
|
6
6
|
|
|
7
7
|
abstract class FTXRealTimeFeedBase extends MultiConnectionRealTimeFeedBase {
|
|
8
8
|
protected abstract wssURL: string
|
|
@@ -93,11 +93,11 @@ class FTXInstrumentInfoClient extends PoolingClientBase {
|
|
|
93
93
|
|
|
94
94
|
try {
|
|
95
95
|
const responses = await Promise.all([
|
|
96
|
-
|
|
97
|
-
|
|
96
|
+
getJSON<any>(`${this._httpURL}/futures/${instrument}/stats`, { timeout: 10000 }),
|
|
97
|
+
getJSON<any>(`${this._httpURL}/futures/${instrument}`, { timeout: 10000 })
|
|
98
98
|
])
|
|
99
99
|
|
|
100
|
-
if (responses.some((
|
|
100
|
+
if (responses.some((response) => response.data.success === false)) {
|
|
101
101
|
return
|
|
102
102
|
}
|
|
103
103
|
|
|
@@ -107,8 +107,8 @@ class FTXInstrumentInfoClient extends PoolingClientBase {
|
|
|
107
107
|
market: instrument,
|
|
108
108
|
type: 'update',
|
|
109
109
|
data: {
|
|
110
|
-
stats: responses[0].result,
|
|
111
|
-
info: responses[1].result
|
|
110
|
+
stats: responses[0].data.result,
|
|
111
|
+
info: responses[1].data.result
|
|
112
112
|
}
|
|
113
113
|
}
|
|
114
114
|
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { RealTimeFeedBase } from './realtimefeed'
|
|
1
|
+
import { Filter } from '../types.ts'
|
|
2
|
+
import { RealTimeFeedBase } from './realtimefeed.ts'
|
|
4
3
|
|
|
5
4
|
export class GateIORealTimeFeed extends RealTimeFeedBase {
|
|
6
5
|
protected readonly wssURL = 'wss://api.gateio.ws/ws/v4/'
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Filter } from '../types'
|
|
2
|
-
import { RealTimeFeedBase, MultiConnectionRealTimeFeedBase } from './realtimefeed'
|
|
1
|
+
import { Filter } from '../types.ts'
|
|
2
|
+
import { RealTimeFeedBase, MultiConnectionRealTimeFeedBase } from './realtimefeed.ts'
|
|
3
3
|
|
|
4
4
|
export class GateIOFuturesRealTimeFeed extends MultiConnectionRealTimeFeedBase {
|
|
5
5
|
protected *_getRealTimeFeeds(exchange: string, filters: Filter<string>[], timeoutIntervalMS?: number, onError?: (error: Error) => void) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Filter } from '../types'
|
|
2
|
-
import { RealTimeFeedBase } from './realtimefeed'
|
|
1
|
+
import { Filter } from '../types.ts'
|
|
2
|
+
import { RealTimeFeedBase } from './realtimefeed.ts'
|
|
3
3
|
|
|
4
4
|
export class GeminiRealTimeFeed extends RealTimeFeedBase {
|
|
5
5
|
protected wssURL = 'wss://api.gemini.com/v2/marketdata'
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Filter } from '../types'
|
|
2
|
-
import { RealTimeFeedBase } from './realtimefeed'
|
|
1
|
+
import { Filter } from '../types.ts'
|
|
2
|
+
import { RealTimeFeedBase } from './realtimefeed.ts'
|
|
3
3
|
|
|
4
4
|
export class HitBtcRealTimeFeed extends RealTimeFeedBase {
|
|
5
5
|
protected wssURL = 'wss://api.hitbtc.com/api/2/ws'
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { unzipSync } from 'zlib'
|
|
2
|
-
import { Filter } from '../types'
|
|
3
|
-
import { RealTimeFeedBase, MultiConnectionRealTimeFeedBase, PoolingClientBase } from './realtimefeed'
|
|
4
|
-
import { wait, ONE_SEC_IN_MS, batch,
|
|
2
|
+
import { Filter } from '../types.ts'
|
|
3
|
+
import { RealTimeFeedBase, MultiConnectionRealTimeFeedBase, PoolingClientBase } from './realtimefeed.ts'
|
|
4
|
+
import { wait, ONE_SEC_IN_MS, batch, getJSON } from '../handy.ts'
|
|
5
5
|
import { Writable } from 'stream'
|
|
6
6
|
|
|
7
7
|
abstract class HuobiRealTimeFeedBase extends MultiConnectionRealTimeFeedBase {
|
|
@@ -248,17 +248,17 @@ class HuobiOpenInterestClient extends PoolingClientBase {
|
|
|
248
248
|
return
|
|
249
249
|
}
|
|
250
250
|
const url = `${this._httpURL}/${this._getURLPath(instrument)}`
|
|
251
|
-
const
|
|
251
|
+
const { data: body } = await getJSON<any>(url, { timeout: 10000 })
|
|
252
252
|
|
|
253
|
-
if (
|
|
254
|
-
throw new Error(`open interest response error:${JSON.stringify(
|
|
253
|
+
if (body.status !== 'ok') {
|
|
254
|
+
throw new Error(`open interest response error:${JSON.stringify(body)}, url:${url}`)
|
|
255
255
|
}
|
|
256
256
|
|
|
257
257
|
const openInterestMessage = {
|
|
258
258
|
ch: `market.${instrument}.open_interest`,
|
|
259
259
|
generated: true,
|
|
260
|
-
data:
|
|
261
|
-
ts:
|
|
260
|
+
data: body.data,
|
|
261
|
+
ts: body.ts
|
|
262
262
|
}
|
|
263
263
|
|
|
264
264
|
if (outputStream.writable) {
|
|
@@ -283,17 +283,17 @@ class HuobiOptionsMarketIndexClient extends PoolingClientBase {
|
|
|
283
283
|
return
|
|
284
284
|
}
|
|
285
285
|
const url = `${this._httpURL}/option_market_index?contract_code=${instrument}`
|
|
286
|
-
const
|
|
286
|
+
const { data: body } = await getJSON<any>(url, { timeout: 10000 })
|
|
287
287
|
|
|
288
|
-
if (
|
|
289
|
-
throw new Error(`open interest response error:${JSON.stringify(
|
|
288
|
+
if (body.status !== 'ok') {
|
|
289
|
+
throw new Error(`open interest response error:${JSON.stringify(body)}, url:${url}`)
|
|
290
290
|
}
|
|
291
291
|
|
|
292
292
|
const marketIndexMessage = {
|
|
293
293
|
ch: `market.${instrument}.option_market_index`,
|
|
294
294
|
generated: true,
|
|
295
|
-
data:
|
|
296
|
-
ts:
|
|
295
|
+
data: body.data[0],
|
|
296
|
+
ts: body.ts
|
|
297
297
|
}
|
|
298
298
|
|
|
299
299
|
if (outputStream.writable) {
|
|
@@ -318,17 +318,17 @@ class HuobiOptionsIndexClient extends PoolingClientBase {
|
|
|
318
318
|
return
|
|
319
319
|
}
|
|
320
320
|
const url = `${this._httpURL}/option_index?symbol=${instrument}`
|
|
321
|
-
const
|
|
321
|
+
const { data: body } = await getJSON<any>(url, { timeout: 10000 })
|
|
322
322
|
|
|
323
|
-
if (
|
|
324
|
-
throw new Error(`open interest response error:${JSON.stringify(
|
|
323
|
+
if (body.status !== 'ok') {
|
|
324
|
+
throw new Error(`open interest response error:${JSON.stringify(body)}, url:${url}`)
|
|
325
325
|
}
|
|
326
326
|
|
|
327
327
|
const optionIndexMessage = {
|
|
328
328
|
ch: `market.${instrument}.option_index`,
|
|
329
329
|
generated: true,
|
|
330
|
-
data:
|
|
331
|
-
ts:
|
|
330
|
+
data: body.data[0],
|
|
331
|
+
ts: body.ts
|
|
332
332
|
}
|
|
333
333
|
|
|
334
334
|
if (outputStream.writable) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Filter } from '../types'
|
|
2
|
-
import { RealTimeFeedBase } from './realtimefeed'
|
|
1
|
+
import { Filter } from '../types.ts'
|
|
2
|
+
import { RealTimeFeedBase } from './realtimefeed.ts'
|
|
3
3
|
|
|
4
4
|
export class HyperliquidRealTimeFeed extends RealTimeFeedBase {
|
|
5
5
|
protected wssURL = 'wss://api.hyperliquid.xyz/ws'
|
|
@@ -1,59 +1,59 @@
|
|
|
1
|
-
import { Exchange, Filter } from '../types'
|
|
1
|
+
import { Exchange, Filter } from '../types.ts'
|
|
2
2
|
import {
|
|
3
3
|
BinanceFuturesRealTimeFeed,
|
|
4
4
|
BinanceJerseyRealTimeFeed,
|
|
5
5
|
BinanceRealTimeFeed,
|
|
6
6
|
BinanceUSRealTimeFeed,
|
|
7
7
|
BinanceDeliveryRealTimeFeed
|
|
8
|
-
} from './binance'
|
|
9
|
-
import { BinanceDexRealTimeFeed } from './binancedex'
|
|
10
|
-
import { BitfinexRealTimeFeed } from './bitfinex'
|
|
11
|
-
import { BitflyerRealTimeFeed } from './bitflyer'
|
|
12
|
-
import { BitmexRealTimeFeed } from './bitmex'
|
|
13
|
-
import { BitstampRealTimeFeed } from './bitstamp'
|
|
14
|
-
import { BybitOptionsRealTimeDataFeed, BybitRealTimeDataFeed, BybitSpotRealTimeDataFeed } from './bybit'
|
|
15
|
-
import { CoinbaseRealTimeFeed } from './coinbase'
|
|
16
|
-
import { CryptofacilitiesRealTimeFeed } from './cryptofacilities'
|
|
17
|
-
import { DeribitRealTimeDataFeed } from './deribit'
|
|
18
|
-
import { FtxRealTimeFeed, FtxUSRealTimeFeed } from './ftx'
|
|
19
|
-
import { GeminiRealTimeFeed } from './gemini'
|
|
20
|
-
import { HitBtcRealTimeFeed } from './hitbtc'
|
|
8
|
+
} from './binance.ts'
|
|
9
|
+
import { BinanceDexRealTimeFeed } from './binancedex.ts'
|
|
10
|
+
import { BitfinexRealTimeFeed } from './bitfinex.ts'
|
|
11
|
+
import { BitflyerRealTimeFeed } from './bitflyer.ts'
|
|
12
|
+
import { BitmexRealTimeFeed } from './bitmex.ts'
|
|
13
|
+
import { BitstampRealTimeFeed } from './bitstamp.ts'
|
|
14
|
+
import { BybitOptionsRealTimeDataFeed, BybitRealTimeDataFeed, BybitSpotRealTimeDataFeed } from './bybit.ts'
|
|
15
|
+
import { CoinbaseRealTimeFeed } from './coinbase.ts'
|
|
16
|
+
import { CryptofacilitiesRealTimeFeed } from './cryptofacilities.ts'
|
|
17
|
+
import { DeribitRealTimeDataFeed } from './deribit.ts'
|
|
18
|
+
import { FtxRealTimeFeed, FtxUSRealTimeFeed } from './ftx.ts'
|
|
19
|
+
import { GeminiRealTimeFeed } from './gemini.ts'
|
|
20
|
+
import { HitBtcRealTimeFeed } from './hitbtc.ts'
|
|
21
21
|
import {
|
|
22
22
|
HuobiDMRealTimeFeed,
|
|
23
23
|
HuobiRealTimeFeed,
|
|
24
24
|
HuobiDMSwapRealTimeFeed,
|
|
25
25
|
HuobiDMLinearSwapRealTimeFeed,
|
|
26
26
|
HuobiDMOptionsRealTimeFeed
|
|
27
|
-
} from './huobi'
|
|
28
|
-
import { KrakenRealTimeFeed } from './kraken'
|
|
29
|
-
import { OKCoinRealTimeFeed, OkexOptionsRealTimeFeed, OkexRealTimeFeed } from './okex'
|
|
30
|
-
import { RealTimeFeed } from './realtimefeed'
|
|
31
|
-
import { PhemexRealTimeFeed } from './phemex'
|
|
32
|
-
import { DeltaRealTimeFeed } from './delta'
|
|
33
|
-
import { GateIORealTimeFeed } from './gateio'
|
|
34
|
-
import { GateIOFuturesRealTimeFeed } from './gateiofutures'
|
|
35
|
-
import { PoloniexRealTimeFeed } from './poloniex'
|
|
36
|
-
import { CoinflexRealTimeFeed } from './coinflex'
|
|
37
|
-
import { UpbitRealTimeFeed } from './upbit'
|
|
38
|
-
import { AscendexRealTimeFeed } from './ascendex'
|
|
39
|
-
import { DydxRealTimeFeed } from './dydx'
|
|
40
|
-
import { SerumRealTimeFeed } from './serum'
|
|
41
|
-
import { StarAtlasRealTimeFeed } from './staratlas'
|
|
42
|
-
import { MangoRealTimeFeed } from './mango'
|
|
43
|
-
import { CryptoComRealTimeFeed } from './cryptocom'
|
|
44
|
-
import { KucoinRealTimeFeed } from './kucoin'
|
|
45
|
-
import { BitnomialRealTimeFeed } from './bitnomial'
|
|
46
|
-
import { WooxRealTimeFeed } from './woox'
|
|
47
|
-
import { BlockchainComRealTimeFeed } from './blockchaincom'
|
|
48
|
-
import { BinanceEuropeanOptionsRealTimeFeed } from './binanceeuropeanoptions'
|
|
49
|
-
import { OkexSpreadsRealTimeFeed } from './okexspreads'
|
|
50
|
-
import { KucoinFuturesRealTimeFeed } from './kucoinfutures'
|
|
51
|
-
import { DydxV4RealTimeFeed } from './dydx_v4'
|
|
52
|
-
import { BitgetFuturesRealTimeFeed, BitgetRealTimeFeed } from './bitget'
|
|
53
|
-
import { CoinbaseInternationalRealTimeFeed } from './coinbaseinternational'
|
|
54
|
-
import { HyperliquidRealTimeFeed } from './hyperliquid'
|
|
27
|
+
} from './huobi.ts'
|
|
28
|
+
import { KrakenRealTimeFeed } from './kraken.ts'
|
|
29
|
+
import { OKCoinRealTimeFeed, OkexOptionsRealTimeFeed, OkexRealTimeFeed } from './okex.ts'
|
|
30
|
+
import { RealTimeFeed } from './realtimefeed.ts'
|
|
31
|
+
import { PhemexRealTimeFeed } from './phemex.ts'
|
|
32
|
+
import { DeltaRealTimeFeed } from './delta.ts'
|
|
33
|
+
import { GateIORealTimeFeed } from './gateio.ts'
|
|
34
|
+
import { GateIOFuturesRealTimeFeed } from './gateiofutures.ts'
|
|
35
|
+
import { PoloniexRealTimeFeed } from './poloniex.ts'
|
|
36
|
+
import { CoinflexRealTimeFeed } from './coinflex.ts'
|
|
37
|
+
import { UpbitRealTimeFeed } from './upbit.ts'
|
|
38
|
+
import { AscendexRealTimeFeed } from './ascendex.ts'
|
|
39
|
+
import { DydxRealTimeFeed } from './dydx.ts'
|
|
40
|
+
import { SerumRealTimeFeed } from './serum.ts'
|
|
41
|
+
import { StarAtlasRealTimeFeed } from './staratlas.ts'
|
|
42
|
+
import { MangoRealTimeFeed } from './mango.ts'
|
|
43
|
+
import { CryptoComRealTimeFeed } from './cryptocom.ts'
|
|
44
|
+
import { KucoinRealTimeFeed } from './kucoin.ts'
|
|
45
|
+
import { BitnomialRealTimeFeed } from './bitnomial.ts'
|
|
46
|
+
import { WooxRealTimeFeed } from './woox.ts'
|
|
47
|
+
import { BlockchainComRealTimeFeed } from './blockchaincom.ts'
|
|
48
|
+
import { BinanceEuropeanOptionsRealTimeFeed } from './binanceeuropeanoptions.ts'
|
|
49
|
+
import { OkexSpreadsRealTimeFeed } from './okexspreads.ts'
|
|
50
|
+
import { KucoinFuturesRealTimeFeed } from './kucoinfutures.ts'
|
|
51
|
+
import { DydxV4RealTimeFeed } from './dydx_v4.ts'
|
|
52
|
+
import { BitgetFuturesRealTimeFeed, BitgetRealTimeFeed } from './bitget.ts'
|
|
53
|
+
import { CoinbaseInternationalRealTimeFeed } from './coinbaseinternational.ts'
|
|
54
|
+
import { HyperliquidRealTimeFeed } from './hyperliquid.ts'
|
|
55
55
|
|
|
56
|
-
export * from './realtimefeed'
|
|
56
|
+
export * from './realtimefeed.ts'
|
|
57
57
|
|
|
58
58
|
const realTimeFeedsMap: {
|
|
59
59
|
[key in Exchange]?: RealTimeFeed
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Filter } from '../types'
|
|
2
|
-
import { RealTimeFeedBase } from './realtimefeed'
|
|
1
|
+
import { Filter } from '../types.ts'
|
|
2
|
+
import { RealTimeFeedBase } from './realtimefeed.ts'
|
|
3
3
|
|
|
4
4
|
export class KrakenRealTimeFeed extends RealTimeFeedBase {
|
|
5
5
|
protected wssURL = 'wss://ws.kraken.com'
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { Filter } from '../types'
|
|
3
|
-
import { RealTimeFeedBase } from './realtimefeed'
|
|
1
|
+
import { getRandomString, getJSON, postJSON, wait } from '../handy.ts'
|
|
2
|
+
import { Filter } from '../types.ts'
|
|
3
|
+
import { RealTimeFeedBase } from './realtimefeed.ts'
|
|
4
4
|
|
|
5
5
|
export class KucoinRealTimeFeed extends RealTimeFeedBase {
|
|
6
6
|
protected wssURL = ''
|
|
7
7
|
private _httpURL = 'https://api.kucoin.com/api'
|
|
8
8
|
|
|
9
9
|
protected async getWebSocketUrl() {
|
|
10
|
-
const
|
|
10
|
+
const { data: body } = await postJSON<any>(`${this._httpURL}/v1/bullet-public`, { retry: 3, timeout: 10000 })
|
|
11
11
|
|
|
12
|
-
return `${
|
|
12
|
+
return `${body.data.instanceServers[0].endpoint}?token=${body.data.token}&connectId=${getRandomString()}`
|
|
13
13
|
}
|
|
14
14
|
|
|
15
15
|
protected mapToSubscribeMessages(filters: Filter<string>[]): any[] {
|
|
@@ -42,16 +42,16 @@ export class KucoinRealTimeFeed extends RealTimeFeedBase {
|
|
|
42
42
|
return
|
|
43
43
|
}
|
|
44
44
|
|
|
45
|
-
const
|
|
46
|
-
|
|
47
|
-
|
|
45
|
+
const { data } = await getJSON<any>(`${this._httpURL}/v1/market/orderbook/level2_100?symbol=${symbol}`, {
|
|
46
|
+
timeout: 10000
|
|
47
|
+
})
|
|
48
48
|
|
|
49
49
|
const snapshot = {
|
|
50
50
|
type: 'message',
|
|
51
51
|
generated: true,
|
|
52
52
|
topic: `/market/level2Snapshot:${symbol}`,
|
|
53
53
|
subject: 'trade.l2Snapshot',
|
|
54
|
-
...
|
|
54
|
+
...data
|
|
55
55
|
}
|
|
56
56
|
|
|
57
57
|
this.manualSnapshotsBuffer.push(snapshot)
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Writable } from 'stream'
|
|
2
|
-
import {
|
|
3
|
-
import { Filter } from '../types'
|
|
4
|
-
import { MultiConnectionRealTimeFeedBase, PoolingClientBase, RealTimeFeedBase } from './realtimefeed'
|
|
2
|
+
import { getJSON, getRandomString, postJSON } from '../handy.ts'
|
|
3
|
+
import { Filter } from '../types.ts'
|
|
4
|
+
import { MultiConnectionRealTimeFeedBase, PoolingClientBase, RealTimeFeedBase } from './realtimefeed.ts'
|
|
5
5
|
|
|
6
6
|
const kucoinHttpOptions = {
|
|
7
7
|
timeout: 10 * 1000,
|
|
@@ -42,9 +42,9 @@ export class KucoinFuturesSingleConnectionRealTimeFeed extends RealTimeFeedBase
|
|
|
42
42
|
protected wssURL = ''
|
|
43
43
|
|
|
44
44
|
protected async getWebSocketUrl() {
|
|
45
|
-
const
|
|
45
|
+
const { data: body } = await postJSON<any>(`${this._httpURL}/v1/bullet-public`, { retry: 3, timeout: 10000 })
|
|
46
46
|
|
|
47
|
-
return `${
|
|
47
|
+
return `${body.data.instanceServers[0].endpoint}?token=${body.data.token}&connectId=${getRandomString()}`
|
|
48
48
|
}
|
|
49
49
|
|
|
50
50
|
protected mapToSubscribeMessages(filters: Filter<string>[]): any[] {
|
|
@@ -76,16 +76,14 @@ export class KucoinFuturesSingleConnectionRealTimeFeed extends RealTimeFeedBase
|
|
|
76
76
|
return
|
|
77
77
|
}
|
|
78
78
|
|
|
79
|
-
const
|
|
80
|
-
.get(`${this._httpURL}/v1/level2/snapshot?symbol=${symbol}`, kucoinHttpOptions)
|
|
81
|
-
.json()) as any
|
|
79
|
+
const { data } = await getJSON<any>(`${this._httpURL}/v1/level2/snapshot?symbol=${symbol}`, kucoinHttpOptions)
|
|
82
80
|
|
|
83
81
|
const snapshot = {
|
|
84
82
|
type: 'message',
|
|
85
83
|
generated: true,
|
|
86
84
|
topic: `/contractMarket/level2Snapshot:${symbol}`,
|
|
87
85
|
subject: 'level2Snapshot',
|
|
88
|
-
...
|
|
86
|
+
...data
|
|
89
87
|
}
|
|
90
88
|
|
|
91
89
|
this.manualSnapshotsBuffer.push(snapshot)
|
|
@@ -116,9 +114,9 @@ class KucoinFuturesContractDetailsClient extends PoolingClientBase {
|
|
|
116
114
|
}
|
|
117
115
|
|
|
118
116
|
protected async poolDataToStream(outputStream: Writable) {
|
|
119
|
-
const
|
|
117
|
+
const { data: body } = await getJSON<any>(`${this._httpURL}/v1/contracts/active`, kucoinHttpOptions)
|
|
120
118
|
|
|
121
|
-
for (const instrument of
|
|
119
|
+
for (const instrument of body.data) {
|
|
122
120
|
const openInterestMessage = {
|
|
123
121
|
topic: `/contract/details:${instrument.symbol}`,
|
|
124
122
|
type: 'message',
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import crypto from 'crypto'
|
|
2
|
-
import { wait } from '../handy'
|
|
3
|
-
import { Filter } from '../types'
|
|
4
|
-
import { MultiConnectionRealTimeFeedBase, RealTimeFeedBase } from './realtimefeed'
|
|
2
|
+
import { wait } from '../handy.ts'
|
|
3
|
+
import { Filter } from '../types.ts'
|
|
4
|
+
import { MultiConnectionRealTimeFeedBase, RealTimeFeedBase } from './realtimefeed.ts'
|
|
5
5
|
|
|
6
6
|
export class OkexRealTimeFeed extends MultiConnectionRealTimeFeedBase {
|
|
7
7
|
protected *_getRealTimeFeeds(exchange: string, filters: Filter<string>[], timeoutIntervalMS?: number, onError?: (error: Error) => void) {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import crypto from 'crypto'
|
|
2
|
-
import { wait } from '../handy'
|
|
3
|
-
import { Filter } from '../types'
|
|
4
|
-
import { RealTimeFeedBase } from './realtimefeed'
|
|
2
|
+
import { wait } from '../handy.ts'
|
|
3
|
+
import { Filter } from '../types.ts'
|
|
4
|
+
import { RealTimeFeedBase } from './realtimefeed.ts'
|
|
5
5
|
|
|
6
6
|
export class OkexSpreadsRealTimeFeed extends RealTimeFeedBase {
|
|
7
7
|
protected wssURL = 'wss://ws.okx.com:8443/ws/v5/business'
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Filter } from '../types'
|
|
2
|
-
import { RealTimeFeedBase } from './realtimefeed'
|
|
1
|
+
import { Filter } from '../types.ts'
|
|
2
|
+
import { RealTimeFeedBase } from './realtimefeed.ts'
|
|
3
3
|
|
|
4
4
|
export class PhemexRealTimeFeed extends RealTimeFeedBase {
|
|
5
5
|
protected readonly wssURL = 'wss://ws.phemex.com/'
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Filter } from '../types'
|
|
2
|
-
import { RealTimeFeedBase } from './realtimefeed'
|
|
1
|
+
import { Filter } from '../types.ts'
|
|
2
|
+
import { RealTimeFeedBase } from './realtimefeed.ts'
|
|
3
3
|
|
|
4
4
|
export class PoloniexRealTimeFeed extends RealTimeFeedBase {
|
|
5
5
|
protected readonly wssURL = 'wss://ws.poloniex.com/ws/public'
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import dbg from 'debug'
|
|
2
|
-
import WebSocket from 'ws'
|
|
3
|
-
import { ClientRequestArgs } from 'http'
|
|
2
|
+
import WebSocket, { createWebSocketStream } from 'ws'
|
|
3
|
+
import type { ClientRequestArgs } from 'http'
|
|
4
4
|
import { PassThrough, Writable } from 'stream'
|
|
5
5
|
import { once } from 'events'
|
|
6
|
-
import { httpsProxyAgent, ONE_SEC_IN_MS, optimizeFilters, wait } from '../handy'
|
|
7
|
-
import { Exchange, Filter } from '../types'
|
|
6
|
+
import { httpsProxyAgent, ONE_SEC_IN_MS, optimizeFilters, wait } from '../handy.ts'
|
|
7
|
+
import { Exchange, Filter } from '../types.ts'
|
|
8
8
|
|
|
9
9
|
export type RealTimeFeed = {
|
|
10
10
|
new (
|
|
@@ -102,10 +102,10 @@ export abstract class RealTimeFeedBase implements RealTimeFeedIterable {
|
|
|
102
102
|
staleConnectionTimerId = this._monitorConnectionIfStale()
|
|
103
103
|
pingTimerId = this._sendPeriodicPing()
|
|
104
104
|
|
|
105
|
-
const realtimeMessagesStream =
|
|
105
|
+
const realtimeMessagesStream = createWebSocketStream(this._ws, {
|
|
106
106
|
readableObjectMode: true, // othwerwise we may end up with multiple messages returned by stream in single iteration
|
|
107
107
|
readableHighWaterMark: 8096 // since we're in object mode, let's increase hwm a little from default of 16 messages buffered
|
|
108
|
-
}) as AsyncIterableIterator<Buffer>
|
|
108
|
+
}) as unknown as AsyncIterableIterator<Buffer>
|
|
109
109
|
|
|
110
110
|
for await (let message of realtimeMessagesStream) {
|
|
111
111
|
if (this.decompress !== undefined) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Filter } from '../types'
|
|
2
|
-
import { RealTimeFeedBase } from './realtimefeed'
|
|
1
|
+
import { Filter } from '../types.ts'
|
|
2
|
+
import { RealTimeFeedBase } from './realtimefeed.ts'
|
|
3
3
|
|
|
4
4
|
export class SerumRealTimeFeed extends RealTimeFeedBase {
|
|
5
5
|
protected wssURL = 'wss://api.serum-vial.dev/v1/ws'
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Filter } from '../types'
|
|
2
|
-
import { RealTimeFeedBase } from './realtimefeed'
|
|
1
|
+
import { Filter } from '../types.ts'
|
|
2
|
+
import { RealTimeFeedBase } from './realtimefeed.ts'
|
|
3
3
|
|
|
4
4
|
export class UpbitRealTimeFeed extends RealTimeFeedBase {
|
|
5
5
|
protected readonly wssURL = 'wss://api.upbit.com/websocket/v1'
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { wait } from '../handy'
|
|
2
|
-
import { Filter } from '../types'
|
|
3
|
-
import { RealTimeFeedBase } from './realtimefeed'
|
|
1
|
+
import { wait } from '../handy.ts'
|
|
2
|
+
import { Filter } from '../types.ts'
|
|
3
|
+
import { RealTimeFeedBase } from './realtimefeed.ts'
|
|
4
4
|
|
|
5
5
|
export class WooxRealTimeFeed extends RealTimeFeedBase {
|
|
6
6
|
protected wssURL = 'wss://wss.woo.org/ws/stream/OqdphuyCtYWxwzhxyLLjOWNdFP7sQt8RPWzmb5xY'
|