tardis-dev 14.2.3 → 15.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +42 -54
- 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 +7 -7
- package/dist/mappers/gateiofutures.d.ts.map +1 -1
- package/dist/mappers/gateiofutures.js +22 -25
- 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 +13 -2
- package/dist/realtimefeeds/binance.d.ts.map +1 -1
- package/dist/realtimefeeds/binance.js +69 -33
- 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 +5 -2
- package/dist/realtimefeeds/gateiofutures.d.ts.map +1 -1
- package/dist/realtimefeeds/gateiofutures.js +4 -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 +2 -1
- package/dist/realtimefeeds/realtimefeed.d.ts.map +1 -1
- package/dist/realtimefeeds/realtimefeed.js +33 -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 +6 -3
- package/dist/replay.d.ts.map +1 -1
- package/dist/replay.js +62 -71
- package/dist/replay.js.map +1 -1
- package/dist/stream.d.ts +6 -3
- 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 +18 -14
- 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 +111 -20
- 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 +3 -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 +8 -3
- 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 +31 -35
- package/src/stream.ts +12 -23
- package/src/types.ts +1 -1
- package/src/worker.ts +3 -4
package/dist/handy.js
CHANGED
|
@@ -1,90 +1,31 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
-
};
|
|
38
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
exports.fromMicroSecondsToDate = exports.httpClient = exports.CappedSet = exports.CircularBuffer = exports.httpsProxyAgent = exports.HttpError = exports.ONE_SEC_IN_MS = void 0;
|
|
40
|
-
exports.parseAsUTCDate = parseAsUTCDate;
|
|
41
|
-
exports.wait = wait;
|
|
42
|
-
exports.getRandomString = getRandomString;
|
|
43
|
-
exports.formatDateToPath = formatDateToPath;
|
|
44
|
-
exports.doubleDigit = doubleDigit;
|
|
45
|
-
exports.sha256 = sha256;
|
|
46
|
-
exports.addMinutes = addMinutes;
|
|
47
|
-
exports.addDays = addDays;
|
|
48
|
-
exports.sequence = sequence;
|
|
49
|
-
exports.take = take;
|
|
50
|
-
exports.normalizeMessages = normalizeMessages;
|
|
51
|
-
exports.getFilters = getFilters;
|
|
52
|
-
exports.batch = batch;
|
|
53
|
-
exports.batchObjects = batchObjects;
|
|
54
|
-
exports.parseμs = parseμs;
|
|
55
|
-
exports.optimizeFilters = optimizeFilters;
|
|
56
|
-
exports.download = download;
|
|
57
|
-
exports.cleanTempFiles = cleanTempFiles;
|
|
58
|
-
exports.decimalPlaces = decimalPlaces;
|
|
59
|
-
exports.asNumberIfValid = asNumberIfValid;
|
|
60
|
-
exports.upperCaseSymbols = upperCaseSymbols;
|
|
61
|
-
exports.lowerCaseSymbols = lowerCaseSymbols;
|
|
62
|
-
exports.onlyUnique = onlyUnique;
|
|
63
|
-
const crypto_1 = __importStar(require("crypto"));
|
|
64
|
-
const fs_extra_1 = require("fs-extra");
|
|
65
|
-
const follow_redirects_1 = require("follow-redirects");
|
|
66
|
-
const https_proxy_agent_1 = require("https-proxy-agent");
|
|
67
|
-
const got_1 = __importDefault(require("got"));
|
|
68
|
-
const path_1 = __importDefault(require("path"));
|
|
69
|
-
const debug_1 = require("./debug");
|
|
70
|
-
const socks_proxy_agent_1 = require("socks-proxy-agent");
|
|
71
|
-
function parseAsUTCDate(val) {
|
|
72
|
-
// not sure about this one, but it should force parsing date as UTC date not as local timezone
|
|
1
|
+
import crypto, { createHash } from 'crypto';
|
|
2
|
+
import { createWriteStream, mkdirSync, rmSync } from 'node:fs';
|
|
3
|
+
import { rename } from 'node:fs/promises';
|
|
4
|
+
import followRedirects from 'follow-redirects';
|
|
5
|
+
import * as httpsProxyAgentPkg from 'https-proxy-agent';
|
|
6
|
+
import path from 'path';
|
|
7
|
+
import { debug } from "./debug.js";
|
|
8
|
+
import * as socksProxyAgentPkg from 'socks-proxy-agent';
|
|
9
|
+
const { http, https } = followRedirects;
|
|
10
|
+
const { HttpsProxyAgent } = httpsProxyAgentPkg;
|
|
11
|
+
const { SocksProxyAgent } = socksProxyAgentPkg;
|
|
12
|
+
export function parseAsUTCDate(val) {
|
|
13
|
+
// Treat date-only and minute-level strings as UTC instead of local time.
|
|
73
14
|
if (val.endsWith('Z') === false) {
|
|
74
15
|
val += 'Z';
|
|
75
16
|
}
|
|
76
|
-
|
|
17
|
+
const date = new Date(val);
|
|
77
18
|
return new Date(Date.UTC(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate(), date.getUTCHours(), date.getUTCMinutes()));
|
|
78
19
|
}
|
|
79
|
-
function wait(delayMS) {
|
|
20
|
+
export function wait(delayMS) {
|
|
80
21
|
return new Promise((resolve) => {
|
|
81
22
|
setTimeout(resolve, delayMS);
|
|
82
23
|
});
|
|
83
24
|
}
|
|
84
|
-
function getRandomString() {
|
|
85
|
-
return
|
|
25
|
+
export function getRandomString() {
|
|
26
|
+
return crypto.randomBytes(24).toString('hex');
|
|
86
27
|
}
|
|
87
|
-
function formatDateToPath(date) {
|
|
28
|
+
export function formatDateToPath(date) {
|
|
88
29
|
const year = date.getUTCFullYear();
|
|
89
30
|
const month = doubleDigit(date.getUTCMonth() + 1);
|
|
90
31
|
const day = doubleDigit(date.getUTCDate());
|
|
@@ -92,19 +33,19 @@ function formatDateToPath(date) {
|
|
|
92
33
|
const minute = doubleDigit(date.getUTCMinutes());
|
|
93
34
|
return `${year}/${month}/${day}/${hour}/${minute}`;
|
|
94
35
|
}
|
|
95
|
-
function doubleDigit(input) {
|
|
36
|
+
export function doubleDigit(input) {
|
|
96
37
|
return input < 10 ? '0' + input : '' + input;
|
|
97
38
|
}
|
|
98
|
-
function sha256(obj) {
|
|
99
|
-
return
|
|
39
|
+
export function sha256(obj) {
|
|
40
|
+
return createHash('sha256').update(JSON.stringify(obj)).digest('hex');
|
|
100
41
|
}
|
|
101
|
-
function addMinutes(date, minutes) {
|
|
42
|
+
export function addMinutes(date, minutes) {
|
|
102
43
|
return new Date(date.getTime() + minutes * 60000);
|
|
103
44
|
}
|
|
104
|
-
function addDays(date, days) {
|
|
45
|
+
export function addDays(date, days) {
|
|
105
46
|
return new Date(date.getTime() + days * 60000 * 1440);
|
|
106
47
|
}
|
|
107
|
-
function* sequence(end, seed = 0) {
|
|
48
|
+
export function* sequence(end, seed = 0) {
|
|
108
49
|
let current = seed;
|
|
109
50
|
while (current < end) {
|
|
110
51
|
yield current;
|
|
@@ -112,8 +53,8 @@ function* sequence(end, seed = 0) {
|
|
|
112
53
|
}
|
|
113
54
|
return;
|
|
114
55
|
}
|
|
115
|
-
|
|
116
|
-
class HttpError extends Error {
|
|
56
|
+
export const ONE_SEC_IN_MS = 1000;
|
|
57
|
+
export class HttpError extends Error {
|
|
117
58
|
status;
|
|
118
59
|
responseText;
|
|
119
60
|
url;
|
|
@@ -124,8 +65,18 @@ class HttpError extends Error {
|
|
|
124
65
|
this.url = url;
|
|
125
66
|
}
|
|
126
67
|
}
|
|
127
|
-
|
|
128
|
-
|
|
68
|
+
class HttpClientError extends Error {
|
|
69
|
+
response;
|
|
70
|
+
method;
|
|
71
|
+
url;
|
|
72
|
+
constructor(response, method, url) {
|
|
73
|
+
super(`HTTP ${method} ${url} failed with status ${response.statusCode}`);
|
|
74
|
+
this.response = response;
|
|
75
|
+
this.method = method;
|
|
76
|
+
this.url = url;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
export function* take(iterable, length) {
|
|
129
80
|
if (length === 0) {
|
|
130
81
|
return;
|
|
131
82
|
}
|
|
@@ -137,7 +88,7 @@ function* take(iterable, length) {
|
|
|
137
88
|
}
|
|
138
89
|
}
|
|
139
90
|
}
|
|
140
|
-
async function* normalizeMessages(exchange, symbols, messages, mappers, createMappers, withDisconnectMessages, filter, currentTimestamp) {
|
|
91
|
+
export async function* normalizeMessages(exchange, symbols, messages, mappers, createMappers, withDisconnectMessages, filter, currentTimestamp) {
|
|
141
92
|
let previousLocalTimestamp = currentTimestamp;
|
|
142
93
|
let mappersForExchange = mappers;
|
|
143
94
|
if (mappersForExchange.length === 0) {
|
|
@@ -182,7 +133,7 @@ async function* normalizeMessages(exchange, symbols, messages, mappers, createMa
|
|
|
182
133
|
}
|
|
183
134
|
}
|
|
184
135
|
}
|
|
185
|
-
function getFilters(mappers, symbols) {
|
|
136
|
+
export function getFilters(mappers, symbols) {
|
|
186
137
|
const filters = mappers.flatMap((mapper) => mapper.getFilters(symbols));
|
|
187
138
|
const deduplicatedFilters = filters.reduce((prev, current) => {
|
|
188
139
|
const matchingExisting = prev.find((c) => c.channel === current.channel);
|
|
@@ -205,17 +156,17 @@ function getFilters(mappers, symbols) {
|
|
|
205
156
|
}, []);
|
|
206
157
|
return deduplicatedFilters;
|
|
207
158
|
}
|
|
208
|
-
function* batch(symbols, batchSize) {
|
|
159
|
+
export function* batch(symbols, batchSize) {
|
|
209
160
|
for (let i = 0; i < symbols.length; i += batchSize) {
|
|
210
161
|
yield symbols.slice(i, i + batchSize);
|
|
211
162
|
}
|
|
212
163
|
}
|
|
213
|
-
function* batchObjects(payload, batchSize) {
|
|
164
|
+
export function* batchObjects(payload, batchSize) {
|
|
214
165
|
for (let i = 0; i < payload.length; i += batchSize) {
|
|
215
166
|
yield payload.slice(i, i + batchSize);
|
|
216
167
|
}
|
|
217
168
|
}
|
|
218
|
-
function parseμs(dateString) {
|
|
169
|
+
export function parseμs(dateString) {
|
|
219
170
|
// check if we have ISO 8601 format date string, e.g: 2019-06-01T00:03:03.1238784Z or 2020-07-22T00:09:16.836773Z
|
|
220
171
|
// or 2020-03-01T00:00:24.893456+00:00
|
|
221
172
|
if (dateString.length === 27 || dateString.length === 28 || dateString.length === 32 || dateString.length === 30) {
|
|
@@ -223,7 +174,7 @@ function parseμs(dateString) {
|
|
|
223
174
|
}
|
|
224
175
|
return 0;
|
|
225
176
|
}
|
|
226
|
-
function optimizeFilters(filters) {
|
|
177
|
+
export function optimizeFilters(filters) {
|
|
227
178
|
// deduplicate filters (if the channel was provided multiple times)
|
|
228
179
|
const optimizedFilters = filters.reduce((prev, current) => {
|
|
229
180
|
const matchingExisting = prev.find((c) => c.channel === current.channel);
|
|
@@ -259,20 +210,206 @@ function optimizeFilters(filters) {
|
|
|
259
210
|
});
|
|
260
211
|
return optimizedFilters;
|
|
261
212
|
}
|
|
262
|
-
const httpsAgent = new
|
|
213
|
+
const httpsAgent = new https.Agent({
|
|
263
214
|
keepAlive: true,
|
|
264
|
-
keepAliveMsecs: 10 *
|
|
215
|
+
keepAliveMsecs: 10 * ONE_SEC_IN_MS,
|
|
265
216
|
maxSockets: 120
|
|
266
217
|
});
|
|
267
|
-
|
|
268
|
-
? new
|
|
218
|
+
export const httpsProxyAgent = process.env.HTTP_PROXY !== undefined
|
|
219
|
+
? new HttpsProxyAgent(process.env.HTTP_PROXY)
|
|
269
220
|
: process.env.SOCKS_PROXY !== undefined
|
|
270
|
-
? new
|
|
221
|
+
? new SocksProxyAgent(process.env.SOCKS_PROXY)
|
|
271
222
|
: undefined;
|
|
272
|
-
|
|
223
|
+
const DEFAULT_FETCH_RETRY_LIMIT = 2;
|
|
224
|
+
function getRetrySettings(method, retry) {
|
|
225
|
+
const retryOptions = typeof retry === 'object' ? retry : undefined;
|
|
226
|
+
const retryEnabled = method === 'GET' || retry !== undefined;
|
|
227
|
+
const limit = typeof retry === 'number' ? retry : retryOptions?.limit ?? (retryEnabled ? DEFAULT_FETCH_RETRY_LIMIT : 0);
|
|
228
|
+
return {
|
|
229
|
+
limit,
|
|
230
|
+
maxRetryAfter: retryOptions?.maxRetryAfter,
|
|
231
|
+
statusCodes: retryOptions?.statusCodes ? new Set(retryOptions.statusCodes) : undefined
|
|
232
|
+
};
|
|
233
|
+
}
|
|
234
|
+
function parseResponseHeaders(headers) {
|
|
235
|
+
return Object.fromEntries(headers.entries());
|
|
236
|
+
}
|
|
237
|
+
function parseNodeResponseHeaders(headers) {
|
|
238
|
+
return Object.fromEntries(Object.entries(headers).flatMap(([key, value]) => {
|
|
239
|
+
if (value === undefined) {
|
|
240
|
+
return [];
|
|
241
|
+
}
|
|
242
|
+
return [[key.toLowerCase(), Array.isArray(value) ? value.join(', ') : value]];
|
|
243
|
+
}));
|
|
244
|
+
}
|
|
245
|
+
function createHttpResponse(statusCode, headers, body) {
|
|
246
|
+
return {
|
|
247
|
+
statusCode,
|
|
248
|
+
headers,
|
|
249
|
+
body
|
|
250
|
+
};
|
|
251
|
+
}
|
|
252
|
+
function prepareRequest(method, options) {
|
|
253
|
+
if (options.body === undefined) {
|
|
254
|
+
return {
|
|
255
|
+
headers: options.headers,
|
|
256
|
+
body: undefined
|
|
257
|
+
};
|
|
258
|
+
}
|
|
259
|
+
const headers = { ...options.headers };
|
|
260
|
+
const body = typeof options.body === 'string' ? options.body : JSON.stringify(options.body);
|
|
261
|
+
if (method !== 'GET' && headers['Content-Type'] === undefined && headers['content-type'] === undefined) {
|
|
262
|
+
headers['Content-Type'] = 'application/json';
|
|
263
|
+
}
|
|
264
|
+
return {
|
|
265
|
+
headers,
|
|
266
|
+
body
|
|
267
|
+
};
|
|
268
|
+
}
|
|
269
|
+
function getRetryAfterDelayMS(headers, maxRetryAfter) {
|
|
270
|
+
const retryAfterHeader = headers['retry-after'];
|
|
271
|
+
if (retryAfterHeader === undefined) {
|
|
272
|
+
return;
|
|
273
|
+
}
|
|
274
|
+
const parsedSeconds = Number.parseFloat(retryAfterHeader);
|
|
275
|
+
let delayMS;
|
|
276
|
+
if (Number.isFinite(parsedSeconds)) {
|
|
277
|
+
delayMS = parsedSeconds * ONE_SEC_IN_MS;
|
|
278
|
+
}
|
|
279
|
+
else {
|
|
280
|
+
const parsedDate = Date.parse(retryAfterHeader);
|
|
281
|
+
if (Number.isFinite(parsedDate)) {
|
|
282
|
+
delayMS = parsedDate - Date.now();
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
if (delayMS === undefined || delayMS < 0) {
|
|
286
|
+
return;
|
|
287
|
+
}
|
|
288
|
+
if (maxRetryAfter !== undefined && delayMS > maxRetryAfter) {
|
|
289
|
+
return;
|
|
290
|
+
}
|
|
291
|
+
return delayMS;
|
|
292
|
+
}
|
|
293
|
+
function getRetryDelayMS(attempt, headers, maxRetryAfter) {
|
|
294
|
+
const retryAfterDelayMS = getRetryAfterDelayMS(headers, maxRetryAfter);
|
|
295
|
+
if (retryAfterDelayMS !== undefined) {
|
|
296
|
+
return retryAfterDelayMS;
|
|
297
|
+
}
|
|
298
|
+
return Math.min(250 * 2 ** (attempt - 1), 5000);
|
|
299
|
+
}
|
|
300
|
+
function isRetryableStatus(statusCode, retrySettings) {
|
|
301
|
+
if (retrySettings.statusCodes !== undefined) {
|
|
302
|
+
return retrySettings.statusCodes.has(statusCode);
|
|
303
|
+
}
|
|
304
|
+
return statusCode === 408 || statusCode === 429 || statusCode >= 500;
|
|
305
|
+
}
|
|
306
|
+
function shouldRetryHttpStatus(attempt, response, retrySettings) {
|
|
307
|
+
return attempt <= retrySettings.limit && isRetryableStatus(response.statusCode, retrySettings);
|
|
308
|
+
}
|
|
309
|
+
function shouldRetryHttpError(attempt, retrySettings) {
|
|
310
|
+
return attempt <= retrySettings.limit;
|
|
311
|
+
}
|
|
312
|
+
async function requestViaFetch(method, url, options) {
|
|
313
|
+
const controller = new AbortController();
|
|
314
|
+
const timeoutMS = options.timeout;
|
|
315
|
+
const timeoutId = timeoutMS !== undefined ? setTimeout(() => controller.abort(), timeoutMS) : undefined;
|
|
316
|
+
const preparedRequest = prepareRequest(method, options);
|
|
317
|
+
try {
|
|
318
|
+
const response = await fetch(url, {
|
|
319
|
+
method,
|
|
320
|
+
headers: preparedRequest.headers,
|
|
321
|
+
body: preparedRequest.body,
|
|
322
|
+
signal: controller.signal
|
|
323
|
+
});
|
|
324
|
+
const body = await response.text();
|
|
325
|
+
return createHttpResponse(response.status, parseResponseHeaders(response.headers), body);
|
|
326
|
+
}
|
|
327
|
+
catch (error) {
|
|
328
|
+
if (controller.signal.aborted) {
|
|
329
|
+
throw new Error('Request timed out');
|
|
330
|
+
}
|
|
331
|
+
throw error;
|
|
332
|
+
}
|
|
333
|
+
finally {
|
|
334
|
+
if (timeoutId !== undefined) {
|
|
335
|
+
clearTimeout(timeoutId);
|
|
336
|
+
}
|
|
337
|
+
}
|
|
338
|
+
}
|
|
339
|
+
async function requestViaProxy(method, url, options) {
|
|
340
|
+
const requestClient = new URL(url).protocol === 'http:' ? http : https;
|
|
341
|
+
const preparedRequest = prepareRequest(method, options);
|
|
342
|
+
return await new Promise((resolve, reject) => {
|
|
343
|
+
const request = requestClient
|
|
344
|
+
.request(url, {
|
|
345
|
+
method,
|
|
346
|
+
agent: httpsProxyAgent,
|
|
347
|
+
headers: preparedRequest.headers,
|
|
348
|
+
timeout: options.timeout
|
|
349
|
+
}, (response) => {
|
|
350
|
+
response.setEncoding('utf8');
|
|
351
|
+
let body = '';
|
|
352
|
+
response.on('error', reject);
|
|
353
|
+
response.on('data', (chunk) => (body += chunk));
|
|
354
|
+
response.on('end', () => {
|
|
355
|
+
resolve(createHttpResponse(response.statusCode ?? 0, parseNodeResponseHeaders(response.headers), body));
|
|
356
|
+
});
|
|
357
|
+
})
|
|
358
|
+
.on('error', reject)
|
|
359
|
+
.on('timeout', () => {
|
|
360
|
+
reject(new Error('Request timed out'));
|
|
361
|
+
request.destroy();
|
|
362
|
+
});
|
|
363
|
+
if (preparedRequest.body !== undefined) {
|
|
364
|
+
request.write(preparedRequest.body);
|
|
365
|
+
}
|
|
366
|
+
request.end();
|
|
367
|
+
});
|
|
368
|
+
}
|
|
369
|
+
async function request(method, url, options = {}) {
|
|
370
|
+
const retrySettings = getRetrySettings(method, options.retry);
|
|
371
|
+
for (let attempt = 1;; attempt += 1) {
|
|
372
|
+
try {
|
|
373
|
+
const response = httpsProxyAgent === undefined ? await requestViaFetch(method, url, options) : await requestViaProxy(method, url, options);
|
|
374
|
+
if (response.statusCode >= 200 && response.statusCode < 300) {
|
|
375
|
+
return response;
|
|
376
|
+
}
|
|
377
|
+
if (shouldRetryHttpStatus(attempt, response, retrySettings)) {
|
|
378
|
+
await wait(getRetryDelayMS(attempt, response.headers, retrySettings.maxRetryAfter));
|
|
379
|
+
continue;
|
|
380
|
+
}
|
|
381
|
+
throw new HttpClientError(response, method, url);
|
|
382
|
+
}
|
|
383
|
+
catch (error) {
|
|
384
|
+
if (error instanceof HttpClientError) {
|
|
385
|
+
throw error;
|
|
386
|
+
}
|
|
387
|
+
if (shouldRetryHttpError(attempt, retrySettings)) {
|
|
388
|
+
await wait(Math.min(250 * 2 ** (attempt - 1), 5000));
|
|
389
|
+
continue;
|
|
390
|
+
}
|
|
391
|
+
throw error;
|
|
392
|
+
}
|
|
393
|
+
}
|
|
394
|
+
}
|
|
395
|
+
async function requestJSON(method, url, options) {
|
|
396
|
+
const response = await request(method, url, options);
|
|
397
|
+
return {
|
|
398
|
+
data: JSON.parse(response.body),
|
|
399
|
+
headers: response.headers,
|
|
400
|
+
statusCode: response.statusCode
|
|
401
|
+
};
|
|
402
|
+
}
|
|
403
|
+
export function getJSON(url, options) {
|
|
404
|
+
return requestJSON('GET', url, options);
|
|
405
|
+
}
|
|
406
|
+
export function postJSON(url, options) {
|
|
407
|
+
return requestJSON('POST', url, options);
|
|
408
|
+
}
|
|
409
|
+
export async function download({ apiKey, downloadPath, url, userAgent }) {
|
|
273
410
|
const httpRequestOptions = {
|
|
274
|
-
agent:
|
|
275
|
-
timeout: 90 *
|
|
411
|
+
agent: httpsProxyAgent !== undefined ? httpsProxyAgent : httpsAgent,
|
|
412
|
+
timeout: 90 * ONE_SEC_IN_MS,
|
|
276
413
|
headers: {
|
|
277
414
|
'Accept-Encoding': 'gzip',
|
|
278
415
|
'User-Agent': userAgent,
|
|
@@ -303,34 +440,34 @@ async function download({ apiKey, downloadPath, url, userAgent }) {
|
|
|
303
440
|
throw error;
|
|
304
441
|
}
|
|
305
442
|
const randomIngridient = Math.random() * 500;
|
|
306
|
-
const attemptsDelayMS = Math.min(Math.pow(2, attempts) *
|
|
443
|
+
const attemptsDelayMS = Math.min(Math.pow(2, attempts) * ONE_SEC_IN_MS, 120 * ONE_SEC_IN_MS);
|
|
307
444
|
let nextAttemptDelayMS = randomIngridient + attemptsDelayMS;
|
|
308
445
|
if (tooManyRequests) {
|
|
309
446
|
// when too many requests received wait one minute
|
|
310
|
-
nextAttemptDelayMS += 60 *
|
|
447
|
+
nextAttemptDelayMS += 60 * ONE_SEC_IN_MS;
|
|
311
448
|
}
|
|
312
449
|
if (internalServiceError) {
|
|
313
450
|
nextAttemptDelayMS = nextAttemptDelayMS * 2;
|
|
314
451
|
}
|
|
315
|
-
|
|
452
|
+
debug('download file error: %o, next attempt delay: %d, url %s, path: %s', error, nextAttemptDelayMS, url, downloadPath);
|
|
316
453
|
await wait(nextAttemptDelayMS);
|
|
317
454
|
}
|
|
318
455
|
}
|
|
319
456
|
}
|
|
320
457
|
const tmpFileCleanups = new Map();
|
|
321
|
-
function cleanTempFiles() {
|
|
458
|
+
export function cleanTempFiles() {
|
|
322
459
|
tmpFileCleanups.forEach((cleanup) => cleanup());
|
|
323
460
|
}
|
|
324
461
|
async function _downloadFile(requestOptions, url, downloadPath) {
|
|
325
462
|
// first ensure that directory where we want to download file exists
|
|
326
|
-
(
|
|
463
|
+
mkdirSync(path.dirname(downloadPath), { recursive: true });
|
|
327
464
|
// create write file stream that we'll write data into - first as unconfirmed temp file
|
|
328
|
-
const tmpFilePath = `${downloadPath}${
|
|
329
|
-
const fileWriteStream =
|
|
465
|
+
const tmpFilePath = `${downloadPath}${crypto.randomBytes(8).toString('hex')}.unconfirmed`;
|
|
466
|
+
const fileWriteStream = createWriteStream(tmpFilePath);
|
|
330
467
|
const cleanup = () => {
|
|
331
468
|
try {
|
|
332
469
|
fileWriteStream.destroy();
|
|
333
|
-
(
|
|
470
|
+
rmSync(tmpFilePath, { force: true });
|
|
334
471
|
}
|
|
335
472
|
catch { }
|
|
336
473
|
};
|
|
@@ -338,7 +475,7 @@ async function _downloadFile(requestOptions, url, downloadPath) {
|
|
|
338
475
|
try {
|
|
339
476
|
// based on https://github.com/nodejs/node/issues/28172 - only reliable way to consume response stream and avoiding all the 'gotchas'
|
|
340
477
|
await new Promise((resolve, reject) => {
|
|
341
|
-
const req =
|
|
478
|
+
const req = https
|
|
342
479
|
.get(url, requestOptions, (res) => {
|
|
343
480
|
const { statusCode } = res;
|
|
344
481
|
if (statusCode !== 200) {
|
|
@@ -370,21 +507,21 @@ async function _downloadFile(requestOptions, url, downloadPath) {
|
|
|
370
507
|
})
|
|
371
508
|
.on('error', reject)
|
|
372
509
|
.on('timeout', () => {
|
|
373
|
-
|
|
510
|
+
debug('download file request timeout, %s', url);
|
|
374
511
|
reject(new Error('Request timed out'));
|
|
375
512
|
req.destroy();
|
|
376
513
|
});
|
|
377
514
|
});
|
|
378
515
|
// finally when saving from the network to file has succeded, rename tmp file to normal name
|
|
379
516
|
// then we're sure that responses is 100% saved and also even if different process was doing the same we're good
|
|
380
|
-
await
|
|
517
|
+
await rename(tmpFilePath, downloadPath);
|
|
381
518
|
}
|
|
382
519
|
finally {
|
|
383
520
|
tmpFileCleanups.delete(tmpFilePath);
|
|
384
521
|
cleanup();
|
|
385
522
|
}
|
|
386
523
|
}
|
|
387
|
-
class CircularBuffer {
|
|
524
|
+
export class CircularBuffer {
|
|
388
525
|
_bufferSize;
|
|
389
526
|
_buffer = [];
|
|
390
527
|
_index = 0;
|
|
@@ -415,8 +552,7 @@ class CircularBuffer {
|
|
|
415
552
|
this._index = 0;
|
|
416
553
|
}
|
|
417
554
|
}
|
|
418
|
-
|
|
419
|
-
class CappedSet {
|
|
555
|
+
export class CappedSet {
|
|
420
556
|
_maxSize;
|
|
421
557
|
_set = new Set();
|
|
422
558
|
constructor(_maxSize) {
|
|
@@ -438,19 +574,18 @@ class CappedSet {
|
|
|
438
574
|
return this._set.size;
|
|
439
575
|
}
|
|
440
576
|
}
|
|
441
|
-
exports.CappedSet = CappedSet;
|
|
442
577
|
function hasFraction(n) {
|
|
443
578
|
return Math.abs(Math.round(n) - n) > 1e-10;
|
|
444
579
|
}
|
|
445
580
|
// https://stackoverflow.com/a/44815797
|
|
446
|
-
function decimalPlaces(n) {
|
|
581
|
+
export function decimalPlaces(n) {
|
|
447
582
|
let count = 0;
|
|
448
583
|
// multiply by increasing powers of 10 until the fractional part is ~ 0
|
|
449
584
|
while (hasFraction(n * 10 ** count) && isFinite(10 ** count))
|
|
450
585
|
count++;
|
|
451
586
|
return count;
|
|
452
587
|
}
|
|
453
|
-
function asNumberIfValid(val) {
|
|
588
|
+
export function asNumberIfValid(val) {
|
|
454
589
|
if (val === undefined || val === null) {
|
|
455
590
|
return;
|
|
456
591
|
}
|
|
@@ -463,26 +598,19 @@ function asNumberIfValid(val) {
|
|
|
463
598
|
}
|
|
464
599
|
return asNumber;
|
|
465
600
|
}
|
|
466
|
-
|
|
467
|
-
if (exports.httpsProxyAgent !== undefined) {
|
|
468
|
-
gotDefaultOptions.agent = {
|
|
469
|
-
https: exports.httpsProxyAgent
|
|
470
|
-
};
|
|
471
|
-
}
|
|
472
|
-
function upperCaseSymbols(symbols) {
|
|
601
|
+
export function upperCaseSymbols(symbols) {
|
|
473
602
|
if (symbols !== undefined) {
|
|
474
603
|
return symbols.map((s) => s.toUpperCase());
|
|
475
604
|
}
|
|
476
605
|
return;
|
|
477
606
|
}
|
|
478
|
-
function lowerCaseSymbols(symbols) {
|
|
607
|
+
export function lowerCaseSymbols(symbols) {
|
|
479
608
|
if (symbols !== undefined) {
|
|
480
609
|
return symbols.map((s) => s.toLowerCase());
|
|
481
610
|
}
|
|
482
611
|
return;
|
|
483
612
|
}
|
|
484
|
-
|
|
485
|
-
const fromMicroSecondsToDate = (micros) => {
|
|
613
|
+
export const fromMicroSecondsToDate = (micros) => {
|
|
486
614
|
const isMicroseconds = micros > 1e15; // Check if the number is likely in microseconds
|
|
487
615
|
if (!isMicroseconds) {
|
|
488
616
|
return new Date(micros);
|
|
@@ -491,8 +619,7 @@ const fromMicroSecondsToDate = (micros) => {
|
|
|
491
619
|
timestamp.μs = micros % 1000;
|
|
492
620
|
return timestamp;
|
|
493
621
|
};
|
|
494
|
-
|
|
495
|
-
function onlyUnique(value, index, array) {
|
|
622
|
+
export function onlyUnique(value, index, array) {
|
|
496
623
|
return array.indexOf(value) === index;
|
|
497
624
|
}
|
|
498
625
|
//# sourceMappingURL=handy.js.map
|
package/dist/handy.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handy.js","sourceRoot":"","sources":["../src/handy.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"handy.js","sourceRoot":"","sources":["../src/handy.ts"],"names":[],"mappings":"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"}
|