@forgecharts/sdk 1.1.23 → 1.1.28

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 (562) 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__/backwardCompatibility.test.js +159 -0
  4. package/dist/__tests__/backwardCompatibility.test.js.map +1 -0
  5. package/dist/__tests__/candleInvariant.test.d.ts +20 -0
  6. package/dist/__tests__/candleInvariant.test.d.ts.map +1 -0
  7. package/dist/__tests__/candleInvariant.test.js +415 -0
  8. package/dist/__tests__/candleInvariant.test.js.map +1 -0
  9. package/dist/__tests__/public-api-surface.d.ts +13 -0
  10. package/dist/__tests__/public-api-surface.d.ts.map +1 -0
  11. package/{src/__tests__/public-api-surface.ts → dist/__tests__/public-api-surface.js} +4 -42
  12. package/dist/__tests__/public-api-surface.js.map +1 -0
  13. package/dist/__tests__/timeframeBoundary.test.d.ts +17 -0
  14. package/dist/__tests__/timeframeBoundary.test.d.ts.map +1 -0
  15. package/dist/__tests__/timeframeBoundary.test.js +452 -0
  16. package/dist/__tests__/timeframeBoundary.test.js.map +1 -0
  17. package/dist/api/DrawingManager.d.ts +20 -0
  18. package/dist/api/DrawingManager.d.ts.map +1 -0
  19. package/dist/api/DrawingManager.js +190 -0
  20. package/dist/api/DrawingManager.js.map +1 -0
  21. package/dist/api/EventBus.d.ts +19 -0
  22. package/dist/api/EventBus.d.ts.map +1 -0
  23. package/dist/api/EventBus.js +44 -0
  24. package/dist/api/EventBus.js.map +1 -0
  25. package/dist/api/IndicatorDAG.d.ts +85 -0
  26. package/dist/api/IndicatorDAG.d.ts.map +1 -0
  27. package/dist/api/IndicatorDAG.js +316 -0
  28. package/dist/api/IndicatorDAG.js.map +1 -0
  29. package/dist/api/IndicatorRegistry.d.ts +22 -0
  30. package/dist/api/IndicatorRegistry.d.ts.map +1 -0
  31. package/dist/api/IndicatorRegistry.js +39 -0
  32. package/dist/api/IndicatorRegistry.js.map +1 -0
  33. package/dist/api/LayoutManager.d.ts +30 -0
  34. package/dist/api/LayoutManager.d.ts.map +1 -0
  35. package/dist/api/LayoutManager.js +51 -0
  36. package/dist/api/LayoutManager.js.map +1 -0
  37. package/dist/api/PaneManager.d.ts +42 -0
  38. package/dist/api/PaneManager.d.ts.map +1 -0
  39. package/dist/api/PaneManager.js +119 -0
  40. package/dist/api/PaneManager.js.map +1 -0
  41. package/dist/api/ReferenceAPI.d.ts +78 -0
  42. package/dist/api/ReferenceAPI.d.ts.map +1 -0
  43. package/dist/api/ReferenceAPI.js +153 -0
  44. package/dist/api/ReferenceAPI.js.map +1 -0
  45. package/dist/api/TChart.d.ts +345 -0
  46. package/dist/api/TChart.d.ts.map +1 -0
  47. package/dist/api/TChart.js +765 -0
  48. package/dist/api/TChart.js.map +1 -0
  49. package/{src/api/createChart.ts → dist/api/createChart.d.ts} +2 -7
  50. package/dist/api/createChart.d.ts.map +1 -0
  51. package/dist/api/createChart.js +42 -0
  52. package/dist/api/createChart.js.map +1 -0
  53. package/dist/api/drawing tools/fib gann menu/fibRetracement.d.ts +4 -0
  54. package/dist/api/drawing tools/fib gann menu/fibRetracement.d.ts.map +1 -0
  55. package/dist/api/drawing tools/fib gann menu/fibRetracement.js +22 -0
  56. package/dist/api/drawing tools/fib gann menu/fibRetracement.js.map +1 -0
  57. package/dist/api/drawing tools/lines menu/crossLine.d.ts +4 -0
  58. package/dist/api/drawing tools/lines menu/crossLine.d.ts.map +1 -0
  59. package/dist/api/drawing tools/lines menu/crossLine.js +16 -0
  60. package/dist/api/drawing tools/lines menu/crossLine.js.map +1 -0
  61. package/dist/api/drawing tools/lines menu/disjointChannel.d.ts +17 -0
  62. package/dist/api/drawing tools/lines menu/disjointChannel.d.ts.map +1 -0
  63. package/dist/api/drawing tools/lines menu/disjointChannel.js +59 -0
  64. package/dist/api/drawing tools/lines menu/disjointChannel.js.map +1 -0
  65. package/dist/api/drawing tools/lines menu/extendedLine.d.ts +4 -0
  66. package/dist/api/drawing tools/lines menu/extendedLine.d.ts.map +1 -0
  67. package/dist/api/drawing tools/lines menu/extendedLine.js +17 -0
  68. package/dist/api/drawing tools/lines menu/extendedLine.js.map +1 -0
  69. package/dist/api/drawing tools/lines menu/flatTopBottom.d.ts +4 -0
  70. package/dist/api/drawing tools/lines menu/flatTopBottom.d.ts.map +1 -0
  71. package/dist/api/drawing tools/lines menu/flatTopBottom.js +41 -0
  72. package/dist/api/drawing tools/lines menu/flatTopBottom.js.map +1 -0
  73. package/dist/api/drawing tools/lines menu/horizontal.d.ts +4 -0
  74. package/dist/api/drawing tools/lines menu/horizontal.d.ts.map +1 -0
  75. package/dist/api/drawing tools/lines menu/horizontal.js +19 -0
  76. package/dist/api/drawing tools/lines menu/horizontal.js.map +1 -0
  77. package/dist/api/drawing tools/lines menu/horizontalRay.d.ts +4 -0
  78. package/dist/api/drawing tools/lines menu/horizontalRay.d.ts.map +1 -0
  79. package/dist/api/drawing tools/lines menu/horizontalRay.js +20 -0
  80. package/dist/api/drawing tools/lines menu/horizontalRay.js.map +1 -0
  81. package/dist/api/drawing tools/lines menu/infoLine.d.ts +4 -0
  82. package/dist/api/drawing tools/lines menu/infoLine.d.ts.map +1 -0
  83. package/dist/api/drawing tools/lines menu/infoLine.js +107 -0
  84. package/dist/api/drawing tools/lines menu/infoLine.js.map +1 -0
  85. package/dist/api/drawing tools/lines menu/insidePitchfork.d.ts +4 -0
  86. package/dist/api/drawing tools/lines menu/insidePitchfork.d.ts.map +1 -0
  87. package/dist/api/drawing tools/lines menu/insidePitchfork.js +31 -0
  88. package/dist/api/drawing tools/lines menu/insidePitchfork.js.map +1 -0
  89. package/dist/api/drawing tools/lines menu/modifiedSchiffPitchfork.d.ts +4 -0
  90. package/dist/api/drawing tools/lines menu/modifiedSchiffPitchfork.d.ts.map +1 -0
  91. package/dist/api/drawing tools/lines menu/modifiedSchiffPitchfork.js +15 -0
  92. package/dist/api/drawing tools/lines menu/modifiedSchiffPitchfork.js.map +1 -0
  93. package/dist/api/drawing tools/lines menu/parallelChannel.d.ts +4 -0
  94. package/dist/api/drawing tools/lines menu/parallelChannel.d.ts.map +1 -0
  95. package/dist/api/drawing tools/lines menu/parallelChannel.js +43 -0
  96. package/dist/api/drawing tools/lines menu/parallelChannel.js.map +1 -0
  97. package/dist/api/drawing tools/lines menu/pitchfork.d.ts +4 -0
  98. package/dist/api/drawing tools/lines menu/pitchfork.d.ts.map +1 -0
  99. package/dist/api/drawing tools/lines menu/pitchfork.js +12 -0
  100. package/dist/api/drawing tools/lines menu/pitchfork.js.map +1 -0
  101. package/dist/api/drawing tools/lines menu/ray.d.ts +4 -0
  102. package/dist/api/drawing tools/lines menu/ray.d.ts.map +1 -0
  103. package/dist/api/drawing tools/lines menu/ray.js +23 -0
  104. package/dist/api/drawing tools/lines menu/ray.js.map +1 -0
  105. package/dist/api/drawing tools/lines menu/regressionTrend.d.ts +4 -0
  106. package/dist/api/drawing tools/lines menu/regressionTrend.d.ts.map +1 -0
  107. package/dist/api/drawing tools/lines menu/regressionTrend.js +127 -0
  108. package/dist/api/drawing tools/lines menu/regressionTrend.js.map +1 -0
  109. package/dist/api/drawing tools/lines menu/schiffPitchfork.d.ts +4 -0
  110. package/dist/api/drawing tools/lines menu/schiffPitchfork.d.ts.map +1 -0
  111. package/dist/api/drawing tools/lines menu/schiffPitchfork.js +15 -0
  112. package/dist/api/drawing tools/lines menu/schiffPitchfork.js.map +1 -0
  113. package/dist/api/drawing tools/lines menu/trendAngle.d.ts +4 -0
  114. package/dist/api/drawing tools/lines menu/trendAngle.d.ts.map +1 -0
  115. package/dist/api/drawing tools/lines menu/trendAngle.js +51 -0
  116. package/dist/api/drawing tools/lines menu/trendAngle.js.map +1 -0
  117. package/dist/api/drawing tools/lines menu/trendline.d.ts +4 -0
  118. package/dist/api/drawing tools/lines menu/trendline.d.ts.map +1 -0
  119. package/dist/api/drawing tools/lines menu/trendline.js +11 -0
  120. package/dist/api/drawing tools/lines menu/trendline.js.map +1 -0
  121. package/dist/api/drawing tools/lines menu/vertical.d.ts +4 -0
  122. package/dist/api/drawing tools/lines menu/vertical.d.ts.map +1 -0
  123. package/dist/api/drawing tools/lines menu/vertical.js +11 -0
  124. package/dist/api/drawing tools/lines menu/vertical.js.map +1 -0
  125. package/dist/api/drawing tools/pointers menu/crosshair.d.ts +16 -0
  126. package/dist/api/drawing tools/pointers menu/crosshair.d.ts.map +1 -0
  127. package/{src/api/drawing tools/pointers menu/crosshair.ts → dist/api/drawing tools/pointers menu/crosshair.js } +6 -7
  128. package/dist/api/drawing tools/pointers menu/crosshair.js.map +1 -0
  129. package/dist/api/drawing tools/pointers menu/cursor.d.ts +15 -0
  130. package/dist/api/drawing tools/pointers menu/cursor.d.ts.map +1 -0
  131. package/{src/api/drawing tools/pointers menu/cursor.ts → dist/api/drawing tools/pointers menu/cursor.js } +7 -8
  132. package/dist/api/drawing tools/pointers menu/cursor.js.map +1 -0
  133. package/dist/api/drawing tools/pointers menu/demonstration.d.ts +30 -0
  134. package/dist/api/drawing tools/pointers menu/demonstration.d.ts.map +1 -0
  135. package/{src/api/drawing tools/pointers menu/demonstration.ts → dist/api/drawing tools/pointers menu/demonstration.js } +9 -14
  136. package/dist/api/drawing tools/pointers menu/demonstration.js.map +1 -0
  137. package/dist/api/drawing tools/pointers menu/dot.d.ts +23 -0
  138. package/dist/api/drawing tools/pointers menu/dot.d.ts.map +1 -0
  139. package/{src/api/drawing tools/pointers menu/dot.ts → dist/api/drawing tools/pointers menu/dot.js } +8 -11
  140. package/dist/api/drawing tools/pointers menu/dot.js.map +1 -0
  141. package/dist/api/drawing tools/shapes menu/rectangle.d.ts +4 -0
  142. package/dist/api/drawing tools/shapes menu/rectangle.d.ts.map +1 -0
  143. package/dist/api/drawing tools/shapes menu/rectangle.js +19 -0
  144. package/dist/api/drawing tools/shapes menu/rectangle.js.map +1 -0
  145. package/dist/api/drawing tools/shapes menu/text.d.ts +4 -0
  146. package/dist/api/drawing tools/shapes menu/text.d.ts.map +1 -0
  147. package/dist/api/drawing tools/shapes menu/text.js +25 -0
  148. package/dist/api/drawing tools/shapes menu/text.js.map +1 -0
  149. package/dist/api/drawingUtils.d.ts +22 -0
  150. package/dist/api/drawingUtils.d.ts.map +1 -0
  151. package/dist/api/drawingUtils.js +83 -0
  152. package/dist/api/drawingUtils.js.map +1 -0
  153. package/dist/core/CanvasLayer.d.ts +26 -0
  154. package/dist/core/CanvasLayer.d.ts.map +1 -0
  155. package/dist/core/CanvasLayer.js +56 -0
  156. package/dist/core/CanvasLayer.js.map +1 -0
  157. package/dist/core/Chart.d.ts +164 -0
  158. package/dist/core/Chart.d.ts.map +1 -0
  159. package/dist/core/Chart.js +839 -0
  160. package/dist/core/Chart.js.map +1 -0
  161. package/dist/core/CoordTransform.d.ts +168 -0
  162. package/dist/core/CoordTransform.d.ts.map +1 -0
  163. package/dist/core/CoordTransform.js +224 -0
  164. package/dist/core/CoordTransform.js.map +1 -0
  165. package/dist/core/Crosshair.d.ts +30 -0
  166. package/dist/core/Crosshair.d.ts.map +1 -0
  167. package/dist/core/Crosshair.js +186 -0
  168. package/dist/core/Crosshair.js.map +1 -0
  169. package/dist/core/IndicatorEngine.d.ts +51 -0
  170. package/dist/core/IndicatorEngine.d.ts.map +1 -0
  171. package/dist/core/IndicatorEngine.js +181 -0
  172. package/dist/core/IndicatorEngine.js.map +1 -0
  173. package/dist/core/InteractionManager.d.ts +197 -0
  174. package/dist/core/InteractionManager.d.ts.map +1 -0
  175. package/dist/core/InteractionManager.js +698 -0
  176. package/dist/core/InteractionManager.js.map +1 -0
  177. package/dist/core/PriceScale.d.ts +27 -0
  178. package/dist/core/PriceScale.d.ts.map +1 -0
  179. package/dist/core/PriceScale.js +113 -0
  180. package/dist/core/PriceScale.js.map +1 -0
  181. package/dist/core/Series.d.ts +40 -0
  182. package/dist/core/Series.d.ts.map +1 -0
  183. package/dist/core/Series.js +114 -0
  184. package/dist/core/Series.js.map +1 -0
  185. package/dist/core/TimeScale.d.ts +43 -0
  186. package/dist/core/TimeScale.d.ts.map +1 -0
  187. package/dist/core/TimeScale.js +150 -0
  188. package/dist/core/TimeScale.js.map +1 -0
  189. package/dist/datafeed/DatafeedConnector.d.ts +89 -0
  190. package/dist/datafeed/DatafeedConnector.d.ts.map +1 -0
  191. package/dist/datafeed/DatafeedConnector.js +268 -0
  192. package/dist/datafeed/DatafeedConnector.js.map +1 -0
  193. package/dist/engine/CandleEngine.d.ts +207 -0
  194. package/dist/engine/CandleEngine.d.ts.map +1 -0
  195. package/dist/engine/CandleEngine.js +318 -0
  196. package/dist/engine/CandleEngine.js.map +1 -0
  197. package/dist/engine/__tests__/CandleEngine.test.d.ts +2 -0
  198. package/dist/engine/__tests__/CandleEngine.test.d.ts.map +1 -0
  199. package/dist/engine/__tests__/CandleEngine.test.js +300 -0
  200. package/dist/engine/__tests__/CandleEngine.test.js.map +1 -0
  201. package/dist/engine/candleInvariants.d.ts +66 -0
  202. package/dist/engine/candleInvariants.d.ts.map +1 -0
  203. package/dist/engine/candleInvariants.js +134 -0
  204. package/dist/engine/candleInvariants.js.map +1 -0
  205. package/{src/engine/mergeUtils.ts → dist/engine/mergeUtils.d.ts} +15 -52
  206. package/dist/engine/mergeUtils.d.ts.map +1 -0
  207. package/dist/engine/mergeUtils.js +64 -0
  208. package/dist/engine/mergeUtils.js.map +1 -0
  209. package/dist/engine/timeframeUtils.d.ts +80 -0
  210. package/dist/engine/timeframeUtils.d.ts.map +1 -0
  211. package/{src/engine/timeframeUtils.ts → dist/engine/timeframeUtils.js} +30 -48
  212. package/dist/engine/timeframeUtils.js.map +1 -0
  213. package/dist/index.d.ts +40 -0
  214. package/dist/index.d.ts.map +1 -0
  215. package/dist/index.js +49 -0
  216. package/dist/index.js.map +1 -0
  217. package/dist/internal.d.ts +29 -0
  218. package/dist/internal.d.ts.map +1 -0
  219. package/{src/internal.ts → dist/internal.js} +2 -11
  220. package/dist/internal.js.map +1 -0
  221. package/dist/licensing/ChartRuntimeResolver.d.ts +233 -0
  222. package/dist/licensing/ChartRuntimeResolver.d.ts.map +1 -0
  223. package/dist/licensing/ChartRuntimeResolver.js +310 -0
  224. package/dist/licensing/ChartRuntimeResolver.js.map +1 -0
  225. package/dist/licensing/LicenseManager.d.ts +55 -0
  226. package/dist/licensing/LicenseManager.d.ts.map +1 -0
  227. package/dist/licensing/LicenseManager.js +114 -0
  228. package/dist/licensing/LicenseManager.js.map +1 -0
  229. package/dist/licensing/__tests__/ChartRuntimeResolver.test.d.ts +13 -0
  230. package/dist/licensing/__tests__/ChartRuntimeResolver.test.d.ts.map +1 -0
  231. package/dist/licensing/__tests__/ChartRuntimeResolver.test.js +177 -0
  232. package/dist/licensing/__tests__/ChartRuntimeResolver.test.js.map +1 -0
  233. package/dist/licensing/__tests__/LicenseManager.test.d.ts +12 -0
  234. package/dist/licensing/__tests__/LicenseManager.test.d.ts.map +1 -0
  235. package/dist/licensing/__tests__/LicenseManager.test.js +153 -0
  236. package/dist/licensing/__tests__/LicenseManager.test.js.map +1 -0
  237. package/dist/licensing/licenseTypes.d.ts +18 -0
  238. package/dist/licensing/licenseTypes.d.ts.map +1 -0
  239. package/dist/licensing/licenseTypes.js +2 -0
  240. package/dist/licensing/licenseTypes.js.map +1 -0
  241. package/dist/pine/PineCompiler.d.ts +35 -0
  242. package/dist/pine/PineCompiler.d.ts.map +1 -0
  243. package/dist/pine/PineCompiler.js +44 -0
  244. package/dist/pine/PineCompiler.js.map +1 -0
  245. package/dist/pine/diagnostics.d.ts +20 -0
  246. package/dist/pine/diagnostics.d.ts.map +1 -0
  247. package/dist/pine/diagnostics.js +11 -0
  248. package/dist/pine/diagnostics.js.map +1 -0
  249. package/{src/pine/index.ts → dist/pine/index.d.ts} +4 -3
  250. package/dist/pine/index.d.ts.map +1 -0
  251. package/dist/pine/index.js +5 -0
  252. package/dist/pine/index.js.map +1 -0
  253. package/dist/pine/pine-ast.d.ts +142 -0
  254. package/dist/pine/pine-ast.d.ts.map +1 -0
  255. package/dist/pine/pine-ast.js +19 -0
  256. package/dist/pine/pine-ast.js.map +1 -0
  257. package/dist/pine/pine-lexer.d.ts +41 -0
  258. package/dist/pine/pine-lexer.d.ts.map +1 -0
  259. package/dist/pine/pine-lexer.js +249 -0
  260. package/dist/pine/pine-lexer.js.map +1 -0
  261. package/dist/pine/pine-parser.d.ts +51 -0
  262. package/dist/pine/pine-parser.d.ts.map +1 -0
  263. package/dist/pine/pine-parser.js +416 -0
  264. package/dist/pine/pine-parser.js.map +1 -0
  265. package/dist/pine/pine-transpiler.d.ts +33 -0
  266. package/dist/pine/pine-transpiler.d.ts.map +1 -0
  267. package/dist/pine/pine-transpiler.js +260 -0
  268. package/dist/pine/pine-transpiler.js.map +1 -0
  269. package/dist/pixi/LayerName.d.ts +18 -0
  270. package/dist/pixi/LayerName.d.ts.map +1 -0
  271. package/dist/pixi/LayerName.js +35 -0
  272. package/dist/pixi/LayerName.js.map +1 -0
  273. package/dist/pixi/PixiCandlestickRenderer.d.ts +23 -0
  274. package/dist/pixi/PixiCandlestickRenderer.d.ts.map +1 -0
  275. package/dist/pixi/PixiCandlestickRenderer.js +107 -0
  276. package/dist/pixi/PixiCandlestickRenderer.js.map +1 -0
  277. package/dist/pixi/PixiChart.d.ts +72 -0
  278. package/dist/pixi/PixiChart.d.ts.map +1 -0
  279. package/dist/pixi/PixiChart.js +367 -0
  280. package/dist/pixi/PixiChart.js.map +1 -0
  281. package/dist/pixi/PixiCrosshairRenderer.d.ts +29 -0
  282. package/dist/pixi/PixiCrosshairRenderer.d.ts.map +1 -0
  283. package/dist/pixi/PixiCrosshairRenderer.js +110 -0
  284. package/dist/pixi/PixiCrosshairRenderer.js.map +1 -0
  285. package/dist/pixi/PixiDrawingRenderer.d.ts +17 -0
  286. package/dist/pixi/PixiDrawingRenderer.d.ts.map +1 -0
  287. package/dist/pixi/PixiDrawingRenderer.js +111 -0
  288. package/dist/pixi/PixiDrawingRenderer.js.map +1 -0
  289. package/dist/pixi/PixiGridRenderer.d.ts +22 -0
  290. package/dist/pixi/PixiGridRenderer.d.ts.map +1 -0
  291. package/dist/pixi/PixiGridRenderer.js +114 -0
  292. package/dist/pixi/PixiGridRenderer.js.map +1 -0
  293. package/dist/pixi/PixiLayerManager.d.ts +56 -0
  294. package/dist/pixi/PixiLayerManager.d.ts.map +1 -0
  295. package/dist/pixi/PixiLayerManager.js +92 -0
  296. package/dist/pixi/PixiLayerManager.js.map +1 -0
  297. package/dist/react/canvas/ChartCanvas.d.ts +85 -0
  298. package/dist/react/canvas/ChartCanvas.d.ts.map +1 -0
  299. package/dist/react/canvas/ChartCanvas.js +604 -0
  300. package/dist/react/canvas/ChartCanvas.js.map +1 -0
  301. package/dist/react/canvas/ChartContextMenu.d.ts +18 -0
  302. package/dist/react/canvas/ChartContextMenu.d.ts.map +1 -0
  303. package/dist/react/canvas/ChartContextMenu.js +5 -0
  304. package/dist/react/canvas/ChartContextMenu.js.map +1 -0
  305. package/dist/react/canvas/ChartSettingsDialog.d.ts +25 -0
  306. package/dist/react/canvas/ChartSettingsDialog.d.ts.map +1 -0
  307. package/dist/react/canvas/ChartSettingsDialog.js +28 -0
  308. package/dist/react/canvas/ChartSettingsDialog.js.map +1 -0
  309. package/dist/react/canvas/IndicatorLabel.d.ts +21 -0
  310. package/dist/react/canvas/IndicatorLabel.d.ts.map +1 -0
  311. package/dist/react/canvas/IndicatorLabel.js +196 -0
  312. package/dist/react/canvas/IndicatorLabel.js.map +1 -0
  313. package/dist/react/canvas/IndicatorPane.d.ts +32 -0
  314. package/dist/react/canvas/IndicatorPane.d.ts.map +1 -0
  315. package/dist/react/canvas/IndicatorPane.js +395 -0
  316. package/dist/react/canvas/IndicatorPane.js.map +1 -0
  317. package/dist/react/canvas/PointerOverlay.d.ts +23 -0
  318. package/dist/react/canvas/PointerOverlay.d.ts.map +1 -0
  319. package/dist/react/canvas/PointerOverlay.js +61 -0
  320. package/dist/react/canvas/PointerOverlay.js.map +1 -0
  321. package/dist/react/canvas/toolbars/LeftToolbar.d.ts +19 -0
  322. package/dist/react/canvas/toolbars/LeftToolbar.d.ts.map +1 -0
  323. package/dist/react/canvas/toolbars/LeftToolbar.js +407 -0
  324. package/dist/react/canvas/toolbars/LeftToolbar.js.map +1 -0
  325. package/dist/react/hooks/useChartCapabilities.d.ts +21 -0
  326. package/dist/react/hooks/useChartCapabilities.d.ts.map +1 -0
  327. package/dist/react/hooks/useChartCapabilities.js +66 -0
  328. package/dist/react/hooks/useChartCapabilities.js.map +1 -0
  329. package/dist/react/index.d.ts +30 -0
  330. package/dist/react/index.d.ts.map +1 -0
  331. package/dist/react/index.js +28 -0
  332. package/dist/react/index.js.map +1 -0
  333. package/dist/react/internal.d.ts +38 -0
  334. package/dist/react/internal.d.ts.map +1 -0
  335. package/dist/react/internal.js +44 -0
  336. package/dist/react/internal.js.map +1 -0
  337. package/dist/react/shell/ManagedAppShell.d.ts +91 -0
  338. package/dist/react/shell/ManagedAppShell.d.ts.map +1 -0
  339. package/dist/react/shell/ManagedAppShell.js +440 -0
  340. package/dist/react/shell/ManagedAppShell.js.map +1 -0
  341. package/dist/react/trading/TradingBridge.d.ts +86 -0
  342. package/dist/react/trading/TradingBridge.d.ts.map +1 -0
  343. package/dist/react/trading/TradingBridge.js +73 -0
  344. package/dist/react/trading/TradingBridge.js.map +1 -0
  345. package/dist/react/workspace/ChartWorkspace.d.ts +73 -0
  346. package/dist/react/workspace/ChartWorkspace.d.ts.map +1 -0
  347. package/dist/react/workspace/ChartWorkspace.js +42 -0
  348. package/dist/react/workspace/ChartWorkspace.js.map +1 -0
  349. package/dist/react/workspace/FloatingPanel.d.ts +18 -0
  350. package/dist/react/workspace/FloatingPanel.d.ts.map +1 -0
  351. package/dist/react/workspace/FloatingPanel.js +82 -0
  352. package/dist/react/workspace/FloatingPanel.js.map +1 -0
  353. package/dist/react/workspace/IndicatorsDialog.d.ts +8 -0
  354. package/dist/react/workspace/IndicatorsDialog.d.ts.map +1 -0
  355. package/dist/react/workspace/IndicatorsDialog.js +121 -0
  356. package/dist/react/workspace/IndicatorsDialog.js.map +1 -0
  357. package/dist/react/workspace/LayoutMenu.d.ts +33 -0
  358. package/dist/react/workspace/LayoutMenu.d.ts.map +1 -0
  359. package/dist/react/workspace/LayoutMenu.js +113 -0
  360. package/dist/react/workspace/LayoutMenu.js.map +1 -0
  361. package/dist/react/workspace/SymbolSearchDialog.d.ts +10 -0
  362. package/dist/react/workspace/SymbolSearchDialog.d.ts.map +1 -0
  363. package/dist/react/workspace/SymbolSearchDialog.js +245 -0
  364. package/dist/react/workspace/SymbolSearchDialog.js.map +1 -0
  365. package/dist/react/workspace/TabBar.d.ts +17 -0
  366. package/dist/react/workspace/TabBar.d.ts.map +1 -0
  367. package/dist/react/workspace/TabBar.js +29 -0
  368. package/dist/react/workspace/TabBar.js.map +1 -0
  369. package/dist/react/workspace/toolbars/BottomToolbar.d.ts +19 -0
  370. package/dist/react/workspace/toolbars/BottomToolbar.d.ts.map +1 -0
  371. package/dist/react/workspace/toolbars/BottomToolbar.js +236 -0
  372. package/dist/react/workspace/toolbars/BottomToolbar.js.map +1 -0
  373. package/dist/react/workspace/toolbars/RightToolbar.d.ts +8 -0
  374. package/dist/react/workspace/toolbars/RightToolbar.d.ts.map +1 -0
  375. package/dist/react/workspace/toolbars/RightToolbar.js +18 -0
  376. package/dist/react/workspace/toolbars/RightToolbar.js.map +1 -0
  377. package/dist/react/workspace/toolbars/TopToolbar.d.ts +41 -0
  378. package/dist/react/workspace/toolbars/TopToolbar.d.ts.map +1 -0
  379. package/dist/react/workspace/toolbars/TopToolbar.js +82 -0
  380. package/dist/react/workspace/toolbars/TopToolbar.js.map +1 -0
  381. package/dist/renderers/CandlestickRenderer.d.ts +13 -0
  382. package/dist/renderers/CandlestickRenderer.d.ts.map +1 -0
  383. package/dist/renderers/CandlestickRenderer.js +98 -0
  384. package/dist/renderers/CandlestickRenderer.js.map +1 -0
  385. package/dist/renderers/HistogramRenderer.d.ts +11 -0
  386. package/dist/renderers/HistogramRenderer.d.ts.map +1 -0
  387. package/dist/renderers/HistogramRenderer.js +50 -0
  388. package/dist/renderers/HistogramRenderer.js.map +1 -0
  389. package/dist/renderers/LineRenderer.d.ts +12 -0
  390. package/dist/renderers/LineRenderer.d.ts.map +1 -0
  391. package/dist/renderers/LineRenderer.js +64 -0
  392. package/dist/renderers/LineRenderer.js.map +1 -0
  393. package/dist/theme/colors.d.ts +4 -0
  394. package/dist/theme/colors.d.ts.map +1 -0
  395. package/dist/theme/colors.js +19 -0
  396. package/dist/theme/colors.js.map +1 -0
  397. package/dist/tools/barDivergenceCheck.d.ts +120 -0
  398. package/dist/tools/barDivergenceCheck.d.ts.map +1 -0
  399. package/dist/tools/barDivergenceCheck.js +200 -0
  400. package/dist/tools/barDivergenceCheck.js.map +1 -0
  401. package/dist/trading/TradingOverlayStore.d.ts +86 -0
  402. package/dist/trading/TradingOverlayStore.d.ts.map +1 -0
  403. package/dist/trading/TradingOverlayStore.js +139 -0
  404. package/dist/trading/TradingOverlayStore.js.map +1 -0
  405. package/dist/trading/UnmanagedIngestion.d.ts +91 -0
  406. package/dist/trading/UnmanagedIngestion.d.ts.map +1 -0
  407. package/dist/trading/UnmanagedIngestion.js +114 -0
  408. package/dist/trading/UnmanagedIngestion.js.map +1 -0
  409. package/dist/trading/__tests__/ManagedTradingController.test.d.ts +18 -0
  410. package/dist/trading/__tests__/ManagedTradingController.test.d.ts.map +1 -0
  411. package/dist/trading/__tests__/ManagedTradingController.test.js +271 -0
  412. package/dist/trading/__tests__/ManagedTradingController.test.js.map +1 -0
  413. package/dist/trading/__tests__/TradingOverlayStore.test.d.ts +16 -0
  414. package/dist/trading/__tests__/TradingOverlayStore.test.d.ts.map +1 -0
  415. package/dist/trading/__tests__/TradingOverlayStore.test.js +267 -0
  416. package/dist/trading/__tests__/TradingOverlayStore.test.js.map +1 -0
  417. package/dist/trading/__tests__/UnmanagedIngestion.test.d.ts +16 -0
  418. package/dist/trading/__tests__/UnmanagedIngestion.test.d.ts.map +1 -0
  419. package/dist/trading/__tests__/UnmanagedIngestion.test.js +170 -0
  420. package/dist/trading/__tests__/UnmanagedIngestion.test.js.map +1 -0
  421. package/dist/trading/managed/ManagedTradingController.d.ts +110 -0
  422. package/dist/trading/managed/ManagedTradingController.d.ts.map +1 -0
  423. package/dist/trading/managed/ManagedTradingController.js +247 -0
  424. package/dist/trading/managed/ManagedTradingController.js.map +1 -0
  425. package/dist/trading/managed/managedCapabilities.d.ts +45 -0
  426. package/dist/trading/managed/managedCapabilities.d.ts.map +1 -0
  427. package/dist/trading/managed/managedCapabilities.js +79 -0
  428. package/dist/trading/managed/managedCapabilities.js.map +1 -0
  429. package/dist/trading/managed/managedTypes.d.ts +122 -0
  430. package/dist/trading/managed/managedTypes.d.ts.map +1 -0
  431. package/dist/trading/managed/managedTypes.js +13 -0
  432. package/dist/trading/managed/managedTypes.js.map +1 -0
  433. package/dist/trading/tradingTypes.d.ts +89 -0
  434. package/dist/trading/tradingTypes.d.ts.map +1 -0
  435. package/dist/trading/tradingTypes.js +8 -0
  436. package/dist/trading/tradingTypes.js.map +1 -0
  437. package/dist/tscript/TScriptIndicator.d.ts +41 -0
  438. package/dist/tscript/TScriptIndicator.d.ts.map +1 -0
  439. package/dist/tscript/TScriptIndicator.js +47 -0
  440. package/dist/tscript/TScriptIndicator.js.map +1 -0
  441. package/dist/tscript/ast.d.ts +89 -0
  442. package/dist/tscript/ast.d.ts.map +1 -0
  443. package/dist/tscript/ast.js +22 -0
  444. package/dist/tscript/ast.js.map +1 -0
  445. package/dist/tscript/lexer.d.ts +36 -0
  446. package/dist/tscript/lexer.d.ts.map +1 -0
  447. package/dist/tscript/lexer.js +187 -0
  448. package/dist/tscript/lexer.js.map +1 -0
  449. package/dist/tscript/parser.d.ts +50 -0
  450. package/dist/tscript/parser.d.ts.map +1 -0
  451. package/dist/tscript/parser.js +318 -0
  452. package/dist/tscript/parser.js.map +1 -0
  453. package/dist/tscript/runtime.d.ts +123 -0
  454. package/dist/tscript/runtime.d.ts.map +1 -0
  455. package/dist/tscript/runtime.js +475 -0
  456. package/dist/tscript/runtime.js.map +1 -0
  457. package/dist/tscript/series.d.ts +49 -0
  458. package/dist/tscript/series.d.ts.map +1 -0
  459. package/dist/tscript/series.js +79 -0
  460. package/dist/tscript/series.js.map +1 -0
  461. package/dist/types/IChart.d.ts +48 -0
  462. package/dist/types/IChart.d.ts.map +1 -0
  463. package/dist/types/IChart.js +2 -0
  464. package/dist/types/IChart.js.map +1 -0
  465. package/{src/types/IRenderer.ts → dist/types/IRenderer.d.ts} +2 -8
  466. package/dist/types/IRenderer.d.ts.map +1 -0
  467. package/dist/types/IRenderer.js +2 -0
  468. package/dist/types/IRenderer.js.map +1 -0
  469. package/dist/types/ISeries.d.ts +26 -0
  470. package/dist/types/ISeries.d.ts.map +1 -0
  471. package/dist/types/ISeries.js +2 -0
  472. package/dist/types/ISeries.js.map +1 -0
  473. package/package.json +32 -4
  474. package/src/__tests__/backwardCompatibility.test.ts +0 -191
  475. package/src/__tests__/candleInvariant.test.ts +0 -500
  476. package/src/__tests__/timeframeBoundary.test.ts +0 -583
  477. package/src/api/DrawingManager.ts +0 -188
  478. package/src/api/EventBus.ts +0 -53
  479. package/src/api/IndicatorDAG.ts +0 -389
  480. package/src/api/IndicatorRegistry.ts +0 -47
  481. package/src/api/LayoutManager.ts +0 -72
  482. package/src/api/PaneManager.ts +0 -129
  483. package/src/api/ReferenceAPI.ts +0 -195
  484. package/src/api/TChart.ts +0 -881
  485. package/src/api/drawing tools/fib gann menu/fibRetracement.ts +0 -27
  486. package/src/api/drawing tools/lines menu/crossLine.ts +0 -21
  487. package/src/api/drawing tools/lines menu/disjointChannel.ts +0 -74
  488. package/src/api/drawing tools/lines menu/extendedLine.ts +0 -22
  489. package/src/api/drawing tools/lines menu/flatTopBottom.ts +0 -45
  490. package/src/api/drawing tools/lines menu/horizontal.ts +0 -24
  491. package/src/api/drawing tools/lines menu/horizontalRay.ts +0 -25
  492. package/src/api/drawing tools/lines menu/infoLine.ts +0 -127
  493. package/src/api/drawing tools/lines menu/insidePitchfork.ts +0 -21
  494. package/src/api/drawing tools/lines menu/modifiedSchiffPitchfork.ts +0 -18
  495. package/src/api/drawing tools/lines menu/parallelChannel.ts +0 -47
  496. package/src/api/drawing tools/lines menu/pitchfork.ts +0 -15
  497. package/src/api/drawing tools/lines menu/ray.ts +0 -28
  498. package/src/api/drawing tools/lines menu/regressionTrend.ts +0 -157
  499. package/src/api/drawing tools/lines menu/schiffPitchfork.ts +0 -18
  500. package/src/api/drawing tools/lines menu/trendAngle.ts +0 -64
  501. package/src/api/drawing tools/lines menu/trendline.ts +0 -16
  502. package/src/api/drawing tools/lines menu/vertical.ts +0 -16
  503. package/src/api/drawing tools/shapes menu/rectangle.ts +0 -24
  504. package/src/api/drawing tools/shapes menu/text.ts +0 -30
  505. package/src/api/drawingUtils.ts +0 -82
  506. package/src/core/CanvasLayer.ts +0 -77
  507. package/src/core/Chart.ts +0 -917
  508. package/src/core/CoordTransform.ts +0 -282
  509. package/src/core/Crosshair.ts +0 -207
  510. package/src/core/IndicatorEngine.ts +0 -216
  511. package/src/core/InteractionManager.ts +0 -899
  512. package/src/core/PriceScale.ts +0 -133
  513. package/src/core/Series.ts +0 -132
  514. package/src/core/TimeScale.ts +0 -175
  515. package/src/datafeed/DatafeedConnector.ts +0 -300
  516. package/src/engine/CandleEngine.ts +0 -458
  517. package/src/engine/__tests__/CandleEngine.test.ts +0 -402
  518. package/src/engine/candleInvariants.ts +0 -172
  519. package/src/index.ts +0 -190
  520. package/src/licensing/ChartRuntimeResolver.ts +0 -380
  521. package/src/licensing/LicenseManager.ts +0 -131
  522. package/src/licensing/__tests__/ChartRuntimeResolver.test.ts +0 -207
  523. package/src/licensing/__tests__/LicenseManager.test.ts +0 -180
  524. package/src/licensing/licenseTypes.ts +0 -19
  525. package/src/pine/PineCompiler.ts +0 -68
  526. package/src/pine/diagnostics.ts +0 -30
  527. package/src/pine/pine-ast.ts +0 -163
  528. package/src/pine/pine-lexer.ts +0 -265
  529. package/src/pine/pine-parser.ts +0 -439
  530. package/src/pine/pine-transpiler.ts +0 -301
  531. package/src/pixi/LayerName.ts +0 -35
  532. package/src/pixi/PixiCandlestickRenderer.ts +0 -125
  533. package/src/pixi/PixiChart.ts +0 -425
  534. package/src/pixi/PixiCrosshairRenderer.ts +0 -134
  535. package/src/pixi/PixiDrawingRenderer.ts +0 -121
  536. package/src/pixi/PixiGridRenderer.ts +0 -136
  537. package/src/pixi/PixiLayerManager.ts +0 -102
  538. package/src/renderers/CandlestickRenderer.ts +0 -130
  539. package/src/renderers/HistogramRenderer.ts +0 -63
  540. package/src/renderers/LineRenderer.ts +0 -77
  541. package/src/theme/colors.ts +0 -21
  542. package/src/tools/barDivergenceCheck.ts +0 -305
  543. package/src/trading/TradingOverlayStore.ts +0 -161
  544. package/src/trading/UnmanagedIngestion.ts +0 -156
  545. package/src/trading/__tests__/ManagedTradingController.test.ts +0 -338
  546. package/src/trading/__tests__/TradingOverlayStore.test.ts +0 -323
  547. package/src/trading/__tests__/UnmanagedIngestion.test.ts +0 -205
  548. package/src/trading/managed/ManagedTradingController.ts +0 -292
  549. package/src/trading/managed/managedCapabilities.ts +0 -98
  550. package/src/trading/managed/managedTypes.ts +0 -151
  551. package/src/trading/tradingTypes.ts +0 -135
  552. package/src/tscript/TScriptIndicator.ts +0 -54
  553. package/src/tscript/ast.ts +0 -105
  554. package/src/tscript/lexer.ts +0 -190
  555. package/src/tscript/parser.ts +0 -334
  556. package/src/tscript/runtime.ts +0 -525
  557. package/src/tscript/series.ts +0 -84
  558. package/src/types/IChart.ts +0 -56
  559. package/src/types/ISeries.ts +0 -30
  560. package/tsconfig.json +0 -22
  561. package/tsup.config.ts +0 -15
  562. package/vitest.config.ts +0 -25
@@ -0,0 +1,318 @@
1
+ /**
2
+ * TScript Parser — recursive-descent, produces a typed AST.
3
+ *
4
+ * Precedence (low → high):
5
+ * ternary ? :
6
+ * or
7
+ * and
8
+ * not
9
+ * comparison < > <= >= == !=
10
+ * addition + -
11
+ * multiply * / %
12
+ * unary - (prefix)
13
+ * primary literals, identifiers, index [], call()
14
+ */
15
+ import { Lexer } from './lexer';
16
+ export class Parser {
17
+ _tokens;
18
+ _pos = 0;
19
+ constructor(src) {
20
+ this._tokens = new Lexer(src).tokenize().filter((t) => t.kind !== 'NEWLINE' || this._isStatementBoundary(t));
21
+ // Re-filter: keep NEWLINEs as statement separators but collapse runs
22
+ this._tokens = this._collapseNewlines(new Lexer(src).tokenize());
23
+ }
24
+ parse() {
25
+ const stmts = [];
26
+ this._skipNewlines();
27
+ while (!this._check('EOF')) {
28
+ stmts.push(this._stmt());
29
+ this._skipNewlines();
30
+ }
31
+ return { kind: 'Program', stmts };
32
+ }
33
+ // ─── Statements ─────────────────────────────────────────────────────────────
34
+ _stmt() {
35
+ // indicator("title")
36
+ if (this._checkIdent('indicator')) {
37
+ return this._indicatorDecl();
38
+ }
39
+ // assignment: IDENT = expr (but not IDENT == ...)
40
+ if (this._check('IDENT') && this._peekKind(1) === 'EQ') {
41
+ return this._assign();
42
+ }
43
+ return this._exprStmt();
44
+ }
45
+ _indicatorDecl() {
46
+ this._consumeIdent('indicator');
47
+ this._consume('LPAREN', "Expected '(' after 'indicator'");
48
+ const title = this._consume('STRING', "Expected string title in indicator()").value;
49
+ this._consume('RPAREN', "Expected ')' after indicator title");
50
+ this._consumeNewlineOrEOF();
51
+ return { kind: 'IndicatorDecl', title };
52
+ }
53
+ _assign() {
54
+ const name = this._consume('IDENT', 'Expected identifier').value;
55
+ this._consume('EQ', "Expected '='");
56
+ const value = this._expr();
57
+ this._consumeNewlineOrEOF();
58
+ return { kind: 'AssignStmt', name, value };
59
+ }
60
+ _exprStmt() {
61
+ const expr = this._expr();
62
+ this._consumeNewlineOrEOF();
63
+ return { kind: 'ExprStmt', expr };
64
+ }
65
+ // ─── Expressions ────────────────────────────────────────────────────────────
66
+ _expr() {
67
+ return this._ternary();
68
+ }
69
+ _ternary() {
70
+ let left = this._or();
71
+ if (this._match('QMARK')) {
72
+ const consequent = this._expr();
73
+ this._consume('COLON', "Expected ':' in ternary expression");
74
+ const alternate = this._expr();
75
+ const node = { kind: 'TernaryExpr', condition: left, consequent, alternate };
76
+ left = node;
77
+ }
78
+ return left;
79
+ }
80
+ _or() {
81
+ let left = this._and();
82
+ while (this._checkIdent('or')) {
83
+ this._advance();
84
+ const right = this._and();
85
+ const node = { kind: 'LogicalExpr', op: 'or', left, right };
86
+ left = node;
87
+ }
88
+ return left;
89
+ }
90
+ _and() {
91
+ let left = this._not();
92
+ while (this._checkIdent('and')) {
93
+ this._advance();
94
+ const right = this._not();
95
+ const node = { kind: 'LogicalExpr', op: 'and', left, right };
96
+ left = node;
97
+ }
98
+ return left;
99
+ }
100
+ _not() {
101
+ if (this._checkIdent('not')) {
102
+ this._advance();
103
+ const operand = this._comparison();
104
+ const node = { kind: 'UnaryExpr', op: 'not', operand };
105
+ return node;
106
+ }
107
+ return this._comparison();
108
+ }
109
+ _comparison() {
110
+ let left = this._addition();
111
+ while (true) {
112
+ if (this._match('LTE')) {
113
+ left = this._binop('<=', left, this._addition());
114
+ continue;
115
+ }
116
+ if (this._match('GTE')) {
117
+ left = this._binop('>=', left, this._addition());
118
+ continue;
119
+ }
120
+ if (this._match('EQEQ')) {
121
+ left = this._binop('==', left, this._addition());
122
+ continue;
123
+ }
124
+ if (this._match('NEQ')) {
125
+ left = this._binop('!=', left, this._addition());
126
+ continue;
127
+ }
128
+ if (this._match('LT')) {
129
+ left = this._binop('<', left, this._addition());
130
+ continue;
131
+ }
132
+ if (this._match('GT')) {
133
+ left = this._binop('>', left, this._addition());
134
+ continue;
135
+ }
136
+ break;
137
+ }
138
+ return left;
139
+ }
140
+ _addition() {
141
+ let left = this._multiplication();
142
+ while (true) {
143
+ if (this._match('PLUS')) {
144
+ left = this._binop('+', left, this._multiplication());
145
+ continue;
146
+ }
147
+ if (this._match('MINUS')) {
148
+ left = this._binop('-', left, this._multiplication());
149
+ continue;
150
+ }
151
+ break;
152
+ }
153
+ return left;
154
+ }
155
+ _multiplication() {
156
+ let left = this._unary();
157
+ while (true) {
158
+ if (this._match('STAR')) {
159
+ left = this._binop('*', left, this._unary());
160
+ continue;
161
+ }
162
+ if (this._match('SLASH')) {
163
+ left = this._binop('/', left, this._unary());
164
+ continue;
165
+ }
166
+ if (this._match('PERCENT')) {
167
+ left = this._binop('%', left, this._unary());
168
+ continue;
169
+ }
170
+ break;
171
+ }
172
+ return left;
173
+ }
174
+ _unary() {
175
+ if (this._match('MINUS')) {
176
+ const operand = this._unary();
177
+ const node = { kind: 'UnaryExpr', op: '-', operand };
178
+ return node;
179
+ }
180
+ return this._primary();
181
+ }
182
+ _primary() {
183
+ const tok = this._current();
184
+ // Number literal
185
+ if (tok.kind === 'NUMBER') {
186
+ this._advance();
187
+ const node = { kind: 'NumberLit', value: parseFloat(tok.value) };
188
+ return node;
189
+ }
190
+ // String literal
191
+ if (tok.kind === 'STRING') {
192
+ this._advance();
193
+ const node = { kind: 'StringLit', value: tok.value };
194
+ return node;
195
+ }
196
+ // Bool literal
197
+ if (tok.kind === 'BOOL') {
198
+ this._advance();
199
+ const node = { kind: 'BoolLit', value: tok.value === 'true' };
200
+ return node;
201
+ }
202
+ // na (special NaN constant)
203
+ if (tok.kind === 'IDENT' && tok.value === 'na') {
204
+ this._advance();
205
+ const node = { kind: 'NumberLit', value: NaN };
206
+ return node;
207
+ }
208
+ // Function call: IDENT '(' args ')'
209
+ if (tok.kind === 'IDENT' && this._peekKind(1) === 'LPAREN') {
210
+ return this._callExpr();
211
+ }
212
+ // Identifier (and optional series index)
213
+ if (tok.kind === 'IDENT') {
214
+ this._advance();
215
+ let node = { kind: 'Identifier', name: tok.value };
216
+ // Series index: ident[expr]
217
+ while (this._check('LBRACKET')) {
218
+ this._advance();
219
+ const index = this._expr();
220
+ this._consume('RBRACKET', "Expected ']'");
221
+ const indexNode = { kind: 'IndexExpr', series: node, index };
222
+ node = indexNode;
223
+ }
224
+ return node;
225
+ }
226
+ // Grouped: '(' expr ')'
227
+ if (tok.kind === 'LPAREN') {
228
+ this._advance();
229
+ const inner = this._expr();
230
+ this._consume('RPAREN', "Expected ')'");
231
+ return inner;
232
+ }
233
+ throw new SyntaxError(`[TScript] Unexpected token '${tok.value}' (${tok.kind}) at ${tok.line}:${tok.col}`);
234
+ }
235
+ _callExpr() {
236
+ const callee = this._consume('IDENT', 'Expected function name').value;
237
+ this._consume('LPAREN', "Expected '('");
238
+ const args = [];
239
+ if (!this._check('RPAREN')) {
240
+ args.push(this._expr());
241
+ while (this._match('COMMA')) {
242
+ args.push(this._expr());
243
+ }
244
+ }
245
+ this._consume('RPAREN', "Expected ')'");
246
+ return { kind: 'CallExpr', callee, args };
247
+ }
248
+ // ─── Utility helpers ────────────────────────────────────────────────────────
249
+ _binop(op, left, right) {
250
+ return { kind: 'BinaryExpr', op, left, right };
251
+ }
252
+ _current() {
253
+ return this._tokens[this._pos];
254
+ }
255
+ _advance() {
256
+ return this._tokens[this._pos++];
257
+ }
258
+ _check(kind) {
259
+ return this._current().kind === kind;
260
+ }
261
+ _checkIdent(name) {
262
+ const t = this._current();
263
+ return t.kind === 'IDENT' && t.value === name;
264
+ }
265
+ _peekKind(offset) {
266
+ return this._tokens[this._pos + offset]?.kind ?? 'EOF';
267
+ }
268
+ _match(kind) {
269
+ if (this._check(kind)) {
270
+ this._advance();
271
+ return true;
272
+ }
273
+ return false;
274
+ }
275
+ _consume(kind, msg) {
276
+ if (this._check(kind))
277
+ return this._advance();
278
+ const t = this._current();
279
+ throw new SyntaxError(`[TScript] ${msg} — got '${t.value}' at ${t.line}:${t.col}`);
280
+ }
281
+ _consumeIdent(name) {
282
+ if (this._checkIdent(name))
283
+ return this._advance();
284
+ const t = this._current();
285
+ throw new SyntaxError(`[TScript] Expected '${name}' — got '${t.value}' at ${t.line}:${t.col}`);
286
+ }
287
+ _consumeNewlineOrEOF() {
288
+ // Silently accept NEWLINE or EOF; required at end of every statement.
289
+ if (this._check('NEWLINE') || this._check('EOF')) {
290
+ if (this._check('NEWLINE'))
291
+ this._advance();
292
+ }
293
+ // If neither, we just continue (expression statements don't need semicolons)
294
+ }
295
+ _skipNewlines() {
296
+ while (this._check('NEWLINE'))
297
+ this._advance();
298
+ }
299
+ _collapseNewlines(tokens) {
300
+ const out = [];
301
+ let lastWasNL = false;
302
+ for (const t of tokens) {
303
+ if (t.kind === 'NEWLINE') {
304
+ if (!lastWasNL)
305
+ out.push(t);
306
+ lastWasNL = true;
307
+ }
308
+ else {
309
+ lastWasNL = false;
310
+ out.push(t);
311
+ }
312
+ }
313
+ return out;
314
+ }
315
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
316
+ _isStatementBoundary(_t) { return true; }
317
+ }
318
+ //# sourceMappingURL=parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/tscript/parser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,123 @@
1
+ /**
2
+ * TScript Runtime — tree-walking interpreter.
3
+ *
4
+ * Execution model
5
+ * ───────────────
6
+ * A TScript program is executed once per compiled bar in left-to-right,
7
+ * top-to-bottom statement order. The runtime keeps a persistent `Scope`
8
+ * so that `Series` variables accumulate history across bars.
9
+ *
10
+ * Built-in series (available in every script):
11
+ * open, high, low, close, volume, hl2, hlc3, ohlc4, bar_index
12
+ *
13
+ * Built-in TA functions:
14
+ * sma(src, length) — simple moving average
15
+ * ema(src, length) — exponential moving average
16
+ * wma(src, length) — weighted moving average
17
+ * rma(src, length) — Wilder's (RMA) moving average
18
+ * stdev(src, length) — rolling standard deviation
19
+ * highest(src, n) — rolling max over n bars
20
+ * lowest(src, n) — rolling min over n bars
21
+ * change(src, n?) — src - src[n] (default n=1)
22
+ * mom(src, length) — momentum = change(src, length)
23
+ * atr(length) — Average True Range
24
+ * crossover(a, b) — a crosses above b
25
+ * crossunder(a, b) — a crosses below b
26
+ * nz(x, y?) — replace NaN with y (default 0)
27
+ * na(x) — true if x is NaN
28
+ * abs(x) — Math.abs
29
+ * max(...) — Math.max over args
30
+ * min(...) — Math.min over args
31
+ * round(x) — Math.round
32
+ * floor(x) — Math.floor
33
+ * ceil(x) — Math.ceil
34
+ * sqrt(x) — Math.sqrt
35
+ * log(x) — Math.log
36
+ * pow(x, y) — Math.pow
37
+ * sign(x) — Math.sign
38
+ *
39
+ * Built-in utility functions:
40
+ * input(default, ...) — returns the default value (params resolved externally)
41
+ * plot(value, ...) — records a value for the current bar
42
+ * barssince(cond) — bars since condition was true
43
+ */
44
+ import type { OHLCV } from '@forgecharts/types';
45
+ import { Series } from './series';
46
+ import type { IndicatorPoint } from '../core/IndicatorEngine';
47
+ /** A TScript value is a number, boolean, string, or Series. */
48
+ export type TValue = number | boolean | string | Series;
49
+ /** Scope maps variable names to their TScript values. */
50
+ export type Scope = Map<string, TValue>;
51
+ /** Result produced by a single script execution run. */
52
+ export type ScriptResult = {
53
+ /** Title from indicator("...") declaration. */
54
+ title: string;
55
+ /** Collected plot() calls for this run, in declaration order. */
56
+ plots: IndicatorPoint[][];
57
+ };
58
+ export declare class TScriptRuntime {
59
+ private readonly _program;
60
+ private readonly _scope;
61
+ private readonly _plotSeries;
62
+ title: string;
63
+ constructor(src: string);
64
+ /**
65
+ * Execute one bar.
66
+ *
67
+ * Call this in chronological order for every OHLCV bar.
68
+ * The runtime updates all built-in series with the bar's OHLCV values,
69
+ * then re-executes the full program body.
70
+ *
71
+ * @returns the current values of all `plot()` series after this bar.
72
+ */
73
+ execBar(bar: OHLCV, barIndex: number): void;
74
+ /**
75
+ * Run the full bar history and return IndicatorPoint arrays indexed by
76
+ * plot() call order.
77
+ *
78
+ * @param bars chronologically ordered OHLCV array
79
+ */
80
+ run(bars: readonly OHLCV[]): IndicatorPoint[][];
81
+ /**
82
+ * Snapshot the current plot series as IndicatorPoint arrays.
83
+ * Must be called after `run()` or after the last `execBar()`.
84
+ * @param bars the same bar array passed to run() — used for timestamps.
85
+ */
86
+ getPlots(bars: readonly OHLCV[]): IndicatorPoint[][];
87
+ /** Reset all persistent series state (call on symbol/timeframe change). */
88
+ reset(): void;
89
+ private _execStmt;
90
+ private _execAssign;
91
+ private _evalExpr;
92
+ private _evalIdent;
93
+ private _evalIndex;
94
+ private _evalBinary;
95
+ private _evalUnary;
96
+ private _evalTernary;
97
+ private _evalLogical;
98
+ private _plotIdx;
99
+ private _evalCall;
100
+ /** Resolve a call argument as a Series (wrapping scalar if needed). */
101
+ private _argSeries;
102
+ private _argInt;
103
+ private _ta_sma;
104
+ private _ta_ema;
105
+ private _ta_wma;
106
+ private _ta_rma;
107
+ private _ta_stdev;
108
+ private _ta_rolling;
109
+ private _ta_change;
110
+ private _ta_atr;
111
+ private _ta_crossover;
112
+ private _ta_crossunder;
113
+ private _ta_barssince;
114
+ /** Persistent scalar state for stateful TA functions (EMA, RMA, ATR). */
115
+ private readonly _internalState;
116
+ private _getInternalNum;
117
+ private _setInternal;
118
+ /** Push a value into a named built-in Series, creating it if needed. */
119
+ private _pushBuiltin;
120
+ /** Compute a simple rolling average directly from a Series (no state). */
121
+ private _smaOfSeries;
122
+ }
123
+ //# sourceMappingURL=runtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/tscript/runtime.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AASlC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAI9D,+DAA+D;AAC/D,MAAM,MAAM,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;AAExD,yDAAyD;AACzD,MAAM,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAExC,wDAAwD;AACxD,MAAM,MAAM,YAAY,GAAG;IACzB,+CAA+C;IAC/C,KAAK,EAAG,MAAM,CAAC;IACf,iEAAiE;IACjE,KAAK,EAAG,cAAc,EAAE,EAAE,CAAC;CAC5B,CAAC;AAoBF,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAa;IACtC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA6B;IACpD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAiB;IAG7C,KAAK,EAAE,MAAM,CAAY;gBAEb,GAAG,EAAE,MAAM;IAYvB;;;;;;;;OAQG;IACH,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAqB3C;;;;;OAKG;IACH,GAAG,CAAC,IAAI,EAAE,SAAS,KAAK,EAAE,GAAG,cAAc,EAAE,EAAE;IAQ/C;;;;OAIG;IACH,QAAQ,CAAC,IAAI,EAAE,SAAS,KAAK,EAAE,GAAG,cAAc,EAAE,EAAE;IAapD,2EAA2E;IAC3E,KAAK,IAAI,IAAI;IAUb,OAAO,CAAC,SAAS;IAQjB,OAAO,CAAC,WAAW;IAsBnB,OAAO,CAAC,SAAS;IAejB,OAAO,CAAC,UAAU;IASlB,OAAO,CAAC,UAAU;IASlB,OAAO,CAAC,WAAW;IAkBnB,OAAO,CAAC,UAAU;IAKlB,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,YAAY;IAQpB,OAAO,CAAC,QAAQ,CAAK;IAErB,OAAO,CAAC,SAAS;IA0EjB,uEAAuE;IACvE,OAAO,CAAC,UAAU;IAYlB,OAAO,CAAC,OAAO;IAIf,OAAO,CAAC,OAAO;IASf,OAAO,CAAC,OAAO;IAgBf,OAAO,CAAC,OAAO;IAUf,OAAO,CAAC,OAAO;IAcf,OAAO,CAAC,SAAS;IAajB,OAAO,CAAC,WAAW;IASnB,OAAO,CAAC,UAAU;IAOlB,OAAO,CAAC,OAAO;IAqBf,OAAO,CAAC,aAAa;IAMrB,OAAO,CAAC,cAAc;IAMtB,OAAO,CAAC,aAAa;IAUrB,yEAAyE;IACzE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA6B;IAE5D,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,YAAY;IAIpB,wEAAwE;IACxE,OAAO,CAAC,YAAY;IASpB,0EAA0E;IAC1E,OAAO,CAAC,YAAY;CAKrB"}