@backtest-kit/ui 14.1.0 → 15.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 (44) hide show
  1. package/README.md +273 -273
  2. package/build/index.cjs +28 -8
  3. package/build/index.mjs +28 -8
  4. package/build/modules/frontend/build/3rdparty/ace_1.4.12/ace.js +21337 -21337
  5. package/build/modules/frontend/build/3rdparty/ace_1.4.12/mode-javascript.js +797 -797
  6. package/build/modules/frontend/build/3rdparty/ace_1.4.12/theme-chrome.js +137 -137
  7. package/build/modules/frontend/build/3rdparty/ace_1.4.12/theme-twilight.js +115 -115
  8. package/build/modules/frontend/build/3rdparty/ace_1.4.12/worker-javascript.js +15012 -15012
  9. package/build/modules/frontend/build/3rdparty/qfchart_0.8.7/echarts.min.js +45 -45
  10. package/build/modules/frontend/build/assets/{Article-CpU7DBcT.js → Article-BbLUOulC.js} +1 -1
  11. package/build/modules/frontend/build/assets/{Background-DISIt7NA.js → Background-CDTP9p37.js} +1 -1
  12. package/build/modules/frontend/build/assets/{IconPhoto-Czod_jkW.js → IconPhoto-HzRJjN64.js} +1 -1
  13. package/build/modules/frontend/build/assets/{KeyboardArrowLeft-BUZ_pXI5.js → KeyboardArrowLeft-CUCkEYvJ.js} +1 -1
  14. package/build/modules/frontend/build/assets/{PictureAsPdfOutlined-BgifaQ0L.js → PictureAsPdfOutlined-C-gvxvB-.js} +1 -1
  15. package/build/modules/frontend/build/assets/{Refresh-3cixHjvW.js → Refresh-CaTTs-6v.js} +1 -1
  16. package/build/modules/frontend/build/assets/emitters-8dLQtS6C.js +1 -0
  17. package/build/modules/frontend/build/assets/{hasRouteMatch-CqJJG3sx.js → hasRouteMatch-SXqr3R6f.js} +1 -1
  18. package/build/modules/frontend/build/assets/{html2canvas-Ds2vwzb-.js → html2canvas-87cBQTS1.js} +1 -1
  19. package/build/modules/frontend/build/assets/{index-BMq2INDq.js → index-B0S0LDjw.js} +1 -1
  20. package/build/modules/frontend/build/assets/index-B7aH-J6E.js +1 -0
  21. package/build/modules/frontend/build/assets/index-BCnA_-zg.js +1 -0
  22. package/build/modules/frontend/build/assets/index-BPxBQtFc.js +1 -0
  23. package/build/modules/frontend/build/assets/{index-BI3k7b1T.js → index-BnHudNsk.js} +161 -67
  24. package/build/modules/frontend/build/assets/{index-C8oIDQdm.js → index-Bo3Xqg5b.js} +1 -1
  25. package/build/modules/frontend/build/assets/{index-CA19hrNH.js → index-C-BaXIVA.js} +1 -1
  26. package/build/modules/frontend/build/assets/{index-ruSh1u75.js → index-Cb6Ol44V.js} +1 -1
  27. package/build/modules/frontend/build/assets/index-Cd-Fw809.js +1 -0
  28. package/build/modules/frontend/build/assets/index-DC4vTBIw.js +1 -0
  29. package/build/modules/frontend/build/assets/index-HwaagyGP.js +1 -0
  30. package/build/modules/frontend/build/assets/{index-B1plXuf6.js → index-HyrIJdm0.js} +1 -1
  31. package/build/modules/frontend/build/assets/index-mYQFfqbM.js +1 -0
  32. package/build/modules/frontend/build/assets/{index.es-DPOJOdbj.js → index.es-B5F8LBE-.js} +1 -1
  33. package/build/modules/frontend/build/assets/{markdownit-C4X6Sysk.js → markdownit-BjYdF6dQ.js} +1 -1
  34. package/build/modules/frontend/build/index.html +87 -87
  35. package/build/modules/frontend/build/manifest.json +23 -23
  36. package/package.json +118 -118
  37. package/build/modules/frontend/build/assets/emitters-DmNf0ttF.js +0 -1
  38. package/build/modules/frontend/build/assets/index-BYiuApxW.js +0 -1
  39. package/build/modules/frontend/build/assets/index-BYnSX2YX.js +0 -1
  40. package/build/modules/frontend/build/assets/index-Cqt7co-7.js +0 -1
  41. package/build/modules/frontend/build/assets/index-DJ7B8Och.js +0 -1
  42. package/build/modules/frontend/build/assets/index-DwO4-4_F.js +0 -1
  43. package/build/modules/frontend/build/assets/index-VxkdhxAi.js +0 -1
  44. package/build/modules/frontend/build/assets/index-pxXO4P81.js +0 -1
package/build/index.mjs CHANGED
@@ -41,6 +41,15 @@ router$c.get("/api/v1/health/health_check", async (req, res) => {
41
41
  });
42
42
  });
43
43
 
44
+ const omitValue = (value, keys) => {
45
+ if (isObject(value)) {
46
+ return omit(value, ...keys);
47
+ }
48
+ if (Array.isArray(value)) {
49
+ return value.map((item) => omitValue(item, keys));
50
+ }
51
+ return value;
52
+ };
44
53
  function omit(obj, ...keys) {
45
54
  const keySet = new Set(keys);
46
55
  return Object.keys(obj).reduce((acc, key) => {
@@ -48,12 +57,7 @@ function omit(obj, ...keys) {
48
57
  return acc;
49
58
  }
50
59
  const value = obj[key];
51
- if (isObject(value)) {
52
- acc[key] = omit(value, ...keys);
53
- }
54
- else {
55
- acc[key] = value;
56
- }
60
+ acc[key] = omitValue(value, keys);
57
61
  return acc;
58
62
  }, {});
59
63
  }
@@ -1643,7 +1647,13 @@ class ExplorerViewService {
1643
1647
  if (!absPath.startsWith(dir + path.sep) && !absPath.startsWith(dir + "/") && absPath !== dir) {
1644
1648
  throw new Error(`Path is outside of dump dir: ${nodePath}`);
1645
1649
  }
1646
- return await fs.readFile(absPath, "utf-8");
1650
+ // Симлинк внутри dump может указывать наружу — сверяем реальный путь
1651
+ const realDir = await fs.realpath(dir);
1652
+ const realPath = await fs.realpath(absPath);
1653
+ if (!realPath.startsWith(realDir + path.sep) && !realPath.startsWith(realDir + "/") && realPath !== realDir) {
1654
+ throw new Error(`Path is outside of dump dir: ${nodePath}`);
1655
+ }
1656
+ return await fs.readFile(realPath, "utf-8");
1647
1657
  };
1648
1658
  this.getTree = async () => {
1649
1659
  this.loggerService.log("explorerViewService getTree");
@@ -1853,7 +1863,12 @@ class SymbolConnectionService {
1853
1863
  symbol,
1854
1864
  icon,
1855
1865
  logo: logo ?? icon,
1856
- priority: priority ?? idx,
1866
+ // -idx (not idx): with the sort's ascending-index tiebreak this keeps
1867
+ // symbols WITHOUT an explicit priority in their original list order.
1868
+ // Must match cli FrontendProviderService.MAP_SYMBOL_CONFIG_FN, which
1869
+ // feeds the same UI dropdown when it injects the symbol list itself;
1870
+ // plain `idx` reversed the fallback order relative to that path.
1871
+ priority: priority ?? -idx,
1857
1872
  displayName: displayName ?? symbol,
1858
1873
  index: idx,
1859
1874
  ...other,
@@ -5518,6 +5533,11 @@ const serveInternal = singleshot((host = CC_WWWROOT_HOST, port = CC_WWWROOT_PORT
5518
5533
  });
5519
5534
  server.addListener("error", (err) => {
5520
5535
  console.error("Server error:", err);
5536
+ // Сервер не поднялся — сбрасываем singleshot, иначе повторный serve()
5537
+ // вернёт мёртвый инстанс и слушать порт больше никто не попробует
5538
+ if (!server.listening) {
5539
+ serveInternal.clear();
5540
+ }
5521
5541
  callback && callback(err);
5522
5542
  });
5523
5543
  server.maxConnections = MAX_CONNECTIONS;