@binance/common 1.0.3 → 1.0.5

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 CHANGED
@@ -31,8 +31,7 @@ declare const DERIVATIVES_TRADING_OPTIONS_REST_API_PROD_URL = "https://eapi.bina
31
31
  declare const DERIVATIVES_TRADING_OPTIONS_WS_STREAMS_PROD_URL = "wss://nbstream.binance.com/eoptions";
32
32
  declare const DERIVATIVES_TRADING_PORTFOLIO_MARGIN_REST_API_PROD_URL = "https://papi.binance.com";
33
33
  declare const DERIVATIVES_TRADING_PORTFOLIO_MARGIN_REST_API_TESTNET_URL = "https://testnet.binancefuture.com";
34
- declare const DERIVATIVES_TRADING_PORTFOLIO_MARGIN_PRO_REST_API_PROD_URL = "https://fapi.binance.com";
35
- declare const DERIVATIVES_TRADING_PORTFOLIO_MARGIN_PRO_REST_API_TESTNET_URL = "https://testnet.binancefuture.com";
34
+ declare const DERIVATIVES_TRADING_PORTFOLIO_MARGIN_PRO_REST_API_PROD_URL = "https://api.binance.com";
36
35
  declare const DUAL_INVESTMENT_REST_API_PROD_URL = "https://api.binance.com";
37
36
  declare const FIAT_REST_API_PROD_URL = "https://api.binance.com";
38
37
  declare const GIFT_CARD_REST_API_PROD_URL = "https://api.binance.com";
@@ -614,15 +613,6 @@ declare function sortObject(obj: ObjectType): ObjectType;
614
613
  * @returns {string} - The resulting string with placeholders replaced by their corresponding values.
615
614
  */
616
615
  declare function replaceWebsocketStreamsPlaceholders(str: string, variables: Record<string, unknown>): string;
617
- /**
618
- * Creates a WebsocketStream instance that subscribes to the specified stream and provides a callback for handling incoming messages.
619
- *
620
- * @param websocketBase - The WebsocketStreamsBase instance to use for subscribing and unsubscribing from the stream.
621
- * @param stream - The name of the stream to subscribe to.
622
- * @param id - An optional identifier for the stream.
623
- * @returns A WebsocketStream instance that can be used to handle incoming messages and unsubscribe from the stream.
624
- */
625
- declare function createStreamHandler<T>(websocketBase: WebsocketStreamsBase, stream: string, id?: string): WebsocketStream<T>;
626
616
 
627
617
  declare class WebsocketEventEmitter {
628
618
  private eventEmitter;
@@ -819,6 +809,7 @@ interface WebsocketSendMsgOptions {
819
809
  }
820
810
  declare class WebsocketAPIBase extends WebsocketCommon {
821
811
  private isConnecting;
812
+ streamCallbackMap: Map<string, Set<(data: unknown) => void>>;
822
813
  configuration: ConfigurationWebsocketAPI;
823
814
  logger: Logger;
824
815
  constructor(configuration: ConfigurationWebsocketAPI, connectionPool?: WebsocketConnection[]);
@@ -853,18 +844,6 @@ declare class WebsocketAPIBase extends WebsocketCommon {
853
844
  isSigned?: boolean;
854
845
  }): Promise<WebsocketApiResponse<T>>;
855
846
  }
856
- interface WebsocketStream<T> {
857
- /**
858
- * Attach a listener for the stream.
859
- * @param event - Event name (currently supports "message").
860
- * @param callback - Callback function to handle incoming data.
861
- */
862
- on(event: 'message', callback: (data: T) => void): void;
863
- /**
864
- * Unsubscribe from the stream and clean up resources.
865
- */
866
- unsubscribe(): void;
867
- }
868
847
  declare class WebsocketStreamsBase extends WebsocketCommon {
869
848
  private streamConnectionMap;
870
849
  protected configuration: ConfigurationWebsocketStreams;
@@ -958,5 +937,27 @@ declare class WebsocketStreamsBase extends WebsocketCommon {
958
937
  */
959
938
  isSubscribed(stream: string): boolean;
960
939
  }
940
+ interface WebsocketStream<T> {
941
+ /**
942
+ * Attach a listener for the stream.
943
+ * @param event - Event name (currently supports "message").
944
+ * @param callback - Callback function to handle incoming data.
945
+ */
946
+ on(event: 'message', callback: (data: T) => void): void;
947
+ /**
948
+ * Unsubscribe from the stream and clean up resources.
949
+ */
950
+ unsubscribe(): void;
951
+ }
952
+ /**
953
+ * Creates a WebSocket stream handler for managing stream subscriptions and callbacks.
954
+ *
955
+ * @template T The type of data expected in the stream messages
956
+ * @param {WebsocketAPIBase | WebsocketStreamsBase} websocketBase The WebSocket base instance
957
+ * @param {string} streamOrId The stream identifier
958
+ * @param {string} [id] Optional additional identifier
959
+ * @returns {WebsocketStream<T>} A stream handler with methods to register callbacks and unsubscribe
960
+ */
961
+ declare function createStreamHandler<T>(websocketBase: WebsocketAPIBase | WebsocketStreamsBase, streamOrId: string, id?: string): WebsocketStream<T>;
961
962
 
962
- 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_REST_API_TESTNET_URL, DERIVATIVES_TRADING_PORTFOLIO_MARGIN_REST_API_PROD_URL, DERIVATIVES_TRADING_PORTFOLIO_MARGIN_REST_API_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, 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 WebsocketSendMsgOptions, type WebsocketStream, WebsocketStreamsBase, assertParamExists, buildQueryString, createStreamHandler, delay, getSignature, getTimestamp, httpRequestFunction, parseRateLimitHeaders, randomString, removeEmptyValue, replaceWebsocketStreamsPlaceholders, sendRequest, setSearchParams, shouldRetryRequest, sortObject, toPathString, validateTimeUnit };
963
+ 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_REST_API_PROD_URL, DERIVATIVES_TRADING_PORTFOLIO_MARGIN_REST_API_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, 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 WebsocketSendMsgOptions, type WebsocketStream, WebsocketStreamsBase, assertParamExists, buildQueryString, createStreamHandler, delay, getSignature, getTimestamp, httpRequestFunction, parseRateLimitHeaders, randomString, removeEmptyValue, replaceWebsocketStreamsPlaceholders, sendRequest, setSearchParams, shouldRetryRequest, sortObject, toPathString, validateTimeUnit };
package/dist/index.d.ts CHANGED
@@ -31,8 +31,7 @@ declare const DERIVATIVES_TRADING_OPTIONS_REST_API_PROD_URL = "https://eapi.bina
31
31
  declare const DERIVATIVES_TRADING_OPTIONS_WS_STREAMS_PROD_URL = "wss://nbstream.binance.com/eoptions";
32
32
  declare const DERIVATIVES_TRADING_PORTFOLIO_MARGIN_REST_API_PROD_URL = "https://papi.binance.com";
33
33
  declare const DERIVATIVES_TRADING_PORTFOLIO_MARGIN_REST_API_TESTNET_URL = "https://testnet.binancefuture.com";
34
- declare const DERIVATIVES_TRADING_PORTFOLIO_MARGIN_PRO_REST_API_PROD_URL = "https://fapi.binance.com";
35
- declare const DERIVATIVES_TRADING_PORTFOLIO_MARGIN_PRO_REST_API_TESTNET_URL = "https://testnet.binancefuture.com";
34
+ declare const DERIVATIVES_TRADING_PORTFOLIO_MARGIN_PRO_REST_API_PROD_URL = "https://api.binance.com";
36
35
  declare const DUAL_INVESTMENT_REST_API_PROD_URL = "https://api.binance.com";
37
36
  declare const FIAT_REST_API_PROD_URL = "https://api.binance.com";
38
37
  declare const GIFT_CARD_REST_API_PROD_URL = "https://api.binance.com";
@@ -614,15 +613,6 @@ declare function sortObject(obj: ObjectType): ObjectType;
614
613
  * @returns {string} - The resulting string with placeholders replaced by their corresponding values.
615
614
  */
616
615
  declare function replaceWebsocketStreamsPlaceholders(str: string, variables: Record<string, unknown>): string;
617
- /**
618
- * Creates a WebsocketStream instance that subscribes to the specified stream and provides a callback for handling incoming messages.
619
- *
620
- * @param websocketBase - The WebsocketStreamsBase instance to use for subscribing and unsubscribing from the stream.
621
- * @param stream - The name of the stream to subscribe to.
622
- * @param id - An optional identifier for the stream.
623
- * @returns A WebsocketStream instance that can be used to handle incoming messages and unsubscribe from the stream.
624
- */
625
- declare function createStreamHandler<T>(websocketBase: WebsocketStreamsBase, stream: string, id?: string): WebsocketStream<T>;
626
616
 
627
617
  declare class WebsocketEventEmitter {
628
618
  private eventEmitter;
@@ -819,6 +809,7 @@ interface WebsocketSendMsgOptions {
819
809
  }
820
810
  declare class WebsocketAPIBase extends WebsocketCommon {
821
811
  private isConnecting;
812
+ streamCallbackMap: Map<string, Set<(data: unknown) => void>>;
822
813
  configuration: ConfigurationWebsocketAPI;
823
814
  logger: Logger;
824
815
  constructor(configuration: ConfigurationWebsocketAPI, connectionPool?: WebsocketConnection[]);
@@ -853,18 +844,6 @@ declare class WebsocketAPIBase extends WebsocketCommon {
853
844
  isSigned?: boolean;
854
845
  }): Promise<WebsocketApiResponse<T>>;
855
846
  }
856
- interface WebsocketStream<T> {
857
- /**
858
- * Attach a listener for the stream.
859
- * @param event - Event name (currently supports "message").
860
- * @param callback - Callback function to handle incoming data.
861
- */
862
- on(event: 'message', callback: (data: T) => void): void;
863
- /**
864
- * Unsubscribe from the stream and clean up resources.
865
- */
866
- unsubscribe(): void;
867
- }
868
847
  declare class WebsocketStreamsBase extends WebsocketCommon {
869
848
  private streamConnectionMap;
870
849
  protected configuration: ConfigurationWebsocketStreams;
@@ -958,5 +937,27 @@ declare class WebsocketStreamsBase extends WebsocketCommon {
958
937
  */
959
938
  isSubscribed(stream: string): boolean;
960
939
  }
940
+ interface WebsocketStream<T> {
941
+ /**
942
+ * Attach a listener for the stream.
943
+ * @param event - Event name (currently supports "message").
944
+ * @param callback - Callback function to handle incoming data.
945
+ */
946
+ on(event: 'message', callback: (data: T) => void): void;
947
+ /**
948
+ * Unsubscribe from the stream and clean up resources.
949
+ */
950
+ unsubscribe(): void;
951
+ }
952
+ /**
953
+ * Creates a WebSocket stream handler for managing stream subscriptions and callbacks.
954
+ *
955
+ * @template T The type of data expected in the stream messages
956
+ * @param {WebsocketAPIBase | WebsocketStreamsBase} websocketBase The WebSocket base instance
957
+ * @param {string} streamOrId The stream identifier
958
+ * @param {string} [id] Optional additional identifier
959
+ * @returns {WebsocketStream<T>} A stream handler with methods to register callbacks and unsubscribe
960
+ */
961
+ declare function createStreamHandler<T>(websocketBase: WebsocketAPIBase | WebsocketStreamsBase, streamOrId: string, id?: string): WebsocketStream<T>;
961
962
 
962
- 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_REST_API_TESTNET_URL, DERIVATIVES_TRADING_PORTFOLIO_MARGIN_REST_API_PROD_URL, DERIVATIVES_TRADING_PORTFOLIO_MARGIN_REST_API_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, 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 WebsocketSendMsgOptions, type WebsocketStream, WebsocketStreamsBase, assertParamExists, buildQueryString, createStreamHandler, delay, getSignature, getTimestamp, httpRequestFunction, parseRateLimitHeaders, randomString, removeEmptyValue, replaceWebsocketStreamsPlaceholders, sendRequest, setSearchParams, shouldRetryRequest, sortObject, toPathString, validateTimeUnit };
963
+ 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_REST_API_PROD_URL, DERIVATIVES_TRADING_PORTFOLIO_MARGIN_REST_API_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, 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 WebsocketSendMsgOptions, type WebsocketStream, WebsocketStreamsBase, assertParamExists, buildQueryString, createStreamHandler, delay, getSignature, getTimestamp, httpRequestFunction, parseRateLimitHeaders, randomString, removeEmptyValue, replaceWebsocketStreamsPlaceholders, sendRequest, setSearchParams, shouldRetryRequest, sortObject, toPathString, validateTimeUnit };
package/dist/index.js CHANGED
@@ -50,7 +50,6 @@ __export(index_exports, {
50
50
  DERIVATIVES_TRADING_OPTIONS_REST_API_PROD_URL: () => DERIVATIVES_TRADING_OPTIONS_REST_API_PROD_URL,
51
51
  DERIVATIVES_TRADING_OPTIONS_WS_STREAMS_PROD_URL: () => DERIVATIVES_TRADING_OPTIONS_WS_STREAMS_PROD_URL,
52
52
  DERIVATIVES_TRADING_PORTFOLIO_MARGIN_PRO_REST_API_PROD_URL: () => DERIVATIVES_TRADING_PORTFOLIO_MARGIN_PRO_REST_API_PROD_URL,
53
- DERIVATIVES_TRADING_PORTFOLIO_MARGIN_PRO_REST_API_TESTNET_URL: () => DERIVATIVES_TRADING_PORTFOLIO_MARGIN_PRO_REST_API_TESTNET_URL,
54
53
  DERIVATIVES_TRADING_PORTFOLIO_MARGIN_REST_API_PROD_URL: () => DERIVATIVES_TRADING_PORTFOLIO_MARGIN_REST_API_PROD_URL,
55
54
  DERIVATIVES_TRADING_PORTFOLIO_MARGIN_REST_API_TESTNET_URL: () => DERIVATIVES_TRADING_PORTFOLIO_MARGIN_REST_API_TESTNET_URL,
56
55
  DERIVATIVES_TRADING_USDS_FUTURES_REST_API_PROD_URL: () => DERIVATIVES_TRADING_USDS_FUTURES_REST_API_PROD_URL,
@@ -94,7 +93,7 @@ __export(index_exports, {
94
93
  WebsocketAPIBase: () => WebsocketAPIBase,
95
94
  WebsocketCommon: () => WebsocketCommon,
96
95
  WebsocketEventEmitter: () => WebsocketEventEmitter,
97
- WebsocketStreamsBase: () => WebsocketStreamsBase2,
96
+ WebsocketStreamsBase: () => WebsocketStreamsBase,
98
97
  assertParamExists: () => assertParamExists,
99
98
  buildQueryString: () => buildQueryString,
100
99
  createStreamHandler: () => createStreamHandler,
@@ -200,8 +199,7 @@ var DERIVATIVES_TRADING_OPTIONS_REST_API_PROD_URL = "https://eapi.binance.com";
200
199
  var DERIVATIVES_TRADING_OPTIONS_WS_STREAMS_PROD_URL = "wss://nbstream.binance.com/eoptions";
201
200
  var DERIVATIVES_TRADING_PORTFOLIO_MARGIN_REST_API_PROD_URL = "https://papi.binance.com";
202
201
  var DERIVATIVES_TRADING_PORTFOLIO_MARGIN_REST_API_TESTNET_URL = "https://testnet.binancefuture.com";
203
- var DERIVATIVES_TRADING_PORTFOLIO_MARGIN_PRO_REST_API_PROD_URL = "https://fapi.binance.com";
204
- var DERIVATIVES_TRADING_PORTFOLIO_MARGIN_PRO_REST_API_TESTNET_URL = "https://testnet.binancefuture.com";
202
+ var DERIVATIVES_TRADING_PORTFOLIO_MARGIN_PRO_REST_API_PROD_URL = "https://api.binance.com";
205
203
  var DUAL_INVESTMENT_REST_API_PROD_URL = "https://api.binance.com";
206
204
  var FIAT_REST_API_PROD_URL = "https://api.binance.com";
207
205
  var GIFT_CARD_REST_API_PROD_URL = "https://api.binance.com";
@@ -686,25 +684,6 @@ function replaceWebsocketStreamsPlaceholders(str, variables) {
686
684
  return "";
687
685
  });
688
686
  }
689
- function createStreamHandler(websocketBase, stream, id) {
690
- websocketBase.subscribe(stream, id);
691
- let registeredCallback;
692
- return {
693
- on: (event, callback) => {
694
- if (event === "message") {
695
- registeredCallback = (data) => callback(data);
696
- const callbackSet = websocketBase.streamCallbackMap.get(stream) ?? /* @__PURE__ */ new Set();
697
- callbackSet.add(registeredCallback);
698
- websocketBase.streamCallbackMap.set(stream, callbackSet);
699
- }
700
- },
701
- unsubscribe: () => {
702
- if (registeredCallback)
703
- websocketBase.streamCallbackMap.get(stream)?.delete(registeredCallback);
704
- websocketBase.unsubscribe(stream, id);
705
- }
706
- };
707
- }
708
687
 
709
688
  // src/websocket.ts
710
689
  var import_events = require("events");
@@ -1164,6 +1143,7 @@ var WebsocketAPIBase = class extends WebsocketCommon {
1164
1143
  constructor(configuration, connectionPool = []) {
1165
1144
  super(configuration, connectionPool);
1166
1145
  this.isConnecting = false;
1146
+ this.streamCallbackMap = /* @__PURE__ */ new Map();
1167
1147
  this.logger = Logger.getInstance();
1168
1148
  this.configuration = configuration;
1169
1149
  }
@@ -1204,6 +1184,10 @@ var WebsocketAPIBase = class extends WebsocketCommon {
1204
1184
  };
1205
1185
  request?.resolve(response);
1206
1186
  }
1187
+ } else if ("event" in message && "e" in message["event"] && this.streamCallbackMap.size > 0) {
1188
+ this.streamCallbackMap.forEach(
1189
+ (callbacks) => callbacks.forEach((callback) => callback(message["event"]))
1190
+ );
1207
1191
  } else {
1208
1192
  this.logger.warn("Received response for unknown or timed-out request:", message);
1209
1193
  }
@@ -1273,7 +1257,7 @@ var WebsocketAPIBase = class extends WebsocketCommon {
1273
1257
  return this.send(JSON.stringify(data), id, true, this.configuration?.timeout);
1274
1258
  }
1275
1259
  };
1276
- var WebsocketStreamsBase2 = class extends WebsocketCommon {
1260
+ var WebsocketStreamsBase = class extends WebsocketCommon {
1277
1261
  constructor(configuration, connectionPool = []) {
1278
1262
  super(configuration, connectionPool);
1279
1263
  this.streamConnectionMap = /* @__PURE__ */ new Map();
@@ -1479,6 +1463,26 @@ var WebsocketStreamsBase2 = class extends WebsocketCommon {
1479
1463
  return this.streamConnectionMap.has(stream);
1480
1464
  }
1481
1465
  };
1466
+ function createStreamHandler(websocketBase, streamOrId, id) {
1467
+ if (websocketBase instanceof WebsocketStreamsBase) websocketBase.subscribe(streamOrId, id);
1468
+ let registeredCallback;
1469
+ return {
1470
+ on: (event, callback) => {
1471
+ if (event === "message") {
1472
+ registeredCallback = (data) => callback(data);
1473
+ const callbackSet = websocketBase.streamCallbackMap.get(streamOrId) ?? /* @__PURE__ */ new Set();
1474
+ callbackSet.add(registeredCallback);
1475
+ websocketBase.streamCallbackMap.set(streamOrId, callbackSet);
1476
+ }
1477
+ },
1478
+ unsubscribe: () => {
1479
+ if (registeredCallback)
1480
+ websocketBase.streamCallbackMap.get(streamOrId)?.delete(registeredCallback);
1481
+ if (websocketBase instanceof WebsocketStreamsBase)
1482
+ websocketBase.unsubscribe(streamOrId, id);
1483
+ }
1484
+ };
1485
+ }
1482
1486
  // Annotate the CommonJS export names for ESM import in node:
1483
1487
  0 && (module.exports = {
1484
1488
  ALGO_REST_API_PROD_URL,
@@ -1501,7 +1505,6 @@ var WebsocketStreamsBase2 = class extends WebsocketCommon {
1501
1505
  DERIVATIVES_TRADING_OPTIONS_REST_API_PROD_URL,
1502
1506
  DERIVATIVES_TRADING_OPTIONS_WS_STREAMS_PROD_URL,
1503
1507
  DERIVATIVES_TRADING_PORTFOLIO_MARGIN_PRO_REST_API_PROD_URL,
1504
- DERIVATIVES_TRADING_PORTFOLIO_MARGIN_PRO_REST_API_TESTNET_URL,
1505
1508
  DERIVATIVES_TRADING_PORTFOLIO_MARGIN_REST_API_PROD_URL,
1506
1509
  DERIVATIVES_TRADING_PORTFOLIO_MARGIN_REST_API_TESTNET_URL,
1507
1510
  DERIVATIVES_TRADING_USDS_FUTURES_REST_API_PROD_URL,