@backtest-kit/ui 8.0.0 → 8.2.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 +136 -6
- package/build/index.mjs +137 -7
- 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-Jdmz7aZ2.js → Article-DDKZjbkz.js} +1 -1
- package/build/modules/frontend/build/assets/{Background-EK9k_h9v.js → Background-5Pc2kls4.js} +1 -1
- package/build/modules/frontend/build/assets/{IconPhoto-CDjyp9zD.js → IconPhoto-2KIaDXXx.js} +1 -1
- package/build/modules/frontend/build/assets/{KeyboardArrowLeft-Dr0dCIxL.js → KeyboardArrowLeft-nUGbVivG.js} +1 -1
- package/build/modules/frontend/build/assets/{PictureAsPdfOutlined-HbiH_Q-c.js → PictureAsPdfOutlined-BKzXxbqU.js} +1 -1
- package/build/modules/frontend/build/assets/{Refresh-B8TqdmHB.js → Refresh-6IBmzTpL.js} +1 -1
- package/build/modules/frontend/build/assets/emitters-1aP5uqiT.js +1 -0
- package/build/modules/frontend/build/assets/hasRouteMatch-Bw2df_bl.js +1 -0
- package/build/modules/frontend/build/assets/{html2canvas-DljqBlXP.js → html2canvas-731slHaR.js} +1 -1
- package/build/modules/frontend/build/assets/{index-Bg-hgDXg.js → index-BFZbztqX.js} +1 -1
- package/build/modules/frontend/build/assets/{index-CJY9g0ao.js → index-BgpdZ4rO.js} +1 -1
- package/build/modules/frontend/build/assets/{index-dcGK7g_Z.js → index-CZUmXlNR.js} +1 -1
- package/build/modules/frontend/build/assets/{index-BdVXoDcb.js → index-CljWW6CQ.js} +1 -1
- package/build/modules/frontend/build/assets/index-Cpcp7B0Y.js +1 -0
- package/build/modules/frontend/build/assets/{index-VbqABn7v.js → index-DVsJHggN.js} +1 -1
- package/build/modules/frontend/build/assets/{index-DpvQhidl.js → index-Dbf0lzpr.js} +1 -1
- package/build/modules/frontend/build/assets/{index-Qr2GaVV1.js → index-DbkxgA90.js} +1 -1
- package/build/modules/frontend/build/assets/{index-cETv4rVS.js → index-Di2oEk8q.js} +1 -1
- package/build/modules/frontend/build/assets/{index-HAAb1Hoc.js → index-DtUu3BzB.js} +1 -1
- package/build/modules/frontend/build/assets/{index-CtMweBSG.js → index-DywLUAcD.js} +1 -1
- package/build/modules/frontend/build/assets/{index-DP0KiPHM.js → index-GZdKxtUQ.js} +1 -1
- package/build/modules/frontend/build/assets/{index-Dj5yCZBM.js → index-is6UARFt.js} +10 -10
- package/build/modules/frontend/build/assets/{index.es-BNKwZTfP.js → index.es-CShnY6Uk.js} +1 -1
- package/build/modules/frontend/build/assets/{markdownit-BHwoI8cd.js → markdownit-DnS0ASYl.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/types.d.ts +13 -0
- package/build/modules/frontend/build/assets/emitters-CSLwhjBD.js +0 -1
- package/build/modules/frontend/build/assets/hasRouteMatch-CikI4OQa.js +0 -1
- package/build/modules/frontend/build/assets/index-0QTAHHmG.js +0 -1
package/build/index.cjs
CHANGED
|
@@ -83,6 +83,7 @@ const mockServices$1 = {
|
|
|
83
83
|
heatMockService: Symbol("heatMockService"),
|
|
84
84
|
performanceMockService: Symbol("performanceMockService"),
|
|
85
85
|
environmentMockService: Symbol("environmentMockService"),
|
|
86
|
+
setupMockService: Symbol("setupMockService"),
|
|
86
87
|
};
|
|
87
88
|
const viewServices$1 = {
|
|
88
89
|
notificationViewService: Symbol("notificationViewService"),
|
|
@@ -96,6 +97,7 @@ const viewServices$1 = {
|
|
|
96
97
|
heatViewService: Symbol("heatViewService"),
|
|
97
98
|
performanceViewService: Symbol("performanceViewService"),
|
|
98
99
|
environmentViewService: Symbol("environmentViewService"),
|
|
100
|
+
setupViewService: Symbol("setupViewService"),
|
|
99
101
|
};
|
|
100
102
|
const TYPES = {
|
|
101
103
|
...baseServices$1,
|
|
@@ -776,10 +778,10 @@ class SignalMockService {
|
|
|
776
778
|
}
|
|
777
779
|
}
|
|
778
780
|
|
|
779
|
-
const MOCK_DATA_PATH$
|
|
781
|
+
const MOCK_DATA_PATH$3 = "./mock/heat.json";
|
|
780
782
|
const MOCK_REPORT_PATH$1 = "./mock/heat-report.md";
|
|
781
783
|
const READ_HEAT_DATA_FN = functoolsKit.singleshot(async () => {
|
|
782
|
-
const data = await fs.readFile(MOCK_DATA_PATH$
|
|
784
|
+
const data = await fs.readFile(MOCK_DATA_PATH$3, "utf-8");
|
|
783
785
|
return JSON.parse(data);
|
|
784
786
|
});
|
|
785
787
|
const READ_HEAT_REPORT_FN = functoolsKit.singleshot(async () => {
|
|
@@ -1848,10 +1850,10 @@ class LiveMetaService {
|
|
|
1848
1850
|
}
|
|
1849
1851
|
}
|
|
1850
1852
|
|
|
1851
|
-
const MOCK_DATA_PATH$
|
|
1853
|
+
const MOCK_DATA_PATH$2 = "./mock/performance.json";
|
|
1852
1854
|
const MOCK_REPORT_PATH = "./mock/performance-report.md";
|
|
1853
1855
|
const READ_PERFORMANCE_DATA_FN = functoolsKit.singleshot(async () => {
|
|
1854
|
-
const data = await fs.readFile(MOCK_DATA_PATH$
|
|
1856
|
+
const data = await fs.readFile(MOCK_DATA_PATH$2, "utf-8");
|
|
1855
1857
|
return JSON.parse(data);
|
|
1856
1858
|
});
|
|
1857
1859
|
const READ_PERFORMANCE_REPORT_FN = functoolsKit.singleshot(async () => {
|
|
@@ -1871,9 +1873,9 @@ class PerformanceMockService {
|
|
|
1871
1873
|
}
|
|
1872
1874
|
}
|
|
1873
1875
|
|
|
1874
|
-
const MOCK_DATA_PATH = "./mock/environment.json";
|
|
1876
|
+
const MOCK_DATA_PATH$1 = "./mock/environment.json";
|
|
1875
1877
|
const READ_ENVIRONMENT_DATA_FN = functoolsKit.singleshot(async () => {
|
|
1876
|
-
const data = await fs.readFile(MOCK_DATA_PATH, "utf-8");
|
|
1878
|
+
const data = await fs.readFile(MOCK_DATA_PATH$1, "utf-8");
|
|
1877
1879
|
return JSON.parse(data);
|
|
1878
1880
|
});
|
|
1879
1881
|
class EnvironmentMockService {
|
|
@@ -1886,6 +1888,21 @@ class EnvironmentMockService {
|
|
|
1886
1888
|
}
|
|
1887
1889
|
}
|
|
1888
1890
|
|
|
1891
|
+
const MOCK_DATA_PATH = "./mock/setup.json";
|
|
1892
|
+
const READ_SETUP_DATA_FN = functoolsKit.singleshot(async () => {
|
|
1893
|
+
const data = await fs.readFile(MOCK_DATA_PATH, "utf-8");
|
|
1894
|
+
return JSON.parse(data);
|
|
1895
|
+
});
|
|
1896
|
+
class SetupMockService {
|
|
1897
|
+
constructor() {
|
|
1898
|
+
this.loggerService = inject(TYPES.loggerService);
|
|
1899
|
+
this.getSetupData = async () => {
|
|
1900
|
+
this.loggerService.log("setupMockService getSetupData");
|
|
1901
|
+
return await READ_SETUP_DATA_FN();
|
|
1902
|
+
};
|
|
1903
|
+
}
|
|
1904
|
+
}
|
|
1905
|
+
|
|
1889
1906
|
class PerformanceViewService {
|
|
1890
1907
|
constructor() {
|
|
1891
1908
|
this.loggerService = inject(TYPES.loggerService);
|
|
@@ -1959,6 +1976,57 @@ class EnvironmentViewService {
|
|
|
1959
1976
|
}
|
|
1960
1977
|
}
|
|
1961
1978
|
|
|
1979
|
+
const GET_MODE_FN = async () => {
|
|
1980
|
+
const [backtestTarget = null] = await backtestKit.Backtest.list();
|
|
1981
|
+
if (backtestTarget) {
|
|
1982
|
+
return "backtest";
|
|
1983
|
+
}
|
|
1984
|
+
const [liveTarget = null] = await backtestKit.Live.list();
|
|
1985
|
+
if (liveTarget) {
|
|
1986
|
+
return "live";
|
|
1987
|
+
}
|
|
1988
|
+
return "none";
|
|
1989
|
+
};
|
|
1990
|
+
class SetupViewService {
|
|
1991
|
+
constructor() {
|
|
1992
|
+
this.loggerService = inject(TYPES.loggerService);
|
|
1993
|
+
this.setupMockService = inject(TYPES.setupMockService);
|
|
1994
|
+
this.getSetupData = async () => {
|
|
1995
|
+
this.loggerService.log("setupViewService getSetupData");
|
|
1996
|
+
if (CC_ENABLE_MOCK) {
|
|
1997
|
+
return await this.setupMockService.getSetupData();
|
|
1998
|
+
}
|
|
1999
|
+
const broker_enabled = backtestKit.Broker.enable.hasValue();
|
|
2000
|
+
const dump_enabled = backtestKit.Dump.enable.hasValue();
|
|
2001
|
+
const markdown_enabled = backtestKit.Markdown.enable.hasValue();
|
|
2002
|
+
const memory_enabled = backtestKit.Memory.enable.hasValue();
|
|
2003
|
+
const notification_enabled = backtestKit.Notification.enable.hasValue();
|
|
2004
|
+
const recent_enabled = backtestKit.Recent.enable.hasValue();
|
|
2005
|
+
const report_enabled = backtestKit.Report.enable.hasValue();
|
|
2006
|
+
const state_enabled = backtestKit.State.enable.hasValue();
|
|
2007
|
+
const storage_enabled = backtestKit.Storage.enable.hasValue();
|
|
2008
|
+
const running_mode = await GET_MODE_FN();
|
|
2009
|
+
const config = await backtestKit.getConfig();
|
|
2010
|
+
const enable_long = config.CC_ENABLE_LONG_SIGNAL;
|
|
2011
|
+
const enable_short = config.CC_ENABLE_SHORT_SIGNAL;
|
|
2012
|
+
return {
|
|
2013
|
+
broker_enabled,
|
|
2014
|
+
dump_enabled,
|
|
2015
|
+
markdown_enabled,
|
|
2016
|
+
memory_enabled,
|
|
2017
|
+
notification_enabled,
|
|
2018
|
+
recent_enabled,
|
|
2019
|
+
report_enabled,
|
|
2020
|
+
state_enabled,
|
|
2021
|
+
storage_enabled,
|
|
2022
|
+
running_mode,
|
|
2023
|
+
enable_long,
|
|
2024
|
+
enable_short,
|
|
2025
|
+
};
|
|
2026
|
+
};
|
|
2027
|
+
}
|
|
2028
|
+
}
|
|
2029
|
+
|
|
1962
2030
|
{
|
|
1963
2031
|
provide(TYPES.loggerService, () => new LoggerService());
|
|
1964
2032
|
provide(TYPES.exchangeService, () => new ExchangeService());
|
|
@@ -1984,6 +2052,7 @@ class EnvironmentViewService {
|
|
|
1984
2052
|
provide(TYPES.heatMockService, () => new HeatMockService());
|
|
1985
2053
|
provide(TYPES.performanceMockService, () => new PerformanceMockService());
|
|
1986
2054
|
provide(TYPES.environmentMockService, () => new EnvironmentMockService());
|
|
2055
|
+
provide(TYPES.setupMockService, () => new SetupMockService());
|
|
1987
2056
|
}
|
|
1988
2057
|
{
|
|
1989
2058
|
provide(TYPES.notificationViewService, () => new NotificationViewService());
|
|
@@ -1997,6 +2066,7 @@ class EnvironmentViewService {
|
|
|
1997
2066
|
provide(TYPES.heatViewService, () => new HeatViewService());
|
|
1998
2067
|
provide(TYPES.performanceViewService, () => new PerformanceViewService());
|
|
1999
2068
|
provide(TYPES.environmentViewService, () => new EnvironmentViewService());
|
|
2069
|
+
provide(TYPES.setupViewService, () => new SetupViewService());
|
|
2000
2070
|
}
|
|
2001
2071
|
|
|
2002
2072
|
const baseServices = {
|
|
@@ -2024,6 +2094,7 @@ const mockServices = {
|
|
|
2024
2094
|
heatMockService: inject(TYPES.heatMockService),
|
|
2025
2095
|
performanceMockService: inject(TYPES.performanceMockService),
|
|
2026
2096
|
environmentMockService: inject(TYPES.environmentMockService),
|
|
2097
|
+
setupMockService: inject(TYPES.setupMockService),
|
|
2027
2098
|
};
|
|
2028
2099
|
const viewServices = {
|
|
2029
2100
|
notificationViewService: inject(TYPES.notificationViewService),
|
|
@@ -2037,6 +2108,7 @@ const viewServices = {
|
|
|
2037
2108
|
heatViewService: inject(TYPES.heatViewService),
|
|
2038
2109
|
performanceViewService: inject(TYPES.performanceViewService),
|
|
2039
2110
|
environmentViewService: inject(TYPES.environmentViewService),
|
|
2111
|
+
setupViewService: inject(TYPES.setupViewService),
|
|
2040
2112
|
};
|
|
2041
2113
|
const ioc = {
|
|
2042
2114
|
...baseServices,
|
|
@@ -2050,6 +2122,35 @@ init();
|
|
|
2050
2122
|
const router$a = Router({
|
|
2051
2123
|
params: true,
|
|
2052
2124
|
});
|
|
2125
|
+
// SetupMockService endpoints
|
|
2126
|
+
router$a.post("/api/v1/mock/setup_data", async (req, res) => {
|
|
2127
|
+
try {
|
|
2128
|
+
const request = await micro.json(req);
|
|
2129
|
+
const { requestId, serviceName } = request;
|
|
2130
|
+
const data = await ioc.setupMockService.getSetupData();
|
|
2131
|
+
const result = {
|
|
2132
|
+
data,
|
|
2133
|
+
status: "ok",
|
|
2134
|
+
error: "",
|
|
2135
|
+
requestId,
|
|
2136
|
+
serviceName,
|
|
2137
|
+
};
|
|
2138
|
+
ioc.loggerService.log("/api/v1/mock/setup_data ok", {
|
|
2139
|
+
request,
|
|
2140
|
+
result: omit(result, "data"),
|
|
2141
|
+
});
|
|
2142
|
+
return await micro.send(res, 200, result);
|
|
2143
|
+
}
|
|
2144
|
+
catch (error) {
|
|
2145
|
+
ioc.loggerService.log("/api/v1/mock/setup_data error", {
|
|
2146
|
+
error: functoolsKit.errorData(error),
|
|
2147
|
+
});
|
|
2148
|
+
return await micro.send(res, 200, {
|
|
2149
|
+
status: "error",
|
|
2150
|
+
error: functoolsKit.getErrorMessage(error),
|
|
2151
|
+
});
|
|
2152
|
+
}
|
|
2153
|
+
});
|
|
2053
2154
|
// ExchangeMockService endpoints
|
|
2054
2155
|
router$a.post("/api/v1/mock/candles_signal", async (req, res) => {
|
|
2055
2156
|
try {
|
|
@@ -2751,6 +2852,35 @@ router$a.post("/api/v1/mock/environment_data", async (req, res) => {
|
|
|
2751
2852
|
const router$9 = Router({
|
|
2752
2853
|
params: true,
|
|
2753
2854
|
});
|
|
2855
|
+
// SetupViewService endpoints
|
|
2856
|
+
router$9.post("/api/v1/view/setup_data", async (req, res) => {
|
|
2857
|
+
try {
|
|
2858
|
+
const request = await micro.json(req);
|
|
2859
|
+
const { requestId, serviceName } = request;
|
|
2860
|
+
const data = await ioc.setupViewService.getSetupData();
|
|
2861
|
+
const result = {
|
|
2862
|
+
data,
|
|
2863
|
+
status: "ok",
|
|
2864
|
+
error: "",
|
|
2865
|
+
requestId,
|
|
2866
|
+
serviceName,
|
|
2867
|
+
};
|
|
2868
|
+
ioc.loggerService.log("/api/v1/view/setup_data ok", {
|
|
2869
|
+
request,
|
|
2870
|
+
result: omit(result, "data"),
|
|
2871
|
+
});
|
|
2872
|
+
return await micro.send(res, 200, result);
|
|
2873
|
+
}
|
|
2874
|
+
catch (error) {
|
|
2875
|
+
ioc.loggerService.log("/api/v1/view/setup_data error", {
|
|
2876
|
+
error: functoolsKit.errorData(error),
|
|
2877
|
+
});
|
|
2878
|
+
return await micro.send(res, 200, {
|
|
2879
|
+
status: "error",
|
|
2880
|
+
error: functoolsKit.getErrorMessage(error),
|
|
2881
|
+
});
|
|
2882
|
+
}
|
|
2883
|
+
});
|
|
2754
2884
|
// ExchangeViewService endpoints
|
|
2755
2885
|
router$9.post("/api/v1/view/candles_signal", async (req, res) => {
|
|
2756
2886
|
try {
|
package/build/index.mjs
CHANGED
|
@@ -6,7 +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 { alignToInterval, Exchange, listExchangeSchema, Backtest, Live, Notification, Storage, Log, lib, Heat, Strategy, Breakeven, Risk, Partial, HighestProfit, MaxDrawdown, Schedule, Performance, Sync, Walker, StorageLive, StorageBacktest } from 'backtest-kit';
|
|
9
|
+
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
10
|
import fs, { readdir, readFile } from 'fs/promises';
|
|
11
11
|
import path, { join, dirname } from 'path';
|
|
12
12
|
import mime from 'mime-types';
|
|
@@ -80,6 +80,7 @@ const mockServices$1 = {
|
|
|
80
80
|
heatMockService: Symbol("heatMockService"),
|
|
81
81
|
performanceMockService: Symbol("performanceMockService"),
|
|
82
82
|
environmentMockService: Symbol("environmentMockService"),
|
|
83
|
+
setupMockService: Symbol("setupMockService"),
|
|
83
84
|
};
|
|
84
85
|
const viewServices$1 = {
|
|
85
86
|
notificationViewService: Symbol("notificationViewService"),
|
|
@@ -93,6 +94,7 @@ const viewServices$1 = {
|
|
|
93
94
|
heatViewService: Symbol("heatViewService"),
|
|
94
95
|
performanceViewService: Symbol("performanceViewService"),
|
|
95
96
|
environmentViewService: Symbol("environmentViewService"),
|
|
97
|
+
setupViewService: Symbol("setupViewService"),
|
|
96
98
|
};
|
|
97
99
|
const TYPES = {
|
|
98
100
|
...baseServices$1,
|
|
@@ -773,10 +775,10 @@ class SignalMockService {
|
|
|
773
775
|
}
|
|
774
776
|
}
|
|
775
777
|
|
|
776
|
-
const MOCK_DATA_PATH$
|
|
778
|
+
const MOCK_DATA_PATH$3 = "./mock/heat.json";
|
|
777
779
|
const MOCK_REPORT_PATH$1 = "./mock/heat-report.md";
|
|
778
780
|
const READ_HEAT_DATA_FN = singleshot(async () => {
|
|
779
|
-
const data = await fs.readFile(MOCK_DATA_PATH$
|
|
781
|
+
const data = await fs.readFile(MOCK_DATA_PATH$3, "utf-8");
|
|
780
782
|
return JSON.parse(data);
|
|
781
783
|
});
|
|
782
784
|
const READ_HEAT_REPORT_FN = singleshot(async () => {
|
|
@@ -1845,10 +1847,10 @@ class LiveMetaService {
|
|
|
1845
1847
|
}
|
|
1846
1848
|
}
|
|
1847
1849
|
|
|
1848
|
-
const MOCK_DATA_PATH$
|
|
1850
|
+
const MOCK_DATA_PATH$2 = "./mock/performance.json";
|
|
1849
1851
|
const MOCK_REPORT_PATH = "./mock/performance-report.md";
|
|
1850
1852
|
const READ_PERFORMANCE_DATA_FN = singleshot(async () => {
|
|
1851
|
-
const data = await fs.readFile(MOCK_DATA_PATH$
|
|
1853
|
+
const data = await fs.readFile(MOCK_DATA_PATH$2, "utf-8");
|
|
1852
1854
|
return JSON.parse(data);
|
|
1853
1855
|
});
|
|
1854
1856
|
const READ_PERFORMANCE_REPORT_FN = singleshot(async () => {
|
|
@@ -1868,9 +1870,9 @@ class PerformanceMockService {
|
|
|
1868
1870
|
}
|
|
1869
1871
|
}
|
|
1870
1872
|
|
|
1871
|
-
const MOCK_DATA_PATH = "./mock/environment.json";
|
|
1873
|
+
const MOCK_DATA_PATH$1 = "./mock/environment.json";
|
|
1872
1874
|
const READ_ENVIRONMENT_DATA_FN = singleshot(async () => {
|
|
1873
|
-
const data = await fs.readFile(MOCK_DATA_PATH, "utf-8");
|
|
1875
|
+
const data = await fs.readFile(MOCK_DATA_PATH$1, "utf-8");
|
|
1874
1876
|
return JSON.parse(data);
|
|
1875
1877
|
});
|
|
1876
1878
|
class EnvironmentMockService {
|
|
@@ -1883,6 +1885,21 @@ class EnvironmentMockService {
|
|
|
1883
1885
|
}
|
|
1884
1886
|
}
|
|
1885
1887
|
|
|
1888
|
+
const MOCK_DATA_PATH = "./mock/setup.json";
|
|
1889
|
+
const READ_SETUP_DATA_FN = singleshot(async () => {
|
|
1890
|
+
const data = await fs.readFile(MOCK_DATA_PATH, "utf-8");
|
|
1891
|
+
return JSON.parse(data);
|
|
1892
|
+
});
|
|
1893
|
+
class SetupMockService {
|
|
1894
|
+
constructor() {
|
|
1895
|
+
this.loggerService = inject(TYPES.loggerService);
|
|
1896
|
+
this.getSetupData = async () => {
|
|
1897
|
+
this.loggerService.log("setupMockService getSetupData");
|
|
1898
|
+
return await READ_SETUP_DATA_FN();
|
|
1899
|
+
};
|
|
1900
|
+
}
|
|
1901
|
+
}
|
|
1902
|
+
|
|
1886
1903
|
class PerformanceViewService {
|
|
1887
1904
|
constructor() {
|
|
1888
1905
|
this.loggerService = inject(TYPES.loggerService);
|
|
@@ -1956,6 +1973,57 @@ class EnvironmentViewService {
|
|
|
1956
1973
|
}
|
|
1957
1974
|
}
|
|
1958
1975
|
|
|
1976
|
+
const GET_MODE_FN = async () => {
|
|
1977
|
+
const [backtestTarget = null] = await Backtest.list();
|
|
1978
|
+
if (backtestTarget) {
|
|
1979
|
+
return "backtest";
|
|
1980
|
+
}
|
|
1981
|
+
const [liveTarget = null] = await Live.list();
|
|
1982
|
+
if (liveTarget) {
|
|
1983
|
+
return "live";
|
|
1984
|
+
}
|
|
1985
|
+
return "none";
|
|
1986
|
+
};
|
|
1987
|
+
class SetupViewService {
|
|
1988
|
+
constructor() {
|
|
1989
|
+
this.loggerService = inject(TYPES.loggerService);
|
|
1990
|
+
this.setupMockService = inject(TYPES.setupMockService);
|
|
1991
|
+
this.getSetupData = async () => {
|
|
1992
|
+
this.loggerService.log("setupViewService getSetupData");
|
|
1993
|
+
if (CC_ENABLE_MOCK) {
|
|
1994
|
+
return await this.setupMockService.getSetupData();
|
|
1995
|
+
}
|
|
1996
|
+
const broker_enabled = Broker.enable.hasValue();
|
|
1997
|
+
const dump_enabled = Dump.enable.hasValue();
|
|
1998
|
+
const markdown_enabled = Markdown.enable.hasValue();
|
|
1999
|
+
const memory_enabled = Memory.enable.hasValue();
|
|
2000
|
+
const notification_enabled = Notification.enable.hasValue();
|
|
2001
|
+
const recent_enabled = Recent.enable.hasValue();
|
|
2002
|
+
const report_enabled = Report.enable.hasValue();
|
|
2003
|
+
const state_enabled = State.enable.hasValue();
|
|
2004
|
+
const storage_enabled = Storage.enable.hasValue();
|
|
2005
|
+
const running_mode = await GET_MODE_FN();
|
|
2006
|
+
const config = await getConfig();
|
|
2007
|
+
const enable_long = config.CC_ENABLE_LONG_SIGNAL;
|
|
2008
|
+
const enable_short = config.CC_ENABLE_SHORT_SIGNAL;
|
|
2009
|
+
return {
|
|
2010
|
+
broker_enabled,
|
|
2011
|
+
dump_enabled,
|
|
2012
|
+
markdown_enabled,
|
|
2013
|
+
memory_enabled,
|
|
2014
|
+
notification_enabled,
|
|
2015
|
+
recent_enabled,
|
|
2016
|
+
report_enabled,
|
|
2017
|
+
state_enabled,
|
|
2018
|
+
storage_enabled,
|
|
2019
|
+
running_mode,
|
|
2020
|
+
enable_long,
|
|
2021
|
+
enable_short,
|
|
2022
|
+
};
|
|
2023
|
+
};
|
|
2024
|
+
}
|
|
2025
|
+
}
|
|
2026
|
+
|
|
1959
2027
|
{
|
|
1960
2028
|
provide(TYPES.loggerService, () => new LoggerService());
|
|
1961
2029
|
provide(TYPES.exchangeService, () => new ExchangeService());
|
|
@@ -1981,6 +2049,7 @@ class EnvironmentViewService {
|
|
|
1981
2049
|
provide(TYPES.heatMockService, () => new HeatMockService());
|
|
1982
2050
|
provide(TYPES.performanceMockService, () => new PerformanceMockService());
|
|
1983
2051
|
provide(TYPES.environmentMockService, () => new EnvironmentMockService());
|
|
2052
|
+
provide(TYPES.setupMockService, () => new SetupMockService());
|
|
1984
2053
|
}
|
|
1985
2054
|
{
|
|
1986
2055
|
provide(TYPES.notificationViewService, () => new NotificationViewService());
|
|
@@ -1994,6 +2063,7 @@ class EnvironmentViewService {
|
|
|
1994
2063
|
provide(TYPES.heatViewService, () => new HeatViewService());
|
|
1995
2064
|
provide(TYPES.performanceViewService, () => new PerformanceViewService());
|
|
1996
2065
|
provide(TYPES.environmentViewService, () => new EnvironmentViewService());
|
|
2066
|
+
provide(TYPES.setupViewService, () => new SetupViewService());
|
|
1997
2067
|
}
|
|
1998
2068
|
|
|
1999
2069
|
const baseServices = {
|
|
@@ -2021,6 +2091,7 @@ const mockServices = {
|
|
|
2021
2091
|
heatMockService: inject(TYPES.heatMockService),
|
|
2022
2092
|
performanceMockService: inject(TYPES.performanceMockService),
|
|
2023
2093
|
environmentMockService: inject(TYPES.environmentMockService),
|
|
2094
|
+
setupMockService: inject(TYPES.setupMockService),
|
|
2024
2095
|
};
|
|
2025
2096
|
const viewServices = {
|
|
2026
2097
|
notificationViewService: inject(TYPES.notificationViewService),
|
|
@@ -2034,6 +2105,7 @@ const viewServices = {
|
|
|
2034
2105
|
heatViewService: inject(TYPES.heatViewService),
|
|
2035
2106
|
performanceViewService: inject(TYPES.performanceViewService),
|
|
2036
2107
|
environmentViewService: inject(TYPES.environmentViewService),
|
|
2108
|
+
setupViewService: inject(TYPES.setupViewService),
|
|
2037
2109
|
};
|
|
2038
2110
|
const ioc = {
|
|
2039
2111
|
...baseServices,
|
|
@@ -2047,6 +2119,35 @@ init();
|
|
|
2047
2119
|
const router$a = Router({
|
|
2048
2120
|
params: true,
|
|
2049
2121
|
});
|
|
2122
|
+
// SetupMockService endpoints
|
|
2123
|
+
router$a.post("/api/v1/mock/setup_data", async (req, res) => {
|
|
2124
|
+
try {
|
|
2125
|
+
const request = await micro.json(req);
|
|
2126
|
+
const { requestId, serviceName } = request;
|
|
2127
|
+
const data = await ioc.setupMockService.getSetupData();
|
|
2128
|
+
const result = {
|
|
2129
|
+
data,
|
|
2130
|
+
status: "ok",
|
|
2131
|
+
error: "",
|
|
2132
|
+
requestId,
|
|
2133
|
+
serviceName,
|
|
2134
|
+
};
|
|
2135
|
+
ioc.loggerService.log("/api/v1/mock/setup_data ok", {
|
|
2136
|
+
request,
|
|
2137
|
+
result: omit(result, "data"),
|
|
2138
|
+
});
|
|
2139
|
+
return await micro.send(res, 200, result);
|
|
2140
|
+
}
|
|
2141
|
+
catch (error) {
|
|
2142
|
+
ioc.loggerService.log("/api/v1/mock/setup_data error", {
|
|
2143
|
+
error: errorData(error),
|
|
2144
|
+
});
|
|
2145
|
+
return await micro.send(res, 200, {
|
|
2146
|
+
status: "error",
|
|
2147
|
+
error: getErrorMessage(error),
|
|
2148
|
+
});
|
|
2149
|
+
}
|
|
2150
|
+
});
|
|
2050
2151
|
// ExchangeMockService endpoints
|
|
2051
2152
|
router$a.post("/api/v1/mock/candles_signal", async (req, res) => {
|
|
2052
2153
|
try {
|
|
@@ -2748,6 +2849,35 @@ router$a.post("/api/v1/mock/environment_data", async (req, res) => {
|
|
|
2748
2849
|
const router$9 = Router({
|
|
2749
2850
|
params: true,
|
|
2750
2851
|
});
|
|
2852
|
+
// SetupViewService endpoints
|
|
2853
|
+
router$9.post("/api/v1/view/setup_data", async (req, res) => {
|
|
2854
|
+
try {
|
|
2855
|
+
const request = await micro.json(req);
|
|
2856
|
+
const { requestId, serviceName } = request;
|
|
2857
|
+
const data = await ioc.setupViewService.getSetupData();
|
|
2858
|
+
const result = {
|
|
2859
|
+
data,
|
|
2860
|
+
status: "ok",
|
|
2861
|
+
error: "",
|
|
2862
|
+
requestId,
|
|
2863
|
+
serviceName,
|
|
2864
|
+
};
|
|
2865
|
+
ioc.loggerService.log("/api/v1/view/setup_data ok", {
|
|
2866
|
+
request,
|
|
2867
|
+
result: omit(result, "data"),
|
|
2868
|
+
});
|
|
2869
|
+
return await micro.send(res, 200, result);
|
|
2870
|
+
}
|
|
2871
|
+
catch (error) {
|
|
2872
|
+
ioc.loggerService.log("/api/v1/view/setup_data error", {
|
|
2873
|
+
error: errorData(error),
|
|
2874
|
+
});
|
|
2875
|
+
return await micro.send(res, 200, {
|
|
2876
|
+
status: "error",
|
|
2877
|
+
error: getErrorMessage(error),
|
|
2878
|
+
});
|
|
2879
|
+
}
|
|
2880
|
+
});
|
|
2751
2881
|
// ExchangeViewService endpoints
|
|
2752
2882
|
router$9.post("/api/v1/view/candles_signal", async (req, res) => {
|
|
2753
2883
|
try {
|