@backtest-kit/ui 9.5.0 → 9.7.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.
- package/README.md +254 -254
- package/build/index.cjs +243 -170
- package/build/index.mjs +122 -67
- package/build/modules/frontend/build/3rdparty/ace_1.4.12/ace.js +21337 -21337
- package/build/modules/frontend/build/3rdparty/ace_1.4.12/mode-javascript.js +797 -797
- package/build/modules/frontend/build/3rdparty/ace_1.4.12/theme-chrome.js +137 -137
- package/build/modules/frontend/build/3rdparty/ace_1.4.12/theme-twilight.js +115 -115
- package/build/modules/frontend/build/3rdparty/ace_1.4.12/worker-javascript.js +15012 -15012
- package/build/modules/frontend/build/3rdparty/qfchart_0.8.7/echarts.min.js +45 -45
- package/build/modules/frontend/build/assets/{Article-CPvMAlis.js → Article-CSLbW4S3.js} +1 -1
- package/build/modules/frontend/build/assets/{Background-BcBJxoQM.js → Background-D7AbUVrH.js} +1 -1
- package/build/modules/frontend/build/assets/{IconPhoto-C_ikll5b.js → IconPhoto-dJuN2ucb.js} +1 -1
- package/build/modules/frontend/build/assets/{KeyboardArrowLeft-wo8yIkQt.js → KeyboardArrowLeft-BC2GbqOB.js} +1 -1
- package/build/modules/frontend/build/assets/{PictureAsPdfOutlined-B2Y3DrmN.js → PictureAsPdfOutlined-BkS0a0A0.js} +1 -1
- package/build/modules/frontend/build/assets/{Refresh-DWwANC2C.js → Refresh-GywkMeC9.js} +1 -1
- package/build/modules/frontend/build/assets/emitters-D2HKeJSt.js +1 -0
- package/build/modules/frontend/build/assets/{hasRouteMatch-DxP9EIea.js → hasRouteMatch-DaOdXEtJ.js} +1 -1
- package/build/modules/frontend/build/assets/{html2canvas-BEYpPxnI.js → html2canvas-D40IxDXU.js} +1 -1
- package/build/modules/frontend/build/assets/{index-Csk3lyh_.js → index-BDWtjw8t.js} +1 -1
- package/build/modules/frontend/build/assets/{index-U9wO0mPn.js → index-BjNxXXRd.js} +1 -1
- package/build/modules/frontend/build/assets/{index-BLgqZVUW.js → index-BoVUr2mk.js} +5 -5
- package/build/modules/frontend/build/assets/{index-Ct4kOSwZ.js → index-C7fDq8VY.js} +1 -1
- package/build/modules/frontend/build/assets/{index-xcEpTc6J.js → index-CcP46J0C.js} +1 -1
- package/build/modules/frontend/build/assets/{index-DYIV_QwZ.js → index-CcnWYHDR.js} +1 -1
- package/build/modules/frontend/build/assets/{index-nQBp5LZR.js → index-CePvvRqq.js} +1 -1
- package/build/modules/frontend/build/assets/{index-Bd51gA9H.js → index-CknRQapy.js} +1 -1
- package/build/modules/frontend/build/assets/{index-C2FRNjrR.js → index-CyN7sutq.js} +1 -1
- package/build/modules/frontend/build/assets/{index-5Dtu864w.js → index-D9GOtTmB.js} +1 -1
- package/build/modules/frontend/build/assets/{index-BqQhlvLk.js → index-DWnTHxHy.js} +1 -1
- package/build/modules/frontend/build/assets/{index-Q1e8Guut.js → index-IkD99_6_.js} +1 -1
- package/build/modules/frontend/build/assets/{index-BW6mJqS7.js → index-zihyCAvY.js} +1 -1
- package/build/modules/frontend/build/assets/{index.es-FwYn4ntA.js → index.es-ByhwyzTS.js} +1 -1
- package/build/modules/frontend/build/assets/{markdownit-DifHDTjI.js → markdownit-DHhYBfkC.js} +1 -1
- package/build/modules/frontend/build/index.html +87 -87
- package/build/modules/frontend/build/manifest.json +23 -23
- package/package.json +118 -118
- package/build/modules/frontend/build/assets/emitters-Dr0rm1Id.js +0 -1
package/build/index.mjs
CHANGED
|
@@ -6,6 +6,7 @@ import finalhandler from 'finalhandler';
|
|
|
6
6
|
import serveHandler from 'serve-handler';
|
|
7
7
|
import os from 'os';
|
|
8
8
|
import { createActivator } from 'di-kit';
|
|
9
|
+
import * as BacktestKit from 'backtest-kit';
|
|
9
10
|
import { alignToInterval, Exchange, listExchangeSchema, Backtest, Live, Notification, Storage, Log, lib, Heat, Strategy, Breakeven, Risk, Partial, HighestProfit, MaxDrawdown, Schedule, Performance, Sync, Walker, StorageLive, StorageBacktest, Broker, Dump, Markdown, Memory, Recent, Report, State, getConfig } from 'backtest-kit';
|
|
10
11
|
import fs, { readdir, readFile } from 'fs/promises';
|
|
11
12
|
import path, { join, dirname } from 'path';
|
|
@@ -13,6 +14,10 @@ import mime from 'mime-types';
|
|
|
13
14
|
import { createHash } from 'crypto';
|
|
14
15
|
import { createRequire } from 'module';
|
|
15
16
|
import { existsSync } from 'fs';
|
|
17
|
+
import { createRequire as createRequire$1 } from 'node:module';
|
|
18
|
+
import { join as join$1 } from 'node:path';
|
|
19
|
+
import { pathToFileURL } from 'node:url';
|
|
20
|
+
import { createContext, runInContext } from 'vm';
|
|
16
21
|
|
|
17
22
|
const CC_WWWROOT_PATH = process.env.CC_WWWROOT_PATH || "";
|
|
18
23
|
const CC_WWWROOT_HOST = process.env.CC_WWWROOT_HOST || "0.0.0.0";
|
|
@@ -23,10 +28,10 @@ const CC_ENABLE_MOCK = !!parseInt(process.env.CC_ENABLE_MOCK) || false;
|
|
|
23
28
|
|
|
24
29
|
const serveSubject = new BehaviorSubject();
|
|
25
30
|
|
|
26
|
-
const router$
|
|
31
|
+
const router$c = Router({
|
|
27
32
|
params: true,
|
|
28
33
|
});
|
|
29
|
-
router$
|
|
34
|
+
router$c.get("/api/v1/health/health_check", async (req, res) => {
|
|
30
35
|
const [cpuLoad] = os.loadavg();
|
|
31
36
|
return await micro.send(res, 200, {
|
|
32
37
|
uptime: process.uptime(),
|
|
@@ -2116,11 +2121,11 @@ const ioc = {
|
|
|
2116
2121
|
};
|
|
2117
2122
|
init();
|
|
2118
2123
|
|
|
2119
|
-
const router$
|
|
2124
|
+
const router$b = Router({
|
|
2120
2125
|
params: true,
|
|
2121
2126
|
});
|
|
2122
2127
|
// SetupMockService endpoints
|
|
2123
|
-
router$
|
|
2128
|
+
router$b.post("/api/v1/mock/setup_data", async (req, res) => {
|
|
2124
2129
|
try {
|
|
2125
2130
|
const request = await micro.json(req);
|
|
2126
2131
|
const { requestId, serviceName } = request;
|
|
@@ -2149,7 +2154,7 @@ router$a.post("/api/v1/mock/setup_data", async (req, res) => {
|
|
|
2149
2154
|
}
|
|
2150
2155
|
});
|
|
2151
2156
|
// ExchangeMockService endpoints
|
|
2152
|
-
router$
|
|
2157
|
+
router$b.post("/api/v1/mock/candles_signal", async (req, res) => {
|
|
2153
2158
|
try {
|
|
2154
2159
|
const request = await micro.json(req);
|
|
2155
2160
|
const { signalId, interval, requestId, serviceName } = request;
|
|
@@ -2177,7 +2182,7 @@ router$a.post("/api/v1/mock/candles_signal", async (req, res) => {
|
|
|
2177
2182
|
});
|
|
2178
2183
|
}
|
|
2179
2184
|
});
|
|
2180
|
-
router$
|
|
2185
|
+
router$b.post("/api/v1/mock/candles_point", async (req, res) => {
|
|
2181
2186
|
try {
|
|
2182
2187
|
const request = await micro.json(req);
|
|
2183
2188
|
const { currentTime, interval, requestId, serviceName, symbol, exchangeName } = request;
|
|
@@ -2210,7 +2215,7 @@ router$a.post("/api/v1/mock/candles_point", async (req, res) => {
|
|
|
2210
2215
|
});
|
|
2211
2216
|
}
|
|
2212
2217
|
});
|
|
2213
|
-
router$
|
|
2218
|
+
router$b.post("/api/v1/mock/candles_range", async (req, res) => {
|
|
2214
2219
|
try {
|
|
2215
2220
|
const request = await micro.json(req);
|
|
2216
2221
|
const { symbol, interval, limit, sDate, eDate, requestId, serviceName } = request;
|
|
@@ -2245,7 +2250,7 @@ router$a.post("/api/v1/mock/candles_range", async (req, res) => {
|
|
|
2245
2250
|
}
|
|
2246
2251
|
});
|
|
2247
2252
|
// NotificationMockService endpoints
|
|
2248
|
-
router$
|
|
2253
|
+
router$b.post("/api/v1/mock/notification_list", async (req, res) => {
|
|
2249
2254
|
try {
|
|
2250
2255
|
const request = await micro.json(req);
|
|
2251
2256
|
const { requestId, serviceName } = request;
|
|
@@ -2273,7 +2278,7 @@ router$a.post("/api/v1/mock/notification_list", async (req, res) => {
|
|
|
2273
2278
|
});
|
|
2274
2279
|
}
|
|
2275
2280
|
});
|
|
2276
|
-
router$
|
|
2281
|
+
router$b.post("/api/v1/mock/notification_one/:id", async (req, res) => {
|
|
2277
2282
|
try {
|
|
2278
2283
|
const request = await micro.json(req);
|
|
2279
2284
|
const { requestId, serviceName } = request;
|
|
@@ -2302,7 +2307,7 @@ router$a.post("/api/v1/mock/notification_one/:id", async (req, res) => {
|
|
|
2302
2307
|
});
|
|
2303
2308
|
}
|
|
2304
2309
|
});
|
|
2305
|
-
router$
|
|
2310
|
+
router$b.post("/api/v1/mock/notification_filter", async (req, res) => {
|
|
2306
2311
|
try {
|
|
2307
2312
|
const request = await micro.json(req);
|
|
2308
2313
|
const { requestId, serviceName, filterData, limit, offset } = request;
|
|
@@ -2331,7 +2336,7 @@ router$a.post("/api/v1/mock/notification_filter", async (req, res) => {
|
|
|
2331
2336
|
}
|
|
2332
2337
|
});
|
|
2333
2338
|
// StorageMockService endpoints
|
|
2334
|
-
router$
|
|
2339
|
+
router$b.post("/api/v1/mock/storage_one/:id", async (req, res) => {
|
|
2335
2340
|
try {
|
|
2336
2341
|
const request = await micro.json(req);
|
|
2337
2342
|
const { requestId, serviceName } = request;
|
|
@@ -2360,7 +2365,7 @@ router$a.post("/api/v1/mock/storage_one/:id", async (req, res) => {
|
|
|
2360
2365
|
});
|
|
2361
2366
|
}
|
|
2362
2367
|
});
|
|
2363
|
-
router$
|
|
2368
|
+
router$b.post("/api/v1/mock/storage_list/live", async (req, res) => {
|
|
2364
2369
|
try {
|
|
2365
2370
|
const request = await micro.json(req);
|
|
2366
2371
|
const { requestId, serviceName } = request;
|
|
@@ -2388,7 +2393,7 @@ router$a.post("/api/v1/mock/storage_list/live", async (req, res) => {
|
|
|
2388
2393
|
});
|
|
2389
2394
|
}
|
|
2390
2395
|
});
|
|
2391
|
-
router$
|
|
2396
|
+
router$b.post("/api/v1/mock/storage_list/backtest", async (req, res) => {
|
|
2392
2397
|
try {
|
|
2393
2398
|
const request = await micro.json(req);
|
|
2394
2399
|
const { requestId, serviceName } = request;
|
|
@@ -2417,7 +2422,7 @@ router$a.post("/api/v1/mock/storage_list/backtest", async (req, res) => {
|
|
|
2417
2422
|
}
|
|
2418
2423
|
});
|
|
2419
2424
|
// LogMockService endpoints
|
|
2420
|
-
router$
|
|
2425
|
+
router$b.post("/api/v1/mock/log_list", async (req, res) => {
|
|
2421
2426
|
try {
|
|
2422
2427
|
const request = await micro.json(req);
|
|
2423
2428
|
const { requestId, serviceName } = request;
|
|
@@ -2445,7 +2450,7 @@ router$a.post("/api/v1/mock/log_list", async (req, res) => {
|
|
|
2445
2450
|
});
|
|
2446
2451
|
}
|
|
2447
2452
|
});
|
|
2448
|
-
router$
|
|
2453
|
+
router$b.post("/api/v1/mock/log_one/:id", async (req, res) => {
|
|
2449
2454
|
try {
|
|
2450
2455
|
const request = await micro.json(req);
|
|
2451
2456
|
const { requestId, serviceName } = request;
|
|
@@ -2474,7 +2479,7 @@ router$a.post("/api/v1/mock/log_one/:id", async (req, res) => {
|
|
|
2474
2479
|
});
|
|
2475
2480
|
}
|
|
2476
2481
|
});
|
|
2477
|
-
router$
|
|
2482
|
+
router$b.post("/api/v1/mock/log_filter", async (req, res) => {
|
|
2478
2483
|
try {
|
|
2479
2484
|
const request = await micro.json(req);
|
|
2480
2485
|
const { requestId, serviceName, filterData, limit, offset } = request;
|
|
@@ -2502,7 +2507,7 @@ router$a.post("/api/v1/mock/log_filter", async (req, res) => {
|
|
|
2502
2507
|
});
|
|
2503
2508
|
}
|
|
2504
2509
|
});
|
|
2505
|
-
router$
|
|
2510
|
+
router$b.post("/api/v1/mock/candles_live", async (req, res) => {
|
|
2506
2511
|
try {
|
|
2507
2512
|
const request = await micro.json(req);
|
|
2508
2513
|
const { signalId, interval, requestId, serviceName } = request;
|
|
@@ -2530,7 +2535,7 @@ router$a.post("/api/v1/mock/candles_live", async (req, res) => {
|
|
|
2530
2535
|
});
|
|
2531
2536
|
}
|
|
2532
2537
|
});
|
|
2533
|
-
router$
|
|
2538
|
+
router$b.post("/api/v1/mock/candles_last", async (req, res) => {
|
|
2534
2539
|
try {
|
|
2535
2540
|
const request = await micro.json(req);
|
|
2536
2541
|
const { symbol, interval, requestId, serviceName } = request;
|
|
@@ -2559,7 +2564,7 @@ router$a.post("/api/v1/mock/candles_last", async (req, res) => {
|
|
|
2559
2564
|
}
|
|
2560
2565
|
});
|
|
2561
2566
|
// SignalMockService endpoints
|
|
2562
|
-
router$
|
|
2567
|
+
router$b.post("/api/v1/mock/signal_last_update/:id", async (req, res) => {
|
|
2563
2568
|
try {
|
|
2564
2569
|
const request = await micro.json(req);
|
|
2565
2570
|
const { requestId, serviceName } = request;
|
|
@@ -2588,7 +2593,7 @@ router$a.post("/api/v1/mock/signal_last_update/:id", async (req, res) => {
|
|
|
2588
2593
|
});
|
|
2589
2594
|
}
|
|
2590
2595
|
});
|
|
2591
|
-
router$
|
|
2596
|
+
router$b.post("/api/v1/mock/signal_pending", async (req, res) => {
|
|
2592
2597
|
try {
|
|
2593
2598
|
const request = await micro.json(req);
|
|
2594
2599
|
const { symbol, requestId, serviceName } = request;
|
|
@@ -2617,7 +2622,7 @@ router$a.post("/api/v1/mock/signal_pending", async (req, res) => {
|
|
|
2617
2622
|
}
|
|
2618
2623
|
});
|
|
2619
2624
|
// StatusMockService endpoints
|
|
2620
|
-
router$
|
|
2625
|
+
router$b.post("/api/v1/mock/status_list", async (req, res) => {
|
|
2621
2626
|
try {
|
|
2622
2627
|
const request = await micro.json(req);
|
|
2623
2628
|
const { requestId, serviceName } = request;
|
|
@@ -2645,7 +2650,7 @@ router$a.post("/api/v1/mock/status_list", async (req, res) => {
|
|
|
2645
2650
|
});
|
|
2646
2651
|
}
|
|
2647
2652
|
});
|
|
2648
|
-
router$
|
|
2653
|
+
router$b.post("/api/v1/mock/status_one/:id", async (req, res) => {
|
|
2649
2654
|
try {
|
|
2650
2655
|
const request = await micro.json(req);
|
|
2651
2656
|
const { requestId, serviceName } = request;
|
|
@@ -2675,7 +2680,7 @@ router$a.post("/api/v1/mock/status_one/:id", async (req, res) => {
|
|
|
2675
2680
|
}
|
|
2676
2681
|
});
|
|
2677
2682
|
// HeatMockService endpoints
|
|
2678
|
-
router$
|
|
2683
|
+
router$b.post("/api/v1/mock/heat_data", async (req, res) => {
|
|
2679
2684
|
try {
|
|
2680
2685
|
const request = await micro.json(req);
|
|
2681
2686
|
const { requestId, serviceName } = request;
|
|
@@ -2703,7 +2708,7 @@ router$a.post("/api/v1/mock/heat_data", async (req, res) => {
|
|
|
2703
2708
|
});
|
|
2704
2709
|
}
|
|
2705
2710
|
});
|
|
2706
|
-
router$
|
|
2711
|
+
router$b.post("/api/v1/mock/heat_report", async (req, res) => {
|
|
2707
2712
|
try {
|
|
2708
2713
|
const request = await micro.json(req);
|
|
2709
2714
|
const { requestId, serviceName } = request;
|
|
@@ -2731,7 +2736,7 @@ router$a.post("/api/v1/mock/heat_report", async (req, res) => {
|
|
|
2731
2736
|
});
|
|
2732
2737
|
}
|
|
2733
2738
|
});
|
|
2734
|
-
router$
|
|
2739
|
+
router$b.post("/api/v1/mock/status_info", async (req, res) => {
|
|
2735
2740
|
try {
|
|
2736
2741
|
const request = await micro.json(req);
|
|
2737
2742
|
const { requestId, serviceName } = request;
|
|
@@ -2760,7 +2765,7 @@ router$a.post("/api/v1/mock/status_info", async (req, res) => {
|
|
|
2760
2765
|
}
|
|
2761
2766
|
});
|
|
2762
2767
|
// PerformanceMockService endpoints
|
|
2763
|
-
router$
|
|
2768
|
+
router$b.post("/api/v1/mock/performance_data", async (req, res) => {
|
|
2764
2769
|
try {
|
|
2765
2770
|
const request = await micro.json(req);
|
|
2766
2771
|
const { requestId, serviceName } = request;
|
|
@@ -2788,7 +2793,7 @@ router$a.post("/api/v1/mock/performance_data", async (req, res) => {
|
|
|
2788
2793
|
});
|
|
2789
2794
|
}
|
|
2790
2795
|
});
|
|
2791
|
-
router$
|
|
2796
|
+
router$b.post("/api/v1/mock/performance_report", async (req, res) => {
|
|
2792
2797
|
try {
|
|
2793
2798
|
const request = await micro.json(req);
|
|
2794
2799
|
const { requestId, serviceName } = request;
|
|
@@ -2817,7 +2822,7 @@ router$a.post("/api/v1/mock/performance_report", async (req, res) => {
|
|
|
2817
2822
|
}
|
|
2818
2823
|
});
|
|
2819
2824
|
// EnvironmentMockService endpoints
|
|
2820
|
-
router$
|
|
2825
|
+
router$b.post("/api/v1/mock/environment_data", async (req, res) => {
|
|
2821
2826
|
try {
|
|
2822
2827
|
const request = await micro.json(req);
|
|
2823
2828
|
const { requestId, serviceName } = request;
|
|
@@ -2846,11 +2851,11 @@ router$a.post("/api/v1/mock/environment_data", async (req, res) => {
|
|
|
2846
2851
|
}
|
|
2847
2852
|
});
|
|
2848
2853
|
|
|
2849
|
-
const router$
|
|
2854
|
+
const router$a = Router({
|
|
2850
2855
|
params: true,
|
|
2851
2856
|
});
|
|
2852
2857
|
// SetupViewService endpoints
|
|
2853
|
-
router$
|
|
2858
|
+
router$a.post("/api/v1/view/setup_data", async (req, res) => {
|
|
2854
2859
|
try {
|
|
2855
2860
|
const request = await micro.json(req);
|
|
2856
2861
|
const { requestId, serviceName } = request;
|
|
@@ -2879,7 +2884,7 @@ router$9.post("/api/v1/view/setup_data", async (req, res) => {
|
|
|
2879
2884
|
}
|
|
2880
2885
|
});
|
|
2881
2886
|
// ExchangeViewService endpoints
|
|
2882
|
-
router$
|
|
2887
|
+
router$a.post("/api/v1/view/candles_signal", async (req, res) => {
|
|
2883
2888
|
try {
|
|
2884
2889
|
const request = await micro.json(req);
|
|
2885
2890
|
const { signalId, interval, requestId, serviceName } = request;
|
|
@@ -2907,7 +2912,7 @@ router$9.post("/api/v1/view/candles_signal", async (req, res) => {
|
|
|
2907
2912
|
});
|
|
2908
2913
|
}
|
|
2909
2914
|
});
|
|
2910
|
-
router$
|
|
2915
|
+
router$a.post("/api/v1/view/candles_point", async (req, res) => {
|
|
2911
2916
|
try {
|
|
2912
2917
|
const request = await micro.json(req);
|
|
2913
2918
|
const { currentTime, interval, requestId, serviceName, symbol, exchangeName } = request;
|
|
@@ -2940,7 +2945,7 @@ router$9.post("/api/v1/view/candles_point", async (req, res) => {
|
|
|
2940
2945
|
});
|
|
2941
2946
|
}
|
|
2942
2947
|
});
|
|
2943
|
-
router$
|
|
2948
|
+
router$a.post("/api/v1/view/candles_range", async (req, res) => {
|
|
2944
2949
|
try {
|
|
2945
2950
|
const request = await micro.json(req);
|
|
2946
2951
|
const { symbol, interval, limit, sDate, eDate, requestId, serviceName } = request;
|
|
@@ -2974,7 +2979,7 @@ router$9.post("/api/v1/view/candles_range", async (req, res) => {
|
|
|
2974
2979
|
});
|
|
2975
2980
|
}
|
|
2976
2981
|
});
|
|
2977
|
-
router$
|
|
2982
|
+
router$a.post("/api/v1/view/candles_live", async (req, res) => {
|
|
2978
2983
|
try {
|
|
2979
2984
|
const request = await micro.json(req);
|
|
2980
2985
|
const { signalId, interval, requestId, serviceName } = request;
|
|
@@ -3002,7 +3007,7 @@ router$9.post("/api/v1/view/candles_live", async (req, res) => {
|
|
|
3002
3007
|
});
|
|
3003
3008
|
}
|
|
3004
3009
|
});
|
|
3005
|
-
router$
|
|
3010
|
+
router$a.post("/api/v1/view/candles_last", async (req, res) => {
|
|
3006
3011
|
try {
|
|
3007
3012
|
const request = await micro.json(req);
|
|
3008
3013
|
const { symbol, interval, requestId, serviceName } = request;
|
|
@@ -3031,7 +3036,7 @@ router$9.post("/api/v1/view/candles_last", async (req, res) => {
|
|
|
3031
3036
|
}
|
|
3032
3037
|
});
|
|
3033
3038
|
// NotificationViewService endpoints
|
|
3034
|
-
router$
|
|
3039
|
+
router$a.post("/api/v1/view/notification_list", async (req, res) => {
|
|
3035
3040
|
try {
|
|
3036
3041
|
const request = await micro.json(req);
|
|
3037
3042
|
const { requestId, serviceName } = request;
|
|
@@ -3059,7 +3064,7 @@ router$9.post("/api/v1/view/notification_list", async (req, res) => {
|
|
|
3059
3064
|
});
|
|
3060
3065
|
}
|
|
3061
3066
|
});
|
|
3062
|
-
router$
|
|
3067
|
+
router$a.post("/api/v1/view/notification_one/:id", async (req, res) => {
|
|
3063
3068
|
try {
|
|
3064
3069
|
const request = await micro.json(req);
|
|
3065
3070
|
const { requestId, serviceName } = request;
|
|
@@ -3088,7 +3093,7 @@ router$9.post("/api/v1/view/notification_one/:id", async (req, res) => {
|
|
|
3088
3093
|
});
|
|
3089
3094
|
}
|
|
3090
3095
|
});
|
|
3091
|
-
router$
|
|
3096
|
+
router$a.post("/api/v1/view/notification_filter", async (req, res) => {
|
|
3092
3097
|
try {
|
|
3093
3098
|
const request = await micro.json(req);
|
|
3094
3099
|
const { requestId, serviceName, filterData, limit, offset } = request;
|
|
@@ -3117,7 +3122,7 @@ router$9.post("/api/v1/view/notification_filter", async (req, res) => {
|
|
|
3117
3122
|
}
|
|
3118
3123
|
});
|
|
3119
3124
|
// StorageViewService endpoints
|
|
3120
|
-
router$
|
|
3125
|
+
router$a.post("/api/v1/view/storage_one/:id", async (req, res) => {
|
|
3121
3126
|
try {
|
|
3122
3127
|
const request = await micro.json(req);
|
|
3123
3128
|
const { requestId, serviceName } = request;
|
|
@@ -3146,7 +3151,7 @@ router$9.post("/api/v1/view/storage_one/:id", async (req, res) => {
|
|
|
3146
3151
|
});
|
|
3147
3152
|
}
|
|
3148
3153
|
});
|
|
3149
|
-
router$
|
|
3154
|
+
router$a.post("/api/v1/view/storage_list/live", async (req, res) => {
|
|
3150
3155
|
try {
|
|
3151
3156
|
const request = await micro.json(req);
|
|
3152
3157
|
const { requestId, serviceName } = request;
|
|
@@ -3174,7 +3179,7 @@ router$9.post("/api/v1/view/storage_list/live", async (req, res) => {
|
|
|
3174
3179
|
});
|
|
3175
3180
|
}
|
|
3176
3181
|
});
|
|
3177
|
-
router$
|
|
3182
|
+
router$a.post("/api/v1/view/storage_list/backtest", async (req, res) => {
|
|
3178
3183
|
try {
|
|
3179
3184
|
const request = await micro.json(req);
|
|
3180
3185
|
const { requestId, serviceName } = request;
|
|
@@ -3203,7 +3208,7 @@ router$9.post("/api/v1/view/storage_list/backtest", async (req, res) => {
|
|
|
3203
3208
|
}
|
|
3204
3209
|
});
|
|
3205
3210
|
// LogViewService endpoints
|
|
3206
|
-
router$
|
|
3211
|
+
router$a.post("/api/v1/view/log_list", async (req, res) => {
|
|
3207
3212
|
try {
|
|
3208
3213
|
const request = await micro.json(req);
|
|
3209
3214
|
const { requestId, serviceName } = request;
|
|
@@ -3231,7 +3236,7 @@ router$9.post("/api/v1/view/log_list", async (req, res) => {
|
|
|
3231
3236
|
});
|
|
3232
3237
|
}
|
|
3233
3238
|
});
|
|
3234
|
-
router$
|
|
3239
|
+
router$a.post("/api/v1/view/log_one/:id", async (req, res) => {
|
|
3235
3240
|
try {
|
|
3236
3241
|
const request = await micro.json(req);
|
|
3237
3242
|
const { requestId, serviceName } = request;
|
|
@@ -3260,7 +3265,7 @@ router$9.post("/api/v1/view/log_one/:id", async (req, res) => {
|
|
|
3260
3265
|
});
|
|
3261
3266
|
}
|
|
3262
3267
|
});
|
|
3263
|
-
router$
|
|
3268
|
+
router$a.post("/api/v1/view/log_filter", async (req, res) => {
|
|
3264
3269
|
try {
|
|
3265
3270
|
const request = await micro.json(req);
|
|
3266
3271
|
const { requestId, serviceName, filterData, limit, offset } = request;
|
|
@@ -3289,7 +3294,7 @@ router$9.post("/api/v1/view/log_filter", async (req, res) => {
|
|
|
3289
3294
|
}
|
|
3290
3295
|
});
|
|
3291
3296
|
// SignalViewService endpoints
|
|
3292
|
-
router$
|
|
3297
|
+
router$a.post("/api/v1/view/signal_last_update/:id", async (req, res) => {
|
|
3293
3298
|
try {
|
|
3294
3299
|
const request = await micro.json(req);
|
|
3295
3300
|
const { requestId, serviceName } = request;
|
|
@@ -3318,7 +3323,7 @@ router$9.post("/api/v1/view/signal_last_update/:id", async (req, res) => {
|
|
|
3318
3323
|
});
|
|
3319
3324
|
}
|
|
3320
3325
|
});
|
|
3321
|
-
router$
|
|
3326
|
+
router$a.post("/api/v1/view/signal_pending", async (req, res) => {
|
|
3322
3327
|
try {
|
|
3323
3328
|
const request = await micro.json(req);
|
|
3324
3329
|
const { symbol, requestId, serviceName } = request;
|
|
@@ -3347,7 +3352,7 @@ router$9.post("/api/v1/view/signal_pending", async (req, res) => {
|
|
|
3347
3352
|
}
|
|
3348
3353
|
});
|
|
3349
3354
|
// StatusViewService endpoints
|
|
3350
|
-
router$
|
|
3355
|
+
router$a.post("/api/v1/view/status_list", async (req, res) => {
|
|
3351
3356
|
try {
|
|
3352
3357
|
const request = await micro.json(req);
|
|
3353
3358
|
const { requestId, serviceName } = request;
|
|
@@ -3375,7 +3380,7 @@ router$9.post("/api/v1/view/status_list", async (req, res) => {
|
|
|
3375
3380
|
});
|
|
3376
3381
|
}
|
|
3377
3382
|
});
|
|
3378
|
-
router$
|
|
3383
|
+
router$a.post("/api/v1/view/status_one/:id", async (req, res) => {
|
|
3379
3384
|
try {
|
|
3380
3385
|
const request = await micro.json(req);
|
|
3381
3386
|
const { requestId, serviceName } = request;
|
|
@@ -3405,7 +3410,7 @@ router$9.post("/api/v1/view/status_one/:id", async (req, res) => {
|
|
|
3405
3410
|
}
|
|
3406
3411
|
});
|
|
3407
3412
|
// HeatViewService endpoints
|
|
3408
|
-
router$
|
|
3413
|
+
router$a.post("/api/v1/view/heat_data", async (req, res) => {
|
|
3409
3414
|
try {
|
|
3410
3415
|
const request = await micro.json(req);
|
|
3411
3416
|
const { requestId, serviceName } = request;
|
|
@@ -3433,7 +3438,7 @@ router$9.post("/api/v1/view/heat_data", async (req, res) => {
|
|
|
3433
3438
|
});
|
|
3434
3439
|
}
|
|
3435
3440
|
});
|
|
3436
|
-
router$
|
|
3441
|
+
router$a.post("/api/v1/view/heat_report", async (req, res) => {
|
|
3437
3442
|
try {
|
|
3438
3443
|
const request = await micro.json(req);
|
|
3439
3444
|
const { requestId, serviceName } = request;
|
|
@@ -3461,7 +3466,7 @@ router$9.post("/api/v1/view/heat_report", async (req, res) => {
|
|
|
3461
3466
|
});
|
|
3462
3467
|
}
|
|
3463
3468
|
});
|
|
3464
|
-
router$
|
|
3469
|
+
router$a.post("/api/v1/view/status_info", async (req, res) => {
|
|
3465
3470
|
try {
|
|
3466
3471
|
const request = await micro.json(req);
|
|
3467
3472
|
const { requestId, serviceName } = request;
|
|
@@ -3490,7 +3495,7 @@ router$9.post("/api/v1/view/status_info", async (req, res) => {
|
|
|
3490
3495
|
}
|
|
3491
3496
|
});
|
|
3492
3497
|
// PerformanceViewService endpoints
|
|
3493
|
-
router$
|
|
3498
|
+
router$a.post("/api/v1/view/performance_data", async (req, res) => {
|
|
3494
3499
|
try {
|
|
3495
3500
|
const request = await micro.json(req);
|
|
3496
3501
|
const { requestId, serviceName } = request;
|
|
@@ -3518,7 +3523,7 @@ router$9.post("/api/v1/view/performance_data", async (req, res) => {
|
|
|
3518
3523
|
});
|
|
3519
3524
|
}
|
|
3520
3525
|
});
|
|
3521
|
-
router$
|
|
3526
|
+
router$a.post("/api/v1/view/performance_report", async (req, res) => {
|
|
3522
3527
|
try {
|
|
3523
3528
|
const request = await micro.json(req);
|
|
3524
3529
|
const { requestId, serviceName } = request;
|
|
@@ -3547,7 +3552,7 @@ router$9.post("/api/v1/view/performance_report", async (req, res) => {
|
|
|
3547
3552
|
}
|
|
3548
3553
|
});
|
|
3549
3554
|
// EnvironmentViewService endpoints
|
|
3550
|
-
router$
|
|
3555
|
+
router$a.post("/api/v1/view/environment_data", async (req, res) => {
|
|
3551
3556
|
try {
|
|
3552
3557
|
const request = await micro.json(req);
|
|
3553
3558
|
const { requestId, serviceName } = request;
|
|
@@ -3583,7 +3588,7 @@ function getModulesPath() {
|
|
|
3583
3588
|
return join(basePath, "../../../");
|
|
3584
3589
|
}
|
|
3585
3590
|
|
|
3586
|
-
const router$
|
|
3591
|
+
const router$9 = Router({
|
|
3587
3592
|
params: true,
|
|
3588
3593
|
});
|
|
3589
3594
|
// getModulesPath
|
|
@@ -3600,7 +3605,7 @@ const ASSET_32 = CC_ENABLE_MOCK
|
|
|
3600
3605
|
const cache128 = new Map();
|
|
3601
3606
|
const cache32 = new Map();
|
|
3602
3607
|
const cacheSvg = new Map();
|
|
3603
|
-
router$
|
|
3608
|
+
router$9.get("/icon/128/:filename", async (req, res) => {
|
|
3604
3609
|
const filename = req.params.filename;
|
|
3605
3610
|
// Check cache first
|
|
3606
3611
|
if (cache128.has(filename)) {
|
|
@@ -3616,7 +3621,7 @@ router$8.get("/icon/128/:filename", async (req, res) => {
|
|
|
3616
3621
|
}
|
|
3617
3622
|
return await micro.send(res, 404, "File not found (128)");
|
|
3618
3623
|
});
|
|
3619
|
-
router$
|
|
3624
|
+
router$9.get("/icon/32/:filename", async (req, res) => {
|
|
3620
3625
|
const filename = req.params.filename;
|
|
3621
3626
|
// Check cache first
|
|
3622
3627
|
if (cache32.has(filename)) {
|
|
@@ -3632,7 +3637,7 @@ router$8.get("/icon/32/:filename", async (req, res) => {
|
|
|
3632
3637
|
}
|
|
3633
3638
|
return await micro.send(res, 404, "File not found (32)");
|
|
3634
3639
|
});
|
|
3635
|
-
router$
|
|
3640
|
+
router$9.get("/icon/svg/:filename", async (req, res) => {
|
|
3636
3641
|
const filename = req.params.filename;
|
|
3637
3642
|
// Check cache first
|
|
3638
3643
|
if (cacheSvg.has(filename)) {
|
|
@@ -3648,7 +3653,7 @@ router$8.get("/icon/svg/:filename", async (req, res) => {
|
|
|
3648
3653
|
}
|
|
3649
3654
|
return await micro.send(res, 404, "File not found (svg)");
|
|
3650
3655
|
});
|
|
3651
|
-
router$
|
|
3656
|
+
router$9.get("/icon/:filename", async (req, res) => {
|
|
3652
3657
|
const filename = req.params.filename;
|
|
3653
3658
|
// Check cache first
|
|
3654
3659
|
if (cache32.has(filename)) {
|
|
@@ -3665,10 +3670,10 @@ router$8.get("/icon/:filename", async (req, res) => {
|
|
|
3665
3670
|
return await micro.send(res, 404, "File not found (root)");
|
|
3666
3671
|
});
|
|
3667
3672
|
|
|
3668
|
-
const router$
|
|
3673
|
+
const router$8 = Router({
|
|
3669
3674
|
params: true,
|
|
3670
3675
|
});
|
|
3671
|
-
router$
|
|
3676
|
+
router$8.post("/api/v1/dict/symbol/list", async (req, res) => {
|
|
3672
3677
|
try {
|
|
3673
3678
|
const request = await micro.json(req);
|
|
3674
3679
|
const { requestId, serviceName } = request;
|
|
@@ -3696,7 +3701,7 @@ router$7.post("/api/v1/dict/symbol/list", async (req, res) => {
|
|
|
3696
3701
|
});
|
|
3697
3702
|
}
|
|
3698
3703
|
});
|
|
3699
|
-
router$
|
|
3704
|
+
router$8.post("/api/v1/dict/symbol/map", async (req, res) => {
|
|
3700
3705
|
try {
|
|
3701
3706
|
const request = await micro.json(req);
|
|
3702
3707
|
const { requestId, serviceName } = request;
|
|
@@ -3724,7 +3729,7 @@ router$7.post("/api/v1/dict/symbol/map", async (req, res) => {
|
|
|
3724
3729
|
});
|
|
3725
3730
|
}
|
|
3726
3731
|
});
|
|
3727
|
-
router$
|
|
3732
|
+
router$8.post("/api/v1/dict/symbol/one", async (req, res) => {
|
|
3728
3733
|
try {
|
|
3729
3734
|
const request = await micro.json(req);
|
|
3730
3735
|
const { requestId, serviceName, id } = request;
|
|
@@ -3753,6 +3758,53 @@ router$7.post("/api/v1/dict/symbol/one", async (req, res) => {
|
|
|
3753
3758
|
}
|
|
3754
3759
|
});
|
|
3755
3760
|
|
|
3761
|
+
const makeContext = singleshot(() => {
|
|
3762
|
+
const require = createRequire$1(pathToFileURL(join$1(process.cwd(), "noop.js")));
|
|
3763
|
+
const context = createContext({
|
|
3764
|
+
BacktestKitUi: ioc,
|
|
3765
|
+
BacktestKit,
|
|
3766
|
+
require,
|
|
3767
|
+
console,
|
|
3768
|
+
});
|
|
3769
|
+
return context;
|
|
3770
|
+
});
|
|
3771
|
+
const router$7 = Router({
|
|
3772
|
+
params: true,
|
|
3773
|
+
});
|
|
3774
|
+
router$7.post("/api/v1/repl/eval", async (req, res) => {
|
|
3775
|
+
const request = await micro.json(req);
|
|
3776
|
+
const { requestId, serviceName } = request;
|
|
3777
|
+
try {
|
|
3778
|
+
const context = makeContext();
|
|
3779
|
+
const output = await runInContext(request.data.command, context);
|
|
3780
|
+
const data = isObject(output) ? JSON.stringify(output, null, 2) : output;
|
|
3781
|
+
const result = {
|
|
3782
|
+
data,
|
|
3783
|
+
status: "ok",
|
|
3784
|
+
error: "",
|
|
3785
|
+
requestId,
|
|
3786
|
+
serviceName,
|
|
3787
|
+
};
|
|
3788
|
+
ioc.loggerService.log("/api/v1/repl/eval ok", {
|
|
3789
|
+
request,
|
|
3790
|
+
result,
|
|
3791
|
+
});
|
|
3792
|
+
return await micro.send(res, 200, result);
|
|
3793
|
+
}
|
|
3794
|
+
catch (error) {
|
|
3795
|
+
ioc.loggerService.log("/api/v1/repl/eval error", {
|
|
3796
|
+
request,
|
|
3797
|
+
error: errorData(error),
|
|
3798
|
+
});
|
|
3799
|
+
return await micro.send(res, 200, {
|
|
3800
|
+
status: "error",
|
|
3801
|
+
error: getErrorMessage(error),
|
|
3802
|
+
requestId,
|
|
3803
|
+
serviceName,
|
|
3804
|
+
});
|
|
3805
|
+
}
|
|
3806
|
+
});
|
|
3807
|
+
|
|
3756
3808
|
const router$6 = Router({
|
|
3757
3809
|
params: true,
|
|
3758
3810
|
});
|
|
@@ -4624,13 +4676,13 @@ const router = Router({
|
|
|
4624
4676
|
params: true,
|
|
4625
4677
|
});
|
|
4626
4678
|
router.all("/api/v1/health/*", (req, res) => {
|
|
4627
|
-
return router$
|
|
4679
|
+
return router$c(req, res, finalhandler(req, res));
|
|
4628
4680
|
});
|
|
4629
4681
|
router.all("/api/v1/mock/*", (req, res) => {
|
|
4630
|
-
return router$
|
|
4682
|
+
return router$b(req, res, finalhandler(req, res));
|
|
4631
4683
|
});
|
|
4632
4684
|
router.all("/api/v1/view/*", (req, res) => {
|
|
4633
|
-
return router$
|
|
4685
|
+
return router$a(req, res, finalhandler(req, res));
|
|
4634
4686
|
});
|
|
4635
4687
|
router.all("/api/v1/markdown_mock/*", (req, res) => {
|
|
4636
4688
|
return router$6(req, res, finalhandler(req, res));
|
|
@@ -4645,9 +4697,12 @@ router.all("/api/v1/explorer_view/*", (req, res) => {
|
|
|
4645
4697
|
return router$3(req, res, finalhandler(req, res));
|
|
4646
4698
|
});
|
|
4647
4699
|
router.all("/icon/*", (req, res) => {
|
|
4648
|
-
return router$
|
|
4700
|
+
return router$9(req, res, finalhandler(req, res));
|
|
4649
4701
|
});
|
|
4650
4702
|
router.all("/api/v1/dict/*", (req, res) => {
|
|
4703
|
+
return router$8(req, res, finalhandler(req, res));
|
|
4704
|
+
});
|
|
4705
|
+
router.all("/api/v1/repl/*", (req, res) => {
|
|
4651
4706
|
return router$7(req, res, finalhandler(req, res));
|
|
4652
4707
|
});
|
|
4653
4708
|
router.all("/api/v1/global/*", (req, res) => {
|