@anrmk/str-package 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. package/README.md +29 -0
  2. package/dist/TChallengeProgress-DkZ0Q0Zu.d.cts +79 -0
  3. package/dist/TChallengeProgress-e8E5Z7Tn.d.ts +79 -0
  4. package/dist/chunk-CDWBE6PZ.js +264 -0
  5. package/dist/chunk-CDWBE6PZ.js.map +1 -0
  6. package/dist/chunk-GIWOOWDE.js +39 -0
  7. package/dist/chunk-GIWOOWDE.js.map +1 -0
  8. package/dist/chunk-PGGSZUQW.js +98 -0
  9. package/dist/chunk-PGGSZUQW.js.map +1 -0
  10. package/dist/chunk-VPBFPI5B.js +15 -0
  11. package/dist/chunk-VPBFPI5B.js.map +1 -0
  12. package/dist/enums-CvsmYKeP.d.cts +19 -0
  13. package/dist/enums-CvsmYKeP.d.ts +19 -0
  14. package/dist/index.cjs +416 -0
  15. package/dist/index.cjs.map +1 -0
  16. package/dist/index.d.cts +9 -0
  17. package/dist/index.d.ts +9 -0
  18. package/dist/index.js +6 -0
  19. package/dist/index.js.map +1 -0
  20. package/dist/providers/bybit/index.cjs +279 -0
  21. package/dist/providers/bybit/index.cjs.map +1 -0
  22. package/dist/providers/bybit/index.d.cts +16 -0
  23. package/dist/providers/bybit/index.d.ts +16 -0
  24. package/dist/providers/bybit/index.js +4 -0
  25. package/dist/providers/bybit/index.js.map +1 -0
  26. package/dist/types/bybit/index.cjs +4 -0
  27. package/dist/types/bybit/index.cjs.map +1 -0
  28. package/dist/types/bybit/index.d.cts +211 -0
  29. package/dist/types/bybit/index.d.ts +211 -0
  30. package/dist/types/bybit/index.js +3 -0
  31. package/dist/types/bybit/index.js.map +1 -0
  32. package/dist/types/challenge/index.cjs +4 -0
  33. package/dist/types/challenge/index.cjs.map +1 -0
  34. package/dist/types/challenge/index.d.cts +114 -0
  35. package/dist/types/challenge/index.d.ts +114 -0
  36. package/dist/types/challenge/index.js +3 -0
  37. package/dist/types/challenge/index.js.map +1 -0
  38. package/dist/types/index.cjs +4 -0
  39. package/dist/types/index.cjs.map +1 -0
  40. package/dist/types/index.d.cts +8 -0
  41. package/dist/types/index.d.ts +8 -0
  42. package/dist/types/index.js +3 -0
  43. package/dist/types/index.js.map +1 -0
  44. package/dist/utils/bybitHelper.cjs +17 -0
  45. package/dist/utils/bybitHelper.cjs.map +1 -0
  46. package/dist/utils/bybitHelper.d.cts +6 -0
  47. package/dist/utils/bybitHelper.d.ts +6 -0
  48. package/dist/utils/bybitHelper.js +3 -0
  49. package/dist/utils/bybitHelper.js.map +1 -0
  50. package/dist/utils/challengeHelper.cjs +119 -0
  51. package/dist/utils/challengeHelper.cjs.map +1 -0
  52. package/dist/utils/challengeHelper.d.cts +18 -0
  53. package/dist/utils/challengeHelper.d.ts +18 -0
  54. package/dist/utils/challengeHelper.js +4 -0
  55. package/dist/utils/challengeHelper.js.map +1 -0
  56. package/dist/utils/helper.cjs +43 -0
  57. package/dist/utils/helper.cjs.map +1 -0
  58. package/dist/utils/helper.d.cts +5 -0
  59. package/dist/utils/helper.d.ts +5 -0
  60. package/dist/utils/helper.js +3 -0
  61. package/dist/utils/helper.js.map +1 -0
  62. package/package.json +76 -0
@@ -0,0 +1,279 @@
1
+ 'use strict';
2
+
3
+ var crypto = require('crypto');
4
+ var process$1 = require('process');
5
+
6
+ // src/providers/bybit/constants.ts
7
+ var BYBIT_CONSTANTS = {
8
+ baseUrl: process.env.BYBIT_BASE_URL || "https://api-demo.bybit.com",
9
+ fetchTimeoutMs: Number(process.env.BYBIT_FETCH_TIMEOUT_MS) || 1e4,
10
+ recvWindowTimeoutMs: process.env.BYBIT_RECV_WINDOW_TIMEOUT_MS || "20000"
11
+ };
12
+ var BYBIT_RECV_WINDOW_TIMEOUT_MS = process$1.env.NEXT_PUBLIC_BYBIT_RECV_WINDOW_TIMEOUT_MS ?? "5000";
13
+ function signBybitRequest(apiSecret, apiKey, queryString) {
14
+ const timestamp = Date.now().toString();
15
+ const payload = `${timestamp}${apiKey}${BYBIT_RECV_WINDOW_TIMEOUT_MS}${queryString ?? ""}`;
16
+ const signature = crypto.createHmac("sha256", apiSecret).update(payload).digest("hex");
17
+ return { signature, timestamp };
18
+ }
19
+
20
+ // src/providers/bybit/get-api-key-info.ts
21
+ async function getApiKeyInfo(credentials) {
22
+ const { apiKey, apiSecret } = credentials;
23
+ if (!apiKey || !apiSecret) {
24
+ throw new Error("ByBit API key and API secret are required");
25
+ }
26
+ const { signature, timestamp } = signBybitRequest(apiSecret, apiKey);
27
+ let bybitRes;
28
+ try {
29
+ bybitRes = await fetch(`${BYBIT_CONSTANTS.baseUrl}/v5/user/query-api`, {
30
+ headers: {
31
+ "X-BAPI-API-KEY": apiKey,
32
+ "X-BAPI-SIGN": signature,
33
+ "X-BAPI-SIGN-TYPE": "2",
34
+ "X-BAPI-TIMESTAMP": timestamp,
35
+ "X-BAPI-RECV-WINDOW": BYBIT_CONSTANTS.recvWindowTimeoutMs
36
+ },
37
+ //signal: AbortSignal.timeout(BYBIT_CONSTANTS.fetchTimeoutMs),
38
+ cache: "no-store"
39
+ });
40
+ } catch (error) {
41
+ throw new Error("ByBit API Key Info network error", { cause: error });
42
+ }
43
+ if (!bybitRes.ok) {
44
+ throw new Error("ByBit API Key Info request failed");
45
+ }
46
+ const bybitJson = await bybitRes.json();
47
+ if (bybitJson.retCode !== 0) {
48
+ throw new Error(bybitJson.retMsg ?? "ByBit error");
49
+ }
50
+ if (!bybitJson) {
51
+ throw new Error("Invalid ByBit API Key Info response");
52
+ }
53
+ return bybitJson;
54
+ }
55
+
56
+ // src/providers/bybit/get-account-info.ts
57
+ async function getAccountInfo(credentials) {
58
+ const { apiKey, apiSecret } = credentials;
59
+ const queryString = "accountType=UNIFIED";
60
+ const { signature, timestamp } = signBybitRequest(
61
+ apiSecret,
62
+ apiKey,
63
+ queryString
64
+ );
65
+ let bybitRes;
66
+ try {
67
+ bybitRes = await fetch(`${BYBIT_CONSTANTS.baseUrl}/v5/account/info`, {
68
+ headers: {
69
+ "X-BAPI-API-KEY": apiKey,
70
+ "X-BAPI-SIGN": signature,
71
+ "X-BAPI-SIGN-TYPE": "2",
72
+ "X-BAPI-TIMESTAMP": timestamp,
73
+ "X-BAPI-RECV-WINDOW": BYBIT_CONSTANTS.recvWindowTimeoutMs
74
+ },
75
+ signal: AbortSignal.timeout(BYBIT_CONSTANTS.fetchTimeoutMs),
76
+ cache: "no-store"
77
+ });
78
+ } catch (error) {
79
+ throw new Error("ByBit Account API network error", { cause: error });
80
+ }
81
+ if (!bybitRes.ok) {
82
+ throw new Error("ByBit Account API request failed");
83
+ }
84
+ const bybitJson = await bybitRes.json();
85
+ if (bybitJson.retCode !== 0) {
86
+ throw new Error(bybitJson.retMsg ?? "ByBit error");
87
+ }
88
+ const raw = bybitJson.result?.list?.[0];
89
+ if (!raw) {
90
+ throw new Error("No account info returned");
91
+ }
92
+ return bybitJson;
93
+ }
94
+
95
+ // src/providers/bybit/get-wallet-balance.ts
96
+ async function getWalletBalance(credentials) {
97
+ const { apiKey, apiSecret } = credentials;
98
+ const query = new URLSearchParams({
99
+ accountType: "UNIFIED",
100
+ coin: "USDT"
101
+ });
102
+ const queryString = query.toString();
103
+ const { signature, timestamp } = signBybitRequest(
104
+ apiSecret,
105
+ apiKey,
106
+ queryString
107
+ );
108
+ let bybitRes;
109
+ try {
110
+ bybitRes = await fetch(
111
+ `${BYBIT_CONSTANTS.baseUrl}/v5/account/wallet-balance?${queryString}`,
112
+ {
113
+ headers: {
114
+ "X-BAPI-API-KEY": apiKey,
115
+ "X-BAPI-SIGN": signature,
116
+ "X-BAPI-SIGN-TYPE": "2",
117
+ "X-BAPI-TIMESTAMP": timestamp,
118
+ "X-BAPI-RECV-WINDOW": BYBIT_CONSTANTS.recvWindowTimeoutMs
119
+ }
120
+ }
121
+ );
122
+ } catch (error) {
123
+ throw new Error("ByBit Wallet API network error", { cause: error });
124
+ }
125
+ if (!bybitRes.ok) {
126
+ throw new Error("ByBit Wallet API request failed: " + bybitRes.statusText);
127
+ }
128
+ const bybitJson = await bybitRes.json();
129
+ if (bybitJson.retCode !== 0) {
130
+ throw new Error(bybitJson.retMsg ?? "ByBit error");
131
+ }
132
+ return bybitJson;
133
+ }
134
+
135
+ // src/providers/bybit/get-closed-pnl.ts
136
+ async function getClosedPnl(credentials, startTime, cursor) {
137
+ const { apiKey, apiSecret } = credentials;
138
+ const query = new URLSearchParams({
139
+ category: "linear",
140
+ //symbol: "BTCUSDT",
141
+ limit: "50"
142
+ //default limit
143
+ });
144
+ if (typeof startTime === "number") {
145
+ query.set("startTime", String(startTime));
146
+ }
147
+ if (typeof cursor === "string") {
148
+ query.set("cursor", String(cursor));
149
+ }
150
+ const queryString = query.toString();
151
+ const { signature, timestamp } = signBybitRequest(
152
+ apiSecret,
153
+ apiKey,
154
+ queryString
155
+ );
156
+ let bybitRes;
157
+ try {
158
+ bybitRes = await fetch(
159
+ `${BYBIT_CONSTANTS.baseUrl}/v5/position/closed-pnl?${queryString}`,
160
+ {
161
+ headers: {
162
+ "X-BAPI-API-KEY": apiKey,
163
+ "X-BAPI-SIGN": signature,
164
+ "X-BAPI-SIGN-TYPE": "2",
165
+ "X-BAPI-TIMESTAMP": timestamp,
166
+ "X-BAPI-RECV-WINDOW": BYBIT_CONSTANTS.recvWindowTimeoutMs
167
+ }
168
+ }
169
+ );
170
+ } catch (error) {
171
+ throw new Error("ByBit Closed PNL API network error", { cause: error });
172
+ }
173
+ if (!bybitRes.ok) {
174
+ throw new Error("ByBit Closed PNL API request failed");
175
+ }
176
+ const bybitJson = await bybitRes.json();
177
+ if (bybitJson.retCode !== 0) {
178
+ throw new Error(bybitJson.retMsg ?? "ByBit error");
179
+ }
180
+ return bybitJson;
181
+ }
182
+
183
+ // src/providers/bybit/get-position-info.ts
184
+ async function getPositionInfo(credentials, category, symbol, settleCoin, cursor) {
185
+ const { apiKey, apiSecret } = credentials;
186
+ const query = new URLSearchParams({
187
+ category: category ?? "linear",
188
+ limit: "50"
189
+ //default limit
190
+ });
191
+ if (typeof symbol === "string") {
192
+ query.set("symbol", String(symbol));
193
+ }
194
+ if (typeof settleCoin === "string") {
195
+ query.set("settleCoin", String(settleCoin));
196
+ }
197
+ if (typeof cursor === "string") {
198
+ query.set("cursor", String(cursor));
199
+ }
200
+ const queryString = query.toString();
201
+ const { signature, timestamp } = signBybitRequest(
202
+ apiSecret,
203
+ apiKey,
204
+ queryString
205
+ );
206
+ let bybitRes;
207
+ try {
208
+ bybitRes = await fetch(
209
+ `${BYBIT_CONSTANTS.baseUrl}/v5/position/list?${queryString}`,
210
+ {
211
+ headers: {
212
+ "X-BAPI-API-KEY": apiKey,
213
+ "X-BAPI-SIGN": signature,
214
+ "X-BAPI-SIGN-TYPE": "2",
215
+ "X-BAPI-TIMESTAMP": timestamp,
216
+ "X-BAPI-RECV-WINDOW": BYBIT_CONSTANTS.recvWindowTimeoutMs
217
+ },
218
+ signal: AbortSignal.timeout(BYBIT_CONSTANTS.fetchTimeoutMs),
219
+ cache: "no-store"
220
+ }
221
+ );
222
+ } catch (error) {
223
+ throw new Error("ByBit Closed PNL API network error", { cause: error });
224
+ }
225
+ if (!bybitRes.ok) {
226
+ throw new Error("ByBit Closed PNL API request failed");
227
+ }
228
+ const bybitJson = await bybitRes.json();
229
+ if (bybitJson.retCode !== 0) {
230
+ throw new Error(bybitJson.retMsg ?? "ByBit error");
231
+ }
232
+ return bybitJson;
233
+ }
234
+
235
+ // src/providers/bybit/apply-demo-money.ts
236
+ async function applyDemoMoney(credentials, payload) {
237
+ const { apiKey, apiSecret } = credentials;
238
+ const { signature, timestamp } = signBybitRequest(apiSecret, apiKey);
239
+ const requestBody = JSON.stringify(payload);
240
+ let bybitRes;
241
+ try {
242
+ bybitRes = await fetch(
243
+ `${BYBIT_CONSTANTS.baseUrl}/v5/account/demo-apply-money`,
244
+ {
245
+ method: "POST",
246
+ headers: {
247
+ "Content-Type": "application/json",
248
+ "X-BAPI-API-KEY": apiKey,
249
+ "X-BAPI-SIGN": signature,
250
+ "X-BAPI-SIGN-TYPE": "2",
251
+ "X-BAPI-TIMESTAMP": timestamp,
252
+ "X-BAPI-RECV-WINDOW": BYBIT_CONSTANTS.recvWindowTimeoutMs
253
+ },
254
+ body: requestBody,
255
+ signal: AbortSignal.timeout(BYBIT_CONSTANTS.fetchTimeoutMs),
256
+ cache: "no-store"
257
+ }
258
+ );
259
+ } catch (error) {
260
+ throw new Error("ByBit Apply Money API network error", { cause: error });
261
+ }
262
+ if (!bybitRes.ok) {
263
+ throw new Error("ByBit Apply Money API request failed");
264
+ }
265
+ const bybitJson = await bybitRes.json();
266
+ if (bybitJson.retCode !== 0) {
267
+ throw new Error(bybitJson.retMsg ?? "ByBit error");
268
+ }
269
+ return bybitJson;
270
+ }
271
+
272
+ exports.applyDemoMoney = applyDemoMoney;
273
+ exports.getAccountInfo = getAccountInfo;
274
+ exports.getApiKeyInfo = getApiKeyInfo;
275
+ exports.getClosedPnl = getClosedPnl;
276
+ exports.getPositionInfo = getPositionInfo;
277
+ exports.getWalletBalance = getWalletBalance;
278
+ //# sourceMappingURL=index.cjs.map
279
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/providers/bybit/constants.ts","../../../src/utils/bybitHelper.ts","../../../src/providers/bybit/get-api-key-info.ts","../../../src/providers/bybit/get-account-info.ts","../../../src/providers/bybit/get-wallet-balance.ts","../../../src/providers/bybit/get-closed-pnl.ts","../../../src/providers/bybit/get-position-info.ts","../../../src/providers/bybit/apply-demo-money.ts"],"names":["env","createHmac"],"mappings":"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","file":"index.cjs","sourcesContent":["export const BYBIT_CONSTANTS = {\n baseUrl: process.env.BYBIT_BASE_URL || \"https://api-demo.bybit.com\",\n fetchTimeoutMs: Number(process.env.BYBIT_FETCH_TIMEOUT_MS) || 10000,\n recvWindowTimeoutMs: process.env.BYBIT_RECV_WINDOW_TIMEOUT_MS || \"20000\",\n}","import { createHmac } from \"crypto\";\nimport { env } from \"node:process\";\n\nconst BYBIT_RECV_WINDOW_TIMEOUT_MS =\n env.NEXT_PUBLIC_BYBIT_RECV_WINDOW_TIMEOUT_MS ?? \"5000\";\n\nexport function signBybitRequest(\n apiSecret: string,\n apiKey: string,\n queryString?: string,\n) {\n const timestamp = Date.now().toString();\n const payload = `${timestamp}${apiKey}${BYBIT_RECV_WINDOW_TIMEOUT_MS}${queryString ?? \"\"}`;\n const signature = createHmac(\"sha256\", apiSecret)\n .update(payload)\n .digest(\"hex\");\n\n return { signature, timestamp };\n}\n","import { BYBIT_CONSTANTS } from \"./constants\";\nimport { IBybitCredentials, IBybitApiKeyInfo, IBybitApiResponse} from \"../../types/bybit\";\nimport { signBybitRequest } from \"../../utils/bybitHelper\";\n\nexport async function getApiKeyInfo(\n credentials: IBybitCredentials,\n): Promise<IBybitApiResponse<IBybitApiKeyInfo>> {\n const { apiKey, apiSecret } = credentials;\n\n if (!apiKey || !apiSecret) {\n throw new Error(\"ByBit API key and API secret are required\");\n }\n\n const { signature, timestamp } = signBybitRequest(apiSecret, apiKey);\n\n let bybitRes: Response;\n try {\n bybitRes = await fetch(`${BYBIT_CONSTANTS.baseUrl}/v5/user/query-api`, {\n headers: {\n \"X-BAPI-API-KEY\": apiKey,\n \"X-BAPI-SIGN\": signature,\n \"X-BAPI-SIGN-TYPE\": \"2\",\n \"X-BAPI-TIMESTAMP\": timestamp,\n \"X-BAPI-RECV-WINDOW\": BYBIT_CONSTANTS.recvWindowTimeoutMs,\n },\n //signal: AbortSignal.timeout(BYBIT_CONSTANTS.fetchTimeoutMs),\n cache: \"no-store\",\n });\n } catch (error) {\n throw new Error(\"ByBit API Key Info network error\", { cause: error });\n }\n\n if (!bybitRes.ok) {\n throw new Error(\"ByBit API Key Info request failed\");\n }\n\n const bybitJson =\n (await bybitRes.json()) as IBybitApiResponse<IBybitApiKeyInfo>;\n\n if (bybitJson.retCode !== 0) {\n throw new Error(bybitJson.retMsg ?? \"ByBit error\");\n }\n\n if (!bybitJson) {\n throw new Error(\"Invalid ByBit API Key Info response\");\n }\n\n return bybitJson;\n}\n","import {\n IBybitCredentials,\n IBybitAccountInfo,\n IBybitApiResponse,\n} from \"../../types/bybit\";\nimport { signBybitRequest } from \"../../utils/bybitHelper\";\nimport { BYBIT_CONSTANTS } from \"./constants\";\n\nexport async function getAccountInfo(\n credentials: IBybitCredentials,\n): Promise<IBybitApiResponse<IBybitAccountInfo>> {\n const { apiKey, apiSecret } = credentials;\n const queryString = \"accountType=UNIFIED\";\n const { signature, timestamp } = signBybitRequest(\n apiSecret,\n apiKey,\n queryString,\n );\n\n let bybitRes: Response;\n try {\n bybitRes = await fetch(`${BYBIT_CONSTANTS.baseUrl}/v5/account/info`, {\n headers: {\n \"X-BAPI-API-KEY\": apiKey,\n \"X-BAPI-SIGN\": signature,\n \"X-BAPI-SIGN-TYPE\": \"2\",\n \"X-BAPI-TIMESTAMP\": timestamp,\n \"X-BAPI-RECV-WINDOW\": BYBIT_CONSTANTS.recvWindowTimeoutMs,\n },\n signal: AbortSignal.timeout(BYBIT_CONSTANTS.fetchTimeoutMs),\n cache: \"no-store\",\n });\n } catch (error) {\n throw new Error(\"ByBit Account API network error\", { cause: error });\n }\n\n if (!bybitRes.ok) {\n throw new Error(\"ByBit Account API request failed\");\n }\n\n const bybitJson =\n (await bybitRes.json()) as IBybitApiResponse<IBybitAccountInfo>;\n\n if (bybitJson.retCode !== 0) {\n throw new Error(bybitJson.retMsg ?? \"ByBit error\");\n }\n\n const raw = bybitJson.result?.list?.[0];\n\n if (!raw) {\n throw new Error(\"No account info returned\");\n }\n\n return bybitJson;\n}\n","import { BYBIT_CONSTANTS } from \"./constants\";\nimport { IBybitApiResponse, IBybitWalletAccount, IBybitCredentials } from \"../../types/bybit\";\n\nimport { signBybitRequest } from \"../../utils/bybitHelper\";\n\n// GET /api/bybit/wallet-balance?accountType=UNIFIED\nexport async function getWalletBalance(\n credentials: IBybitCredentials\n): Promise<IBybitApiResponse<IBybitWalletAccount>> {\n const { apiKey, apiSecret } = credentials;\n\n const query = new URLSearchParams({\n accountType: \"UNIFIED\",\n coin: \"USDT\",\n });\n const queryString = query.toString();\n\n const { signature, timestamp } = signBybitRequest(\n apiSecret,\n apiKey,\n queryString,\n );\n\n let bybitRes: Response;\n try {\n bybitRes = await fetch(\n `${BYBIT_CONSTANTS.baseUrl}/v5/account/wallet-balance?${queryString}`,\n {\n headers: {\n \"X-BAPI-API-KEY\": apiKey,\n \"X-BAPI-SIGN\": signature,\n \"X-BAPI-SIGN-TYPE\": \"2\",\n \"X-BAPI-TIMESTAMP\": timestamp,\n \"X-BAPI-RECV-WINDOW\": BYBIT_CONSTANTS.recvWindowTimeoutMs,\n },\n },\n );\n } catch (error) {\n throw new Error(\"ByBit Wallet API network error\", { cause: error });\n }\n\n if (!bybitRes.ok) {\n throw new Error(\"ByBit Wallet API request failed: \" + bybitRes.statusText);\n }\n\n const bybitJson = (await bybitRes.json()) as IBybitApiResponse<IBybitWalletAccount>;\n\n if (bybitJson.retCode !== 0) {\n throw new Error(bybitJson.retMsg ?? \"ByBit error\");\n }\n\n return bybitJson;\n}\n","import { BYBIT_CONSTANTS } from \"./constants\";\nimport { IBybitCredentials, IBybitApiResponse, IBybitApiResponseList, IBybitClosedPnl } from \"../../types/bybit\";\nimport { signBybitRequest } from \"../../utils/bybitHelper\";\n\n// GET /api/bybit/wallet-balance?accountType=UNIFIED\nexport async function getClosedPnl(\n credentials: IBybitCredentials,\n startTime?: number,\n cursor?: string,\n): Promise<IBybitApiResponse<IBybitApiResponseList<IBybitClosedPnl>>> {\n const { apiKey, apiSecret } = credentials;\n const query = new URLSearchParams({\n category: \"linear\",\n //symbol: \"BTCUSDT\",\n limit: \"50\", //default limit\n });\n\n if (typeof startTime === \"number\") {\n query.set(\"startTime\", String(startTime));\n }\n\n if (typeof cursor === \"string\") {\n query.set(\"cursor\", String(cursor));\n }\n\n const queryString = query.toString();\n\n const { signature, timestamp } = signBybitRequest(\n apiSecret,\n apiKey,\n queryString,\n );\n\n let bybitRes: Response;\n try {\n bybitRes = await fetch(\n `${BYBIT_CONSTANTS.baseUrl}/v5/position/closed-pnl?${queryString}`,\n {\n headers: {\n \"X-BAPI-API-KEY\": apiKey,\n \"X-BAPI-SIGN\": signature,\n \"X-BAPI-SIGN-TYPE\": \"2\",\n \"X-BAPI-TIMESTAMP\": timestamp,\n \"X-BAPI-RECV-WINDOW\": BYBIT_CONSTANTS.recvWindowTimeoutMs,\n },\n },\n );\n } catch (error) {\n throw new Error(\"ByBit Closed PNL API network error\", { cause: error });\n }\n\n if (!bybitRes.ok) {\n throw new Error(\"ByBit Closed PNL API request failed\");\n }\n\n const bybitJson = (await bybitRes.json()) as IBybitApiResponse<IBybitApiResponseList<IBybitClosedPnl>>;\n\n if (bybitJson.retCode !== 0) {\n throw new Error(bybitJson.retMsg ?? \"ByBit error\");\n }\n\n return bybitJson;\n}\n","import { BYBIT_CONSTANTS } from \"./constants\";\nimport {\n IBybitCredentials,\n IBybitApiResponse,\n IBybitApiResponseList,\n IBybitPositionInfo,\n} from \"../../types/bybit\";\n\nimport { signBybitRequest } from \"../../utils/bybitHelper\";\n\n// Query real-time position data, such as position size, cumulative realized PNL, etc.\nexport async function getPositionInfo(\n credentials: IBybitCredentials,\n category?: string,\n symbol?: string,\n settleCoin?: string,\n cursor?: string,\n): Promise<IBybitApiResponse<IBybitApiResponseList<IBybitPositionInfo>>> {\n const { apiKey, apiSecret } = credentials;\n\n const query = new URLSearchParams({\n category: category ?? \"linear\",\n limit: \"50\", //default limit\n });\n\n if (typeof symbol === \"string\") {\n query.set(\"symbol\", String(symbol));\n }\n\n if (typeof settleCoin === \"string\") {\n query.set(\"settleCoin\", String(settleCoin));\n }\n\n if (typeof cursor === \"string\") {\n query.set(\"cursor\", String(cursor));\n }\n\n const queryString = query.toString();\n\n const { signature, timestamp } = signBybitRequest(\n apiSecret,\n apiKey,\n queryString,\n );\n\n let bybitRes: Response;\n try {\n bybitRes = await fetch(\n `${BYBIT_CONSTANTS.baseUrl}/v5/position/list?${queryString}`,\n {\n headers: {\n \"X-BAPI-API-KEY\": apiKey,\n \"X-BAPI-SIGN\": signature,\n \"X-BAPI-SIGN-TYPE\": \"2\",\n \"X-BAPI-TIMESTAMP\": timestamp,\n \"X-BAPI-RECV-WINDOW\": BYBIT_CONSTANTS.recvWindowTimeoutMs,\n },\n signal: AbortSignal.timeout(BYBIT_CONSTANTS.fetchTimeoutMs),\n cache: \"no-store\",\n },\n );\n } catch (error) {\n throw new Error(\"ByBit Closed PNL API network error\", { cause: error });\n }\n\n if (!bybitRes.ok) {\n throw new Error(\"ByBit Closed PNL API request failed\");\n }\n\n const bybitJson = (await bybitRes.json()) as IBybitApiResponse<IBybitApiResponseList<IBybitPositionInfo>>;\n \n if (bybitJson.retCode !== 0) {\n throw new Error(bybitJson.retMsg ?? \"ByBit error\");\n }\n\n return bybitJson;\n}\n","import { BYBIT_CONSTANTS } from \"./constants\";\n\nimport {\n IBybitCredentials,\n IBybitApiResponse,\n IBybitAccountInfo,\n IBybitDemoApplyMoneyRequest,\n} from \"../../types/bybit\";\nimport { signBybitRequest } from \"../../utils/bybitHelper\";\nimport { IBybitDemoApplyMoney } from \"../../types/bybit/IBybitDemoApplyMoney\";\n\n// POST /api/bybit/apply-money\nexport async function applyDemoMoney(\n credentials: IBybitCredentials,\n payload: IBybitDemoApplyMoneyRequest,\n): Promise<IBybitApiResponse<IBybitDemoApplyMoney>> {\n const { apiKey, apiSecret } = credentials;\n const { signature, timestamp } = signBybitRequest(apiSecret, apiKey);\n\n const requestBody = JSON.stringify(payload);\n\n let bybitRes: Response;\n try {\n bybitRes = await fetch(\n `${BYBIT_CONSTANTS.baseUrl}/v5/account/demo-apply-money`,\n {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"X-BAPI-API-KEY\": apiKey,\n \"X-BAPI-SIGN\": signature,\n \"X-BAPI-SIGN-TYPE\": \"2\",\n \"X-BAPI-TIMESTAMP\": timestamp,\n \"X-BAPI-RECV-WINDOW\": BYBIT_CONSTANTS.recvWindowTimeoutMs,\n },\n body: requestBody,\n signal: AbortSignal.timeout(BYBIT_CONSTANTS.fetchTimeoutMs),\n cache: \"no-store\",\n },\n );\n } catch (error) {\n throw new Error(\"ByBit Apply Money API network error\", { cause: error });\n }\n\n if (!bybitRes.ok) {\n throw new Error(\"ByBit Apply Money API request failed\");\n }\n\n const bybitJson =\n (await bybitRes.json()) as IBybitApiResponse<IBybitAccountInfo>;\n\n if (bybitJson.retCode !== 0) {\n throw new Error(bybitJson.retMsg ?? \"ByBit error\");\n }\n\n return bybitJson;\n}\n"]}
@@ -0,0 +1,16 @@
1
+ import { IBybitCredentials, IBybitApiResponse, IBybitApiKeyInfo, IBybitAccountInfo, IBybitWalletAccount, IBybitApiResponseList, IBybitClosedPnl, IBybitPositionInfo, IBybitDemoApplyMoneyRequest, IBybitDemoApplyMoneyResponse as IBybitDemoApplyMoney } from '../../types/bybit/index.cjs';
2
+ import '../../enums-CvsmYKeP.cjs';
3
+
4
+ declare function getApiKeyInfo(credentials: IBybitCredentials): Promise<IBybitApiResponse<IBybitApiKeyInfo>>;
5
+
6
+ declare function getAccountInfo(credentials: IBybitCredentials): Promise<IBybitApiResponse<IBybitAccountInfo>>;
7
+
8
+ declare function getWalletBalance(credentials: IBybitCredentials): Promise<IBybitApiResponse<IBybitWalletAccount>>;
9
+
10
+ declare function getClosedPnl(credentials: IBybitCredentials, startTime?: number, cursor?: string): Promise<IBybitApiResponse<IBybitApiResponseList<IBybitClosedPnl>>>;
11
+
12
+ declare function getPositionInfo(credentials: IBybitCredentials, category?: string, symbol?: string, settleCoin?: string, cursor?: string): Promise<IBybitApiResponse<IBybitApiResponseList<IBybitPositionInfo>>>;
13
+
14
+ declare function applyDemoMoney(credentials: IBybitCredentials, payload: IBybitDemoApplyMoneyRequest): Promise<IBybitApiResponse<IBybitDemoApplyMoney>>;
15
+
16
+ export { applyDemoMoney, getAccountInfo, getApiKeyInfo, getClosedPnl, getPositionInfo, getWalletBalance };
@@ -0,0 +1,16 @@
1
+ import { IBybitCredentials, IBybitApiResponse, IBybitApiKeyInfo, IBybitAccountInfo, IBybitWalletAccount, IBybitApiResponseList, IBybitClosedPnl, IBybitPositionInfo, IBybitDemoApplyMoneyRequest, IBybitDemoApplyMoneyResponse as IBybitDemoApplyMoney } from '../../types/bybit/index.js';
2
+ import '../../enums-CvsmYKeP.js';
3
+
4
+ declare function getApiKeyInfo(credentials: IBybitCredentials): Promise<IBybitApiResponse<IBybitApiKeyInfo>>;
5
+
6
+ declare function getAccountInfo(credentials: IBybitCredentials): Promise<IBybitApiResponse<IBybitAccountInfo>>;
7
+
8
+ declare function getWalletBalance(credentials: IBybitCredentials): Promise<IBybitApiResponse<IBybitWalletAccount>>;
9
+
10
+ declare function getClosedPnl(credentials: IBybitCredentials, startTime?: number, cursor?: string): Promise<IBybitApiResponse<IBybitApiResponseList<IBybitClosedPnl>>>;
11
+
12
+ declare function getPositionInfo(credentials: IBybitCredentials, category?: string, symbol?: string, settleCoin?: string, cursor?: string): Promise<IBybitApiResponse<IBybitApiResponseList<IBybitPositionInfo>>>;
13
+
14
+ declare function applyDemoMoney(credentials: IBybitCredentials, payload: IBybitDemoApplyMoneyRequest): Promise<IBybitApiResponse<IBybitDemoApplyMoney>>;
15
+
16
+ export { applyDemoMoney, getAccountInfo, getApiKeyInfo, getClosedPnl, getPositionInfo, getWalletBalance };
@@ -0,0 +1,4 @@
1
+ export { applyDemoMoney, getAccountInfo, getApiKeyInfo, getClosedPnl, getPositionInfo, getWalletBalance } from '../../chunk-CDWBE6PZ.js';
2
+ import '../../chunk-VPBFPI5B.js';
3
+ //# sourceMappingURL=index.js.map
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"index.js"}
@@ -0,0 +1,4 @@
1
+ 'use strict';
2
+
3
+ //# sourceMappingURL=index.cjs.map
4
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"index.cjs"}
@@ -0,0 +1,211 @@
1
+ import { I as IBybitAccountType, b as IBybitUnifiedMarginStatus, a as IBybitCoinType } from '../../enums-CvsmYKeP.cjs';
2
+
3
+ type IBybitWalletAccount = {
4
+ accountIMRate: string;
5
+ totalMaintenanceMarginByMp: string;
6
+ totalInitialMargin: string;
7
+ accountType: IBybitAccountType;
8
+ accountMMRate: string;
9
+ accountMMRateByMp: string;
10
+ accountIMRateByMp: string;
11
+ totalInitialMarginByMp: string;
12
+ totalMaintenanceMargin: string;
13
+ totalEquity: string;
14
+ totalMarginBalance: string;
15
+ totalAvailableBalance: string;
16
+ totalPerpUPL: string;
17
+ totalWalletBalance: string;
18
+ accountLTV: string;
19
+ coin: IBybitCoinBalance[];
20
+ };
21
+ type IBybitCoinBalance = {
22
+ availableToBorrow: string;
23
+ bonus: string;
24
+ accruedInterest: string;
25
+ availableToWithdraw: string;
26
+ totalOrderIM: string;
27
+ equity: string;
28
+ totalPositionMM: string;
29
+ usdValue: string;
30
+ spotHedgingQty: string;
31
+ unrealisedPnl: string;
32
+ collateralSwitch: boolean;
33
+ borrowAmount: string;
34
+ totalPositionIM: string;
35
+ walletBalance: string;
36
+ cumRealisedPnl: string;
37
+ locked: string;
38
+ marginCollateral: boolean;
39
+ coin: string;
40
+ spotBorrow: string;
41
+ };
42
+
43
+ type IBybitClosedPnl = {
44
+ symbol: string;
45
+ orderId: string;
46
+ side: string;
47
+ qty: string;
48
+ orderPrice: string;
49
+ orderType: string;
50
+ execType: string;
51
+ closedSize: string;
52
+ cumEntryValue: string;
53
+ avgEntryPrice: string;
54
+ cumExitValue: string;
55
+ avgExitPrice: string;
56
+ closedPnl: string;
57
+ fillCount: string;
58
+ leverage: string;
59
+ createdTime: string;
60
+ updatedTime: string;
61
+ openFee: string;
62
+ closeFee: string;
63
+ };
64
+
65
+ type IBybitCredentials = {
66
+ apiKey: string;
67
+ apiSecret: string;
68
+ };
69
+
70
+ type IBybitApiKeyInfo = {
71
+ id: string;
72
+ note: string;
73
+ apiKey: string;
74
+ readOnly: number;
75
+ permissions: IBybitApiKeyPermissions;
76
+ ips: string[];
77
+ type: number;
78
+ deadlineDay: number;
79
+ expiredAt: string;
80
+ createdAt: string;
81
+ uta: number;
82
+ userID: number;
83
+ inviterID: number;
84
+ vipLevel: string;
85
+ mktMakerLevel: string;
86
+ affiliateID: number;
87
+ rsaPublicKey: string;
88
+ isMaster: boolean;
89
+ parentUid: string;
90
+ kycLevel: string;
91
+ kycRegion: string;
92
+ };
93
+ type IBybitApiKeyPermissions = {
94
+ ContractTrade?: string[];
95
+ Spot?: string[];
96
+ Wallet?: string[];
97
+ Options?: string[];
98
+ Derivatives?: string[];
99
+ Exchange?: string[];
100
+ Earn?: string[];
101
+ FiatP2P?: string[];
102
+ FiatBitPay?: string[];
103
+ FiatConvertBroker?: string[];
104
+ BitCard?: string[];
105
+ ByXPost?: string[];
106
+ Affiliate?: string[];
107
+ BlockTrade?: string[];
108
+ FiatBybitPay?: string[];
109
+ NFT?: string[];
110
+ CopyTrading?: string[];
111
+ };
112
+
113
+ type IBybitAccountInfo = {
114
+ unifiedMarginStatus: IBybitUnifiedMarginStatus | number;
115
+ marginMode: "ISOLATED_MARGIN" | "REGULAR_MARGIN" | "PORTFOLIO_MARGIN";
116
+ isMasterTrader: boolean;
117
+ spotHedgingStatus: "ON" | "OFF";
118
+ updatedTime: string;
119
+ dcpStatus?: "ON" | "OFF";
120
+ timeWindow?: number;
121
+ smpGroup?: number;
122
+ };
123
+
124
+ type IBybitPositionInfo = {
125
+ challengeId: string;
126
+ positionIdx: number;
127
+ riskId: number;
128
+ riskLimitValue: string;
129
+ symbol: string;
130
+ side: string;
131
+ size: string;
132
+ avgPrice: string;
133
+ positionValue: string;
134
+ tradeMode: number;
135
+ positionStatus: string;
136
+ autoAddMargin: number;
137
+ adlRankIndicator: number;
138
+ leverage: string;
139
+ positionBalance: string;
140
+ markPrice: string;
141
+ liqPrice: string;
142
+ bustPrice: string;
143
+ positionMM: string;
144
+ positionIM: string;
145
+ tpslMode: string;
146
+ takeProfit: string;
147
+ stopLoss: string;
148
+ trailingStop: string;
149
+ unrealisedPnl: string;
150
+ curRealisedPnl: string;
151
+ cumRealisedPnl: string;
152
+ seq: number;
153
+ isReduceOnly: boolean;
154
+ mmrSysUpdatedTime: string;
155
+ leverageSysUpdatedTime: string;
156
+ sessionAvgPrice: string;
157
+ createdTime: string;
158
+ updatedTime: string;
159
+ };
160
+
161
+ type IBybitDemoApplyMoneyItem = {
162
+ coin: IBybitCoinType;
163
+ amountStr: string;
164
+ };
165
+ type IBybitDemoApplyMoneyRequest = {
166
+ adjustType?: 0 | 1;
167
+ utaDemoApplyMoney: IBybitDemoApplyMoneyItem[];
168
+ };
169
+ type IBybitDemoApplyMoneyPayload = IBybitDemoApplyMoneyRequest & {
170
+ challengeId?: string;
171
+ };
172
+ type IBybitDemoApplyMoney = {
173
+ resultCode: string;
174
+ utaDemoApplyMoneyConfig: IBybitDemoApplyMoneyItem[];
175
+ orderStatus: string;
176
+ retMsg: string;
177
+ };
178
+
179
+ type IBybitApiResponse<T> = {
180
+ retCode: number;
181
+ retMsg?: string;
182
+ result?: T | any;
183
+ time: number;
184
+ };
185
+ type IBybitApiResponseList<T> = {
186
+ nextPageCursor?: string;
187
+ list?: T[];
188
+ };
189
+ type IBybitResponse = {
190
+ updatedAt: number;
191
+ };
192
+ type IBybitWalletResponse = IBybitResponse & {
193
+ topic: string;
194
+ list?: IBybitWalletAccount[];
195
+ };
196
+ type IBybitClosedPnlRequest = {
197
+ credentials: IBybitCredentials;
198
+ category: string;
199
+ symbol?: string;
200
+ startTime?: number;
201
+ endTime?: number;
202
+ limit?: number;
203
+ cursor?: string;
204
+ };
205
+ type IBybitClosedPnlResponse = {
206
+ category: string;
207
+ list?: IBybitClosedPnl[];
208
+ nextPageCursor?: string;
209
+ };
210
+
211
+ export { type IBybitAccountInfo, IBybitAccountType, type IBybitApiKeyInfo, type IBybitApiResponse, type IBybitApiResponseList, type IBybitClosedPnl, type IBybitClosedPnlRequest, type IBybitClosedPnlResponse, type IBybitCoinBalance, IBybitCoinType, type IBybitCredentials, type IBybitDemoApplyMoneyItem, type IBybitDemoApplyMoneyPayload, type IBybitDemoApplyMoneyRequest, type IBybitDemoApplyMoney as IBybitDemoApplyMoneyResponse, type IBybitPositionInfo, type IBybitWalletAccount, type IBybitWalletResponse };