@gbozee/ultimate 0.0.2-next.45 → 0.0.2-next.48
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/frontend-index.js +35 -5
- package/dist/index.cjs +225 -47
- package/dist/index.d.ts +3 -0
- package/dist/index.js +199 -21
- package/dist/mcp-server.cjs +224 -46
- package/dist/mcp-server.js +198 -20
- package/package.json +1 -1
- package/dist/frontend/frontend-index.js +0 -1318
- package/dist/mcp.d.ts +0 -5
package/dist/frontend-index.js
CHANGED
|
@@ -9,7 +9,13 @@ function generateArithmetic(payload) {
|
|
|
9
9
|
});
|
|
10
10
|
}
|
|
11
11
|
function generateGeometric(payload) {
|
|
12
|
-
const {
|
|
12
|
+
const {
|
|
13
|
+
margin_range,
|
|
14
|
+
risk_reward,
|
|
15
|
+
kind,
|
|
16
|
+
price_places = "%.1f",
|
|
17
|
+
percent_change
|
|
18
|
+
} = payload;
|
|
13
19
|
const effectivePercentChange = percent_change ?? Math.abs(margin_range[1] / margin_range[0] - 1) / risk_reward;
|
|
14
20
|
return Array.from({ length: risk_reward + 1 }, (_, i) => {
|
|
15
21
|
const price = kind === "long" ? margin_range[1] * Math.pow(1 - effectivePercentChange, i) : margin_range[0] * Math.pow(1 + effectivePercentChange, i);
|
|
@@ -31,7 +37,13 @@ function approximateInverseNormal(p) {
|
|
|
31
37
|
}
|
|
32
38
|
}
|
|
33
39
|
function generateNormal(payload) {
|
|
34
|
-
const {
|
|
40
|
+
const {
|
|
41
|
+
margin_range,
|
|
42
|
+
risk_reward,
|
|
43
|
+
kind,
|
|
44
|
+
price_places = "%.1f",
|
|
45
|
+
stdDevFactor = 6
|
|
46
|
+
} = payload;
|
|
35
47
|
const mean = (margin_range[0] + margin_range[1]) / 2;
|
|
36
48
|
const stdDev = Math.abs(margin_range[1] - margin_range[0]) / stdDevFactor;
|
|
37
49
|
const skew = kind === "long" ? -0.2 : 0.2;
|
|
@@ -46,7 +58,13 @@ function generateNormal(payload) {
|
|
|
46
58
|
return entries.sort((a, b) => a - b);
|
|
47
59
|
}
|
|
48
60
|
function generateExponential(payload) {
|
|
49
|
-
const {
|
|
61
|
+
const {
|
|
62
|
+
margin_range,
|
|
63
|
+
risk_reward,
|
|
64
|
+
kind,
|
|
65
|
+
price_places = "%.1f",
|
|
66
|
+
lambda
|
|
67
|
+
} = payload;
|
|
50
68
|
const range = Math.abs(margin_range[1] - margin_range[0]);
|
|
51
69
|
const effectiveLambda = lambda || 2.5;
|
|
52
70
|
return Array.from({ length: risk_reward + 1 }, (_, i) => {
|
|
@@ -57,7 +75,13 @@ function generateExponential(payload) {
|
|
|
57
75
|
});
|
|
58
76
|
}
|
|
59
77
|
function generateInverseExponential(payload) {
|
|
60
|
-
const {
|
|
78
|
+
const {
|
|
79
|
+
margin_range,
|
|
80
|
+
risk_reward,
|
|
81
|
+
kind,
|
|
82
|
+
price_places = "%.1f",
|
|
83
|
+
curveFactor = 2
|
|
84
|
+
} = payload;
|
|
61
85
|
const range = Math.abs(margin_range[1] - margin_range[0]);
|
|
62
86
|
return Array.from({ length: risk_reward + 1 }, (_, i) => {
|
|
63
87
|
const t = i / risk_reward;
|
|
@@ -137,7 +161,13 @@ function getEntries(params) {
|
|
|
137
161
|
}
|
|
138
162
|
var distributions_default = getEntries;
|
|
139
163
|
function generateLognormal(payload) {
|
|
140
|
-
const {
|
|
164
|
+
const {
|
|
165
|
+
margin_range,
|
|
166
|
+
risk_reward,
|
|
167
|
+
kind,
|
|
168
|
+
price_places = "%.1f",
|
|
169
|
+
stdDevFactor = 6
|
|
170
|
+
} = payload;
|
|
141
171
|
const logMin = Math.log(margin_range[0]);
|
|
142
172
|
const logMax = Math.log(margin_range[1]);
|
|
143
173
|
const mean = (logMin + logMax) / 2;
|
package/dist/index.cjs
CHANGED
|
@@ -114,8 +114,8 @@ function normalize(input) {
|
|
|
114
114
|
}
|
|
115
115
|
var import_node_buffer, encode = (input) => import_node_buffer.Buffer.from(input).toString("base64url"), decode = (input) => new Uint8Array(import_node_buffer.Buffer.from(normalize(input), "base64url"));
|
|
116
116
|
var init_base64url = __esm(() => {
|
|
117
|
-
import_node_buffer = require("node:buffer");
|
|
118
117
|
init_buffer_utils();
|
|
118
|
+
import_node_buffer = require("node:buffer");
|
|
119
119
|
});
|
|
120
120
|
|
|
121
121
|
// node_modules/jose/dist/node/esm/util/errors.js
|
|
@@ -344,8 +344,8 @@ function cbcTag(aad, iv, ciphertext, macSize, macKey, keySize) {
|
|
|
344
344
|
}
|
|
345
345
|
var import_node_crypto4;
|
|
346
346
|
var init_cbc_tag = __esm(() => {
|
|
347
|
-
import_node_crypto4 = require("node:crypto");
|
|
348
347
|
init_buffer_utils();
|
|
348
|
+
import_node_crypto4 = require("node:crypto");
|
|
349
349
|
});
|
|
350
350
|
|
|
351
351
|
// node_modules/jose/dist/node/esm/runtime/webcrypto.js
|
|
@@ -645,7 +645,6 @@ var import_node_crypto6, decrypt = (enc, cek, ciphertext, iv, tag, aad) => {
|
|
|
645
645
|
}
|
|
646
646
|
}, decrypt_default;
|
|
647
647
|
var init_decrypt = __esm(() => {
|
|
648
|
-
import_node_crypto6 = require("node:crypto");
|
|
649
648
|
init_check_iv_length();
|
|
650
649
|
init_check_cek_length();
|
|
651
650
|
init_buffer_utils();
|
|
@@ -656,6 +655,7 @@ var init_decrypt = __esm(() => {
|
|
|
656
655
|
init_is_key_object();
|
|
657
656
|
init_ciphers();
|
|
658
657
|
init_is_key_like();
|
|
658
|
+
import_node_crypto6 = require("node:crypto");
|
|
659
659
|
decrypt_default = decrypt;
|
|
660
660
|
});
|
|
661
661
|
|
|
@@ -744,14 +744,14 @@ var import_node_buffer2, import_node_crypto7, wrap = (alg, key, cek) => {
|
|
|
744
744
|
return concat(cipher.update(encryptedKey), cipher.final());
|
|
745
745
|
};
|
|
746
746
|
var init_aeskw = __esm(() => {
|
|
747
|
-
import_node_buffer2 = require("node:buffer");
|
|
748
|
-
import_node_crypto7 = require("node:crypto");
|
|
749
747
|
init_errors();
|
|
750
748
|
init_buffer_utils();
|
|
751
749
|
init_webcrypto();
|
|
752
750
|
init_is_key_object();
|
|
753
751
|
init_ciphers();
|
|
754
752
|
init_is_key_like();
|
|
753
|
+
import_node_buffer2 = require("node:buffer");
|
|
754
|
+
import_node_crypto7 = require("node:crypto");
|
|
755
755
|
});
|
|
756
756
|
|
|
757
757
|
// node_modules/jose/dist/node/esm/lib/is_jwk.js
|
|
@@ -816,12 +816,12 @@ var import_node_crypto8, weakMap, namedCurveToJOSE = (namedCurve) => {
|
|
|
816
816
|
}
|
|
817
817
|
}, get_named_curve_default;
|
|
818
818
|
var init_get_named_curve = __esm(() => {
|
|
819
|
-
import_node_crypto8 = require("node:crypto");
|
|
820
819
|
init_errors();
|
|
821
820
|
init_webcrypto();
|
|
822
821
|
init_is_key_object();
|
|
823
822
|
init_is_key_like();
|
|
824
823
|
init_is_jwk();
|
|
824
|
+
import_node_crypto8 = require("node:crypto");
|
|
825
825
|
weakMap = new WeakMap;
|
|
826
826
|
get_named_curve_default = getNamedCurve2;
|
|
827
827
|
});
|
|
@@ -875,14 +875,14 @@ async function generateEpk(kee) {
|
|
|
875
875
|
}
|
|
876
876
|
var import_node_crypto9, import_node_util, generateKeyPair, ecdhAllowed = (key) => ["P-256", "P-384", "P-521", "X25519", "X448"].includes(get_named_curve_default(key));
|
|
877
877
|
var init_ecdhes = __esm(() => {
|
|
878
|
-
import_node_crypto9 = require("node:crypto");
|
|
879
|
-
import_node_util = require("node:util");
|
|
880
878
|
init_get_named_curve();
|
|
881
879
|
init_buffer_utils();
|
|
882
880
|
init_errors();
|
|
883
881
|
init_webcrypto();
|
|
884
882
|
init_is_key_object();
|
|
885
883
|
init_is_key_like();
|
|
884
|
+
import_node_crypto9 = require("node:crypto");
|
|
885
|
+
import_node_util = require("node:util");
|
|
886
886
|
generateKeyPair = import_node_util.promisify(import_node_crypto9.generateKeyPair);
|
|
887
887
|
});
|
|
888
888
|
|
|
@@ -927,8 +927,6 @@ var import_node_util2, import_node_crypto10, pbkdf2, encrypt = async (alg, key,
|
|
|
927
927
|
return unwrap(alg.slice(-6), derivedKey, encryptedKey);
|
|
928
928
|
};
|
|
929
929
|
var init_pbes2kw = __esm(() => {
|
|
930
|
-
import_node_util2 = require("node:util");
|
|
931
|
-
import_node_crypto10 = require("node:crypto");
|
|
932
930
|
init_random();
|
|
933
931
|
init_buffer_utils();
|
|
934
932
|
init_base64url();
|
|
@@ -937,6 +935,8 @@ var init_pbes2kw = __esm(() => {
|
|
|
937
935
|
init_webcrypto();
|
|
938
936
|
init_is_key_object();
|
|
939
937
|
init_is_key_like();
|
|
938
|
+
import_node_util2 = require("node:util");
|
|
939
|
+
import_node_crypto10 = require("node:crypto");
|
|
940
940
|
pbkdf2 = import_node_util2.promisify(import_node_crypto10.pbkdf2);
|
|
941
941
|
});
|
|
942
942
|
|
|
@@ -1013,12 +1013,12 @@ var import_node_crypto12, import_node_util3, checkKey = (key, alg) => {
|
|
|
1013
1013
|
return import_node_crypto12.privateDecrypt({ key: keyObject, oaepHash, padding }, encryptedKey);
|
|
1014
1014
|
};
|
|
1015
1015
|
var init_rsaes = __esm(() => {
|
|
1016
|
-
import_node_crypto12 = require("node:crypto");
|
|
1017
|
-
import_node_util3 = require("node:util");
|
|
1018
1016
|
init_check_key_length();
|
|
1019
1017
|
init_webcrypto();
|
|
1020
1018
|
init_is_key_object();
|
|
1021
1019
|
init_is_key_like();
|
|
1020
|
+
import_node_crypto12 = require("node:crypto");
|
|
1021
|
+
import_node_util3 = require("node:util");
|
|
1022
1022
|
RSA1_5 = import_node_util3.deprecate(() => import_node_crypto12.constants.RSA_PKCS1_PADDING, 'The RSA1_5 "alg" (JWE Algorithm) is deprecated and will be removed in the next major revision.');
|
|
1023
1023
|
});
|
|
1024
1024
|
|
|
@@ -1087,11 +1087,11 @@ var import_node_crypto13, import_node_buffer3, genericExport = (keyType, keyForm
|
|
|
1087
1087
|
format: "pem"
|
|
1088
1088
|
});
|
|
1089
1089
|
var init_asn1 = __esm(() => {
|
|
1090
|
-
import_node_crypto13 = require("node:crypto");
|
|
1091
|
-
import_node_buffer3 = require("node:buffer");
|
|
1092
1090
|
init_webcrypto();
|
|
1093
1091
|
init_is_key_object();
|
|
1094
1092
|
init_is_key_like();
|
|
1093
|
+
import_node_crypto13 = require("node:crypto");
|
|
1094
|
+
import_node_buffer3 = require("node:buffer");
|
|
1095
1095
|
});
|
|
1096
1096
|
|
|
1097
1097
|
// node_modules/jose/dist/node/esm/runtime/jwk_to_key.js
|
|
@@ -1290,7 +1290,6 @@ var import_node_crypto15, encrypt3 = (enc, plaintext, cek, iv, aad) => {
|
|
|
1290
1290
|
}
|
|
1291
1291
|
}, encrypt_default;
|
|
1292
1292
|
var init_encrypt = __esm(() => {
|
|
1293
|
-
import_node_crypto15 = require("node:crypto");
|
|
1294
1293
|
init_check_iv_length();
|
|
1295
1294
|
init_check_cek_length();
|
|
1296
1295
|
init_buffer_utils();
|
|
@@ -1301,6 +1300,7 @@ var init_encrypt = __esm(() => {
|
|
|
1301
1300
|
init_errors();
|
|
1302
1301
|
init_ciphers();
|
|
1303
1302
|
init_is_key_like();
|
|
1303
|
+
import_node_crypto15 = require("node:crypto");
|
|
1304
1304
|
encrypt_default = encrypt3;
|
|
1305
1305
|
});
|
|
1306
1306
|
|
|
@@ -1749,12 +1749,12 @@ var import_node_crypto16, keyToJWK = (key) => {
|
|
|
1749
1749
|
return keyObject.export({ format: "jwk" });
|
|
1750
1750
|
}, key_to_jwk_default;
|
|
1751
1751
|
var init_key_to_jwk = __esm(() => {
|
|
1752
|
-
import_node_crypto16 = require("node:crypto");
|
|
1753
1752
|
init_base64url();
|
|
1754
1753
|
init_errors();
|
|
1755
1754
|
init_webcrypto();
|
|
1756
1755
|
init_is_key_object();
|
|
1757
1756
|
init_is_key_like();
|
|
1757
|
+
import_node_crypto16 = require("node:crypto");
|
|
1758
1758
|
key_to_jwk_default = keyToJWK;
|
|
1759
1759
|
});
|
|
1760
1760
|
|
|
@@ -2325,10 +2325,10 @@ function keyForCrypto(alg, key) {
|
|
|
2325
2325
|
}
|
|
2326
2326
|
var import_node_crypto17, ecCurveAlgMap;
|
|
2327
2327
|
var init_node_key = __esm(() => {
|
|
2328
|
-
import_node_crypto17 = require("node:crypto");
|
|
2329
2328
|
init_get_named_curve();
|
|
2330
2329
|
init_errors();
|
|
2331
2330
|
init_check_key_length();
|
|
2331
|
+
import_node_crypto17 = require("node:crypto");
|
|
2332
2332
|
ecCurveAlgMap = new Map([
|
|
2333
2333
|
["ES256", "P-256"],
|
|
2334
2334
|
["ES256K", "secp256k1"],
|
|
@@ -2379,10 +2379,10 @@ function getSignVerifyKey(alg, key, usage) {
|
|
|
2379
2379
|
}
|
|
2380
2380
|
var import_node_crypto18;
|
|
2381
2381
|
var init_get_sign_verify_key = __esm(() => {
|
|
2382
|
-
import_node_crypto18 = require("node:crypto");
|
|
2383
2382
|
init_webcrypto();
|
|
2384
2383
|
init_is_key_like();
|
|
2385
2384
|
init_is_jwk();
|
|
2385
|
+
import_node_crypto18 = require("node:crypto");
|
|
2386
2386
|
});
|
|
2387
2387
|
|
|
2388
2388
|
// node_modules/jose/dist/node/esm/runtime/sign.js
|
|
@@ -2396,12 +2396,12 @@ var crypto3, import_node_util4, oneShotSign, sign2 = async (alg, key, data) => {
|
|
|
2396
2396
|
return oneShotSign(dsaDigest(alg), data, keyForCrypto(alg, k));
|
|
2397
2397
|
}, sign_default;
|
|
2398
2398
|
var init_sign = __esm(() => {
|
|
2399
|
-
crypto3 = __toESM(require("node:crypto"));
|
|
2400
|
-
import_node_util4 = require("node:util");
|
|
2401
2399
|
init_dsa_digest();
|
|
2402
2400
|
init_hmac_digest();
|
|
2403
2401
|
init_node_key();
|
|
2404
2402
|
init_get_sign_verify_key();
|
|
2403
|
+
crypto3 = __toESM(require("node:crypto"));
|
|
2404
|
+
import_node_util4 = require("node:util");
|
|
2405
2405
|
oneShotSign = import_node_util4.promisify(crypto3.sign);
|
|
2406
2406
|
sign_default = sign2;
|
|
2407
2407
|
});
|
|
@@ -2427,12 +2427,12 @@ var crypto4, import_node_util5, oneShotVerify, verify2 = async (alg, key, signat
|
|
|
2427
2427
|
}
|
|
2428
2428
|
}, verify_default;
|
|
2429
2429
|
var init_verify = __esm(() => {
|
|
2430
|
-
crypto4 = __toESM(require("node:crypto"));
|
|
2431
|
-
import_node_util5 = require("node:util");
|
|
2432
2430
|
init_dsa_digest();
|
|
2433
2431
|
init_node_key();
|
|
2434
2432
|
init_sign();
|
|
2435
2433
|
init_get_sign_verify_key();
|
|
2434
|
+
crypto4 = __toESM(require("node:crypto"));
|
|
2435
|
+
import_node_util5 = require("node:util");
|
|
2436
2436
|
oneShotVerify = import_node_util5.promisify(crypto4.verify);
|
|
2437
2437
|
verify_default = verify2;
|
|
2438
2438
|
});
|
|
@@ -3439,11 +3439,11 @@ var http, https, import_node_events, fetchJwks = async (url, timeout, options) =
|
|
|
3439
3439
|
}
|
|
3440
3440
|
}, fetch_jwks_default;
|
|
3441
3441
|
var init_fetch_jwks = __esm(() => {
|
|
3442
|
+
init_errors();
|
|
3443
|
+
init_buffer_utils();
|
|
3442
3444
|
http = __toESM(require("node:http"));
|
|
3443
3445
|
https = __toESM(require("node:https"));
|
|
3444
3446
|
import_node_events = require("node:events");
|
|
3445
|
-
init_errors();
|
|
3446
|
-
init_buffer_utils();
|
|
3447
3447
|
fetch_jwks_default = fetchJwks;
|
|
3448
3448
|
});
|
|
3449
3449
|
|
|
@@ -3797,10 +3797,10 @@ async function generateKeyPair2(alg, options) {
|
|
|
3797
3797
|
}
|
|
3798
3798
|
var import_node_crypto19, import_node_util6, generate;
|
|
3799
3799
|
var init_generate = __esm(() => {
|
|
3800
|
-
import_node_crypto19 = require("node:crypto");
|
|
3801
|
-
import_node_util6 = require("node:util");
|
|
3802
3800
|
init_random();
|
|
3803
3801
|
init_errors();
|
|
3802
|
+
import_node_crypto19 = require("node:crypto");
|
|
3803
|
+
import_node_util6 = require("node:util");
|
|
3804
3804
|
generate = import_node_util6.promisify(import_node_crypto19.generateKeyPair);
|
|
3805
3805
|
});
|
|
3806
3806
|
|
|
@@ -10603,17 +10603,17 @@ var require_src2 = __commonJS((exports2) => {
|
|
|
10603
10603
|
}
|
|
10604
10604
|
});
|
|
10605
10605
|
|
|
10606
|
-
// node_modules/@
|
|
10606
|
+
// node_modules/@opentelemetry/api-logs/build/src/types/Logger.js
|
|
10607
10607
|
var require_Logger = __commonJS((exports2) => {
|
|
10608
10608
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
10609
10609
|
});
|
|
10610
10610
|
|
|
10611
|
-
// node_modules/@
|
|
10611
|
+
// node_modules/@opentelemetry/api-logs/build/src/types/LoggerProvider.js
|
|
10612
10612
|
var require_LoggerProvider = __commonJS((exports2) => {
|
|
10613
10613
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
10614
10614
|
});
|
|
10615
10615
|
|
|
10616
|
-
// node_modules/@
|
|
10616
|
+
// node_modules/@opentelemetry/api-logs/build/src/types/LogRecord.js
|
|
10617
10617
|
var require_LogRecord = __commonJS((exports2) => {
|
|
10618
10618
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
10619
10619
|
exports2.SeverityNumber = undefined;
|
|
@@ -10647,17 +10647,17 @@ var require_LogRecord = __commonJS((exports2) => {
|
|
|
10647
10647
|
})(SeverityNumber = exports2.SeverityNumber || (exports2.SeverityNumber = {}));
|
|
10648
10648
|
});
|
|
10649
10649
|
|
|
10650
|
-
// node_modules/@
|
|
10650
|
+
// node_modules/@opentelemetry/api-logs/build/src/types/LoggerOptions.js
|
|
10651
10651
|
var require_LoggerOptions = __commonJS((exports2) => {
|
|
10652
10652
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
10653
10653
|
});
|
|
10654
10654
|
|
|
10655
|
-
// node_modules/@
|
|
10655
|
+
// node_modules/@opentelemetry/api-logs/build/src/types/AnyValue.js
|
|
10656
10656
|
var require_AnyValue = __commonJS((exports2) => {
|
|
10657
10657
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
10658
10658
|
});
|
|
10659
10659
|
|
|
10660
|
-
// node_modules/@
|
|
10660
|
+
// node_modules/@opentelemetry/api-logs/build/src/NoopLogger.js
|
|
10661
10661
|
var require_NoopLogger = __commonJS((exports2) => {
|
|
10662
10662
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
10663
10663
|
exports2.NOOP_LOGGER = exports2.NoopLogger = undefined;
|
|
@@ -10669,7 +10669,7 @@ var require_NoopLogger = __commonJS((exports2) => {
|
|
|
10669
10669
|
exports2.NOOP_LOGGER = new NoopLogger;
|
|
10670
10670
|
});
|
|
10671
10671
|
|
|
10672
|
-
// node_modules/@
|
|
10672
|
+
// node_modules/@opentelemetry/api-logs/build/src/NoopLoggerProvider.js
|
|
10673
10673
|
var require_NoopLoggerProvider = __commonJS((exports2) => {
|
|
10674
10674
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
10675
10675
|
exports2.NOOP_LOGGER_PROVIDER = exports2.NoopLoggerProvider = undefined;
|
|
@@ -10684,14 +10684,14 @@ var require_NoopLoggerProvider = __commonJS((exports2) => {
|
|
|
10684
10684
|
exports2.NOOP_LOGGER_PROVIDER = new NoopLoggerProvider;
|
|
10685
10685
|
});
|
|
10686
10686
|
|
|
10687
|
-
// node_modules/@
|
|
10687
|
+
// node_modules/@opentelemetry/api-logs/build/src/platform/node/globalThis.js
|
|
10688
10688
|
var require_globalThis2 = __commonJS((exports2) => {
|
|
10689
10689
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
10690
10690
|
exports2._globalThis = undefined;
|
|
10691
10691
|
exports2._globalThis = typeof globalThis === "object" ? globalThis : global;
|
|
10692
10692
|
});
|
|
10693
10693
|
|
|
10694
|
-
// node_modules/@
|
|
10694
|
+
// node_modules/@opentelemetry/api-logs/build/src/platform/node/index.js
|
|
10695
10695
|
var require_node2 = __commonJS((exports2) => {
|
|
10696
10696
|
var __createBinding = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) {
|
|
10697
10697
|
if (k2 === undefined)
|
|
@@ -10713,7 +10713,7 @@ var require_node2 = __commonJS((exports2) => {
|
|
|
10713
10713
|
__exportStar(require_globalThis2(), exports2);
|
|
10714
10714
|
});
|
|
10715
10715
|
|
|
10716
|
-
// node_modules/@
|
|
10716
|
+
// node_modules/@opentelemetry/api-logs/build/src/platform/index.js
|
|
10717
10717
|
var require_platform2 = __commonJS((exports2) => {
|
|
10718
10718
|
var __createBinding = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) {
|
|
10719
10719
|
if (k2 === undefined)
|
|
@@ -10735,7 +10735,7 @@ var require_platform2 = __commonJS((exports2) => {
|
|
|
10735
10735
|
__exportStar(require_node2(), exports2);
|
|
10736
10736
|
});
|
|
10737
10737
|
|
|
10738
|
-
// node_modules/@
|
|
10738
|
+
// node_modules/@opentelemetry/api-logs/build/src/internal/global-utils.js
|
|
10739
10739
|
var require_global_utils2 = __commonJS((exports2) => {
|
|
10740
10740
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
10741
10741
|
exports2.API_BACKWARDS_COMPATIBILITY_VERSION = exports2.makeGetter = exports2._global = exports2.GLOBAL_LOGS_API_KEY = undefined;
|
|
@@ -10749,7 +10749,7 @@ var require_global_utils2 = __commonJS((exports2) => {
|
|
|
10749
10749
|
exports2.API_BACKWARDS_COMPATIBILITY_VERSION = 1;
|
|
10750
10750
|
});
|
|
10751
10751
|
|
|
10752
|
-
// node_modules/@
|
|
10752
|
+
// node_modules/@opentelemetry/api-logs/build/src/api/logs.js
|
|
10753
10753
|
var require_logs = __commonJS((exports2) => {
|
|
10754
10754
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
10755
10755
|
exports2.LogsAPI = undefined;
|
|
@@ -10785,7 +10785,7 @@ var require_logs = __commonJS((exports2) => {
|
|
|
10785
10785
|
exports2.LogsAPI = LogsAPI;
|
|
10786
10786
|
});
|
|
10787
10787
|
|
|
10788
|
-
// node_modules/@
|
|
10788
|
+
// node_modules/@opentelemetry/api-logs/build/src/index.js
|
|
10789
10789
|
var require_src3 = __commonJS((exports2) => {
|
|
10790
10790
|
var __createBinding = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) {
|
|
10791
10791
|
if (k2 === undefined)
|
|
@@ -29180,13 +29180,13 @@ var require_beautifier = __commonJS((exports2) => {
|
|
|
29180
29180
|
exports2.default = Beautifier;
|
|
29181
29181
|
});
|
|
29182
29182
|
|
|
29183
|
-
// node_modules/
|
|
29183
|
+
// node_modules/nanoid/url-alphabet/index.cjs
|
|
29184
29184
|
var require_url_alphabet = __commonJS((exports2, module2) => {
|
|
29185
29185
|
var urlAlphabet = "useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";
|
|
29186
29186
|
module2.exports = { urlAlphabet };
|
|
29187
29187
|
});
|
|
29188
29188
|
|
|
29189
|
-
// node_modules/
|
|
29189
|
+
// node_modules/nanoid/index.cjs
|
|
29190
29190
|
var require_nanoid = __commonJS((exports2, module2) => {
|
|
29191
29191
|
var crypto5 = require("crypto");
|
|
29192
29192
|
var { urlAlphabet } = require_url_alphabet();
|
|
@@ -44451,7 +44451,6 @@ var init_lib_esm = __esm(() => {
|
|
|
44451
44451
|
init_client();
|
|
44452
44452
|
init_node();
|
|
44453
44453
|
init_node2();
|
|
44454
|
-
init_errors2();
|
|
44455
44454
|
init_batch();
|
|
44456
44455
|
init_libsql_url();
|
|
44457
44456
|
init_sql();
|
|
@@ -44461,6 +44460,7 @@ var init_lib_esm = __esm(() => {
|
|
|
44461
44460
|
init_stream3();
|
|
44462
44461
|
init_client();
|
|
44463
44462
|
init_stream2();
|
|
44463
|
+
init_errors2();
|
|
44464
44464
|
});
|
|
44465
44465
|
|
|
44466
44466
|
// node_modules/@libsql/client/lib-esm/hrana.js
|
|
@@ -60662,7 +60662,13 @@ function generateArithmetic(payload) {
|
|
|
60662
60662
|
});
|
|
60663
60663
|
}
|
|
60664
60664
|
function generateGeometric(payload) {
|
|
60665
|
-
const {
|
|
60665
|
+
const {
|
|
60666
|
+
margin_range,
|
|
60667
|
+
risk_reward,
|
|
60668
|
+
kind,
|
|
60669
|
+
price_places = "%.1f",
|
|
60670
|
+
percent_change
|
|
60671
|
+
} = payload;
|
|
60666
60672
|
const effectivePercentChange = percent_change ?? Math.abs(margin_range[1] / margin_range[0] - 1) / risk_reward;
|
|
60667
60673
|
return Array.from({ length: risk_reward + 1 }, (_, i2) => {
|
|
60668
60674
|
const price = kind === "long" ? margin_range[1] * Math.pow(1 - effectivePercentChange, i2) : margin_range[0] * Math.pow(1 + effectivePercentChange, i2);
|
|
@@ -60684,7 +60690,13 @@ function approximateInverseNormal(p) {
|
|
|
60684
60690
|
}
|
|
60685
60691
|
}
|
|
60686
60692
|
function generateNormal(payload) {
|
|
60687
|
-
const {
|
|
60693
|
+
const {
|
|
60694
|
+
margin_range,
|
|
60695
|
+
risk_reward,
|
|
60696
|
+
kind,
|
|
60697
|
+
price_places = "%.1f",
|
|
60698
|
+
stdDevFactor = 6
|
|
60699
|
+
} = payload;
|
|
60688
60700
|
const mean = (margin_range[0] + margin_range[1]) / 2;
|
|
60689
60701
|
const stdDev = Math.abs(margin_range[1] - margin_range[0]) / stdDevFactor;
|
|
60690
60702
|
const skew = kind === "long" ? -0.2 : 0.2;
|
|
@@ -60699,7 +60711,13 @@ function generateNormal(payload) {
|
|
|
60699
60711
|
return entries.sort((a, b) => a - b);
|
|
60700
60712
|
}
|
|
60701
60713
|
function generateExponential(payload) {
|
|
60702
|
-
const {
|
|
60714
|
+
const {
|
|
60715
|
+
margin_range,
|
|
60716
|
+
risk_reward,
|
|
60717
|
+
kind,
|
|
60718
|
+
price_places = "%.1f",
|
|
60719
|
+
lambda
|
|
60720
|
+
} = payload;
|
|
60703
60721
|
const range = Math.abs(margin_range[1] - margin_range[0]);
|
|
60704
60722
|
const effectiveLambda = lambda || 2.5;
|
|
60705
60723
|
return Array.from({ length: risk_reward + 1 }, (_, i2) => {
|
|
@@ -60710,7 +60728,13 @@ function generateExponential(payload) {
|
|
|
60710
60728
|
});
|
|
60711
60729
|
}
|
|
60712
60730
|
function generateInverseExponential(payload) {
|
|
60713
|
-
const {
|
|
60731
|
+
const {
|
|
60732
|
+
margin_range,
|
|
60733
|
+
risk_reward,
|
|
60734
|
+
kind,
|
|
60735
|
+
price_places = "%.1f",
|
|
60736
|
+
curveFactor = 2
|
|
60737
|
+
} = payload;
|
|
60714
60738
|
const range = Math.abs(margin_range[1] - margin_range[0]);
|
|
60715
60739
|
return Array.from({ length: risk_reward + 1 }, (_, i2) => {
|
|
60716
60740
|
const t2 = i2 / risk_reward;
|
|
@@ -60790,7 +60814,13 @@ function getEntries(params) {
|
|
|
60790
60814
|
}
|
|
60791
60815
|
var distributions_default = getEntries;
|
|
60792
60816
|
function generateLognormal(payload) {
|
|
60793
|
-
const {
|
|
60817
|
+
const {
|
|
60818
|
+
margin_range,
|
|
60819
|
+
risk_reward,
|
|
60820
|
+
kind,
|
|
60821
|
+
price_places = "%.1f",
|
|
60822
|
+
stdDevFactor = 6
|
|
60823
|
+
} = payload;
|
|
60794
60824
|
const logMin = Math.log(margin_range[0]);
|
|
60795
60825
|
const logMax = Math.log(margin_range[1]);
|
|
60796
60826
|
const mean = (logMin + logMax) / 2;
|
|
@@ -65124,6 +65154,105 @@ async function createSpotLimitOrdersParallel(client, symbol, priceFormat, quanti
|
|
|
65124
65154
|
})));
|
|
65125
65155
|
return results.flat();
|
|
65126
65156
|
}
|
|
65157
|
+
async function createMarginLimitOrdersParallel(client, symbol, priceFormat, quantityFormat, orders, isIsolated = false, currentPrice) {
|
|
65158
|
+
const createMarginOrder = (x) => {
|
|
65159
|
+
const v = {
|
|
65160
|
+
symbol: symbol.toUpperCase(),
|
|
65161
|
+
side: x.side.toUpperCase(),
|
|
65162
|
+
type: x.type || "LIMIT",
|
|
65163
|
+
quantity: x.quantity ? to_f(x.quantity, quantityFormat) : 0,
|
|
65164
|
+
price: x.price ? to_f(x.price, priceFormat) : undefined,
|
|
65165
|
+
timeInForce: x.timeInForce || "GTC",
|
|
65166
|
+
isIsolated: isIsolated ? "TRUE" : "FALSE",
|
|
65167
|
+
sideEffectType: x.sideEffectType || "NO_SIDE_EFFECT"
|
|
65168
|
+
};
|
|
65169
|
+
if (x.stop && x.stop > 0) {
|
|
65170
|
+
v.type = "STOP_LOSS_LIMIT";
|
|
65171
|
+
v.stopPrice = to_f(x.stop, priceFormat);
|
|
65172
|
+
}
|
|
65173
|
+
if (x.force_market || x.is_market) {
|
|
65174
|
+
delete v.price;
|
|
65175
|
+
delete v.timeInForce;
|
|
65176
|
+
v.type = "MARKET";
|
|
65177
|
+
}
|
|
65178
|
+
return Object.fromEntries(Object.entries(v).filter(([, value2]) => value2 !== undefined));
|
|
65179
|
+
};
|
|
65180
|
+
const newOrders = orders.map(createMarginOrder);
|
|
65181
|
+
const limit = import_p_limit.default(ORDERS_PER_SECOND);
|
|
65182
|
+
const results = await Promise.all(newOrders.map((orderPayload) => limit(async () => {
|
|
65183
|
+
try {
|
|
65184
|
+
const result = await client.marginAccountNewOrder(orderPayload);
|
|
65185
|
+
console.log("Margin order result:", result);
|
|
65186
|
+
return result;
|
|
65187
|
+
} catch (error) {
|
|
65188
|
+
console.error("Error processing margin order:", error);
|
|
65189
|
+
throw error;
|
|
65190
|
+
}
|
|
65191
|
+
})));
|
|
65192
|
+
return results;
|
|
65193
|
+
}
|
|
65194
|
+
async function getIsolatedMarginAccountInfo(client, symbol) {
|
|
65195
|
+
try {
|
|
65196
|
+
const response = await client.getIsolatedMarginAccountInfo({
|
|
65197
|
+
symbols: symbol
|
|
65198
|
+
});
|
|
65199
|
+
return response;
|
|
65200
|
+
} catch (error) {
|
|
65201
|
+
console.error("Error fetching isolated margin account info:", error);
|
|
65202
|
+
return null;
|
|
65203
|
+
}
|
|
65204
|
+
}
|
|
65205
|
+
async function getCrossMarginAccountDetails(client) {
|
|
65206
|
+
try {
|
|
65207
|
+
const response = await client.queryCrossMarginAccountDetails();
|
|
65208
|
+
return response;
|
|
65209
|
+
} catch (error) {
|
|
65210
|
+
console.error("Error fetching cross margin account details:", error);
|
|
65211
|
+
return null;
|
|
65212
|
+
}
|
|
65213
|
+
}
|
|
65214
|
+
async function cancelMarginOrders(client, symbol, isIsolated = false, orders) {
|
|
65215
|
+
try {
|
|
65216
|
+
if (orders && orders.length > 0) {
|
|
65217
|
+
const cancelPromises = orders.map((order) => client.marginAccountCancelOrder({
|
|
65218
|
+
symbol,
|
|
65219
|
+
orderId: order.orderId,
|
|
65220
|
+
origClientOrderId: order.origClientOrderId,
|
|
65221
|
+
isIsolated: isIsolated ? "TRUE" : "FALSE"
|
|
65222
|
+
}));
|
|
65223
|
+
return await Promise.all(cancelPromises);
|
|
65224
|
+
} else {
|
|
65225
|
+
return await client.marginAccountCancelOpenOrders({
|
|
65226
|
+
symbol,
|
|
65227
|
+
isIsolated: isIsolated ? "TRUE" : "FALSE"
|
|
65228
|
+
});
|
|
65229
|
+
}
|
|
65230
|
+
} catch (error) {
|
|
65231
|
+
console.error("Error cancelling margin orders:", error);
|
|
65232
|
+
throw error;
|
|
65233
|
+
}
|
|
65234
|
+
}
|
|
65235
|
+
async function getMarginOpenOrders(client, symbol, isIsolated = false) {
|
|
65236
|
+
try {
|
|
65237
|
+
const response = await client.queryMarginAccountOpenOrders({
|
|
65238
|
+
symbol,
|
|
65239
|
+
isIsolated: isIsolated ? "TRUE" : "FALSE"
|
|
65240
|
+
});
|
|
65241
|
+
return (response || []).map((order) => ({
|
|
65242
|
+
...order,
|
|
65243
|
+
id: order.orderId,
|
|
65244
|
+
order_id: order.orderId,
|
|
65245
|
+
price: parseFloat(order.price),
|
|
65246
|
+
quantity: parseFloat(order.origQty),
|
|
65247
|
+
side: order.side.toLowerCase(),
|
|
65248
|
+
type: order.type.toLowerCase(),
|
|
65249
|
+
status: order.status.toLowerCase()
|
|
65250
|
+
}));
|
|
65251
|
+
} catch (error) {
|
|
65252
|
+
console.error("Error fetching margin open orders:", error);
|
|
65253
|
+
return [];
|
|
65254
|
+
}
|
|
65255
|
+
}
|
|
65127
65256
|
async function placeSpotLimitOrders(client, payload) {
|
|
65128
65257
|
const { price_places = "%.8f", decimal_places = "%.8f", symbol } = payload;
|
|
65129
65258
|
if (payload.cancel) {
|
|
@@ -66107,6 +66236,36 @@ class BinanceExchange extends BaseExchange {
|
|
|
66107
66236
|
throw error;
|
|
66108
66237
|
}
|
|
66109
66238
|
}
|
|
66239
|
+
async createMarginLimitOrders(payload) {
|
|
66240
|
+
if (!this.main_client) {
|
|
66241
|
+
throw new Error("Main client not available for margin trading");
|
|
66242
|
+
}
|
|
66243
|
+
return await createMarginLimitOrdersParallel(this.main_client, payload.symbol, payload.price_places || "%.8f", payload.decimal_places || "%.8f", payload.orders, payload.isIsolated || false);
|
|
66244
|
+
}
|
|
66245
|
+
async getIsolatedMarginPosition(symbol) {
|
|
66246
|
+
if (!this.main_client) {
|
|
66247
|
+
throw new Error("Main client not available for margin trading");
|
|
66248
|
+
}
|
|
66249
|
+
return await getIsolatedMarginAccountInfo(this.main_client, symbol);
|
|
66250
|
+
}
|
|
66251
|
+
async getCrossMarginAccount() {
|
|
66252
|
+
if (!this.main_client) {
|
|
66253
|
+
throw new Error("Main client not available for margin trading");
|
|
66254
|
+
}
|
|
66255
|
+
return await getCrossMarginAccountDetails(this.main_client);
|
|
66256
|
+
}
|
|
66257
|
+
async cancelMarginOrders(symbol, isIsolated = false, orders) {
|
|
66258
|
+
if (!this.main_client) {
|
|
66259
|
+
throw new Error("Main client not available for margin trading");
|
|
66260
|
+
}
|
|
66261
|
+
return await cancelMarginOrders(this.main_client, symbol, isIsolated, orders);
|
|
66262
|
+
}
|
|
66263
|
+
async getMarginOpenOrders(symbol, isIsolated = false) {
|
|
66264
|
+
if (!this.main_client) {
|
|
66265
|
+
throw new Error("Main client not available for margin trading");
|
|
66266
|
+
}
|
|
66267
|
+
return await getMarginOpenOrders(this.main_client, symbol, isIsolated);
|
|
66268
|
+
}
|
|
66110
66269
|
}
|
|
66111
66270
|
function getPricePlaces(target) {
|
|
66112
66271
|
const numStr = target.toString();
|
|
@@ -68562,6 +68721,25 @@ class ExchangePosition {
|
|
|
68562
68721
|
await this.cancelOrders({ limit: true });
|
|
68563
68722
|
}
|
|
68564
68723
|
}
|
|
68724
|
+
async placeTp({ place }) {
|
|
68725
|
+
const config2 = await this.exchange_account.buildReduceConfig({
|
|
68726
|
+
symbol: this.symbol,
|
|
68727
|
+
as_dict: true,
|
|
68728
|
+
trigger: {
|
|
68729
|
+
long: place || false,
|
|
68730
|
+
short: place || false
|
|
68731
|
+
}
|
|
68732
|
+
});
|
|
68733
|
+
if (config2) {
|
|
68734
|
+
return await this.exchange_account.reduceMajorPositionEntry({
|
|
68735
|
+
symbol: this.symbol,
|
|
68736
|
+
long: config2.long,
|
|
68737
|
+
short: config2.short,
|
|
68738
|
+
trigger: config2.trigger
|
|
68739
|
+
});
|
|
68740
|
+
}
|
|
68741
|
+
return null;
|
|
68742
|
+
}
|
|
68565
68743
|
}
|
|
68566
68744
|
function convert_to_exchange_order(order) {
|
|
68567
68745
|
return {
|
package/dist/index.d.ts
CHANGED
|
@@ -7045,6 +7045,9 @@ export declare class ExchangePosition {
|
|
|
7045
7045
|
stop: number;
|
|
7046
7046
|
}>;
|
|
7047
7047
|
cleanOnActiveCompoundInstance(): Promise<void>;
|
|
7048
|
+
placeTp({ place }: {
|
|
7049
|
+
place?: boolean;
|
|
7050
|
+
}): Promise<any>;
|
|
7048
7051
|
}
|
|
7049
7052
|
declare class ExchangeAccount$1 {
|
|
7050
7053
|
instance: {
|