@binance/common 1.2.1 → 1.2.2
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 +29 -2
- package/dist/index.d.ts +29 -2
- package/dist/index.js +46 -17
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +45 -17
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.d.mts
CHANGED
|
@@ -583,7 +583,34 @@ declare function setFlattenedQueryParams(urlSearchParams: URLSearchParams, param
|
|
|
583
583
|
* @param objects - One or more objects to flatten into the URL's search parameters.
|
|
584
584
|
*/
|
|
585
585
|
declare const setSearchParams: (url: URL, ...objects: Record<string, unknown>[]) => void;
|
|
586
|
+
/**
|
|
587
|
+
* Converts a URL object to a full path string, including pathname, search parameters, and hash.
|
|
588
|
+
*
|
|
589
|
+
* @param url The URL object to convert to a path string.
|
|
590
|
+
* @returns A complete path string representation of the URL.
|
|
591
|
+
*/
|
|
586
592
|
declare const toPathString: (url: URL) => string;
|
|
593
|
+
/**
|
|
594
|
+
* A type utility that transforms numbers in a type to their string representation when in scientific notation,
|
|
595
|
+
* while preserving the structure of arrays and objects.
|
|
596
|
+
*
|
|
597
|
+
* @template T The input type to be transformed
|
|
598
|
+
* @returns A type where numbers potentially become strings, maintaining the original type's structure
|
|
599
|
+
*/
|
|
600
|
+
type ScientificToString<T> = T extends number ? string | number : T extends Array<infer U> ? Array<ScientificToString<U>> : T extends object ? {
|
|
601
|
+
[K in keyof T]: ScientificToString<T[K]>;
|
|
602
|
+
} : T;
|
|
603
|
+
/**
|
|
604
|
+
* Normalizes scientific notation numbers in an object or array to a fixed number of decimal places.
|
|
605
|
+
*
|
|
606
|
+
* This function recursively processes objects, arrays, and numbers, converting scientific notation
|
|
607
|
+
* to a fixed decimal representation. Non-numeric values are left unchanged.
|
|
608
|
+
*
|
|
609
|
+
* @template T The type of the input object or value
|
|
610
|
+
* @param obj The object, array, or value to normalize
|
|
611
|
+
* @returns A new object or value with scientific notation numbers normalized
|
|
612
|
+
*/
|
|
613
|
+
declare function normalizeScientificNumbers<T>(obj: T): ScientificToString<T>;
|
|
587
614
|
/**
|
|
588
615
|
* Determines whether a request should be retried based on the provided error.
|
|
589
616
|
*
|
|
@@ -667,7 +694,7 @@ declare function buildUserAgent(packageName: string, packageVersion: string): st
|
|
|
667
694
|
declare function buildWebsocketAPIMessage(configuration: ConfigurationWebsocketAPI, method: string, payload: WebsocketSendMsgOptions, options: WebsocketSendMsgConfig, skipAuth?: boolean): {
|
|
668
695
|
id: string;
|
|
669
696
|
method: string;
|
|
670
|
-
params:
|
|
697
|
+
params: Record<string, unknown>;
|
|
671
698
|
};
|
|
672
699
|
/**
|
|
673
700
|
* Sanitizes a header value by checking for and preventing carriage return and line feed characters.
|
|
@@ -1052,4 +1079,4 @@ interface WebsocketStream<T> {
|
|
|
1052
1079
|
*/
|
|
1053
1080
|
declare function createStreamHandler<T>(websocketBase: WebsocketAPIBase | WebsocketStreamsBase, streamOrId: string, id?: string): WebsocketStream<T>;
|
|
1054
1081
|
|
|
1055
|
-
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, parseCustomHeaders, parseRateLimitHeaders, randomString, removeEmptyValue, replaceWebsocketStreamsPlaceholders, sanitizeHeaderValue, sendRequest, setFlattenedQueryParams, setSearchParams, shouldRetryRequest, sortObject, toPathString, validateTimeUnit };
|
|
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 };
|
package/dist/index.d.ts
CHANGED
|
@@ -583,7 +583,34 @@ declare function setFlattenedQueryParams(urlSearchParams: URLSearchParams, param
|
|
|
583
583
|
* @param objects - One or more objects to flatten into the URL's search parameters.
|
|
584
584
|
*/
|
|
585
585
|
declare const setSearchParams: (url: URL, ...objects: Record<string, unknown>[]) => void;
|
|
586
|
+
/**
|
|
587
|
+
* Converts a URL object to a full path string, including pathname, search parameters, and hash.
|
|
588
|
+
*
|
|
589
|
+
* @param url The URL object to convert to a path string.
|
|
590
|
+
* @returns A complete path string representation of the URL.
|
|
591
|
+
*/
|
|
586
592
|
declare const toPathString: (url: URL) => string;
|
|
593
|
+
/**
|
|
594
|
+
* A type utility that transforms numbers in a type to their string representation when in scientific notation,
|
|
595
|
+
* while preserving the structure of arrays and objects.
|
|
596
|
+
*
|
|
597
|
+
* @template T The input type to be transformed
|
|
598
|
+
* @returns A type where numbers potentially become strings, maintaining the original type's structure
|
|
599
|
+
*/
|
|
600
|
+
type ScientificToString<T> = T extends number ? string | number : T extends Array<infer U> ? Array<ScientificToString<U>> : T extends object ? {
|
|
601
|
+
[K in keyof T]: ScientificToString<T[K]>;
|
|
602
|
+
} : T;
|
|
603
|
+
/**
|
|
604
|
+
* Normalizes scientific notation numbers in an object or array to a fixed number of decimal places.
|
|
605
|
+
*
|
|
606
|
+
* This function recursively processes objects, arrays, and numbers, converting scientific notation
|
|
607
|
+
* to a fixed decimal representation. Non-numeric values are left unchanged.
|
|
608
|
+
*
|
|
609
|
+
* @template T The type of the input object or value
|
|
610
|
+
* @param obj The object, array, or value to normalize
|
|
611
|
+
* @returns A new object or value with scientific notation numbers normalized
|
|
612
|
+
*/
|
|
613
|
+
declare function normalizeScientificNumbers<T>(obj: T): ScientificToString<T>;
|
|
587
614
|
/**
|
|
588
615
|
* Determines whether a request should be retried based on the provided error.
|
|
589
616
|
*
|
|
@@ -667,7 +694,7 @@ declare function buildUserAgent(packageName: string, packageVersion: string): st
|
|
|
667
694
|
declare function buildWebsocketAPIMessage(configuration: ConfigurationWebsocketAPI, method: string, payload: WebsocketSendMsgOptions, options: WebsocketSendMsgConfig, skipAuth?: boolean): {
|
|
668
695
|
id: string;
|
|
669
696
|
method: string;
|
|
670
|
-
params:
|
|
697
|
+
params: Record<string, unknown>;
|
|
671
698
|
};
|
|
672
699
|
/**
|
|
673
700
|
* Sanitizes a header value by checking for and preventing carriage return and line feed characters.
|
|
@@ -1052,4 +1079,4 @@ interface WebsocketStream<T> {
|
|
|
1052
1079
|
*/
|
|
1053
1080
|
declare function createStreamHandler<T>(websocketBase: WebsocketAPIBase | WebsocketStreamsBase, streamOrId: string, id?: string): WebsocketStream<T>;
|
|
1054
1081
|
|
|
1055
|
-
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, parseCustomHeaders, parseRateLimitHeaders, randomString, removeEmptyValue, replaceWebsocketStreamsPlaceholders, sanitizeHeaderValue, sendRequest, setFlattenedQueryParams, setSearchParams, shouldRetryRequest, sortObject, toPathString, validateTimeUnit };
|
|
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 };
|
package/dist/index.js
CHANGED
|
@@ -109,6 +109,7 @@ __export(index_exports, {
|
|
|
109
109
|
getSignature: () => getSignature,
|
|
110
110
|
getTimestamp: () => getTimestamp,
|
|
111
111
|
httpRequestFunction: () => httpRequestFunction,
|
|
112
|
+
normalizeScientificNumbers: () => normalizeScientificNumbers,
|
|
112
113
|
parseCustomHeaders: () => parseCustomHeaders,
|
|
113
114
|
parseRateLimitHeaders: () => parseRateLimitHeaders,
|
|
114
115
|
randomString: () => randomString,
|
|
@@ -249,6 +250,39 @@ var setSearchParams = function(url, ...objects) {
|
|
|
249
250
|
var toPathString = function(url) {
|
|
250
251
|
return url.pathname + url.search + url.hash;
|
|
251
252
|
};
|
|
253
|
+
function normalizeScientificNumbers(obj) {
|
|
254
|
+
if (Array.isArray(obj)) {
|
|
255
|
+
return obj.map((item) => normalizeScientificNumbers(item));
|
|
256
|
+
} else if (typeof obj === "object" && obj !== null) {
|
|
257
|
+
const result = {};
|
|
258
|
+
for (const key of Object.keys(obj)) {
|
|
259
|
+
result[key] = normalizeScientificNumbers(obj[key]);
|
|
260
|
+
}
|
|
261
|
+
return result;
|
|
262
|
+
} else if (typeof obj === "number") {
|
|
263
|
+
if (!Number.isFinite(obj)) return obj;
|
|
264
|
+
const abs = Math.abs(obj);
|
|
265
|
+
if (abs === 0 || abs >= 1e-6 && abs < 1e21) return String(obj);
|
|
266
|
+
const isNegative = obj < 0;
|
|
267
|
+
const [rawMantissa, rawExponent] = abs.toExponential().split("e");
|
|
268
|
+
const exponent = +rawExponent;
|
|
269
|
+
const digits = rawMantissa.replace(".", "");
|
|
270
|
+
if (exponent < 0) {
|
|
271
|
+
const zeros = "0".repeat(Math.abs(exponent) - 1);
|
|
272
|
+
return (isNegative ? "-" : "") + "0." + zeros + digits;
|
|
273
|
+
} else {
|
|
274
|
+
const pad = exponent - (digits.length - 1);
|
|
275
|
+
if (pad >= 0) {
|
|
276
|
+
return (isNegative ? "-" : "") + digits + "0".repeat(pad);
|
|
277
|
+
} else {
|
|
278
|
+
const point = digits.length + pad;
|
|
279
|
+
return (isNegative ? "-" : "") + digits.slice(0, point) + "." + digits.slice(point);
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
} else {
|
|
283
|
+
return obj;
|
|
284
|
+
}
|
|
285
|
+
}
|
|
252
286
|
var shouldRetryRequest = function(error, method, retriesLeft) {
|
|
253
287
|
const isRetriableMethod = ["GET", "DELETE"].includes(method ?? "");
|
|
254
288
|
const isRetriableStatus = [500, 502, 503, 504].includes(
|
|
@@ -410,7 +444,7 @@ var sendRequest = function(configuration, endpoint, method, params = {}, timeUni
|
|
|
410
444
|
method,
|
|
411
445
|
...configuration?.baseOptions
|
|
412
446
|
};
|
|
413
|
-
const localVarQueryParameter = { ...params };
|
|
447
|
+
const localVarQueryParameter = { ...normalizeScientificNumbers(params) };
|
|
414
448
|
if (options.isSigned) {
|
|
415
449
|
const timestamp = getTimestamp();
|
|
416
450
|
localVarQueryParameter["timestamp"] = timestamp;
|
|
@@ -481,7 +515,7 @@ function buildUserAgent(packageName, packageVersion) {
|
|
|
481
515
|
function buildWebsocketAPIMessage(configuration, method, payload, options, skipAuth = false) {
|
|
482
516
|
const id = payload.id && /^[0-9a-f]{32}$/.test(payload.id) ? payload.id : randomString();
|
|
483
517
|
delete payload.id;
|
|
484
|
-
let params = removeEmptyValue(payload);
|
|
518
|
+
let params = normalizeScientificNumbers(removeEmptyValue(payload));
|
|
485
519
|
if ((options.withApiKey || options.isSigned) && !skipAuth) params.apiKey = configuration.apiKey;
|
|
486
520
|
if (options.isSigned) {
|
|
487
521
|
params.timestamp = getTimestamp();
|
|
@@ -504,7 +538,7 @@ function parseCustomHeaders(headers) {
|
|
|
504
538
|
for (const [rawName, rawValue] of Object.entries(headers || {})) {
|
|
505
539
|
const name = rawName.trim();
|
|
506
540
|
if (forbidden.has(name.toLowerCase())) {
|
|
507
|
-
|
|
541
|
+
Logger.getInstance().warn(`Dropping forbidden header: ${name}`);
|
|
508
542
|
continue;
|
|
509
543
|
}
|
|
510
544
|
try {
|
|
@@ -724,33 +758,27 @@ var Logger = class _Logger {
|
|
|
724
758
|
"warn" /* WARN */,
|
|
725
759
|
"error" /* ERROR */
|
|
726
760
|
];
|
|
761
|
+
const envLevel = process.env.LOG_LEVEL?.toLowerCase();
|
|
762
|
+
this.minLogLevel = envLevel && this.isValidLogLevel(envLevel) ? envLevel : "info" /* INFO */;
|
|
727
763
|
}
|
|
728
764
|
static getInstance() {
|
|
729
|
-
if (!_Logger.instance)
|
|
730
|
-
_Logger.instance = new _Logger();
|
|
731
|
-
}
|
|
765
|
+
if (!_Logger.instance) _Logger.instance = new _Logger();
|
|
732
766
|
return _Logger.instance;
|
|
733
767
|
}
|
|
734
768
|
setMinLogLevel(level) {
|
|
735
|
-
if (!this.isValidLogLevel(level)) {
|
|
736
|
-
throw new Error(`Invalid log level: ${level}`);
|
|
737
|
-
}
|
|
769
|
+
if (!this.isValidLogLevel(level)) throw new Error(`Invalid log level: ${level}`);
|
|
738
770
|
this.minLogLevel = level;
|
|
739
771
|
}
|
|
740
772
|
isValidLogLevel(level) {
|
|
741
773
|
return this.levelsOrder.includes(level);
|
|
742
774
|
}
|
|
743
775
|
log(level, ...message) {
|
|
744
|
-
if (level === "" /* NONE */ || !this.allowLevelLog(level))
|
|
745
|
-
return;
|
|
746
|
-
}
|
|
776
|
+
if (level === "" /* NONE */ || !this.allowLevelLog(level)) return;
|
|
747
777
|
const timestamp = (/* @__PURE__ */ new Date()).toISOString();
|
|
748
778
|
console[level](`[${timestamp}] [${level.toLowerCase()}]`, ...message);
|
|
749
779
|
}
|
|
750
780
|
allowLevelLog(level) {
|
|
751
|
-
if (!this.isValidLogLevel(level)) {
|
|
752
|
-
throw new Error(`Invalid log level: ${level}`);
|
|
753
|
-
}
|
|
781
|
+
if (!this.isValidLogLevel(level)) throw new Error(`Invalid log level: ${level}`);
|
|
754
782
|
const currentLevelIndex = this.levelsOrder.indexOf(level);
|
|
755
783
|
const minLevelIndex = this.levelsOrder.indexOf(this.minLogLevel);
|
|
756
784
|
return currentLevelIndex >= minLevelIndex;
|
|
@@ -1475,7 +1503,7 @@ var WebsocketStreamsBase = class extends WebsocketCommon {
|
|
|
1475
1503
|
params: streams,
|
|
1476
1504
|
id: id && /^[0-9a-f]{32}$/.test(id) ? id : randomString()
|
|
1477
1505
|
};
|
|
1478
|
-
this.logger.
|
|
1506
|
+
this.logger.debug("SUBSCRIBE", payload);
|
|
1479
1507
|
this.send(JSON.stringify(payload), void 0, false, 0, connection);
|
|
1480
1508
|
}
|
|
1481
1509
|
/**
|
|
@@ -1595,7 +1623,7 @@ var WebsocketStreamsBase = class extends WebsocketCommon {
|
|
|
1595
1623
|
params: [stream2],
|
|
1596
1624
|
id: id && /^[0-9a-f]{32}$/.test(id) ? id : randomString()
|
|
1597
1625
|
};
|
|
1598
|
-
this.logger.
|
|
1626
|
+
this.logger.debug("UNSUBSCRIBE", payload);
|
|
1599
1627
|
this.send(JSON.stringify(payload), void 0, false, 0, connection);
|
|
1600
1628
|
this.streamConnectionMap.delete(stream2);
|
|
1601
1629
|
this.streamCallbackMap.delete(stream2);
|
|
@@ -1716,6 +1744,7 @@ function createStreamHandler(websocketBase, streamOrId, id) {
|
|
|
1716
1744
|
getSignature,
|
|
1717
1745
|
getTimestamp,
|
|
1718
1746
|
httpRequestFunction,
|
|
1747
|
+
normalizeScientificNumbers,
|
|
1719
1748
|
parseCustomHeaders,
|
|
1720
1749
|
parseRateLimitHeaders,
|
|
1721
1750
|
randomString,
|