@binance/common 2.1.0 → 2.1.1
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 +32 -4
- package/dist/index.d.ts +32 -4
- package/dist/index.js +41 -2
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +40 -3
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.d.mts
CHANGED
|
@@ -529,6 +529,33 @@ declare function buildQueryString(params: Record<string, unknown>): string;
|
|
|
529
529
|
* @returns A random string of 16 hexadecimal characters.
|
|
530
530
|
*/
|
|
531
531
|
declare function randomString(): string;
|
|
532
|
+
/**
|
|
533
|
+
* Generates a cryptographically secure random 32-bit unsigned integer.
|
|
534
|
+
*
|
|
535
|
+
* Uses the Web Crypto API to generate a random value between 0 and 4,294,967,295 (2^32 - 1).
|
|
536
|
+
*
|
|
537
|
+
* @returns A random 32-bit unsigned integer.
|
|
538
|
+
*/
|
|
539
|
+
declare function randomInteger(): number;
|
|
540
|
+
/**
|
|
541
|
+
* Normalizes a stream ID to ensure it is valid, generating a random ID if needed.
|
|
542
|
+
*
|
|
543
|
+
* For string inputs:
|
|
544
|
+
* - Returns the input if it's a valid 32-character hexadecimal string (case-insensitive)
|
|
545
|
+
* - Otherwise, generates a new random hexadecimal string using `randomString()`
|
|
546
|
+
*
|
|
547
|
+
* For number inputs:
|
|
548
|
+
* - Returns the input if it's a finite, non-negative integer within the safe integer range
|
|
549
|
+
* - Otherwise, generates a new random integer using `randomInteger()`
|
|
550
|
+
*
|
|
551
|
+
* For null or undefined inputs:
|
|
552
|
+
* - Generates a new random hexadecimal string using `randomString()`
|
|
553
|
+
*
|
|
554
|
+
* @param id - The stream ID to normalize (string, number, null, or undefined).
|
|
555
|
+
* @param streamIdIsStrictlyNumber - Boolean forcing an id to be a number or not.
|
|
556
|
+
* @returns A valid stream ID as either a 32-character hexadecimal string or a safe integer.
|
|
557
|
+
*/
|
|
558
|
+
declare function normalizeStreamId(id: string | number | null | undefined, streamIdIsStrictlyNumber?: boolean): string | number;
|
|
532
559
|
/**
|
|
533
560
|
* Validates the provided time unit string and returns it if it is either 'MILLISECOND' or 'MICROSECOND'.
|
|
534
561
|
*
|
|
@@ -968,6 +995,7 @@ declare class WebsocketStreamsBase extends WebsocketCommon {
|
|
|
968
995
|
private streamConnectionMap;
|
|
969
996
|
protected configuration: ConfigurationWebsocketStreams;
|
|
970
997
|
protected wsURL: string;
|
|
998
|
+
streamIdIsStrictlyNumber?: boolean;
|
|
971
999
|
streamCallbackMap: Map<string, Set<(data: unknown) => void>>;
|
|
972
1000
|
logger: Logger;
|
|
973
1001
|
constructor(configuration: ConfigurationWebsocketStreams, connectionPool?: WebsocketConnection[]);
|
|
@@ -1040,7 +1068,7 @@ declare class WebsocketStreamsBase extends WebsocketCommon {
|
|
|
1040
1068
|
* @param id Optional subscription ID
|
|
1041
1069
|
* @returns void
|
|
1042
1070
|
*/
|
|
1043
|
-
subscribe(stream: string | string[], id?: string): void;
|
|
1071
|
+
subscribe(stream: string | string[], id?: number | string): void;
|
|
1044
1072
|
/**
|
|
1045
1073
|
* Unsubscribes from one or multiple WebSocket streams
|
|
1046
1074
|
* Handles both single and pool modes
|
|
@@ -1048,7 +1076,7 @@ declare class WebsocketStreamsBase extends WebsocketCommon {
|
|
|
1048
1076
|
* @param id Optional unsubscription ID
|
|
1049
1077
|
* @returns void
|
|
1050
1078
|
*/
|
|
1051
|
-
unsubscribe(stream: string | string[], id?: string): void;
|
|
1079
|
+
unsubscribe(stream: string | string[], id?: number | string): void;
|
|
1052
1080
|
/**
|
|
1053
1081
|
* Checks if the specified stream is currently subscribed.
|
|
1054
1082
|
* @param stream - The name of the stream to check.
|
|
@@ -1077,7 +1105,7 @@ interface WebsocketStream<T> {
|
|
|
1077
1105
|
* @param {string} [id] Optional additional identifier
|
|
1078
1106
|
* @returns {WebsocketStream<T>} A stream handler with methods to register callbacks and unsubscribe
|
|
1079
1107
|
*/
|
|
1080
|
-
declare function createStreamHandler<T>(websocketBase: WebsocketAPIBase | WebsocketStreamsBase, streamOrId: string, id?: string): WebsocketStream<T>;
|
|
1108
|
+
declare function createStreamHandler<T>(websocketBase: WebsocketAPIBase | WebsocketStreamsBase, streamOrId: string, id?: number | string): WebsocketStream<T>;
|
|
1081
1109
|
//#endregion
|
|
1082
|
-
export { ALGO_REST_API_PROD_URL, 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, ObjectType, PAY_REST_API_PROD_URL, REBATE_REST_API_PROD_URL, RateLimitBanError, RequestArgs, RequiredError, RestApiRateLimit, 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, SendMessageOptions, ServerError, TimeUnit, TimerRecord, TooManyRequestsError, UnauthorizedError, VIP_LOAN_REST_API_PROD_URL, WALLET_REST_API_PROD_URL, WebsocketAPIBase, WebsocketApiRateLimit, WebsocketApiResponse, WebsocketCommon, WebsocketConnection, WebsocketEventEmitter, WebsocketSendMsgConfig, WebsocketSendMsgOptions, WebsocketStream, WebsocketStreamsBase, assertParamExists, buildQueryString, buildUserAgent, buildWebsocketAPIMessage, clearSignerCache, createStreamHandler, delay, getSignature, getTimestamp, httpRequestFunction, normalizeScientificNumbers, parseCustomHeaders, parseRateLimitHeaders, randomString, removeEmptyValue, replaceWebsocketStreamsPlaceholders, sanitizeHeaderValue, sendRequest, setSearchParams, shouldRetryRequest, sortObject, toPathString, validateTimeUnit };
|
|
1110
|
+
export { ALGO_REST_API_PROD_URL, 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, ObjectType, PAY_REST_API_PROD_URL, REBATE_REST_API_PROD_URL, RateLimitBanError, RequestArgs, RequiredError, RestApiRateLimit, 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, SendMessageOptions, ServerError, TimeUnit, TimerRecord, TooManyRequestsError, UnauthorizedError, VIP_LOAN_REST_API_PROD_URL, WALLET_REST_API_PROD_URL, WebsocketAPIBase, WebsocketApiRateLimit, WebsocketApiResponse, WebsocketCommon, WebsocketConnection, WebsocketEventEmitter, WebsocketSendMsgConfig, WebsocketSendMsgOptions, WebsocketStream, WebsocketStreamsBase, assertParamExists, buildQueryString, buildUserAgent, buildWebsocketAPIMessage, clearSignerCache, createStreamHandler, delay, getSignature, getTimestamp, httpRequestFunction, normalizeScientificNumbers, normalizeStreamId, parseCustomHeaders, parseRateLimitHeaders, randomInteger, randomString, removeEmptyValue, replaceWebsocketStreamsPlaceholders, sanitizeHeaderValue, sendRequest, setSearchParams, shouldRetryRequest, sortObject, toPathString, validateTimeUnit };
|
|
1083
1111
|
//# sourceMappingURL=index.d.mts.map
|
package/dist/index.d.ts
CHANGED
|
@@ -529,6 +529,33 @@ declare function buildQueryString(params: Record<string, unknown>): string;
|
|
|
529
529
|
* @returns A random string of 16 hexadecimal characters.
|
|
530
530
|
*/
|
|
531
531
|
declare function randomString(): string;
|
|
532
|
+
/**
|
|
533
|
+
* Generates a cryptographically secure random 32-bit unsigned integer.
|
|
534
|
+
*
|
|
535
|
+
* Uses the Web Crypto API to generate a random value between 0 and 4,294,967,295 (2^32 - 1).
|
|
536
|
+
*
|
|
537
|
+
* @returns A random 32-bit unsigned integer.
|
|
538
|
+
*/
|
|
539
|
+
declare function randomInteger(): number;
|
|
540
|
+
/**
|
|
541
|
+
* Normalizes a stream ID to ensure it is valid, generating a random ID if needed.
|
|
542
|
+
*
|
|
543
|
+
* For string inputs:
|
|
544
|
+
* - Returns the input if it's a valid 32-character hexadecimal string (case-insensitive)
|
|
545
|
+
* - Otherwise, generates a new random hexadecimal string using `randomString()`
|
|
546
|
+
*
|
|
547
|
+
* For number inputs:
|
|
548
|
+
* - Returns the input if it's a finite, non-negative integer within the safe integer range
|
|
549
|
+
* - Otherwise, generates a new random integer using `randomInteger()`
|
|
550
|
+
*
|
|
551
|
+
* For null or undefined inputs:
|
|
552
|
+
* - Generates a new random hexadecimal string using `randomString()`
|
|
553
|
+
*
|
|
554
|
+
* @param id - The stream ID to normalize (string, number, null, or undefined).
|
|
555
|
+
* @param streamIdIsStrictlyNumber - Boolean forcing an id to be a number or not.
|
|
556
|
+
* @returns A valid stream ID as either a 32-character hexadecimal string or a safe integer.
|
|
557
|
+
*/
|
|
558
|
+
declare function normalizeStreamId(id: string | number | null | undefined, streamIdIsStrictlyNumber?: boolean): string | number;
|
|
532
559
|
/**
|
|
533
560
|
* Validates the provided time unit string and returns it if it is either 'MILLISECOND' or 'MICROSECOND'.
|
|
534
561
|
*
|
|
@@ -968,6 +995,7 @@ declare class WebsocketStreamsBase extends WebsocketCommon {
|
|
|
968
995
|
private streamConnectionMap;
|
|
969
996
|
protected configuration: ConfigurationWebsocketStreams;
|
|
970
997
|
protected wsURL: string;
|
|
998
|
+
streamIdIsStrictlyNumber?: boolean;
|
|
971
999
|
streamCallbackMap: Map<string, Set<(data: unknown) => void>>;
|
|
972
1000
|
logger: Logger;
|
|
973
1001
|
constructor(configuration: ConfigurationWebsocketStreams, connectionPool?: WebsocketConnection[]);
|
|
@@ -1040,7 +1068,7 @@ declare class WebsocketStreamsBase extends WebsocketCommon {
|
|
|
1040
1068
|
* @param id Optional subscription ID
|
|
1041
1069
|
* @returns void
|
|
1042
1070
|
*/
|
|
1043
|
-
subscribe(stream: string | string[], id?: string): void;
|
|
1071
|
+
subscribe(stream: string | string[], id?: number | string): void;
|
|
1044
1072
|
/**
|
|
1045
1073
|
* Unsubscribes from one or multiple WebSocket streams
|
|
1046
1074
|
* Handles both single and pool modes
|
|
@@ -1048,7 +1076,7 @@ declare class WebsocketStreamsBase extends WebsocketCommon {
|
|
|
1048
1076
|
* @param id Optional unsubscription ID
|
|
1049
1077
|
* @returns void
|
|
1050
1078
|
*/
|
|
1051
|
-
unsubscribe(stream: string | string[], id?: string): void;
|
|
1079
|
+
unsubscribe(stream: string | string[], id?: number | string): void;
|
|
1052
1080
|
/**
|
|
1053
1081
|
* Checks if the specified stream is currently subscribed.
|
|
1054
1082
|
* @param stream - The name of the stream to check.
|
|
@@ -1077,7 +1105,7 @@ interface WebsocketStream<T> {
|
|
|
1077
1105
|
* @param {string} [id] Optional additional identifier
|
|
1078
1106
|
* @returns {WebsocketStream<T>} A stream handler with methods to register callbacks and unsubscribe
|
|
1079
1107
|
*/
|
|
1080
|
-
declare function createStreamHandler<T>(websocketBase: WebsocketAPIBase | WebsocketStreamsBase, streamOrId: string, id?: string): WebsocketStream<T>;
|
|
1108
|
+
declare function createStreamHandler<T>(websocketBase: WebsocketAPIBase | WebsocketStreamsBase, streamOrId: string, id?: number | string): WebsocketStream<T>;
|
|
1081
1109
|
//#endregion
|
|
1082
|
-
export { ALGO_REST_API_PROD_URL, 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, ObjectType, PAY_REST_API_PROD_URL, REBATE_REST_API_PROD_URL, RateLimitBanError, RequestArgs, RequiredError, RestApiRateLimit, 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, SendMessageOptions, ServerError, TimeUnit, TimerRecord, TooManyRequestsError, UnauthorizedError, VIP_LOAN_REST_API_PROD_URL, WALLET_REST_API_PROD_URL, WebsocketAPIBase, WebsocketApiRateLimit, WebsocketApiResponse, WebsocketCommon, WebsocketConnection, WebsocketEventEmitter, WebsocketSendMsgConfig, WebsocketSendMsgOptions, WebsocketStream, WebsocketStreamsBase, assertParamExists, buildQueryString, buildUserAgent, buildWebsocketAPIMessage, clearSignerCache, createStreamHandler, delay, getSignature, getTimestamp, httpRequestFunction, normalizeScientificNumbers, parseCustomHeaders, parseRateLimitHeaders, randomString, removeEmptyValue, replaceWebsocketStreamsPlaceholders, sanitizeHeaderValue, sendRequest, setSearchParams, shouldRetryRequest, sortObject, toPathString, validateTimeUnit };
|
|
1110
|
+
export { ALGO_REST_API_PROD_URL, 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, ObjectType, PAY_REST_API_PROD_URL, REBATE_REST_API_PROD_URL, RateLimitBanError, RequestArgs, RequiredError, RestApiRateLimit, 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, SendMessageOptions, ServerError, TimeUnit, TimerRecord, TooManyRequestsError, UnauthorizedError, VIP_LOAN_REST_API_PROD_URL, WALLET_REST_API_PROD_URL, WebsocketAPIBase, WebsocketApiRateLimit, WebsocketApiResponse, WebsocketCommon, WebsocketConnection, WebsocketEventEmitter, WebsocketSendMsgConfig, WebsocketSendMsgOptions, WebsocketStream, WebsocketStreamsBase, assertParamExists, buildQueryString, buildUserAgent, buildWebsocketAPIMessage, clearSignerCache, createStreamHandler, delay, getSignature, getTimestamp, httpRequestFunction, normalizeScientificNumbers, normalizeStreamId, parseCustomHeaders, parseRateLimitHeaders, randomInteger, randomString, removeEmptyValue, replaceWebsocketStreamsPlaceholders, sanitizeHeaderValue, sendRequest, setSearchParams, shouldRetryRequest, sortObject, toPathString, validateTimeUnit };
|
|
1083
1111
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.js
CHANGED
|
@@ -140,6 +140,42 @@ function randomString() {
|
|
|
140
140
|
return crypto.default.randomBytes(16).toString("hex");
|
|
141
141
|
}
|
|
142
142
|
/**
|
|
143
|
+
* Generates a cryptographically secure random 32-bit unsigned integer.
|
|
144
|
+
*
|
|
145
|
+
* Uses the Web Crypto API to generate a random value between 0 and 4,294,967,295 (2^32 - 1).
|
|
146
|
+
*
|
|
147
|
+
* @returns A random 32-bit unsigned integer.
|
|
148
|
+
*/
|
|
149
|
+
function randomInteger() {
|
|
150
|
+
const array = new Uint32Array(1);
|
|
151
|
+
crypto.default.getRandomValues(array);
|
|
152
|
+
return array[0];
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Normalizes a stream ID to ensure it is valid, generating a random ID if needed.
|
|
156
|
+
*
|
|
157
|
+
* For string inputs:
|
|
158
|
+
* - Returns the input if it's a valid 32-character hexadecimal string (case-insensitive)
|
|
159
|
+
* - Otherwise, generates a new random hexadecimal string using `randomString()`
|
|
160
|
+
*
|
|
161
|
+
* For number inputs:
|
|
162
|
+
* - Returns the input if it's a finite, non-negative integer within the safe integer range
|
|
163
|
+
* - Otherwise, generates a new random integer using `randomInteger()`
|
|
164
|
+
*
|
|
165
|
+
* For null or undefined inputs:
|
|
166
|
+
* - Generates a new random hexadecimal string using `randomString()`
|
|
167
|
+
*
|
|
168
|
+
* @param id - The stream ID to normalize (string, number, null, or undefined).
|
|
169
|
+
* @param streamIdIsStrictlyNumber - Boolean forcing an id to be a number or not.
|
|
170
|
+
* @returns A valid stream ID as either a 32-character hexadecimal string or a safe integer.
|
|
171
|
+
*/
|
|
172
|
+
function normalizeStreamId(id, streamIdIsStrictlyNumber) {
|
|
173
|
+
const isValidNumber = typeof id === "number" && Number.isFinite(id) && Number.isInteger(id) && id >= 0 && id <= Number.MAX_SAFE_INTEGER;
|
|
174
|
+
if (streamIdIsStrictlyNumber || typeof id === "number") return isValidNumber ? id : randomInteger();
|
|
175
|
+
if (typeof id === "string") return id && /^[0-9a-f]{32}$/i.test(id) ? id : randomString();
|
|
176
|
+
return randomString();
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
143
179
|
* Validates the provided time unit string and returns it if it is either 'MILLISECOND' or 'MICROSECOND'.
|
|
144
180
|
*
|
|
145
181
|
* @param timeUnit - The time unit string to be validated.
|
|
@@ -1446,6 +1482,7 @@ var WebsocketStreamsBase = class extends WebsocketCommon {
|
|
|
1446
1482
|
constructor(configuration, connectionPool = []) {
|
|
1447
1483
|
super(configuration, connectionPool);
|
|
1448
1484
|
this.streamConnectionMap = /* @__PURE__ */ new Map();
|
|
1485
|
+
this.streamIdIsStrictlyNumber = false;
|
|
1449
1486
|
this.streamCallbackMap = /* @__PURE__ */ new Map();
|
|
1450
1487
|
this.logger = Logger.getInstance();
|
|
1451
1488
|
this.configuration = configuration;
|
|
@@ -1505,7 +1542,7 @@ var WebsocketStreamsBase = class extends WebsocketCommon {
|
|
|
1505
1542
|
const payload = {
|
|
1506
1543
|
method: "SUBSCRIBE",
|
|
1507
1544
|
params: streams,
|
|
1508
|
-
id:
|
|
1545
|
+
id: normalizeStreamId(id, this.streamIdIsStrictlyNumber)
|
|
1509
1546
|
};
|
|
1510
1547
|
this.logger.debug("SUBSCRIBE", payload);
|
|
1511
1548
|
this.send(JSON.stringify(payload), void 0, false, 0, connection);
|
|
@@ -1612,7 +1649,7 @@ var WebsocketStreamsBase = class extends WebsocketCommon {
|
|
|
1612
1649
|
const payload = {
|
|
1613
1650
|
method: "UNSUBSCRIBE",
|
|
1614
1651
|
params: [stream$1],
|
|
1615
|
-
id:
|
|
1652
|
+
id: normalizeStreamId(id, this.streamIdIsStrictlyNumber)
|
|
1616
1653
|
};
|
|
1617
1654
|
this.logger.debug("UNSUBSCRIBE", payload);
|
|
1618
1655
|
this.send(JSON.stringify(payload), void 0, false, 0, connection);
|
|
@@ -1742,8 +1779,10 @@ exports.getSignature = getSignature;
|
|
|
1742
1779
|
exports.getTimestamp = getTimestamp;
|
|
1743
1780
|
exports.httpRequestFunction = httpRequestFunction;
|
|
1744
1781
|
exports.normalizeScientificNumbers = normalizeScientificNumbers;
|
|
1782
|
+
exports.normalizeStreamId = normalizeStreamId;
|
|
1745
1783
|
exports.parseCustomHeaders = parseCustomHeaders;
|
|
1746
1784
|
exports.parseRateLimitHeaders = parseRateLimitHeaders;
|
|
1785
|
+
exports.randomInteger = randomInteger;
|
|
1747
1786
|
exports.randomString = randomString;
|
|
1748
1787
|
exports.removeEmptyValue = removeEmptyValue;
|
|
1749
1788
|
exports.replaceWebsocketStreamsPlaceholders = replaceWebsocketStreamsPlaceholders;
|