@binance/common 1.2.2 → 1.2.4
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/dist/index.d.mts +8 -4
- package/dist/index.d.ts +8 -4
- package/dist/index.js +43 -29
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +43 -29
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.d.mts
CHANGED
|
@@ -721,6 +721,10 @@ declare class WebsocketEventEmitter {
|
|
|
721
721
|
off(event: 'open' | 'message' | 'error' | 'close' | 'ping' | 'pong', listener: (...args: any[]) => void): void;
|
|
722
722
|
protected emit(event: 'open' | 'message' | 'error' | 'close' | 'ping' | 'pong', ...args: any[]): void;
|
|
723
723
|
}
|
|
724
|
+
interface TimerRecord {
|
|
725
|
+
timer?: NodeJS.Timeout;
|
|
726
|
+
type: 'timeout' | 'interval';
|
|
727
|
+
}
|
|
724
728
|
interface WebsocketConnection {
|
|
725
729
|
id: string;
|
|
726
730
|
reconnectionPending: boolean;
|
|
@@ -744,7 +748,7 @@ declare class WebsocketCommon extends WebsocketEventEmitter {
|
|
|
744
748
|
private static readonly MAX_CONNECTION_DURATION;
|
|
745
749
|
private readonly connectionQueue;
|
|
746
750
|
private queueProcessing;
|
|
747
|
-
|
|
751
|
+
protected connectionTimers: Map<WebSocketClient, Set<TimerRecord>>;
|
|
748
752
|
private mode;
|
|
749
753
|
private poolSize;
|
|
750
754
|
private roundRobinIndex;
|
|
@@ -794,13 +798,13 @@ declare class WebsocketCommon extends WebsocketEventEmitter {
|
|
|
794
798
|
* @param type Timer type ('timeout' or 'interval')
|
|
795
799
|
* @returns Timer handle
|
|
796
800
|
*/
|
|
797
|
-
|
|
801
|
+
protected scheduleTimer(connection: WebSocketClient, callback: () => void, delay: number, type?: 'timeout' | 'interval'): NodeJS.Timeout;
|
|
798
802
|
/**
|
|
799
803
|
* Clears all timers associated with a WebSocket connection.
|
|
800
804
|
* @param connection - The WebSocket client instance to clear timers for.
|
|
801
805
|
* @returns void
|
|
802
806
|
*/
|
|
803
|
-
|
|
807
|
+
protected clearTimers(connection: WebSocketClient): void;
|
|
804
808
|
/**
|
|
805
809
|
* Processes the connection queue, reconnecting or renewing connections as needed.
|
|
806
810
|
* This method is responsible for iterating through the connection queue and initiating
|
|
@@ -1079,4 +1083,4 @@ interface WebsocketStream<T> {
|
|
|
1079
1083
|
*/
|
|
1080
1084
|
declare function createStreamHandler<T>(websocketBase: WebsocketAPIBase | WebsocketStreamsBase, streamOrId: string, id?: string): WebsocketStream<T>;
|
|
1081
1085
|
|
|
1082
|
-
export { ALGO_REST_API_PROD_URL, AUTO_INVEST_REST_API_PROD_URL, type AxiosRequestArgs, BadRequestError, C2C_REST_API_PROD_URL, CONVERT_REST_API_PROD_URL, COPY_TRADING_REST_API_PROD_URL, CRYPTO_LOAN_REST_API_PROD_URL, ConfigurationRestAPI, ConfigurationWebsocketAPI, ConfigurationWebsocketStreams, ConnectorClientError, DERIVATIVES_TRADING_COIN_FUTURES_REST_API_PROD_URL, DERIVATIVES_TRADING_COIN_FUTURES_REST_API_TESTNET_URL, DERIVATIVES_TRADING_COIN_FUTURES_WS_API_PROD_URL, DERIVATIVES_TRADING_COIN_FUTURES_WS_API_TESTNET_URL, DERIVATIVES_TRADING_COIN_FUTURES_WS_STREAMS_PROD_URL, DERIVATIVES_TRADING_COIN_FUTURES_WS_STREAMS_TESTNET_URL, DERIVATIVES_TRADING_OPTIONS_REST_API_PROD_URL, DERIVATIVES_TRADING_OPTIONS_WS_STREAMS_PROD_URL, DERIVATIVES_TRADING_PORTFOLIO_MARGIN_PRO_REST_API_PROD_URL, DERIVATIVES_TRADING_PORTFOLIO_MARGIN_PRO_WS_STREAMS_PROD_URL, DERIVATIVES_TRADING_PORTFOLIO_MARGIN_REST_API_PROD_URL, DERIVATIVES_TRADING_PORTFOLIO_MARGIN_REST_API_TESTNET_URL, DERIVATIVES_TRADING_PORTFOLIO_MARGIN_WS_STREAMS_PROD_URL, DERIVATIVES_TRADING_PORTFOLIO_MARGIN_WS_STREAMS_TESTNET_URL, DERIVATIVES_TRADING_USDS_FUTURES_REST_API_PROD_URL, DERIVATIVES_TRADING_USDS_FUTURES_REST_API_TESTNET_URL, DERIVATIVES_TRADING_USDS_FUTURES_WS_API_PROD_URL, DERIVATIVES_TRADING_USDS_FUTURES_WS_API_TESTNET_URL, DERIVATIVES_TRADING_USDS_FUTURES_WS_STREAMS_PROD_URL, DERIVATIVES_TRADING_USDS_FUTURES_WS_STREAMS_TESTNET_URL, DUAL_INVESTMENT_REST_API_PROD_URL, FIAT_REST_API_PROD_URL, ForbiddenError, GIFT_CARD_REST_API_PROD_URL, LogLevel, Logger, MARGIN_TRADING_REST_API_PROD_URL, MARGIN_TRADING_RISK_WS_STREAMS_PROD_URL, MARGIN_TRADING_WS_STREAMS_PROD_URL, MINING_REST_API_PROD_URL, NFT_REST_API_PROD_URL, NetworkError, NotFoundError, type ObjectType, PAY_REST_API_PROD_URL, REBATE_REST_API_PROD_URL, RateLimitBanError, type RequestArgs, RequiredError, type RestApiRateLimit, type RestApiResponse, SIMPLE_EARN_REST_API_PROD_URL, SPOT_REST_API_MARKET_URL, SPOT_REST_API_PROD_URL, SPOT_REST_API_TESTNET_URL, SPOT_WS_API_PROD_URL, SPOT_WS_API_TESTNET_URL, SPOT_WS_STREAMS_MARKET_URL, SPOT_WS_STREAMS_PROD_URL, SPOT_WS_STREAMS_TESTNET_URL, STAKING_REST_API_PROD_URL, SUB_ACCOUNT_REST_API_PROD_URL, type SendMessageOptions, ServerError, TimeUnit, TooManyRequestsError, UnauthorizedError, VIP_LOAN_REST_API_PROD_URL, WALLET_REST_API_PROD_URL, WebsocketAPIBase, type WebsocketApiRateLimit, type WebsocketApiResponse, WebsocketCommon, type WebsocketConnection, WebsocketEventEmitter, type WebsocketSendMsgConfig, type WebsocketSendMsgOptions, type WebsocketStream, WebsocketStreamsBase, assertParamExists, buildQueryString, buildUserAgent, buildWebsocketAPIMessage, clearSignerCache, createStreamHandler, delay, getSignature, getTimestamp, httpRequestFunction, normalizeScientificNumbers, parseCustomHeaders, parseRateLimitHeaders, randomString, removeEmptyValue, replaceWebsocketStreamsPlaceholders, sanitizeHeaderValue, sendRequest, setFlattenedQueryParams, setSearchParams, shouldRetryRequest, sortObject, toPathString, validateTimeUnit };
|
|
1086
|
+
export { ALGO_REST_API_PROD_URL, AUTO_INVEST_REST_API_PROD_URL, type AxiosRequestArgs, BadRequestError, C2C_REST_API_PROD_URL, CONVERT_REST_API_PROD_URL, COPY_TRADING_REST_API_PROD_URL, CRYPTO_LOAN_REST_API_PROD_URL, ConfigurationRestAPI, ConfigurationWebsocketAPI, ConfigurationWebsocketStreams, ConnectorClientError, DERIVATIVES_TRADING_COIN_FUTURES_REST_API_PROD_URL, DERIVATIVES_TRADING_COIN_FUTURES_REST_API_TESTNET_URL, DERIVATIVES_TRADING_COIN_FUTURES_WS_API_PROD_URL, DERIVATIVES_TRADING_COIN_FUTURES_WS_API_TESTNET_URL, DERIVATIVES_TRADING_COIN_FUTURES_WS_STREAMS_PROD_URL, DERIVATIVES_TRADING_COIN_FUTURES_WS_STREAMS_TESTNET_URL, DERIVATIVES_TRADING_OPTIONS_REST_API_PROD_URL, DERIVATIVES_TRADING_OPTIONS_WS_STREAMS_PROD_URL, DERIVATIVES_TRADING_PORTFOLIO_MARGIN_PRO_REST_API_PROD_URL, DERIVATIVES_TRADING_PORTFOLIO_MARGIN_PRO_WS_STREAMS_PROD_URL, DERIVATIVES_TRADING_PORTFOLIO_MARGIN_REST_API_PROD_URL, DERIVATIVES_TRADING_PORTFOLIO_MARGIN_REST_API_TESTNET_URL, DERIVATIVES_TRADING_PORTFOLIO_MARGIN_WS_STREAMS_PROD_URL, DERIVATIVES_TRADING_PORTFOLIO_MARGIN_WS_STREAMS_TESTNET_URL, DERIVATIVES_TRADING_USDS_FUTURES_REST_API_PROD_URL, DERIVATIVES_TRADING_USDS_FUTURES_REST_API_TESTNET_URL, DERIVATIVES_TRADING_USDS_FUTURES_WS_API_PROD_URL, DERIVATIVES_TRADING_USDS_FUTURES_WS_API_TESTNET_URL, DERIVATIVES_TRADING_USDS_FUTURES_WS_STREAMS_PROD_URL, DERIVATIVES_TRADING_USDS_FUTURES_WS_STREAMS_TESTNET_URL, DUAL_INVESTMENT_REST_API_PROD_URL, FIAT_REST_API_PROD_URL, ForbiddenError, GIFT_CARD_REST_API_PROD_URL, LogLevel, Logger, MARGIN_TRADING_REST_API_PROD_URL, MARGIN_TRADING_RISK_WS_STREAMS_PROD_URL, MARGIN_TRADING_WS_STREAMS_PROD_URL, MINING_REST_API_PROD_URL, NFT_REST_API_PROD_URL, NetworkError, NotFoundError, type ObjectType, PAY_REST_API_PROD_URL, REBATE_REST_API_PROD_URL, RateLimitBanError, type RequestArgs, RequiredError, type RestApiRateLimit, type RestApiResponse, SIMPLE_EARN_REST_API_PROD_URL, SPOT_REST_API_MARKET_URL, SPOT_REST_API_PROD_URL, SPOT_REST_API_TESTNET_URL, SPOT_WS_API_PROD_URL, SPOT_WS_API_TESTNET_URL, SPOT_WS_STREAMS_MARKET_URL, SPOT_WS_STREAMS_PROD_URL, SPOT_WS_STREAMS_TESTNET_URL, STAKING_REST_API_PROD_URL, SUB_ACCOUNT_REST_API_PROD_URL, type SendMessageOptions, ServerError, TimeUnit, type TimerRecord, TooManyRequestsError, UnauthorizedError, VIP_LOAN_REST_API_PROD_URL, WALLET_REST_API_PROD_URL, WebsocketAPIBase, type WebsocketApiRateLimit, type WebsocketApiResponse, WebsocketCommon, type WebsocketConnection, WebsocketEventEmitter, type WebsocketSendMsgConfig, type WebsocketSendMsgOptions, type WebsocketStream, WebsocketStreamsBase, assertParamExists, buildQueryString, buildUserAgent, buildWebsocketAPIMessage, clearSignerCache, createStreamHandler, delay, getSignature, getTimestamp, httpRequestFunction, normalizeScientificNumbers, parseCustomHeaders, parseRateLimitHeaders, randomString, removeEmptyValue, replaceWebsocketStreamsPlaceholders, sanitizeHeaderValue, sendRequest, setFlattenedQueryParams, setSearchParams, shouldRetryRequest, sortObject, toPathString, validateTimeUnit };
|
package/dist/index.d.ts
CHANGED
|
@@ -721,6 +721,10 @@ declare class WebsocketEventEmitter {
|
|
|
721
721
|
off(event: 'open' | 'message' | 'error' | 'close' | 'ping' | 'pong', listener: (...args: any[]) => void): void;
|
|
722
722
|
protected emit(event: 'open' | 'message' | 'error' | 'close' | 'ping' | 'pong', ...args: any[]): void;
|
|
723
723
|
}
|
|
724
|
+
interface TimerRecord {
|
|
725
|
+
timer?: NodeJS.Timeout;
|
|
726
|
+
type: 'timeout' | 'interval';
|
|
727
|
+
}
|
|
724
728
|
interface WebsocketConnection {
|
|
725
729
|
id: string;
|
|
726
730
|
reconnectionPending: boolean;
|
|
@@ -744,7 +748,7 @@ declare class WebsocketCommon extends WebsocketEventEmitter {
|
|
|
744
748
|
private static readonly MAX_CONNECTION_DURATION;
|
|
745
749
|
private readonly connectionQueue;
|
|
746
750
|
private queueProcessing;
|
|
747
|
-
|
|
751
|
+
protected connectionTimers: Map<WebSocketClient, Set<TimerRecord>>;
|
|
748
752
|
private mode;
|
|
749
753
|
private poolSize;
|
|
750
754
|
private roundRobinIndex;
|
|
@@ -794,13 +798,13 @@ declare class WebsocketCommon extends WebsocketEventEmitter {
|
|
|
794
798
|
* @param type Timer type ('timeout' or 'interval')
|
|
795
799
|
* @returns Timer handle
|
|
796
800
|
*/
|
|
797
|
-
|
|
801
|
+
protected scheduleTimer(connection: WebSocketClient, callback: () => void, delay: number, type?: 'timeout' | 'interval'): NodeJS.Timeout;
|
|
798
802
|
/**
|
|
799
803
|
* Clears all timers associated with a WebSocket connection.
|
|
800
804
|
* @param connection - The WebSocket client instance to clear timers for.
|
|
801
805
|
* @returns void
|
|
802
806
|
*/
|
|
803
|
-
|
|
807
|
+
protected clearTimers(connection: WebSocketClient): void;
|
|
804
808
|
/**
|
|
805
809
|
* Processes the connection queue, reconnecting or renewing connections as needed.
|
|
806
810
|
* This method is responsible for iterating through the connection queue and initiating
|
|
@@ -1079,4 +1083,4 @@ interface WebsocketStream<T> {
|
|
|
1079
1083
|
*/
|
|
1080
1084
|
declare function createStreamHandler<T>(websocketBase: WebsocketAPIBase | WebsocketStreamsBase, streamOrId: string, id?: string): WebsocketStream<T>;
|
|
1081
1085
|
|
|
1082
|
-
export { ALGO_REST_API_PROD_URL, AUTO_INVEST_REST_API_PROD_URL, type AxiosRequestArgs, BadRequestError, C2C_REST_API_PROD_URL, CONVERT_REST_API_PROD_URL, COPY_TRADING_REST_API_PROD_URL, CRYPTO_LOAN_REST_API_PROD_URL, ConfigurationRestAPI, ConfigurationWebsocketAPI, ConfigurationWebsocketStreams, ConnectorClientError, DERIVATIVES_TRADING_COIN_FUTURES_REST_API_PROD_URL, DERIVATIVES_TRADING_COIN_FUTURES_REST_API_TESTNET_URL, DERIVATIVES_TRADING_COIN_FUTURES_WS_API_PROD_URL, DERIVATIVES_TRADING_COIN_FUTURES_WS_API_TESTNET_URL, DERIVATIVES_TRADING_COIN_FUTURES_WS_STREAMS_PROD_URL, DERIVATIVES_TRADING_COIN_FUTURES_WS_STREAMS_TESTNET_URL, DERIVATIVES_TRADING_OPTIONS_REST_API_PROD_URL, DERIVATIVES_TRADING_OPTIONS_WS_STREAMS_PROD_URL, DERIVATIVES_TRADING_PORTFOLIO_MARGIN_PRO_REST_API_PROD_URL, DERIVATIVES_TRADING_PORTFOLIO_MARGIN_PRO_WS_STREAMS_PROD_URL, DERIVATIVES_TRADING_PORTFOLIO_MARGIN_REST_API_PROD_URL, DERIVATIVES_TRADING_PORTFOLIO_MARGIN_REST_API_TESTNET_URL, DERIVATIVES_TRADING_PORTFOLIO_MARGIN_WS_STREAMS_PROD_URL, DERIVATIVES_TRADING_PORTFOLIO_MARGIN_WS_STREAMS_TESTNET_URL, DERIVATIVES_TRADING_USDS_FUTURES_REST_API_PROD_URL, DERIVATIVES_TRADING_USDS_FUTURES_REST_API_TESTNET_URL, DERIVATIVES_TRADING_USDS_FUTURES_WS_API_PROD_URL, DERIVATIVES_TRADING_USDS_FUTURES_WS_API_TESTNET_URL, DERIVATIVES_TRADING_USDS_FUTURES_WS_STREAMS_PROD_URL, DERIVATIVES_TRADING_USDS_FUTURES_WS_STREAMS_TESTNET_URL, DUAL_INVESTMENT_REST_API_PROD_URL, FIAT_REST_API_PROD_URL, ForbiddenError, GIFT_CARD_REST_API_PROD_URL, LogLevel, Logger, MARGIN_TRADING_REST_API_PROD_URL, MARGIN_TRADING_RISK_WS_STREAMS_PROD_URL, MARGIN_TRADING_WS_STREAMS_PROD_URL, MINING_REST_API_PROD_URL, NFT_REST_API_PROD_URL, NetworkError, NotFoundError, type ObjectType, PAY_REST_API_PROD_URL, REBATE_REST_API_PROD_URL, RateLimitBanError, type RequestArgs, RequiredError, type RestApiRateLimit, type RestApiResponse, SIMPLE_EARN_REST_API_PROD_URL, SPOT_REST_API_MARKET_URL, SPOT_REST_API_PROD_URL, SPOT_REST_API_TESTNET_URL, SPOT_WS_API_PROD_URL, SPOT_WS_API_TESTNET_URL, SPOT_WS_STREAMS_MARKET_URL, SPOT_WS_STREAMS_PROD_URL, SPOT_WS_STREAMS_TESTNET_URL, STAKING_REST_API_PROD_URL, SUB_ACCOUNT_REST_API_PROD_URL, type SendMessageOptions, ServerError, TimeUnit, TooManyRequestsError, UnauthorizedError, VIP_LOAN_REST_API_PROD_URL, WALLET_REST_API_PROD_URL, WebsocketAPIBase, type WebsocketApiRateLimit, type WebsocketApiResponse, WebsocketCommon, type WebsocketConnection, WebsocketEventEmitter, type WebsocketSendMsgConfig, type WebsocketSendMsgOptions, type WebsocketStream, WebsocketStreamsBase, assertParamExists, buildQueryString, buildUserAgent, buildWebsocketAPIMessage, clearSignerCache, createStreamHandler, delay, getSignature, getTimestamp, httpRequestFunction, normalizeScientificNumbers, parseCustomHeaders, parseRateLimitHeaders, randomString, removeEmptyValue, replaceWebsocketStreamsPlaceholders, sanitizeHeaderValue, sendRequest, setFlattenedQueryParams, setSearchParams, shouldRetryRequest, sortObject, toPathString, validateTimeUnit };
|
|
1086
|
+
export { ALGO_REST_API_PROD_URL, AUTO_INVEST_REST_API_PROD_URL, type AxiosRequestArgs, BadRequestError, C2C_REST_API_PROD_URL, CONVERT_REST_API_PROD_URL, COPY_TRADING_REST_API_PROD_URL, CRYPTO_LOAN_REST_API_PROD_URL, ConfigurationRestAPI, ConfigurationWebsocketAPI, ConfigurationWebsocketStreams, ConnectorClientError, DERIVATIVES_TRADING_COIN_FUTURES_REST_API_PROD_URL, DERIVATIVES_TRADING_COIN_FUTURES_REST_API_TESTNET_URL, DERIVATIVES_TRADING_COIN_FUTURES_WS_API_PROD_URL, DERIVATIVES_TRADING_COIN_FUTURES_WS_API_TESTNET_URL, DERIVATIVES_TRADING_COIN_FUTURES_WS_STREAMS_PROD_URL, DERIVATIVES_TRADING_COIN_FUTURES_WS_STREAMS_TESTNET_URL, DERIVATIVES_TRADING_OPTIONS_REST_API_PROD_URL, DERIVATIVES_TRADING_OPTIONS_WS_STREAMS_PROD_URL, DERIVATIVES_TRADING_PORTFOLIO_MARGIN_PRO_REST_API_PROD_URL, DERIVATIVES_TRADING_PORTFOLIO_MARGIN_PRO_WS_STREAMS_PROD_URL, DERIVATIVES_TRADING_PORTFOLIO_MARGIN_REST_API_PROD_URL, DERIVATIVES_TRADING_PORTFOLIO_MARGIN_REST_API_TESTNET_URL, DERIVATIVES_TRADING_PORTFOLIO_MARGIN_WS_STREAMS_PROD_URL, DERIVATIVES_TRADING_PORTFOLIO_MARGIN_WS_STREAMS_TESTNET_URL, DERIVATIVES_TRADING_USDS_FUTURES_REST_API_PROD_URL, DERIVATIVES_TRADING_USDS_FUTURES_REST_API_TESTNET_URL, DERIVATIVES_TRADING_USDS_FUTURES_WS_API_PROD_URL, DERIVATIVES_TRADING_USDS_FUTURES_WS_API_TESTNET_URL, DERIVATIVES_TRADING_USDS_FUTURES_WS_STREAMS_PROD_URL, DERIVATIVES_TRADING_USDS_FUTURES_WS_STREAMS_TESTNET_URL, DUAL_INVESTMENT_REST_API_PROD_URL, FIAT_REST_API_PROD_URL, ForbiddenError, GIFT_CARD_REST_API_PROD_URL, LogLevel, Logger, MARGIN_TRADING_REST_API_PROD_URL, MARGIN_TRADING_RISK_WS_STREAMS_PROD_URL, MARGIN_TRADING_WS_STREAMS_PROD_URL, MINING_REST_API_PROD_URL, NFT_REST_API_PROD_URL, NetworkError, NotFoundError, type ObjectType, PAY_REST_API_PROD_URL, REBATE_REST_API_PROD_URL, RateLimitBanError, type RequestArgs, RequiredError, type RestApiRateLimit, type RestApiResponse, SIMPLE_EARN_REST_API_PROD_URL, SPOT_REST_API_MARKET_URL, SPOT_REST_API_PROD_URL, SPOT_REST_API_TESTNET_URL, SPOT_WS_API_PROD_URL, SPOT_WS_API_TESTNET_URL, SPOT_WS_STREAMS_MARKET_URL, SPOT_WS_STREAMS_PROD_URL, SPOT_WS_STREAMS_TESTNET_URL, STAKING_REST_API_PROD_URL, SUB_ACCOUNT_REST_API_PROD_URL, type SendMessageOptions, ServerError, TimeUnit, type TimerRecord, TooManyRequestsError, UnauthorizedError, VIP_LOAN_REST_API_PROD_URL, WALLET_REST_API_PROD_URL, WebsocketAPIBase, type WebsocketApiRateLimit, type WebsocketApiResponse, WebsocketCommon, type WebsocketConnection, WebsocketEventEmitter, type WebsocketSendMsgConfig, type WebsocketSendMsgOptions, type WebsocketStream, WebsocketStreamsBase, assertParamExists, buildQueryString, buildUserAgent, buildWebsocketAPIMessage, clearSignerCache, createStreamHandler, delay, getSignature, getTimestamp, httpRequestFunction, normalizeScientificNumbers, parseCustomHeaders, parseRateLimitHeaders, randomString, removeEmptyValue, replaceWebsocketStreamsPlaceholders, sanitizeHeaderValue, sendRequest, setFlattenedQueryParams, setSearchParams, shouldRetryRequest, sortObject, toPathString, validateTimeUnit };
|
package/dist/index.js
CHANGED
|
@@ -568,7 +568,8 @@ var ConfigurationRestAPI = class {
|
|
|
568
568
|
proxy: param.proxy && {
|
|
569
569
|
host: param.proxy.host,
|
|
570
570
|
port: param.proxy.port,
|
|
571
|
-
|
|
571
|
+
...param.proxy.protocol && { protocol: param.proxy.protocol },
|
|
572
|
+
...param.proxy.auth && { auth: param.proxy.auth }
|
|
572
573
|
},
|
|
573
574
|
httpsAgent: param.httpsAgent ?? false,
|
|
574
575
|
headers: {
|
|
@@ -905,10 +906,24 @@ var WebsocketCommon = class _WebsocketCommon extends WebsocketEventEmitter {
|
|
|
905
906
|
* @returns Timer handle
|
|
906
907
|
*/
|
|
907
908
|
scheduleTimer(connection, callback, delay2, type = "timeout") {
|
|
908
|
-
|
|
909
|
-
if (!
|
|
910
|
-
|
|
911
|
-
|
|
909
|
+
let timers = this.connectionTimers.get(connection);
|
|
910
|
+
if (!timers) {
|
|
911
|
+
timers = /* @__PURE__ */ new Set();
|
|
912
|
+
this.connectionTimers.set(connection, timers);
|
|
913
|
+
}
|
|
914
|
+
const timerRecord = { type };
|
|
915
|
+
const wrappedTimeout = () => {
|
|
916
|
+
try {
|
|
917
|
+
callback();
|
|
918
|
+
} finally {
|
|
919
|
+
timers.delete(timerRecord);
|
|
920
|
+
}
|
|
921
|
+
};
|
|
922
|
+
let timer;
|
|
923
|
+
if (type === "timeout") timer = setTimeout(wrappedTimeout, delay2);
|
|
924
|
+
else timer = setInterval(callback, delay2);
|
|
925
|
+
timerRecord.timer = timer;
|
|
926
|
+
timers.add(timerRecord);
|
|
912
927
|
return timer;
|
|
913
928
|
}
|
|
914
929
|
/**
|
|
@@ -1170,13 +1185,13 @@ var WebsocketCommon = class _WebsocketCommon extends WebsocketEventEmitter {
|
|
|
1170
1185
|
this.onMessage(data.toString(), targetConnection);
|
|
1171
1186
|
});
|
|
1172
1187
|
ws.on("ping", () => {
|
|
1173
|
-
this.logger.
|
|
1188
|
+
this.logger.debug("Received PING from server");
|
|
1174
1189
|
this.emit("ping");
|
|
1175
1190
|
ws.pong();
|
|
1176
|
-
this.logger.
|
|
1191
|
+
this.logger.debug("Responded PONG to server's PING message");
|
|
1177
1192
|
});
|
|
1178
1193
|
ws.on("pong", () => {
|
|
1179
|
-
this.logger.
|
|
1194
|
+
this.logger.debug("Received PONG from server");
|
|
1180
1195
|
this.emit("pong");
|
|
1181
1196
|
});
|
|
1182
1197
|
ws.on("error", (err) => {
|
|
@@ -1256,7 +1271,7 @@ var WebsocketCommon = class _WebsocketCommon extends WebsocketEventEmitter {
|
|
|
1256
1271
|
this.logger.warn("Ping only can be sent when connection is ready.");
|
|
1257
1272
|
return;
|
|
1258
1273
|
}
|
|
1259
|
-
this.logger.
|
|
1274
|
+
this.logger.debug("Sending PING to all connected Websocket servers.");
|
|
1260
1275
|
connectedConnections.forEach((connection) => {
|
|
1261
1276
|
if (connection.ws) {
|
|
1262
1277
|
connection.ws.ping();
|
|
@@ -1278,7 +1293,7 @@ var WebsocketCommon = class _WebsocketCommon extends WebsocketEventEmitter {
|
|
|
1278
1293
|
*/
|
|
1279
1294
|
send(payload, id, promiseBased = true, timeout = 5e3, connection) {
|
|
1280
1295
|
if (!this.isConnected(connection)) {
|
|
1281
|
-
const errorMsg = "
|
|
1296
|
+
const errorMsg = "Unable to send message \u2014 connection is not available.";
|
|
1282
1297
|
this.logger.warn(errorMsg);
|
|
1283
1298
|
if (promiseBased) return Promise.reject(new Error(errorMsg));
|
|
1284
1299
|
else throw new Error(errorMsg);
|
|
@@ -1294,17 +1309,22 @@ var WebsocketCommon = class _WebsocketCommon extends WebsocketEventEmitter {
|
|
|
1294
1309
|
if (promiseBased) {
|
|
1295
1310
|
return new Promise((resolve, reject) => {
|
|
1296
1311
|
if (!id) return reject(new Error("id is required for promise-based sending."));
|
|
1297
|
-
|
|
1298
|
-
|
|
1299
|
-
|
|
1300
|
-
|
|
1301
|
-
|
|
1302
|
-
|
|
1303
|
-
|
|
1304
|
-
|
|
1312
|
+
const timeoutHandle = setTimeout(() => {
|
|
1313
|
+
if (connectionToUse.pendingRequests.has(id)) {
|
|
1314
|
+
connectionToUse.pendingRequests.delete(id);
|
|
1315
|
+
reject(new Error(`Request timeout for id: ${id}`));
|
|
1316
|
+
}
|
|
1317
|
+
}, timeout);
|
|
1318
|
+
connectionToUse.pendingRequests.set(id, {
|
|
1319
|
+
resolve: (v) => {
|
|
1320
|
+
clearTimeout(timeoutHandle);
|
|
1321
|
+
resolve(v);
|
|
1305
1322
|
},
|
|
1306
|
-
|
|
1307
|
-
|
|
1323
|
+
reject: (e) => {
|
|
1324
|
+
clearTimeout(timeoutHandle);
|
|
1325
|
+
reject(e);
|
|
1326
|
+
}
|
|
1327
|
+
});
|
|
1308
1328
|
});
|
|
1309
1329
|
}
|
|
1310
1330
|
}
|
|
@@ -1384,13 +1404,13 @@ var WebsocketAPIBase = class extends WebsocketCommon {
|
|
|
1384
1404
|
reject(new Error("Websocket connection timed out"));
|
|
1385
1405
|
}, 1e4);
|
|
1386
1406
|
this.connectPool(this.prepareURL(this.configuration.wsURL)).then(() => {
|
|
1387
|
-
clearTimeout(timeout);
|
|
1388
1407
|
this.isConnecting = false;
|
|
1389
1408
|
resolve();
|
|
1390
1409
|
}).catch((error) => {
|
|
1391
|
-
clearTimeout(timeout);
|
|
1392
1410
|
this.isConnecting = false;
|
|
1393
1411
|
reject(error);
|
|
1412
|
+
}).finally(() => {
|
|
1413
|
+
clearTimeout(timeout);
|
|
1394
1414
|
});
|
|
1395
1415
|
});
|
|
1396
1416
|
}
|
|
@@ -1561,13 +1581,7 @@ var WebsocketStreamsBase = class extends WebsocketCommon {
|
|
|
1561
1581
|
const timeout = setTimeout(() => {
|
|
1562
1582
|
reject(new Error("Websocket connection timed out"));
|
|
1563
1583
|
}, 1e4);
|
|
1564
|
-
this.connectPool(this.prepareURL(streams)).then(() =>
|
|
1565
|
-
clearTimeout(timeout);
|
|
1566
|
-
resolve();
|
|
1567
|
-
}).catch((error) => {
|
|
1568
|
-
clearTimeout(timeout);
|
|
1569
|
-
reject(error);
|
|
1570
|
-
});
|
|
1584
|
+
this.connectPool(this.prepareURL(streams)).then(() => resolve()).catch((error) => reject(error)).finally(() => clearTimeout(timeout));
|
|
1571
1585
|
});
|
|
1572
1586
|
}
|
|
1573
1587
|
/**
|