@forgecharts/sdk 1.1.27 → 1.1.29

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 (356) hide show
  1. package/dist/__tests__/backwardCompatibility.test.d.ts +14 -0
  2. package/dist/__tests__/backwardCompatibility.test.d.ts.map +1 -0
  3. package/dist/__tests__/candleInvariant.test.d.ts +20 -0
  4. package/dist/__tests__/candleInvariant.test.d.ts.map +1 -0
  5. package/dist/__tests__/public-api-surface.d.ts +13 -0
  6. package/dist/__tests__/public-api-surface.d.ts.map +1 -0
  7. package/dist/__tests__/timeframeBoundary.test.d.ts +17 -0
  8. package/dist/__tests__/timeframeBoundary.test.d.ts.map +1 -0
  9. package/dist/api/DrawingManager.d.ts +20 -0
  10. package/dist/api/DrawingManager.d.ts.map +1 -0
  11. package/dist/api/EventBus.d.ts +19 -0
  12. package/dist/api/EventBus.d.ts.map +1 -0
  13. package/dist/api/IndicatorDAG.d.ts +85 -0
  14. package/dist/api/IndicatorDAG.d.ts.map +1 -0
  15. package/dist/api/IndicatorRegistry.d.ts +22 -0
  16. package/dist/api/IndicatorRegistry.d.ts.map +1 -0
  17. package/dist/api/LayoutManager.d.ts +30 -0
  18. package/dist/api/LayoutManager.d.ts.map +1 -0
  19. package/dist/api/PaneManager.d.ts +42 -0
  20. package/dist/api/PaneManager.d.ts.map +1 -0
  21. package/dist/api/ReferenceAPI.d.ts +78 -0
  22. package/dist/api/ReferenceAPI.d.ts.map +1 -0
  23. package/dist/api/TChart.d.ts +345 -0
  24. package/dist/api/TChart.d.ts.map +1 -0
  25. package/{src/api/createChart.ts → dist/api/createChart.d.ts} +2 -7
  26. package/dist/api/createChart.d.ts.map +1 -0
  27. package/dist/api/drawing tools/fib gann menu/fibRetracement.d.ts +4 -0
  28. package/dist/api/drawing tools/fib gann menu/fibRetracement.d.ts.map +1 -0
  29. package/dist/api/drawing tools/lines menu/crossLine.d.ts +4 -0
  30. package/dist/api/drawing tools/lines menu/crossLine.d.ts.map +1 -0
  31. package/dist/api/drawing tools/lines menu/disjointChannel.d.ts +17 -0
  32. package/dist/api/drawing tools/lines menu/disjointChannel.d.ts.map +1 -0
  33. package/dist/api/drawing tools/lines menu/extendedLine.d.ts +4 -0
  34. package/dist/api/drawing tools/lines menu/extendedLine.d.ts.map +1 -0
  35. package/dist/api/drawing tools/lines menu/flatTopBottom.d.ts +4 -0
  36. package/dist/api/drawing tools/lines menu/flatTopBottom.d.ts.map +1 -0
  37. package/dist/api/drawing tools/lines menu/horizontal.d.ts +4 -0
  38. package/dist/api/drawing tools/lines menu/horizontal.d.ts.map +1 -0
  39. package/dist/api/drawing tools/lines menu/horizontalRay.d.ts +4 -0
  40. package/dist/api/drawing tools/lines menu/horizontalRay.d.ts.map +1 -0
  41. package/dist/api/drawing tools/lines menu/infoLine.d.ts +4 -0
  42. package/dist/api/drawing tools/lines menu/infoLine.d.ts.map +1 -0
  43. package/dist/api/drawing tools/lines menu/insidePitchfork.d.ts +4 -0
  44. package/dist/api/drawing tools/lines menu/insidePitchfork.d.ts.map +1 -0
  45. package/dist/api/drawing tools/lines menu/modifiedSchiffPitchfork.d.ts +4 -0
  46. package/dist/api/drawing tools/lines menu/modifiedSchiffPitchfork.d.ts.map +1 -0
  47. package/dist/api/drawing tools/lines menu/parallelChannel.d.ts +4 -0
  48. package/dist/api/drawing tools/lines menu/parallelChannel.d.ts.map +1 -0
  49. package/dist/api/drawing tools/lines menu/pitchfork.d.ts +4 -0
  50. package/dist/api/drawing tools/lines menu/pitchfork.d.ts.map +1 -0
  51. package/dist/api/drawing tools/lines menu/ray.d.ts +4 -0
  52. package/dist/api/drawing tools/lines menu/ray.d.ts.map +1 -0
  53. package/dist/api/drawing tools/lines menu/regressionTrend.d.ts +4 -0
  54. package/dist/api/drawing tools/lines menu/regressionTrend.d.ts.map +1 -0
  55. package/dist/api/drawing tools/lines menu/schiffPitchfork.d.ts +4 -0
  56. package/dist/api/drawing tools/lines menu/schiffPitchfork.d.ts.map +1 -0
  57. package/dist/api/drawing tools/lines menu/trendAngle.d.ts +4 -0
  58. package/dist/api/drawing tools/lines menu/trendAngle.d.ts.map +1 -0
  59. package/dist/api/drawing tools/lines menu/trendline.d.ts +4 -0
  60. package/dist/api/drawing tools/lines menu/trendline.d.ts.map +1 -0
  61. package/dist/api/drawing tools/lines menu/vertical.d.ts +4 -0
  62. package/dist/api/drawing tools/lines menu/vertical.d.ts.map +1 -0
  63. package/{src/api/drawing tools/pointers menu/crosshair.ts → dist/api/drawing tools/pointers menu/crosshair.d.ts } +8 -9
  64. package/dist/api/drawing tools/pointers menu/crosshair.d.ts.map +1 -0
  65. package/dist/api/drawing tools/pointers menu/cursor.d.ts +15 -0
  66. package/dist/api/drawing tools/pointers menu/cursor.d.ts.map +1 -0
  67. package/{src/api/drawing tools/pointers menu/demonstration.ts → dist/api/drawing tools/pointers menu/demonstration.d.ts } +12 -17
  68. package/dist/api/drawing tools/pointers menu/demonstration.d.ts.map +1 -0
  69. package/{src/api/drawing tools/pointers menu/dot.ts → dist/api/drawing tools/pointers menu/dot.d.ts } +10 -13
  70. package/dist/api/drawing tools/pointers menu/dot.d.ts.map +1 -0
  71. package/dist/api/drawing tools/shapes menu/rectangle.d.ts +4 -0
  72. package/dist/api/drawing tools/shapes menu/rectangle.d.ts.map +1 -0
  73. package/dist/api/drawing tools/shapes menu/text.d.ts +4 -0
  74. package/dist/api/drawing tools/shapes menu/text.d.ts.map +1 -0
  75. package/dist/api/drawingUtils.d.ts +22 -0
  76. package/dist/api/drawingUtils.d.ts.map +1 -0
  77. package/dist/core/CanvasLayer.d.ts +26 -0
  78. package/dist/core/CanvasLayer.d.ts.map +1 -0
  79. package/dist/core/Chart.d.ts +164 -0
  80. package/dist/core/Chart.d.ts.map +1 -0
  81. package/dist/core/CoordTransform.d.ts +168 -0
  82. package/dist/core/CoordTransform.d.ts.map +1 -0
  83. package/dist/core/Crosshair.d.ts +30 -0
  84. package/dist/core/Crosshair.d.ts.map +1 -0
  85. package/dist/core/IndicatorEngine.d.ts +51 -0
  86. package/dist/core/IndicatorEngine.d.ts.map +1 -0
  87. package/dist/core/InteractionManager.d.ts +197 -0
  88. package/dist/core/InteractionManager.d.ts.map +1 -0
  89. package/dist/core/PriceScale.d.ts +27 -0
  90. package/dist/core/PriceScale.d.ts.map +1 -0
  91. package/dist/core/Series.d.ts +40 -0
  92. package/dist/core/Series.d.ts.map +1 -0
  93. package/dist/core/TimeScale.d.ts +43 -0
  94. package/dist/core/TimeScale.d.ts.map +1 -0
  95. package/dist/datafeed/DatafeedConnector.d.ts +89 -0
  96. package/dist/datafeed/DatafeedConnector.d.ts.map +1 -0
  97. package/dist/engine/CandleEngine.d.ts +207 -0
  98. package/dist/engine/CandleEngine.d.ts.map +1 -0
  99. package/dist/engine/__tests__/CandleEngine.test.d.ts +2 -0
  100. package/dist/engine/__tests__/CandleEngine.test.d.ts.map +1 -0
  101. package/dist/engine/candleInvariants.d.ts +66 -0
  102. package/dist/engine/candleInvariants.d.ts.map +1 -0
  103. package/{src/engine/mergeUtils.ts → dist/engine/mergeUtils.d.ts} +15 -52
  104. package/dist/engine/mergeUtils.d.ts.map +1 -0
  105. package/dist/engine/timeframeUtils.d.ts +80 -0
  106. package/dist/engine/timeframeUtils.d.ts.map +1 -0
  107. package/dist/index.d.ts +40 -0
  108. package/dist/index.d.ts.map +1 -0
  109. package/dist/index.js +8101 -0
  110. package/dist/index.js.map +1 -0
  111. package/{src/internal.ts → dist/internal.d.ts} +1 -13
  112. package/dist/internal.d.ts.map +1 -0
  113. package/dist/internal.js +8852 -0
  114. package/dist/internal.js.map +1 -0
  115. package/dist/licensing/ChartRuntimeResolver.d.ts +233 -0
  116. package/dist/licensing/ChartRuntimeResolver.d.ts.map +1 -0
  117. package/dist/licensing/LicenseManager.d.ts +55 -0
  118. package/dist/licensing/LicenseManager.d.ts.map +1 -0
  119. package/dist/licensing/__tests__/ChartRuntimeResolver.test.d.ts +13 -0
  120. package/dist/licensing/__tests__/ChartRuntimeResolver.test.d.ts.map +1 -0
  121. package/dist/licensing/__tests__/LicenseManager.test.d.ts +12 -0
  122. package/dist/licensing/__tests__/LicenseManager.test.d.ts.map +1 -0
  123. package/dist/licensing/licenseTypes.d.ts +18 -0
  124. package/dist/licensing/licenseTypes.d.ts.map +1 -0
  125. package/dist/pine/PineCompiler.d.ts +35 -0
  126. package/dist/pine/PineCompiler.d.ts.map +1 -0
  127. package/dist/pine/diagnostics.d.ts +20 -0
  128. package/dist/pine/diagnostics.d.ts.map +1 -0
  129. package/{src/pine/index.ts → dist/pine/index.d.ts} +4 -3
  130. package/dist/pine/index.d.ts.map +1 -0
  131. package/dist/pine/pine-ast.d.ts +142 -0
  132. package/dist/pine/pine-ast.d.ts.map +1 -0
  133. package/dist/pine/pine-lexer.d.ts +41 -0
  134. package/dist/pine/pine-lexer.d.ts.map +1 -0
  135. package/dist/pine/pine-parser.d.ts +51 -0
  136. package/dist/pine/pine-parser.d.ts.map +1 -0
  137. package/dist/pine/pine-transpiler.d.ts +33 -0
  138. package/dist/pine/pine-transpiler.d.ts.map +1 -0
  139. package/dist/pixi/LayerName.d.ts +18 -0
  140. package/dist/pixi/LayerName.d.ts.map +1 -0
  141. package/dist/pixi/PixiCandlestickRenderer.d.ts +23 -0
  142. package/dist/pixi/PixiCandlestickRenderer.d.ts.map +1 -0
  143. package/dist/pixi/PixiChart.d.ts +72 -0
  144. package/dist/pixi/PixiChart.d.ts.map +1 -0
  145. package/dist/pixi/PixiCrosshairRenderer.d.ts +29 -0
  146. package/dist/pixi/PixiCrosshairRenderer.d.ts.map +1 -0
  147. package/dist/pixi/PixiDrawingRenderer.d.ts +17 -0
  148. package/dist/pixi/PixiDrawingRenderer.d.ts.map +1 -0
  149. package/dist/pixi/PixiGridRenderer.d.ts +22 -0
  150. package/dist/pixi/PixiGridRenderer.d.ts.map +1 -0
  151. package/dist/pixi/PixiLayerManager.d.ts +56 -0
  152. package/dist/pixi/PixiLayerManager.d.ts.map +1 -0
  153. package/dist/react/canvas/ChartCanvas.d.ts +85 -0
  154. package/dist/react/canvas/ChartCanvas.d.ts.map +1 -0
  155. package/dist/react/canvas/ChartContextMenu.d.ts +18 -0
  156. package/dist/react/canvas/ChartContextMenu.d.ts.map +1 -0
  157. package/dist/react/canvas/ChartSettingsDialog.d.ts +25 -0
  158. package/dist/react/canvas/ChartSettingsDialog.d.ts.map +1 -0
  159. package/dist/react/canvas/IndicatorLabel.d.ts +21 -0
  160. package/dist/react/canvas/IndicatorLabel.d.ts.map +1 -0
  161. package/dist/react/canvas/IndicatorPane.d.ts +32 -0
  162. package/dist/react/canvas/IndicatorPane.d.ts.map +1 -0
  163. package/dist/react/canvas/PointerOverlay.d.ts +23 -0
  164. package/dist/react/canvas/PointerOverlay.d.ts.map +1 -0
  165. package/dist/react/canvas/toolbars/LeftToolbar.d.ts +19 -0
  166. package/dist/react/canvas/toolbars/LeftToolbar.d.ts.map +1 -0
  167. package/dist/react/hooks/useChartCapabilities.d.ts +21 -0
  168. package/dist/react/hooks/useChartCapabilities.d.ts.map +1 -0
  169. package/{src/react/index.ts → dist/react/index.d.ts} +2 -23
  170. package/dist/react/index.d.ts.map +1 -0
  171. package/dist/react/index.js +11559 -0
  172. package/dist/react/index.js.map +1 -0
  173. package/{src/react/internal.ts → dist/react/internal.d.ts} +2 -26
  174. package/dist/react/internal.d.ts.map +1 -0
  175. package/dist/react/internal.js +12148 -0
  176. package/dist/react/internal.js.map +1 -0
  177. package/dist/react/shell/ManagedAppShell.d.ts +91 -0
  178. package/dist/react/shell/ManagedAppShell.d.ts.map +1 -0
  179. package/dist/react/trading/TradingBridge.d.ts +86 -0
  180. package/dist/react/trading/TradingBridge.d.ts.map +1 -0
  181. package/dist/react/workspace/ChartWorkspace.d.ts +73 -0
  182. package/dist/react/workspace/ChartWorkspace.d.ts.map +1 -0
  183. package/dist/react/workspace/FloatingPanel.d.ts +18 -0
  184. package/dist/react/workspace/FloatingPanel.d.ts.map +1 -0
  185. package/dist/react/workspace/IndicatorsDialog.d.ts +8 -0
  186. package/dist/react/workspace/IndicatorsDialog.d.ts.map +1 -0
  187. package/dist/react/workspace/LayoutMenu.d.ts +33 -0
  188. package/dist/react/workspace/LayoutMenu.d.ts.map +1 -0
  189. package/dist/react/workspace/SymbolSearchDialog.d.ts +10 -0
  190. package/dist/react/workspace/SymbolSearchDialog.d.ts.map +1 -0
  191. package/dist/react/workspace/TabBar.d.ts +17 -0
  192. package/dist/react/workspace/TabBar.d.ts.map +1 -0
  193. package/dist/react/workspace/toolbars/BottomToolbar.d.ts +19 -0
  194. package/dist/react/workspace/toolbars/BottomToolbar.d.ts.map +1 -0
  195. package/dist/react/workspace/toolbars/RightToolbar.d.ts +8 -0
  196. package/dist/react/workspace/toolbars/RightToolbar.d.ts.map +1 -0
  197. package/dist/react/workspace/toolbars/TopToolbar.d.ts +41 -0
  198. package/dist/react/workspace/toolbars/TopToolbar.d.ts.map +1 -0
  199. package/dist/renderers/CandlestickRenderer.d.ts +13 -0
  200. package/dist/renderers/CandlestickRenderer.d.ts.map +1 -0
  201. package/dist/renderers/HistogramRenderer.d.ts +11 -0
  202. package/dist/renderers/HistogramRenderer.d.ts.map +1 -0
  203. package/dist/renderers/LineRenderer.d.ts +12 -0
  204. package/dist/renderers/LineRenderer.d.ts.map +1 -0
  205. package/dist/theme/colors.d.ts +4 -0
  206. package/dist/theme/colors.d.ts.map +1 -0
  207. package/dist/tools/barDivergenceCheck.d.ts +120 -0
  208. package/dist/tools/barDivergenceCheck.d.ts.map +1 -0
  209. package/dist/trading/TradingOverlayStore.d.ts +86 -0
  210. package/dist/trading/TradingOverlayStore.d.ts.map +1 -0
  211. package/dist/trading/UnmanagedIngestion.d.ts +91 -0
  212. package/dist/trading/UnmanagedIngestion.d.ts.map +1 -0
  213. package/dist/trading/__tests__/ManagedTradingController.test.d.ts +18 -0
  214. package/dist/trading/__tests__/ManagedTradingController.test.d.ts.map +1 -0
  215. package/dist/trading/__tests__/TradingOverlayStore.test.d.ts +16 -0
  216. package/dist/trading/__tests__/TradingOverlayStore.test.d.ts.map +1 -0
  217. package/dist/trading/__tests__/UnmanagedIngestion.test.d.ts +16 -0
  218. package/dist/trading/__tests__/UnmanagedIngestion.test.d.ts.map +1 -0
  219. package/dist/trading/managed/ManagedTradingController.d.ts +110 -0
  220. package/dist/trading/managed/ManagedTradingController.d.ts.map +1 -0
  221. package/dist/trading/managed/managedCapabilities.d.ts +45 -0
  222. package/dist/trading/managed/managedCapabilities.d.ts.map +1 -0
  223. package/dist/trading/managed/managedTypes.d.ts +122 -0
  224. package/dist/trading/managed/managedTypes.d.ts.map +1 -0
  225. package/dist/trading/tradingTypes.d.ts +89 -0
  226. package/dist/trading/tradingTypes.d.ts.map +1 -0
  227. package/dist/tscript/TScriptIndicator.d.ts +41 -0
  228. package/dist/tscript/TScriptIndicator.d.ts.map +1 -0
  229. package/dist/tscript/ast.d.ts +89 -0
  230. package/dist/tscript/ast.d.ts.map +1 -0
  231. package/dist/tscript/lexer.d.ts +36 -0
  232. package/dist/tscript/lexer.d.ts.map +1 -0
  233. package/dist/tscript/parser.d.ts +50 -0
  234. package/dist/tscript/parser.d.ts.map +1 -0
  235. package/dist/tscript/runtime.d.ts +123 -0
  236. package/dist/tscript/runtime.d.ts.map +1 -0
  237. package/dist/tscript/series.d.ts +49 -0
  238. package/dist/tscript/series.d.ts.map +1 -0
  239. package/dist/types/IChart.d.ts +48 -0
  240. package/dist/types/IChart.d.ts.map +1 -0
  241. package/{src/types/IRenderer.ts → dist/types/IRenderer.d.ts} +2 -8
  242. package/dist/types/IRenderer.d.ts.map +1 -0
  243. package/dist/types/ISeries.d.ts +26 -0
  244. package/dist/types/ISeries.d.ts.map +1 -0
  245. package/package.json +5 -1
  246. package/src/__tests__/backwardCompatibility.test.ts +0 -191
  247. package/src/__tests__/candleInvariant.test.ts +0 -500
  248. package/src/__tests__/public-api-surface.ts +0 -76
  249. package/src/__tests__/timeframeBoundary.test.ts +0 -583
  250. package/src/api/DrawingManager.ts +0 -188
  251. package/src/api/EventBus.ts +0 -53
  252. package/src/api/IndicatorDAG.ts +0 -389
  253. package/src/api/IndicatorRegistry.ts +0 -47
  254. package/src/api/LayoutManager.ts +0 -72
  255. package/src/api/PaneManager.ts +0 -129
  256. package/src/api/ReferenceAPI.ts +0 -195
  257. package/src/api/TChart.ts +0 -881
  258. package/src/api/drawing tools/fib gann menu/fibRetracement.ts +0 -27
  259. package/src/api/drawing tools/lines menu/crossLine.ts +0 -21
  260. package/src/api/drawing tools/lines menu/disjointChannel.ts +0 -74
  261. package/src/api/drawing tools/lines menu/extendedLine.ts +0 -22
  262. package/src/api/drawing tools/lines menu/flatTopBottom.ts +0 -45
  263. package/src/api/drawing tools/lines menu/horizontal.ts +0 -24
  264. package/src/api/drawing tools/lines menu/horizontalRay.ts +0 -25
  265. package/src/api/drawing tools/lines menu/infoLine.ts +0 -127
  266. package/src/api/drawing tools/lines menu/insidePitchfork.ts +0 -21
  267. package/src/api/drawing tools/lines menu/modifiedSchiffPitchfork.ts +0 -18
  268. package/src/api/drawing tools/lines menu/parallelChannel.ts +0 -47
  269. package/src/api/drawing tools/lines menu/pitchfork.ts +0 -15
  270. package/src/api/drawing tools/lines menu/ray.ts +0 -28
  271. package/src/api/drawing tools/lines menu/regressionTrend.ts +0 -157
  272. package/src/api/drawing tools/lines menu/schiffPitchfork.ts +0 -18
  273. package/src/api/drawing tools/lines menu/trendAngle.ts +0 -64
  274. package/src/api/drawing tools/lines menu/trendline.ts +0 -16
  275. package/src/api/drawing tools/lines menu/vertical.ts +0 -16
  276. package/src/api/drawing tools/pointers menu/cursor.ts +0 -16
  277. package/src/api/drawing tools/shapes menu/rectangle.ts +0 -24
  278. package/src/api/drawing tools/shapes menu/text.ts +0 -30
  279. package/src/api/drawingUtils.ts +0 -82
  280. package/src/core/CanvasLayer.ts +0 -77
  281. package/src/core/Chart.ts +0 -917
  282. package/src/core/CoordTransform.ts +0 -282
  283. package/src/core/Crosshair.ts +0 -207
  284. package/src/core/IndicatorEngine.ts +0 -216
  285. package/src/core/InteractionManager.ts +0 -899
  286. package/src/core/PriceScale.ts +0 -133
  287. package/src/core/Series.ts +0 -132
  288. package/src/core/TimeScale.ts +0 -175
  289. package/src/datafeed/DatafeedConnector.ts +0 -300
  290. package/src/engine/CandleEngine.ts +0 -458
  291. package/src/engine/__tests__/CandleEngine.test.ts +0 -402
  292. package/src/engine/candleInvariants.ts +0 -172
  293. package/src/engine/timeframeUtils.ts +0 -118
  294. package/src/index.ts +0 -190
  295. package/src/licensing/ChartRuntimeResolver.ts +0 -380
  296. package/src/licensing/LicenseManager.ts +0 -131
  297. package/src/licensing/__tests__/ChartRuntimeResolver.test.ts +0 -207
  298. package/src/licensing/__tests__/LicenseManager.test.ts +0 -180
  299. package/src/licensing/licenseTypes.ts +0 -19
  300. package/src/pine/PineCompiler.ts +0 -68
  301. package/src/pine/diagnostics.ts +0 -30
  302. package/src/pine/pine-ast.ts +0 -163
  303. package/src/pine/pine-lexer.ts +0 -265
  304. package/src/pine/pine-parser.ts +0 -439
  305. package/src/pine/pine-transpiler.ts +0 -301
  306. package/src/pixi/LayerName.ts +0 -35
  307. package/src/pixi/PixiCandlestickRenderer.ts +0 -125
  308. package/src/pixi/PixiChart.ts +0 -425
  309. package/src/pixi/PixiCrosshairRenderer.ts +0 -134
  310. package/src/pixi/PixiDrawingRenderer.ts +0 -121
  311. package/src/pixi/PixiGridRenderer.ts +0 -136
  312. package/src/pixi/PixiLayerManager.ts +0 -102
  313. package/src/react/canvas/ChartCanvas.tsx +0 -984
  314. package/src/react/canvas/ChartContextMenu.tsx +0 -60
  315. package/src/react/canvas/ChartSettingsDialog.tsx +0 -133
  316. package/src/react/canvas/IndicatorLabel.tsx +0 -347
  317. package/src/react/canvas/IndicatorPane.tsx +0 -503
  318. package/src/react/canvas/PointerOverlay.tsx +0 -126
  319. package/src/react/canvas/toolbars/LeftToolbar.tsx +0 -1096
  320. package/src/react/hooks/useChartCapabilities.ts +0 -76
  321. package/src/react/shell/ManagedAppShell.tsx +0 -699
  322. package/src/react/trading/TradingBridge.ts +0 -156
  323. package/src/react/workspace/ChartWorkspace.tsx +0 -228
  324. package/src/react/workspace/FloatingPanel.tsx +0 -131
  325. package/src/react/workspace/IndicatorsDialog.tsx +0 -246
  326. package/src/react/workspace/LayoutMenu.tsx +0 -345
  327. package/src/react/workspace/SymbolSearchDialog.tsx +0 -377
  328. package/src/react/workspace/TabBar.tsx +0 -87
  329. package/src/react/workspace/toolbars/BottomToolbar.tsx +0 -372
  330. package/src/react/workspace/toolbars/RightToolbar.tsx +0 -46
  331. package/src/react/workspace/toolbars/TopToolbar.tsx +0 -431
  332. package/src/renderers/CandlestickRenderer.ts +0 -130
  333. package/src/renderers/HistogramRenderer.ts +0 -63
  334. package/src/renderers/LineRenderer.ts +0 -77
  335. package/src/theme/colors.ts +0 -21
  336. package/src/tools/barDivergenceCheck.ts +0 -305
  337. package/src/trading/TradingOverlayStore.ts +0 -161
  338. package/src/trading/UnmanagedIngestion.ts +0 -156
  339. package/src/trading/__tests__/ManagedTradingController.test.ts +0 -338
  340. package/src/trading/__tests__/TradingOverlayStore.test.ts +0 -323
  341. package/src/trading/__tests__/UnmanagedIngestion.test.ts +0 -205
  342. package/src/trading/managed/ManagedTradingController.ts +0 -292
  343. package/src/trading/managed/managedCapabilities.ts +0 -98
  344. package/src/trading/managed/managedTypes.ts +0 -151
  345. package/src/trading/tradingTypes.ts +0 -135
  346. package/src/tscript/TScriptIndicator.ts +0 -54
  347. package/src/tscript/ast.ts +0 -105
  348. package/src/tscript/lexer.ts +0 -190
  349. package/src/tscript/parser.ts +0 -334
  350. package/src/tscript/runtime.ts +0 -525
  351. package/src/tscript/series.ts +0 -84
  352. package/src/types/IChart.ts +0 -56
  353. package/src/types/ISeries.ts +0 -30
  354. package/tsconfig.json +0 -23
  355. package/tsup.config.ts +0 -16
  356. package/vitest.config.ts +0 -25
@@ -1,300 +0,0 @@
1
- import type { IDatafeed, OHLCV, Timeframe } from '@forgecharts/types';
2
- import type { ISeries } from '../types/ISeries';
3
- import { CandleEngine } from '../engine/CandleEngine';
4
- import type { CandleBar, RawOHLCV } from '../engine/CandleEngine';
5
-
6
- /** Strip engine-only fields so the value is a plain OHLCV the chart series accepts. */
7
- function toOHLCV(bar: CandleBar): OHLCV {
8
- return { time: bar.time, open: bar.open, high: bar.high, low: bar.low, close: bar.close, volume: bar.volume };
9
- }
10
-
11
- /**
12
- * Initial history window per timeframe — controls how much data the chart
13
- * requests on first connect.
14
- *
15
- * TWO-LAYER ARCHITECTURE — these two concerns are independent:
16
- * • CLIENT (this table): how many bars are fetched and held in memory for the
17
- * initial view + scroll buffer. Larger = more data in the browser.
18
- * • SERVER DB fill (bars.ts MAX_DB_SECONDS): the server always fills a full
19
- * 12 months of 1m data (and all available daily history) into the DB cache
20
- * in the background, regardless of the client window size. This means
21
- * scroll-left lazy-loading hits the DB, not the upstream TV API.
22
- *
23
- * For sub-hour timeframes a large display window is impractical:
24
- * 12 months of 1m = 525 600 bars — impossible to render, slow to transfer.
25
- * For 4h and above, 12 months is a manageable bar count so we load it all
26
- * upfront; the server will have it cached or will fill it synchronously.
27
- */
28
- const HISTORY_WINDOWS: Partial<Record<Timeframe, number>> = {
29
- // Sub-hour: small display window; DB fills 12 months in background for scrollback.
30
- '1m': 3 * 24 * 3600, // 3 days → ~4 320 bars
31
- '3m': 7 * 24 * 3600, // 7 days → ~3 360 bars
32
- '5m': 10 * 24 * 3600, // 10 days → ~2 880 bars
33
- '15m': 30 * 24 * 3600, // 30 days → ~2 880 bars
34
- '30m': 60 * 24 * 3600, // 60 days → ~2 880 bars
35
- '1h': 90 * 24 * 3600, // 90 days → ~2 160 bars
36
- // 4h and above: 12 months — bar counts are small enough to load in full.
37
- '2h': 365 * 86400, // 12 months → ~4 380 bars
38
- '4h': 365 * 86400, // 12 months → ~2 190 bars
39
- '6h': 365 * 86400, // 12 months → ~1 460 bars
40
- '12h': 365 * 86400, // 12 months → ~730 bars
41
- '1d': 365 * 86400, // 12 months → ~365 bars
42
- '3d': 365 * 86400, // 12 months → ~122 bars
43
- '1w': 365 * 86400, // 12 months → ~52 bars
44
- '1M': 365 * 86400, // 12 months → ~12 bars
45
- };
46
- const DEFAULT_HISTORY_WINDOW = 90 * 24 * 3600; // 90-day fallback (~200 bars at 1h)
47
-
48
- /**
49
- * How many seconds of history to fetch per lazy-load page (~500 candles).
50
- * Used by `loadMoreHistory()` when the user pans past the oldest loaded bar.
51
- */
52
- const PAGE_SIZES: Partial<Record<Timeframe, number>> = {
53
- '1m': 500 * 60,
54
- '5m': 500 * 300,
55
- '15m': 500 * 900,
56
- '30m': 500 * 1800,
57
- '1h': 500 * 3600,
58
- '4h': 500 * 4 * 3600,
59
- '1d': 500 * 86400,
60
- '1w': 500 * 7 * 86400,
61
- '1M': 500 * 30 * 86400,
62
- };
63
- const DEFAULT_PAGE_SIZE = 500 * 3600;
64
-
65
- /** Monotonic counter so every subscriber UID is unique within the process. */
66
- let _uidCounter = 0;
67
-
68
- // ─── Public types ─────────────────────────────────────────────────────────────
69
-
70
- /**
71
- * Lifecycle callbacks injected by TChart so it can relay data-load state
72
- * as EventBus events without coupling DatafeedConnector to the bus.
73
- */
74
- export type ConnectorCallbacks = {
75
- onLoading(symbol: string, interval: Timeframe): void;
76
- onLoaded(symbol: string, interval: Timeframe, count: number): void;
77
- onError(symbol: string, interval: Timeframe, error: string): void;
78
- /** Called on every real-time tick after the series is updated. Optional. */
79
- onUpdate?: (bar: OHLCV) => void;
80
- };
81
-
82
- // ─── DatafeedConnector ────────────────────────────────────────────────────────
83
-
84
- /**
85
- * DatafeedConnector wires an {@link IDatafeed} to an {@link ISeries}.
86
- *
87
- * Responsibilities:
88
- * - Generates stable, unique subscriber UIDs (`forgecharts-<symbol>-<tf>-<n>`).
89
- * - Calls `getHistoricalBars` and pushes the result into `series.setData()`.
90
- * - Calls `subscribeBars` so real-time ticks flow into `series.update()`.
91
- * - Guards against stale async responses after a reconnect or destroy.
92
- * - Tears down the active subscription cleanly on `disconnect()` / `destroy()`.
93
- *
94
- * @example
95
- * ```ts
96
- * const connector = new DatafeedConnector(datafeed, series, {
97
- * onLoading: (s, tf) => console.log('loading', s, tf),
98
- * onLoaded: (s, tf, n) => console.log('loaded', n, 'bars'),
99
- * onError: (s, tf, e) => console.error(e),
100
- * });
101
- *
102
- * connector.connect('BTCUSDT', '1h');
103
- * // ...later, on symbol change:
104
- * connector.reconnect('ETHUSDT', '1h');
105
- * // ...on unmount:
106
- * connector.destroy();
107
- * ```
108
- */
109
- export class DatafeedConnector {
110
- private readonly _datafeed: IDatafeed;
111
- private readonly _series: ISeries;
112
- private readonly _cb: ConnectorCallbacks;
113
-
114
- /**
115
- * UID of the outstanding subscription.
116
- * `null` means nothing is subscribed / all responses for older UIDs are stale.
117
- */
118
- private _activeUID: string | null = null;
119
- private _activeEngine: CandleEngine | null = null;
120
- private _destroyed = false;
121
-
122
- /** True while an async `loadMoreHistory()` request is in-flight. */
123
- private _isLoadingMore = false;
124
- /** True once the datafeed returned 0 bars for a backwards page — no point fetching older. */
125
- private _noMoreHistory = false;
126
-
127
- constructor(datafeed: IDatafeed, series: ISeries, callbacks: ConnectorCallbacks) {
128
- this._datafeed = datafeed;
129
- this._series = series;
130
- this._cb = callbacks;
131
- }
132
-
133
- // ─── Public API ───────────────────────────────────────────────────────────────
134
-
135
- /**
136
- * Loads historical bars then subscribes for real-time updates.
137
- * Safe to call while a previous subscription is still active — it will be
138
- * cancelled first (same as calling `disconnect()` then `connect()`).
139
- */
140
- connect(symbol: string, timeframe: Timeframe): void {
141
- if (this._destroyed) return;
142
-
143
- // Cancel any in-flight request / active subscription before starting fresh
144
- this._cancelActive();
145
-
146
- const uid = `forgecharts-${symbol}-${timeframe}-${++_uidCounter}`;
147
- this._activeUID = uid;
148
-
149
- this._cb.onLoading(symbol, timeframe);
150
-
151
- const to = Math.floor(Date.now() / 1000);
152
- const from = to - (HISTORY_WINDOWS[timeframe] ?? DEFAULT_HISTORY_WINDOW);
153
-
154
- // Build the engine for this subscription. Close over `uid` for stale-guard.
155
- const engine = new CandleEngine({
156
- // Every live tick mutates the engine's bar array and the chart series.
157
- onBarUpdated: (bar) => {
158
- if (this._activeUID !== uid) return;
159
- const ohlcv = toOHLCV(bar);
160
- this._series.update(ohlcv);
161
- this._cb.onUpdate?.(ohlcv);
162
- },
163
- // When a gap is detected, fetch the missing range from REST and backfill.
164
- // backfillGap() will call onResync which re-syncs the full chart series.
165
- onGapDetected: (gapInfo) => {
166
- if (this._activeUID !== uid) return;
167
- const gapFrom = Math.floor(gapInfo.fromTimeMs / 1000);
168
- const gapTo = Math.ceil(gapInfo.toTimeMs / 1000);
169
- this._datafeed.getHistoricalBars(symbol, timeframe, gapFrom, gapTo)
170
- .then(({ bars }) => {
171
- if (this._activeUID !== uid) return;
172
- engine.backfillGap(bars as RawOHLCV[]);
173
- })
174
- .catch(() => {
175
- // Gap backfill errors are non-fatal — chart continues with live data
176
- });
177
- },
178
- // Full re-paint after gap fill or reconnect reconciliation.
179
- onResync: (bars) => {
180
- if (this._activeUID !== uid) return;
181
- this._series.setData(bars.map(toOHLCV));
182
- },
183
- });
184
-
185
- this._activeEngine = engine;
186
-
187
- this._datafeed
188
- .getHistoricalBars(symbol, timeframe, from, to)
189
- .then((result) => {
190
- // Guard: another connect() / destroy() may have superseded this request
191
- if (this._activeUID !== uid) return;
192
-
193
- engine.initialize(result.bars as RawOHLCV[], timeframe);
194
- this._series.setData(engine.getBars().map(toOHLCV));
195
- this._cb.onLoaded(symbol, timeframe, engine.getBars().length);
196
-
197
- // Double-check still active before subscribing (setData callback could
198
- // have triggered a synchronous reconnect in pathological code)
199
- if (this._activeUID !== uid) return;
200
-
201
- this._datafeed.subscribeBars(symbol, timeframe, (bar: OHLCV) => {
202
- if (this._activeUID === uid) {
203
- engine.applyLiveUpdate(bar as RawOHLCV);
204
- }
205
- }, uid);
206
- })
207
- .catch((err: unknown) => {
208
- if (this._activeUID !== uid) return;
209
- const message = err instanceof Error ? err.message : String(err);
210
- this._cb.onError(symbol, timeframe, message);
211
- });
212
- }
213
-
214
- /**
215
- * Cancels the active subscription without starting a new one.
216
- * Historical-bar `Promise` results arriving after this call are silently
217
- * discarded via the UID guard.
218
- */
219
- disconnect(): void {
220
- this._cancelActive();
221
- }
222
-
223
- /**
224
- * Convenience shorthand: `disconnect()` then `connect()`.
225
- * Use this for symbol or timeframe changes.
226
- */
227
- reconnect(symbol: string, timeframe: Timeframe): void {
228
- this.disconnect();
229
- this.connect(symbol, timeframe);
230
- }
231
-
232
- /**
233
- * Permanently deactivates the connector.
234
- * Any subscription or in-flight request is cancelled; subsequent calls to
235
- * `connect()` / `reconnect()` are no-ops.
236
- */
237
- destroy(): void {
238
- this._cancelActive();
239
- this._destroyed = true;
240
- }
241
-
242
- // ─── Private ─────────────────────────────────────────────────────────────────
243
-
244
- /**
245
- * Fetches a page of older history (up to ~500 candles) and prepends it to
246
- * the loaded dataset. Safe to call on every pan event — it is internally
247
- * debounced by the `_isLoadingMore` flag and stops permanently once the
248
- * datafeed signals no more history (`_noMoreHistory = true`).
249
- *
250
- * The series is updated automatically via the engine's `onResync` callback.
251
- */
252
- loadMoreHistory(symbol: string, timeframe: Timeframe): void {
253
- if (this._destroyed || this._isLoadingMore || this._noMoreHistory) return;
254
- if (!this._activeEngine || !this._activeUID) return;
255
-
256
- const engine = this._activeEngine;
257
- const oldest = engine.getBars()[0];
258
- if (!oldest) return;
259
-
260
- const uid = this._activeUID;
261
- const to = Math.floor(oldest.timeMs / 1000);
262
- const page = PAGE_SIZES[timeframe] ?? DEFAULT_PAGE_SIZE;
263
- const from = to - page;
264
-
265
- this._isLoadingMore = true;
266
-
267
- this._datafeed.getHistoricalBars(symbol, timeframe, from, to - 1)
268
- .then(({ bars }) => {
269
- if (this._activeUID !== uid) return;
270
- if (bars.length === 0) {
271
- this._noMoreHistory = true;
272
- } else {
273
- engine.prependHistory(bars as RawOHLCV[]);
274
- }
275
- })
276
- .catch(() => {
277
- // Non-fatal — user can scroll again to retry
278
- })
279
- .finally(() => {
280
- if (this._activeUID === uid) this._isLoadingMore = false;
281
- });
282
- }
283
-
284
- private _cancelActive(): void {
285
- if (this._activeUID !== null) {
286
- try {
287
- this._datafeed.unsubscribeBars(this._activeUID);
288
- } catch {
289
- // Best-effort teardown — datafeed may already be closed
290
- }
291
- this._activeUID = null;
292
- }
293
- if (this._activeEngine !== null) {
294
- this._activeEngine.reset();
295
- this._activeEngine = null;
296
- }
297
- this._isLoadingMore = false;
298
- this._noMoreHistory = false;
299
- }
300
- }