@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.
- package/dist/__tests__/backwardCompatibility.test.d.ts +14 -0
- package/dist/__tests__/backwardCompatibility.test.d.ts.map +1 -0
- package/dist/__tests__/backwardCompatibility.test.js +159 -0
- package/dist/__tests__/backwardCompatibility.test.js.map +1 -0
- package/dist/__tests__/candleInvariant.test.d.ts +20 -0
- package/dist/__tests__/candleInvariant.test.d.ts.map +1 -0
- package/dist/__tests__/candleInvariant.test.js +415 -0
- package/dist/__tests__/candleInvariant.test.js.map +1 -0
- package/dist/__tests__/public-api-surface.d.ts +13 -0
- package/dist/__tests__/public-api-surface.d.ts.map +1 -0
- package/{src/__tests__/public-api-surface.ts → dist/__tests__/public-api-surface.js} +4 -42
- package/dist/__tests__/public-api-surface.js.map +1 -0
- package/dist/__tests__/timeframeBoundary.test.d.ts +17 -0
- package/dist/__tests__/timeframeBoundary.test.d.ts.map +1 -0
- package/dist/__tests__/timeframeBoundary.test.js +452 -0
- package/dist/__tests__/timeframeBoundary.test.js.map +1 -0
- package/dist/api/DrawingManager.d.ts +20 -0
- package/dist/api/DrawingManager.d.ts.map +1 -0
- package/dist/api/DrawingManager.js +190 -0
- package/dist/api/DrawingManager.js.map +1 -0
- package/dist/api/EventBus.d.ts +19 -0
- package/dist/api/EventBus.d.ts.map +1 -0
- package/dist/api/EventBus.js +44 -0
- package/dist/api/EventBus.js.map +1 -0
- package/dist/api/IndicatorDAG.d.ts +85 -0
- package/dist/api/IndicatorDAG.d.ts.map +1 -0
- package/dist/api/IndicatorDAG.js +316 -0
- package/dist/api/IndicatorDAG.js.map +1 -0
- package/dist/api/IndicatorRegistry.d.ts +22 -0
- package/dist/api/IndicatorRegistry.d.ts.map +1 -0
- package/dist/api/IndicatorRegistry.js +39 -0
- package/dist/api/IndicatorRegistry.js.map +1 -0
- package/dist/api/LayoutManager.d.ts +30 -0
- package/dist/api/LayoutManager.d.ts.map +1 -0
- package/dist/api/LayoutManager.js +51 -0
- package/dist/api/LayoutManager.js.map +1 -0
- package/dist/api/PaneManager.d.ts +42 -0
- package/dist/api/PaneManager.d.ts.map +1 -0
- package/dist/api/PaneManager.js +119 -0
- package/dist/api/PaneManager.js.map +1 -0
- package/dist/api/ReferenceAPI.d.ts +78 -0
- package/dist/api/ReferenceAPI.d.ts.map +1 -0
- package/dist/api/ReferenceAPI.js +153 -0
- package/dist/api/ReferenceAPI.js.map +1 -0
- package/dist/api/TChart.d.ts +345 -0
- package/dist/api/TChart.d.ts.map +1 -0
- package/dist/api/TChart.js +765 -0
- package/dist/api/TChart.js.map +1 -0
- package/{src/api/createChart.ts → dist/api/createChart.d.ts} +2 -7
- package/dist/api/createChart.d.ts.map +1 -0
- package/dist/api/createChart.js +42 -0
- package/dist/api/createChart.js.map +1 -0
- package/dist/api/drawing tools/fib gann menu/fibRetracement.d.ts +4 -0
- package/dist/api/drawing tools/fib gann menu/fibRetracement.d.ts.map +1 -0
- package/dist/api/drawing tools/fib gann menu/fibRetracement.js +22 -0
- package/dist/api/drawing tools/fib gann menu/fibRetracement.js.map +1 -0
- package/dist/api/drawing tools/lines menu/crossLine.d.ts +4 -0
- package/dist/api/drawing tools/lines menu/crossLine.d.ts.map +1 -0
- package/dist/api/drawing tools/lines menu/crossLine.js +16 -0
- package/dist/api/drawing tools/lines menu/crossLine.js.map +1 -0
- package/dist/api/drawing tools/lines menu/disjointChannel.d.ts +17 -0
- package/dist/api/drawing tools/lines menu/disjointChannel.d.ts.map +1 -0
- package/dist/api/drawing tools/lines menu/disjointChannel.js +59 -0
- package/dist/api/drawing tools/lines menu/disjointChannel.js.map +1 -0
- package/dist/api/drawing tools/lines menu/extendedLine.d.ts +4 -0
- package/dist/api/drawing tools/lines menu/extendedLine.d.ts.map +1 -0
- package/dist/api/drawing tools/lines menu/extendedLine.js +17 -0
- package/dist/api/drawing tools/lines menu/extendedLine.js.map +1 -0
- package/dist/api/drawing tools/lines menu/flatTopBottom.d.ts +4 -0
- package/dist/api/drawing tools/lines menu/flatTopBottom.d.ts.map +1 -0
- package/dist/api/drawing tools/lines menu/flatTopBottom.js +41 -0
- package/dist/api/drawing tools/lines menu/flatTopBottom.js.map +1 -0
- package/dist/api/drawing tools/lines menu/horizontal.d.ts +4 -0
- package/dist/api/drawing tools/lines menu/horizontal.d.ts.map +1 -0
- package/dist/api/drawing tools/lines menu/horizontal.js +19 -0
- package/dist/api/drawing tools/lines menu/horizontal.js.map +1 -0
- package/dist/api/drawing tools/lines menu/horizontalRay.d.ts +4 -0
- package/dist/api/drawing tools/lines menu/horizontalRay.d.ts.map +1 -0
- package/dist/api/drawing tools/lines menu/horizontalRay.js +20 -0
- package/dist/api/drawing tools/lines menu/horizontalRay.js.map +1 -0
- package/dist/api/drawing tools/lines menu/infoLine.d.ts +4 -0
- package/dist/api/drawing tools/lines menu/infoLine.d.ts.map +1 -0
- package/dist/api/drawing tools/lines menu/infoLine.js +107 -0
- package/dist/api/drawing tools/lines menu/infoLine.js.map +1 -0
- package/dist/api/drawing tools/lines menu/insidePitchfork.d.ts +4 -0
- package/dist/api/drawing tools/lines menu/insidePitchfork.d.ts.map +1 -0
- package/dist/api/drawing tools/lines menu/insidePitchfork.js +31 -0
- package/dist/api/drawing tools/lines menu/insidePitchfork.js.map +1 -0
- package/dist/api/drawing tools/lines menu/modifiedSchiffPitchfork.d.ts +4 -0
- package/dist/api/drawing tools/lines menu/modifiedSchiffPitchfork.d.ts.map +1 -0
- package/dist/api/drawing tools/lines menu/modifiedSchiffPitchfork.js +15 -0
- package/dist/api/drawing tools/lines menu/modifiedSchiffPitchfork.js.map +1 -0
- package/dist/api/drawing tools/lines menu/parallelChannel.d.ts +4 -0
- package/dist/api/drawing tools/lines menu/parallelChannel.d.ts.map +1 -0
- package/dist/api/drawing tools/lines menu/parallelChannel.js +43 -0
- package/dist/api/drawing tools/lines menu/parallelChannel.js.map +1 -0
- package/dist/api/drawing tools/lines menu/pitchfork.d.ts +4 -0
- package/dist/api/drawing tools/lines menu/pitchfork.d.ts.map +1 -0
- package/dist/api/drawing tools/lines menu/pitchfork.js +12 -0
- package/dist/api/drawing tools/lines menu/pitchfork.js.map +1 -0
- package/dist/api/drawing tools/lines menu/ray.d.ts +4 -0
- package/dist/api/drawing tools/lines menu/ray.d.ts.map +1 -0
- package/dist/api/drawing tools/lines menu/ray.js +23 -0
- package/dist/api/drawing tools/lines menu/ray.js.map +1 -0
- package/dist/api/drawing tools/lines menu/regressionTrend.d.ts +4 -0
- package/dist/api/drawing tools/lines menu/regressionTrend.d.ts.map +1 -0
- package/dist/api/drawing tools/lines menu/regressionTrend.js +127 -0
- package/dist/api/drawing tools/lines menu/regressionTrend.js.map +1 -0
- package/dist/api/drawing tools/lines menu/schiffPitchfork.d.ts +4 -0
- package/dist/api/drawing tools/lines menu/schiffPitchfork.d.ts.map +1 -0
- package/dist/api/drawing tools/lines menu/schiffPitchfork.js +15 -0
- package/dist/api/drawing tools/lines menu/schiffPitchfork.js.map +1 -0
- package/dist/api/drawing tools/lines menu/trendAngle.d.ts +4 -0
- package/dist/api/drawing tools/lines menu/trendAngle.d.ts.map +1 -0
- package/dist/api/drawing tools/lines menu/trendAngle.js +51 -0
- package/dist/api/drawing tools/lines menu/trendAngle.js.map +1 -0
- package/dist/api/drawing tools/lines menu/trendline.d.ts +4 -0
- package/dist/api/drawing tools/lines menu/trendline.d.ts.map +1 -0
- package/dist/api/drawing tools/lines menu/trendline.js +11 -0
- package/dist/api/drawing tools/lines menu/trendline.js.map +1 -0
- package/dist/api/drawing tools/lines menu/vertical.d.ts +4 -0
- package/dist/api/drawing tools/lines menu/vertical.d.ts.map +1 -0
- package/dist/api/drawing tools/lines menu/vertical.js +11 -0
- package/dist/api/drawing tools/lines menu/vertical.js.map +1 -0
- package/dist/api/drawing tools/pointers menu/crosshair.d.ts +16 -0
- package/dist/api/drawing tools/pointers menu/crosshair.d.ts.map +1 -0
- package/{src/api/drawing tools/pointers menu/crosshair.ts → dist/api/drawing tools/pointers menu/crosshair.js } +6 -7
- package/dist/api/drawing tools/pointers menu/crosshair.js.map +1 -0
- package/dist/api/drawing tools/pointers menu/cursor.d.ts +15 -0
- package/dist/api/drawing tools/pointers menu/cursor.d.ts.map +1 -0
- package/{src/api/drawing tools/pointers menu/cursor.ts → dist/api/drawing tools/pointers menu/cursor.js } +7 -8
- package/dist/api/drawing tools/pointers menu/cursor.js.map +1 -0
- package/dist/api/drawing tools/pointers menu/demonstration.d.ts +30 -0
- package/dist/api/drawing tools/pointers menu/demonstration.d.ts.map +1 -0
- package/{src/api/drawing tools/pointers menu/demonstration.ts → dist/api/drawing tools/pointers menu/demonstration.js } +9 -14
- package/dist/api/drawing tools/pointers menu/demonstration.js.map +1 -0
- package/dist/api/drawing tools/pointers menu/dot.d.ts +23 -0
- package/dist/api/drawing tools/pointers menu/dot.d.ts.map +1 -0
- package/{src/api/drawing tools/pointers menu/dot.ts → dist/api/drawing tools/pointers menu/dot.js } +8 -11
- package/dist/api/drawing tools/pointers menu/dot.js.map +1 -0
- package/dist/api/drawing tools/shapes menu/rectangle.d.ts +4 -0
- package/dist/api/drawing tools/shapes menu/rectangle.d.ts.map +1 -0
- package/dist/api/drawing tools/shapes menu/rectangle.js +19 -0
- package/dist/api/drawing tools/shapes menu/rectangle.js.map +1 -0
- package/dist/api/drawing tools/shapes menu/text.d.ts +4 -0
- package/dist/api/drawing tools/shapes menu/text.d.ts.map +1 -0
- package/dist/api/drawing tools/shapes menu/text.js +25 -0
- package/dist/api/drawing tools/shapes menu/text.js.map +1 -0
- package/dist/api/drawingUtils.d.ts +22 -0
- package/dist/api/drawingUtils.d.ts.map +1 -0
- package/dist/api/drawingUtils.js +83 -0
- package/dist/api/drawingUtils.js.map +1 -0
- package/dist/core/CanvasLayer.d.ts +26 -0
- package/dist/core/CanvasLayer.d.ts.map +1 -0
- package/dist/core/CanvasLayer.js +56 -0
- package/dist/core/CanvasLayer.js.map +1 -0
- package/dist/core/Chart.d.ts +164 -0
- package/dist/core/Chart.d.ts.map +1 -0
- package/dist/core/Chart.js +839 -0
- package/dist/core/Chart.js.map +1 -0
- package/dist/core/CoordTransform.d.ts +168 -0
- package/dist/core/CoordTransform.d.ts.map +1 -0
- package/dist/core/CoordTransform.js +224 -0
- package/dist/core/CoordTransform.js.map +1 -0
- package/dist/core/Crosshair.d.ts +30 -0
- package/dist/core/Crosshair.d.ts.map +1 -0
- package/dist/core/Crosshair.js +186 -0
- package/dist/core/Crosshair.js.map +1 -0
- package/dist/core/IndicatorEngine.d.ts +51 -0
- package/dist/core/IndicatorEngine.d.ts.map +1 -0
- package/dist/core/IndicatorEngine.js +181 -0
- package/dist/core/IndicatorEngine.js.map +1 -0
- package/dist/core/InteractionManager.d.ts +197 -0
- package/dist/core/InteractionManager.d.ts.map +1 -0
- package/dist/core/InteractionManager.js +698 -0
- package/dist/core/InteractionManager.js.map +1 -0
- package/dist/core/PriceScale.d.ts +27 -0
- package/dist/core/PriceScale.d.ts.map +1 -0
- package/dist/core/PriceScale.js +113 -0
- package/dist/core/PriceScale.js.map +1 -0
- package/dist/core/Series.d.ts +40 -0
- package/dist/core/Series.d.ts.map +1 -0
- package/dist/core/Series.js +114 -0
- package/dist/core/Series.js.map +1 -0
- package/dist/core/TimeScale.d.ts +43 -0
- package/dist/core/TimeScale.d.ts.map +1 -0
- package/dist/core/TimeScale.js +150 -0
- package/dist/core/TimeScale.js.map +1 -0
- package/dist/datafeed/DatafeedConnector.d.ts +89 -0
- package/dist/datafeed/DatafeedConnector.d.ts.map +1 -0
- package/dist/datafeed/DatafeedConnector.js +268 -0
- package/dist/datafeed/DatafeedConnector.js.map +1 -0
- package/dist/engine/CandleEngine.d.ts +207 -0
- package/dist/engine/CandleEngine.d.ts.map +1 -0
- package/dist/engine/CandleEngine.js +318 -0
- package/dist/engine/CandleEngine.js.map +1 -0
- package/dist/engine/__tests__/CandleEngine.test.d.ts +2 -0
- package/dist/engine/__tests__/CandleEngine.test.d.ts.map +1 -0
- package/dist/engine/__tests__/CandleEngine.test.js +300 -0
- package/dist/engine/__tests__/CandleEngine.test.js.map +1 -0
- package/dist/engine/candleInvariants.d.ts +66 -0
- package/dist/engine/candleInvariants.d.ts.map +1 -0
- package/dist/engine/candleInvariants.js +134 -0
- package/dist/engine/candleInvariants.js.map +1 -0
- package/{src/engine/mergeUtils.ts → dist/engine/mergeUtils.d.ts} +15 -52
- package/dist/engine/mergeUtils.d.ts.map +1 -0
- package/dist/engine/mergeUtils.js +64 -0
- package/dist/engine/mergeUtils.js.map +1 -0
- package/dist/engine/timeframeUtils.d.ts +80 -0
- package/dist/engine/timeframeUtils.d.ts.map +1 -0
- package/{src/engine/timeframeUtils.ts → dist/engine/timeframeUtils.js} +30 -48
- package/dist/engine/timeframeUtils.js.map +1 -0
- package/dist/index.d.ts +40 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +49 -0
- package/dist/index.js.map +1 -0
- package/dist/internal.d.ts +29 -0
- package/dist/internal.d.ts.map +1 -0
- package/{src/internal.ts → dist/internal.js} +2 -11
- package/dist/internal.js.map +1 -0
- package/dist/licensing/ChartRuntimeResolver.d.ts +233 -0
- package/dist/licensing/ChartRuntimeResolver.d.ts.map +1 -0
- package/dist/licensing/ChartRuntimeResolver.js +310 -0
- package/dist/licensing/ChartRuntimeResolver.js.map +1 -0
- package/dist/licensing/LicenseManager.d.ts +55 -0
- package/dist/licensing/LicenseManager.d.ts.map +1 -0
- package/dist/licensing/LicenseManager.js +114 -0
- package/dist/licensing/LicenseManager.js.map +1 -0
- package/dist/licensing/__tests__/ChartRuntimeResolver.test.d.ts +13 -0
- package/dist/licensing/__tests__/ChartRuntimeResolver.test.d.ts.map +1 -0
- package/dist/licensing/__tests__/ChartRuntimeResolver.test.js +177 -0
- package/dist/licensing/__tests__/ChartRuntimeResolver.test.js.map +1 -0
- package/dist/licensing/__tests__/LicenseManager.test.d.ts +12 -0
- package/dist/licensing/__tests__/LicenseManager.test.d.ts.map +1 -0
- package/dist/licensing/__tests__/LicenseManager.test.js +153 -0
- package/dist/licensing/__tests__/LicenseManager.test.js.map +1 -0
- package/dist/licensing/licenseTypes.d.ts +18 -0
- package/dist/licensing/licenseTypes.d.ts.map +1 -0
- package/dist/licensing/licenseTypes.js +2 -0
- package/dist/licensing/licenseTypes.js.map +1 -0
- package/dist/pine/PineCompiler.d.ts +35 -0
- package/dist/pine/PineCompiler.d.ts.map +1 -0
- package/dist/pine/PineCompiler.js +44 -0
- package/dist/pine/PineCompiler.js.map +1 -0
- package/dist/pine/diagnostics.d.ts +20 -0
- package/dist/pine/diagnostics.d.ts.map +1 -0
- package/dist/pine/diagnostics.js +11 -0
- package/dist/pine/diagnostics.js.map +1 -0
- package/{src/pine/index.ts → dist/pine/index.d.ts} +4 -3
- package/dist/pine/index.d.ts.map +1 -0
- package/dist/pine/index.js +5 -0
- package/dist/pine/index.js.map +1 -0
- package/dist/pine/pine-ast.d.ts +142 -0
- package/dist/pine/pine-ast.d.ts.map +1 -0
- package/dist/pine/pine-ast.js +19 -0
- package/dist/pine/pine-ast.js.map +1 -0
- package/dist/pine/pine-lexer.d.ts +41 -0
- package/dist/pine/pine-lexer.d.ts.map +1 -0
- package/dist/pine/pine-lexer.js +249 -0
- package/dist/pine/pine-lexer.js.map +1 -0
- package/dist/pine/pine-parser.d.ts +51 -0
- package/dist/pine/pine-parser.d.ts.map +1 -0
- package/dist/pine/pine-parser.js +416 -0
- package/dist/pine/pine-parser.js.map +1 -0
- package/dist/pine/pine-transpiler.d.ts +33 -0
- package/dist/pine/pine-transpiler.d.ts.map +1 -0
- package/dist/pine/pine-transpiler.js +260 -0
- package/dist/pine/pine-transpiler.js.map +1 -0
- package/dist/pixi/LayerName.d.ts +18 -0
- package/dist/pixi/LayerName.d.ts.map +1 -0
- package/dist/pixi/LayerName.js +35 -0
- package/dist/pixi/LayerName.js.map +1 -0
- package/dist/pixi/PixiCandlestickRenderer.d.ts +23 -0
- package/dist/pixi/PixiCandlestickRenderer.d.ts.map +1 -0
- package/dist/pixi/PixiCandlestickRenderer.js +107 -0
- package/dist/pixi/PixiCandlestickRenderer.js.map +1 -0
- package/dist/pixi/PixiChart.d.ts +72 -0
- package/dist/pixi/PixiChart.d.ts.map +1 -0
- package/dist/pixi/PixiChart.js +367 -0
- package/dist/pixi/PixiChart.js.map +1 -0
- package/dist/pixi/PixiCrosshairRenderer.d.ts +29 -0
- package/dist/pixi/PixiCrosshairRenderer.d.ts.map +1 -0
- package/dist/pixi/PixiCrosshairRenderer.js +110 -0
- package/dist/pixi/PixiCrosshairRenderer.js.map +1 -0
- package/dist/pixi/PixiDrawingRenderer.d.ts +17 -0
- package/dist/pixi/PixiDrawingRenderer.d.ts.map +1 -0
- package/dist/pixi/PixiDrawingRenderer.js +111 -0
- package/dist/pixi/PixiDrawingRenderer.js.map +1 -0
- package/dist/pixi/PixiGridRenderer.d.ts +22 -0
- package/dist/pixi/PixiGridRenderer.d.ts.map +1 -0
- package/dist/pixi/PixiGridRenderer.js +114 -0
- package/dist/pixi/PixiGridRenderer.js.map +1 -0
- package/dist/pixi/PixiLayerManager.d.ts +56 -0
- package/dist/pixi/PixiLayerManager.d.ts.map +1 -0
- package/dist/pixi/PixiLayerManager.js +92 -0
- package/dist/pixi/PixiLayerManager.js.map +1 -0
- package/dist/react/canvas/ChartCanvas.d.ts +85 -0
- package/dist/react/canvas/ChartCanvas.d.ts.map +1 -0
- package/dist/react/canvas/ChartCanvas.js +604 -0
- package/dist/react/canvas/ChartCanvas.js.map +1 -0
- package/dist/react/canvas/ChartContextMenu.d.ts +18 -0
- package/dist/react/canvas/ChartContextMenu.d.ts.map +1 -0
- package/dist/react/canvas/ChartContextMenu.js +5 -0
- package/dist/react/canvas/ChartContextMenu.js.map +1 -0
- package/dist/react/canvas/ChartSettingsDialog.d.ts +25 -0
- package/dist/react/canvas/ChartSettingsDialog.d.ts.map +1 -0
- package/dist/react/canvas/ChartSettingsDialog.js +28 -0
- package/dist/react/canvas/ChartSettingsDialog.js.map +1 -0
- package/dist/react/canvas/IndicatorLabel.d.ts +21 -0
- package/dist/react/canvas/IndicatorLabel.d.ts.map +1 -0
- package/dist/react/canvas/IndicatorLabel.js +196 -0
- package/dist/react/canvas/IndicatorLabel.js.map +1 -0
- package/dist/react/canvas/IndicatorPane.d.ts +32 -0
- package/dist/react/canvas/IndicatorPane.d.ts.map +1 -0
- package/dist/react/canvas/IndicatorPane.js +395 -0
- package/dist/react/canvas/IndicatorPane.js.map +1 -0
- package/dist/react/canvas/PointerOverlay.d.ts +23 -0
- package/dist/react/canvas/PointerOverlay.d.ts.map +1 -0
- package/dist/react/canvas/PointerOverlay.js +61 -0
- package/dist/react/canvas/PointerOverlay.js.map +1 -0
- package/dist/react/canvas/toolbars/LeftToolbar.d.ts +19 -0
- package/dist/react/canvas/toolbars/LeftToolbar.d.ts.map +1 -0
- package/dist/react/canvas/toolbars/LeftToolbar.js +407 -0
- package/dist/react/canvas/toolbars/LeftToolbar.js.map +1 -0
- package/dist/react/hooks/useChartCapabilities.d.ts +21 -0
- package/dist/react/hooks/useChartCapabilities.d.ts.map +1 -0
- package/dist/react/hooks/useChartCapabilities.js +66 -0
- package/dist/react/hooks/useChartCapabilities.js.map +1 -0
- package/dist/react/index.d.ts +30 -0
- package/dist/react/index.d.ts.map +1 -0
- package/dist/react/index.js +28 -0
- package/dist/react/index.js.map +1 -0
- package/dist/react/internal.d.ts +38 -0
- package/dist/react/internal.d.ts.map +1 -0
- package/dist/react/internal.js +44 -0
- package/dist/react/internal.js.map +1 -0
- package/dist/react/shell/ManagedAppShell.d.ts +91 -0
- package/dist/react/shell/ManagedAppShell.d.ts.map +1 -0
- package/dist/react/shell/ManagedAppShell.js +440 -0
- package/dist/react/shell/ManagedAppShell.js.map +1 -0
- package/dist/react/trading/TradingBridge.d.ts +86 -0
- package/dist/react/trading/TradingBridge.d.ts.map +1 -0
- package/dist/react/trading/TradingBridge.js +73 -0
- package/dist/react/trading/TradingBridge.js.map +1 -0
- package/dist/react/workspace/ChartWorkspace.d.ts +73 -0
- package/dist/react/workspace/ChartWorkspace.d.ts.map +1 -0
- package/dist/react/workspace/ChartWorkspace.js +42 -0
- package/dist/react/workspace/ChartWorkspace.js.map +1 -0
- package/dist/react/workspace/FloatingPanel.d.ts +18 -0
- package/dist/react/workspace/FloatingPanel.d.ts.map +1 -0
- package/dist/react/workspace/FloatingPanel.js +82 -0
- package/dist/react/workspace/FloatingPanel.js.map +1 -0
- package/dist/react/workspace/IndicatorsDialog.d.ts +8 -0
- package/dist/react/workspace/IndicatorsDialog.d.ts.map +1 -0
- package/dist/react/workspace/IndicatorsDialog.js +121 -0
- package/dist/react/workspace/IndicatorsDialog.js.map +1 -0
- package/dist/react/workspace/LayoutMenu.d.ts +33 -0
- package/dist/react/workspace/LayoutMenu.d.ts.map +1 -0
- package/dist/react/workspace/LayoutMenu.js +113 -0
- package/dist/react/workspace/LayoutMenu.js.map +1 -0
- package/dist/react/workspace/SymbolSearchDialog.d.ts +10 -0
- package/dist/react/workspace/SymbolSearchDialog.d.ts.map +1 -0
- package/dist/react/workspace/SymbolSearchDialog.js +245 -0
- package/dist/react/workspace/SymbolSearchDialog.js.map +1 -0
- package/dist/react/workspace/TabBar.d.ts +17 -0
- package/dist/react/workspace/TabBar.d.ts.map +1 -0
- package/dist/react/workspace/TabBar.js +29 -0
- package/dist/react/workspace/TabBar.js.map +1 -0
- package/dist/react/workspace/toolbars/BottomToolbar.d.ts +19 -0
- package/dist/react/workspace/toolbars/BottomToolbar.d.ts.map +1 -0
- package/dist/react/workspace/toolbars/BottomToolbar.js +236 -0
- package/dist/react/workspace/toolbars/BottomToolbar.js.map +1 -0
- package/dist/react/workspace/toolbars/RightToolbar.d.ts +8 -0
- package/dist/react/workspace/toolbars/RightToolbar.d.ts.map +1 -0
- package/dist/react/workspace/toolbars/RightToolbar.js +18 -0
- package/dist/react/workspace/toolbars/RightToolbar.js.map +1 -0
- package/dist/react/workspace/toolbars/TopToolbar.d.ts +41 -0
- package/dist/react/workspace/toolbars/TopToolbar.d.ts.map +1 -0
- package/dist/react/workspace/toolbars/TopToolbar.js +82 -0
- package/dist/react/workspace/toolbars/TopToolbar.js.map +1 -0
- package/dist/renderers/CandlestickRenderer.d.ts +13 -0
- package/dist/renderers/CandlestickRenderer.d.ts.map +1 -0
- package/dist/renderers/CandlestickRenderer.js +98 -0
- package/dist/renderers/CandlestickRenderer.js.map +1 -0
- package/dist/renderers/HistogramRenderer.d.ts +11 -0
- package/dist/renderers/HistogramRenderer.d.ts.map +1 -0
- package/dist/renderers/HistogramRenderer.js +50 -0
- package/dist/renderers/HistogramRenderer.js.map +1 -0
- package/dist/renderers/LineRenderer.d.ts +12 -0
- package/dist/renderers/LineRenderer.d.ts.map +1 -0
- package/dist/renderers/LineRenderer.js +64 -0
- package/dist/renderers/LineRenderer.js.map +1 -0
- package/dist/theme/colors.d.ts +4 -0
- package/dist/theme/colors.d.ts.map +1 -0
- package/dist/theme/colors.js +19 -0
- package/dist/theme/colors.js.map +1 -0
- package/dist/tools/barDivergenceCheck.d.ts +120 -0
- package/dist/tools/barDivergenceCheck.d.ts.map +1 -0
- package/dist/tools/barDivergenceCheck.js +200 -0
- package/dist/tools/barDivergenceCheck.js.map +1 -0
- package/dist/trading/TradingOverlayStore.d.ts +86 -0
- package/dist/trading/TradingOverlayStore.d.ts.map +1 -0
- package/dist/trading/TradingOverlayStore.js +139 -0
- package/dist/trading/TradingOverlayStore.js.map +1 -0
- package/dist/trading/UnmanagedIngestion.d.ts +91 -0
- package/dist/trading/UnmanagedIngestion.d.ts.map +1 -0
- package/dist/trading/UnmanagedIngestion.js +114 -0
- package/dist/trading/UnmanagedIngestion.js.map +1 -0
- package/dist/trading/__tests__/ManagedTradingController.test.d.ts +18 -0
- package/dist/trading/__tests__/ManagedTradingController.test.d.ts.map +1 -0
- package/dist/trading/__tests__/ManagedTradingController.test.js +271 -0
- package/dist/trading/__tests__/ManagedTradingController.test.js.map +1 -0
- package/dist/trading/__tests__/TradingOverlayStore.test.d.ts +16 -0
- package/dist/trading/__tests__/TradingOverlayStore.test.d.ts.map +1 -0
- package/dist/trading/__tests__/TradingOverlayStore.test.js +267 -0
- package/dist/trading/__tests__/TradingOverlayStore.test.js.map +1 -0
- package/dist/trading/__tests__/UnmanagedIngestion.test.d.ts +16 -0
- package/dist/trading/__tests__/UnmanagedIngestion.test.d.ts.map +1 -0
- package/dist/trading/__tests__/UnmanagedIngestion.test.js +170 -0
- package/dist/trading/__tests__/UnmanagedIngestion.test.js.map +1 -0
- package/dist/trading/managed/ManagedTradingController.d.ts +110 -0
- package/dist/trading/managed/ManagedTradingController.d.ts.map +1 -0
- package/dist/trading/managed/ManagedTradingController.js +247 -0
- package/dist/trading/managed/ManagedTradingController.js.map +1 -0
- package/dist/trading/managed/managedCapabilities.d.ts +45 -0
- package/dist/trading/managed/managedCapabilities.d.ts.map +1 -0
- package/dist/trading/managed/managedCapabilities.js +79 -0
- package/dist/trading/managed/managedCapabilities.js.map +1 -0
- package/dist/trading/managed/managedTypes.d.ts +122 -0
- package/dist/trading/managed/managedTypes.d.ts.map +1 -0
- package/dist/trading/managed/managedTypes.js +13 -0
- package/dist/trading/managed/managedTypes.js.map +1 -0
- package/dist/trading/tradingTypes.d.ts +89 -0
- package/dist/trading/tradingTypes.d.ts.map +1 -0
- package/dist/trading/tradingTypes.js +8 -0
- package/dist/trading/tradingTypes.js.map +1 -0
- package/dist/tscript/TScriptIndicator.d.ts +41 -0
- package/dist/tscript/TScriptIndicator.d.ts.map +1 -0
- package/dist/tscript/TScriptIndicator.js +47 -0
- package/dist/tscript/TScriptIndicator.js.map +1 -0
- package/dist/tscript/ast.d.ts +89 -0
- package/dist/tscript/ast.d.ts.map +1 -0
- package/dist/tscript/ast.js +22 -0
- package/dist/tscript/ast.js.map +1 -0
- package/dist/tscript/lexer.d.ts +36 -0
- package/dist/tscript/lexer.d.ts.map +1 -0
- package/dist/tscript/lexer.js +187 -0
- package/dist/tscript/lexer.js.map +1 -0
- package/dist/tscript/parser.d.ts +50 -0
- package/dist/tscript/parser.d.ts.map +1 -0
- package/dist/tscript/parser.js +318 -0
- package/dist/tscript/parser.js.map +1 -0
- package/dist/tscript/runtime.d.ts +123 -0
- package/dist/tscript/runtime.d.ts.map +1 -0
- package/dist/tscript/runtime.js +475 -0
- package/dist/tscript/runtime.js.map +1 -0
- package/dist/tscript/series.d.ts +49 -0
- package/dist/tscript/series.d.ts.map +1 -0
- package/dist/tscript/series.js +79 -0
- package/dist/tscript/series.js.map +1 -0
- package/dist/types/IChart.d.ts +48 -0
- package/dist/types/IChart.d.ts.map +1 -0
- package/dist/types/IChart.js +2 -0
- package/dist/types/IChart.js.map +1 -0
- package/{src/types/IRenderer.ts → dist/types/IRenderer.d.ts} +2 -8
- package/dist/types/IRenderer.d.ts.map +1 -0
- package/dist/types/IRenderer.js +2 -0
- package/dist/types/IRenderer.js.map +1 -0
- package/dist/types/ISeries.d.ts +26 -0
- package/dist/types/ISeries.d.ts.map +1 -0
- package/dist/types/ISeries.js +2 -0
- package/dist/types/ISeries.js.map +1 -0
- package/package.json +32 -4
- package/src/__tests__/backwardCompatibility.test.ts +0 -191
- package/src/__tests__/candleInvariant.test.ts +0 -500
- package/src/__tests__/timeframeBoundary.test.ts +0 -583
- package/src/api/DrawingManager.ts +0 -188
- package/src/api/EventBus.ts +0 -53
- package/src/api/IndicatorDAG.ts +0 -389
- package/src/api/IndicatorRegistry.ts +0 -47
- package/src/api/LayoutManager.ts +0 -72
- package/src/api/PaneManager.ts +0 -129
- package/src/api/ReferenceAPI.ts +0 -195
- package/src/api/TChart.ts +0 -881
- package/src/api/drawing tools/fib gann menu/fibRetracement.ts +0 -27
- package/src/api/drawing tools/lines menu/crossLine.ts +0 -21
- package/src/api/drawing tools/lines menu/disjointChannel.ts +0 -74
- package/src/api/drawing tools/lines menu/extendedLine.ts +0 -22
- package/src/api/drawing tools/lines menu/flatTopBottom.ts +0 -45
- package/src/api/drawing tools/lines menu/horizontal.ts +0 -24
- package/src/api/drawing tools/lines menu/horizontalRay.ts +0 -25
- package/src/api/drawing tools/lines menu/infoLine.ts +0 -127
- package/src/api/drawing tools/lines menu/insidePitchfork.ts +0 -21
- package/src/api/drawing tools/lines menu/modifiedSchiffPitchfork.ts +0 -18
- package/src/api/drawing tools/lines menu/parallelChannel.ts +0 -47
- package/src/api/drawing tools/lines menu/pitchfork.ts +0 -15
- package/src/api/drawing tools/lines menu/ray.ts +0 -28
- package/src/api/drawing tools/lines menu/regressionTrend.ts +0 -157
- package/src/api/drawing tools/lines menu/schiffPitchfork.ts +0 -18
- package/src/api/drawing tools/lines menu/trendAngle.ts +0 -64
- package/src/api/drawing tools/lines menu/trendline.ts +0 -16
- package/src/api/drawing tools/lines menu/vertical.ts +0 -16
- package/src/api/drawing tools/shapes menu/rectangle.ts +0 -24
- package/src/api/drawing tools/shapes menu/text.ts +0 -30
- package/src/api/drawingUtils.ts +0 -82
- package/src/core/CanvasLayer.ts +0 -77
- package/src/core/Chart.ts +0 -917
- package/src/core/CoordTransform.ts +0 -282
- package/src/core/Crosshair.ts +0 -207
- package/src/core/IndicatorEngine.ts +0 -216
- package/src/core/InteractionManager.ts +0 -899
- package/src/core/PriceScale.ts +0 -133
- package/src/core/Series.ts +0 -132
- package/src/core/TimeScale.ts +0 -175
- package/src/datafeed/DatafeedConnector.ts +0 -300
- package/src/engine/CandleEngine.ts +0 -458
- package/src/engine/__tests__/CandleEngine.test.ts +0 -402
- package/src/engine/candleInvariants.ts +0 -172
- package/src/index.ts +0 -190
- package/src/licensing/ChartRuntimeResolver.ts +0 -380
- package/src/licensing/LicenseManager.ts +0 -131
- package/src/licensing/__tests__/ChartRuntimeResolver.test.ts +0 -207
- package/src/licensing/__tests__/LicenseManager.test.ts +0 -180
- package/src/licensing/licenseTypes.ts +0 -19
- package/src/pine/PineCompiler.ts +0 -68
- package/src/pine/diagnostics.ts +0 -30
- package/src/pine/pine-ast.ts +0 -163
- package/src/pine/pine-lexer.ts +0 -265
- package/src/pine/pine-parser.ts +0 -439
- package/src/pine/pine-transpiler.ts +0 -301
- package/src/pixi/LayerName.ts +0 -35
- package/src/pixi/PixiCandlestickRenderer.ts +0 -125
- package/src/pixi/PixiChart.ts +0 -425
- package/src/pixi/PixiCrosshairRenderer.ts +0 -134
- package/src/pixi/PixiDrawingRenderer.ts +0 -121
- package/src/pixi/PixiGridRenderer.ts +0 -136
- package/src/pixi/PixiLayerManager.ts +0 -102
- package/src/renderers/CandlestickRenderer.ts +0 -130
- package/src/renderers/HistogramRenderer.ts +0 -63
- package/src/renderers/LineRenderer.ts +0 -77
- package/src/theme/colors.ts +0 -21
- package/src/tools/barDivergenceCheck.ts +0 -305
- package/src/trading/TradingOverlayStore.ts +0 -161
- package/src/trading/UnmanagedIngestion.ts +0 -156
- package/src/trading/__tests__/ManagedTradingController.test.ts +0 -338
- package/src/trading/__tests__/TradingOverlayStore.test.ts +0 -323
- package/src/trading/__tests__/UnmanagedIngestion.test.ts +0 -205
- package/src/trading/managed/ManagedTradingController.ts +0 -292
- package/src/trading/managed/managedCapabilities.ts +0 -98
- package/src/trading/managed/managedTypes.ts +0 -151
- package/src/trading/tradingTypes.ts +0 -135
- package/src/tscript/TScriptIndicator.ts +0 -54
- package/src/tscript/ast.ts +0 -105
- package/src/tscript/lexer.ts +0 -190
- package/src/tscript/parser.ts +0 -334
- package/src/tscript/runtime.ts +0 -525
- package/src/tscript/series.ts +0 -84
- package/src/types/IChart.ts +0 -56
- package/src/types/ISeries.ts +0 -30
- package/tsconfig.json +0 -22
- package/tsup.config.ts +0 -15
- package/vitest.config.ts +0 -25
|
@@ -1,151 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* managedTypes.ts
|
|
3
|
-
*
|
|
4
|
-
* Input/output types specific to the managed trading flow.
|
|
5
|
-
* These are the shapes that callers pass into ManagedTradingController and
|
|
6
|
-
* that execution providers will eventually consume.
|
|
7
|
-
*
|
|
8
|
-
* Shared overlay types (ChartOrder, ChartPosition, ExecutionFill) are in
|
|
9
|
-
* ../tradingTypes — managed trading WRITES to those shapes, it does not
|
|
10
|
-
* define its own parallel set.
|
|
11
|
-
*/
|
|
12
|
-
|
|
13
|
-
import type { OrderSide } from '../tradingTypes';
|
|
14
|
-
|
|
15
|
-
// ── Order placement inputs ────────────────────────────────────────────────────
|
|
16
|
-
|
|
17
|
-
/** Time-in-force policy for managed orders. */
|
|
18
|
-
export type TimeInForce = 'GTC' | 'IOC' | 'FOK' | 'GTD' | 'DAY';
|
|
19
|
-
|
|
20
|
-
/** Managed order type. */
|
|
21
|
-
export type ManagedOrderType = 'market' | 'limit' | 'stop_market' | 'stop_limit';
|
|
22
|
-
|
|
23
|
-
/**
|
|
24
|
-
* Input to placeOrder().
|
|
25
|
-
* The controller normalises this into a ChartOrder for the overlay store.
|
|
26
|
-
*/
|
|
27
|
-
export interface PlaceOrderInput {
|
|
28
|
-
/** Symbol / instrument identifier (e.g. 'BTCUSDT', 'ES', 'AAPL'). */
|
|
29
|
-
symbol: string;
|
|
30
|
-
|
|
31
|
-
side: OrderSide;
|
|
32
|
-
|
|
33
|
-
type: ManagedOrderType;
|
|
34
|
-
|
|
35
|
-
/** Required for limit and stop-limit orders. */
|
|
36
|
-
limitPrice?: number;
|
|
37
|
-
|
|
38
|
-
/** Required for stop-market and stop-limit orders. */
|
|
39
|
-
stopPrice?: number;
|
|
40
|
-
|
|
41
|
-
qty: number;
|
|
42
|
-
|
|
43
|
-
timeInForce?: TimeInForce;
|
|
44
|
-
|
|
45
|
-
/**
|
|
46
|
-
* Group identifier for bracket legs.
|
|
47
|
-
* The SDK does not enforce OCO execution — the execution provider is responsible.
|
|
48
|
-
*/
|
|
49
|
-
groupId?: string;
|
|
50
|
-
|
|
51
|
-
/** Human-readable label shown on the chart overlay. */
|
|
52
|
-
label?: string;
|
|
53
|
-
|
|
54
|
-
/** Arbitrary passthrough metadata forwarded to the execution provider. */
|
|
55
|
-
meta?: Record<string, unknown>;
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
/**
|
|
59
|
-
* Input to modifyOrder().
|
|
60
|
-
* Only fields that are explicitly set will be forwarded to the provider.
|
|
61
|
-
*/
|
|
62
|
-
export interface ModifyOrderInput {
|
|
63
|
-
limitPrice?: number;
|
|
64
|
-
stopPrice?: number;
|
|
65
|
-
qty?: number;
|
|
66
|
-
label?: string;
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
/**
|
|
70
|
-
* Input to placeBracketOrder().
|
|
71
|
-
* Places an entry order plus linked stop-loss and/or take-profit in one call.
|
|
72
|
-
* All three legs share a `groupId` so they are visually associated on the chart.
|
|
73
|
-
*/
|
|
74
|
-
export interface PlaceBracketOrderInput {
|
|
75
|
-
/** The entry leg — type/side/price/qty. Provider may require limit or stop. */
|
|
76
|
-
entry: PlaceOrderInput;
|
|
77
|
-
|
|
78
|
-
/** Stop-loss price. Required field — brackets must have a risk leg. */
|
|
79
|
-
stopLossPrice: number;
|
|
80
|
-
|
|
81
|
-
/**
|
|
82
|
-
* Take-profit price.
|
|
83
|
-
* Optional — some workflows only manage downside.
|
|
84
|
-
*/
|
|
85
|
-
takeProfitPrice?: number;
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
// ── Provider acknowledgement ──────────────────────────────────────────────────
|
|
89
|
-
|
|
90
|
-
/**
|
|
91
|
-
* Returned by placeOrder() and placeBracketOrder() once acknowledged by the
|
|
92
|
-
* execution provider (even if not yet filled).
|
|
93
|
-
*/
|
|
94
|
-
export interface OrderAck {
|
|
95
|
-
/** Provider-assigned order id. */
|
|
96
|
-
orderId: string;
|
|
97
|
-
/** Optional provider-assigned client order id. */
|
|
98
|
-
clientOrderId?: string;
|
|
99
|
-
/** Timestamp (ms) when the ack was received from the provider. */
|
|
100
|
-
timestamp: number;
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
/** Returned by placeBracketOrder — one ack per submitted leg. */
|
|
104
|
-
export interface BracketOrderAck {
|
|
105
|
-
entry: OrderAck;
|
|
106
|
-
stopLoss: OrderAck;
|
|
107
|
-
takeProfit?: OrderAck;
|
|
108
|
-
/** Shared group id linking all legs on the chart overlay. */
|
|
109
|
-
groupId: string;
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
// ── Execution provider contract ───────────────────────────────────────────────
|
|
113
|
-
|
|
114
|
-
/**
|
|
115
|
-
* IExecutionProvider
|
|
116
|
-
*
|
|
117
|
-
* The contract every broker / exchange adapter must implement.
|
|
118
|
-
* ManagedTradingController delegates all actual order routing to whichever
|
|
119
|
-
* provider is registered at runtime.
|
|
120
|
-
*
|
|
121
|
-
* Providers are NOT implemented here — this interface is the extension point.
|
|
122
|
-
*/
|
|
123
|
-
export interface IExecutionProvider {
|
|
124
|
-
/** Unique provider identifier (e.g. 'rithmic', 'binance', 'interactive-brokers'). */
|
|
125
|
-
readonly providerId: string;
|
|
126
|
-
|
|
127
|
-
/**
|
|
128
|
-
* Submit a new order to the venue.
|
|
129
|
-
* Must resolve with an OrderAck once the venue acknowledges.
|
|
130
|
-
*/
|
|
131
|
-
placeOrder(input: PlaceOrderInput): Promise<OrderAck>;
|
|
132
|
-
|
|
133
|
-
/**
|
|
134
|
-
* Cancel a working order by its provider-assigned id.
|
|
135
|
-
* Must resolve once the cancellation is acknowledged.
|
|
136
|
-
*/
|
|
137
|
-
cancelOrder(orderId: string): Promise<void>;
|
|
138
|
-
|
|
139
|
-
/**
|
|
140
|
-
* Modify a working order in place.
|
|
141
|
-
* Partial updates — only fields present in `updates` are changed.
|
|
142
|
-
*/
|
|
143
|
-
modifyOrder(orderId: string, updates: ModifyOrderInput): Promise<OrderAck>;
|
|
144
|
-
|
|
145
|
-
/**
|
|
146
|
-
* Place a bracket order (entry + stop-loss + optional take-profit).
|
|
147
|
-
* Providers may implement this as a single atomic request or as multiple
|
|
148
|
-
* linked orders — the contract is the same from the controller's perspective.
|
|
149
|
-
*/
|
|
150
|
-
placeBracketOrder(input: PlaceBracketOrderInput): Promise<BracketOrderAck>;
|
|
151
|
-
}
|
|
@@ -1,135 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Shared trading overlay types used by both unmanaged and managed modes.
|
|
3
|
-
*
|
|
4
|
-
* These are the canonical data shapes the overlay engine, ingestion layer,
|
|
5
|
-
* and future managed trading service all operate on.
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
// ── Candle ingestion ──────────────────────────────────────────────────────────
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
* Normalised candle data accepted by the unmanaged ingestion API.
|
|
12
|
-
* `time` may be Unix seconds or milliseconds — the engine auto-detects.
|
|
13
|
-
*/
|
|
14
|
-
export interface CandleInput {
|
|
15
|
-
time: number;
|
|
16
|
-
open: number;
|
|
17
|
-
high: number;
|
|
18
|
-
low: number;
|
|
19
|
-
close: number;
|
|
20
|
-
volume?: number;
|
|
21
|
-
/** True when the candle is confirmed closed (next candle has opened). */
|
|
22
|
-
isClosed?: boolean;
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
// ── Orders ────────────────────────────────────────────────────────────────────
|
|
26
|
-
|
|
27
|
-
/** Visual role of the order line on the chart. */
|
|
28
|
-
export type OrderRole = 'entry' | 'stop_loss' | 'take_profit' | 'limit' | 'stop' | 'other';
|
|
29
|
-
|
|
30
|
-
/** Order side. */
|
|
31
|
-
export type OrderSide = 'buy' | 'sell';
|
|
32
|
-
|
|
33
|
-
/** Lifecycle status of the order. */
|
|
34
|
-
export type OrderStatus =
|
|
35
|
-
| 'pending' // not yet acknowledged by the venue
|
|
36
|
-
| 'open' // working / resting on the book
|
|
37
|
-
| 'filled' // fully executed
|
|
38
|
-
| 'partial' // partially filled, still working
|
|
39
|
-
| 'cancelled' // cancelled before execution
|
|
40
|
-
| 'rejected' // rejected by venue
|
|
41
|
-
| 'expired'; // expired (GTD, IOC, etc.)
|
|
42
|
-
|
|
43
|
-
export interface ChartOrder {
|
|
44
|
-
/** Unique order identifier — used as the primary key for upsert / remove. */
|
|
45
|
-
id: string;
|
|
46
|
-
|
|
47
|
-
/** Visual role — drives line colour and label. */
|
|
48
|
-
role: OrderRole;
|
|
49
|
-
|
|
50
|
-
side: OrderSide;
|
|
51
|
-
status: OrderStatus;
|
|
52
|
-
|
|
53
|
-
/** Limit / trigger price in the chart's native price unit. */
|
|
54
|
-
price: number;
|
|
55
|
-
|
|
56
|
-
/** Order quantity in the instrument's native lot / contract unit. */
|
|
57
|
-
qty: number;
|
|
58
|
-
|
|
59
|
-
/**
|
|
60
|
-
* Optional group identifier.
|
|
61
|
-
* Orders sharing a `groupId` are visually associated (e.g. bracket legs).
|
|
62
|
-
* The SDK does NOT manage execution rules — grouping is visual only.
|
|
63
|
-
*/
|
|
64
|
-
groupId?: string;
|
|
65
|
-
|
|
66
|
-
/** Human-readable label shown next to the order line. */
|
|
67
|
-
label?: string;
|
|
68
|
-
|
|
69
|
-
/** ISO-8601 string or Unix timestamp (ms) when the order was placed. */
|
|
70
|
-
timestamp?: number | string;
|
|
71
|
-
|
|
72
|
-
/** Arbitrary client metadata — not used by the renderer. */
|
|
73
|
-
meta?: Record<string, unknown>;
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
// ── Positions ─────────────────────────────────────────────────────────────────
|
|
77
|
-
|
|
78
|
-
export type PositionSide = 'long' | 'short';
|
|
79
|
-
|
|
80
|
-
export type PositionStatus = 'open' | 'closed' | 'partial';
|
|
81
|
-
|
|
82
|
-
export interface ChartPosition {
|
|
83
|
-
/** Unique position identifier. */
|
|
84
|
-
id: string;
|
|
85
|
-
|
|
86
|
-
side: PositionSide;
|
|
87
|
-
status: PositionStatus;
|
|
88
|
-
|
|
89
|
-
/** Average entry price. */
|
|
90
|
-
entryPrice: number;
|
|
91
|
-
|
|
92
|
-
/** Net open quantity (absolute value; sign is encoded in `side`). */
|
|
93
|
-
qty: number;
|
|
94
|
-
|
|
95
|
-
/** Current mark / last price (used to compute unrealized P&L). */
|
|
96
|
-
markPrice?: number;
|
|
97
|
-
|
|
98
|
-
/** Unrealized P&L in the account's currency. */
|
|
99
|
-
unrealizedPnl?: number;
|
|
100
|
-
|
|
101
|
-
/** Optional: link associated order ids (e.g. stop-loss, take-profit). */
|
|
102
|
-
linkedOrderIds?: string[];
|
|
103
|
-
|
|
104
|
-
/** Human-readable label. */
|
|
105
|
-
label?: string;
|
|
106
|
-
|
|
107
|
-
/** Arbitrary client metadata. */
|
|
108
|
-
meta?: Record<string, unknown>;
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
// ── Execution fills ───────────────────────────────────────────────────────────
|
|
112
|
-
|
|
113
|
-
export type FillSide = 'buy' | 'sell';
|
|
114
|
-
|
|
115
|
-
export interface ExecutionFill {
|
|
116
|
-
/** Unique fill / execution identifier. */
|
|
117
|
-
id: string;
|
|
118
|
-
|
|
119
|
-
/** ID of the parent order, if known. */
|
|
120
|
-
orderId?: string;
|
|
121
|
-
|
|
122
|
-
side: FillSide;
|
|
123
|
-
|
|
124
|
-
/** Execution price. */
|
|
125
|
-
price: number;
|
|
126
|
-
|
|
127
|
-
/** Filled quantity. */
|
|
128
|
-
qty: number;
|
|
129
|
-
|
|
130
|
-
/** Unix timestamp in milliseconds when the fill was reported. */
|
|
131
|
-
timestamp: number;
|
|
132
|
-
|
|
133
|
-
/** Arbitrary client metadata. */
|
|
134
|
-
meta?: Record<string, unknown>;
|
|
135
|
-
}
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* TScriptIndicator — compiles and executes a TScript program, exposing its
|
|
3
|
-
* plot() outputs as IndicatorPoint arrays compatible with the DAG DAGResult format.
|
|
4
|
-
*
|
|
5
|
-
* @example
|
|
6
|
-
* ```ts
|
|
7
|
-
* const ind = new TScriptIndicator(`
|
|
8
|
-
* indicator("My SMA")
|
|
9
|
-
* length = input(14)
|
|
10
|
-
* value = sma(close, length)
|
|
11
|
-
* plot(value)
|
|
12
|
-
* `);
|
|
13
|
-
*
|
|
14
|
-
* const plots = ind.run(bars);
|
|
15
|
-
* // plots[0] → IndicatorPoint[] for the first plot() call
|
|
16
|
-
* ```
|
|
17
|
-
*/
|
|
18
|
-
|
|
19
|
-
import type { OHLCV } from '@forgecharts/types';
|
|
20
|
-
import { TScriptRuntime } from './runtime';
|
|
21
|
-
import type { IndicatorPoint } from '../core/IndicatorEngine';
|
|
22
|
-
|
|
23
|
-
export class TScriptIndicator {
|
|
24
|
-
private readonly _runtime: TScriptRuntime;
|
|
25
|
-
|
|
26
|
-
/** Title from the `indicator("...")` declaration, or `'Script'` if absent. */
|
|
27
|
-
readonly title: string;
|
|
28
|
-
|
|
29
|
-
constructor(src: string) {
|
|
30
|
-
this._runtime = new TScriptRuntime(src);
|
|
31
|
-
this.title = this._runtime.title;
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
/**
|
|
35
|
-
* Execute the script over the full bar history.
|
|
36
|
-
*
|
|
37
|
-
* Each call resets internal state and replays every bar from scratch,
|
|
38
|
-
* ensuring the output is deterministic regardless of prior calls.
|
|
39
|
-
*
|
|
40
|
-
* @returns array of plot series — `plots[0]` corresponds to the first
|
|
41
|
-
* `plot()` call in source, `plots[1]` to the second, etc.
|
|
42
|
-
*/
|
|
43
|
-
run(bars: readonly OHLCV[]): IndicatorPoint[][] {
|
|
44
|
-
return this._runtime.run(bars);
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
/**
|
|
48
|
-
* Reset all persistent series state (ring buffers) without re-parsing.
|
|
49
|
-
* Call when the chart symbol or timeframe changes.
|
|
50
|
-
*/
|
|
51
|
-
reset(): void {
|
|
52
|
-
this._runtime.reset();
|
|
53
|
-
}
|
|
54
|
-
}
|
package/src/tscript/ast.ts
DELETED
|
@@ -1,105 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* TScript Abstract Syntax Tree node types.
|
|
3
|
-
*
|
|
4
|
-
* Grammar (simplified):
|
|
5
|
-
* program → stmt*
|
|
6
|
-
* stmt → indicator_decl | assign | expr_stmt
|
|
7
|
-
* assign → IDENT '=' expr
|
|
8
|
-
* indicator → 'indicator' '(' STRING ')'
|
|
9
|
-
* expr → ternary
|
|
10
|
-
* ternary → or ('?' expr ':' expr)?
|
|
11
|
-
* or → and ('or' and)*
|
|
12
|
-
* and → not ('and' not)*
|
|
13
|
-
* not → 'not' comparison | comparison
|
|
14
|
-
* comparison → addition (('<'|'>'|'<='|'>='|'=='|'!=') addition)*
|
|
15
|
-
* addition → multiplication (('+' | '-') multiplication)*
|
|
16
|
-
* multiplication→ unary (('*' | '/' | '%') unary)*
|
|
17
|
-
* unary → '-' unary | primary
|
|
18
|
-
* primary → NUMBER | STRING | BOOL | IDENT ('[' expr ']')? | call | '(' expr ')'
|
|
19
|
-
* call → IDENT '(' args ')'
|
|
20
|
-
*/
|
|
21
|
-
|
|
22
|
-
// ─── Literal / leaf nodes ─────────────────────────────────────────────────────
|
|
23
|
-
|
|
24
|
-
export type NumberLit = { kind: 'NumberLit'; value: number };
|
|
25
|
-
export type StringLit = { kind: 'StringLit'; value: string };
|
|
26
|
-
export type BoolLit = { kind: 'BoolLit'; value: boolean };
|
|
27
|
-
export type Identifier = { kind: 'Identifier'; name: string };
|
|
28
|
-
|
|
29
|
-
// ─── Expression nodes ─────────────────────────────────────────────────────────
|
|
30
|
-
|
|
31
|
-
export type IndexExpr = {
|
|
32
|
-
kind: 'IndexExpr';
|
|
33
|
-
series: Expr; // the base series (usually an Identifier)
|
|
34
|
-
index: Expr; // bar-lookback, e.g. close[1]
|
|
35
|
-
};
|
|
36
|
-
|
|
37
|
-
export type CallExpr = {
|
|
38
|
-
kind: 'CallExpr';
|
|
39
|
-
callee: string;
|
|
40
|
-
args: Expr[];
|
|
41
|
-
};
|
|
42
|
-
|
|
43
|
-
export type BinaryExpr = {
|
|
44
|
-
kind: 'BinaryExpr';
|
|
45
|
-
op: '+' | '-' | '*' | '/' | '%' | '<' | '>' | '<=' | '>=' | '==' | '!=';
|
|
46
|
-
left: Expr;
|
|
47
|
-
right: Expr;
|
|
48
|
-
};
|
|
49
|
-
|
|
50
|
-
export type UnaryExpr = {
|
|
51
|
-
kind: 'UnaryExpr';
|
|
52
|
-
op: '-' | 'not';
|
|
53
|
-
operand: Expr;
|
|
54
|
-
};
|
|
55
|
-
|
|
56
|
-
export type TernaryExpr = {
|
|
57
|
-
kind: 'TernaryExpr';
|
|
58
|
-
condition: Expr;
|
|
59
|
-
consequent: Expr;
|
|
60
|
-
alternate: Expr;
|
|
61
|
-
};
|
|
62
|
-
|
|
63
|
-
export type LogicalExpr = {
|
|
64
|
-
kind: 'LogicalExpr';
|
|
65
|
-
op: 'and' | 'or';
|
|
66
|
-
left: Expr;
|
|
67
|
-
right: Expr;
|
|
68
|
-
};
|
|
69
|
-
|
|
70
|
-
export type Expr =
|
|
71
|
-
| NumberLit
|
|
72
|
-
| StringLit
|
|
73
|
-
| BoolLit
|
|
74
|
-
| Identifier
|
|
75
|
-
| IndexExpr
|
|
76
|
-
| CallExpr
|
|
77
|
-
| BinaryExpr
|
|
78
|
-
| UnaryExpr
|
|
79
|
-
| TernaryExpr
|
|
80
|
-
| LogicalExpr;
|
|
81
|
-
|
|
82
|
-
// ─── Statement nodes ──────────────────────────────────────────────────────────
|
|
83
|
-
|
|
84
|
-
export type IndicatorDecl = {
|
|
85
|
-
kind: 'IndicatorDecl';
|
|
86
|
-
title: string;
|
|
87
|
-
};
|
|
88
|
-
|
|
89
|
-
export type AssignStmt = {
|
|
90
|
-
kind: 'AssignStmt';
|
|
91
|
-
name: string;
|
|
92
|
-
value: Expr;
|
|
93
|
-
};
|
|
94
|
-
|
|
95
|
-
export type ExprStmt = {
|
|
96
|
-
kind: 'ExprStmt';
|
|
97
|
-
expr: Expr;
|
|
98
|
-
};
|
|
99
|
-
|
|
100
|
-
export type Stmt = IndicatorDecl | AssignStmt | ExprStmt;
|
|
101
|
-
|
|
102
|
-
export type Program = {
|
|
103
|
-
kind: 'Program';
|
|
104
|
-
stmts: Stmt[];
|
|
105
|
-
};
|
package/src/tscript/lexer.ts
DELETED
|
@@ -1,190 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* TScript Lexer — converts source text into a flat token stream.
|
|
3
|
-
*
|
|
4
|
-
* Token types:
|
|
5
|
-
* NUMBER — 42, 3.14, .5
|
|
6
|
-
* STRING — "hello" or 'hello'
|
|
7
|
-
* BOOL — true / false
|
|
8
|
-
* IDENT — identifier or keyword
|
|
9
|
-
* OP — single/double-char operator
|
|
10
|
-
* LPAREN, RPAREN, LBRACKET, RBRACKET, COMMA, EQ, NEWLINE
|
|
11
|
-
* EOF
|
|
12
|
-
*/
|
|
13
|
-
|
|
14
|
-
export type TokenKind =
|
|
15
|
-
| 'NUMBER' | 'STRING' | 'BOOL' | 'IDENT'
|
|
16
|
-
| 'PLUS' | 'MINUS' | 'STAR' | 'SLASH' | 'PERCENT'
|
|
17
|
-
| 'LT' | 'GT' | 'LTE' | 'GTE' | 'EQEQ' | 'NEQ'
|
|
18
|
-
| 'QMARK' | 'COLON'
|
|
19
|
-
| 'LPAREN' | 'RPAREN' | 'LBRACKET' | 'RBRACKET'
|
|
20
|
-
| 'COMMA' | 'EQ'
|
|
21
|
-
| 'NEWLINE' | 'EOF';
|
|
22
|
-
|
|
23
|
-
export type Token = {
|
|
24
|
-
kind: TokenKind;
|
|
25
|
-
value: string; // raw matched text
|
|
26
|
-
line: number;
|
|
27
|
-
col: number;
|
|
28
|
-
};
|
|
29
|
-
|
|
30
|
-
// Keywords that are NOT identifiers
|
|
31
|
-
const KEYWORDS = new Set(['true', 'false', 'and', 'or', 'not', 'indicator', 'input', 'plot', 'na']);
|
|
32
|
-
|
|
33
|
-
export class Lexer {
|
|
34
|
-
private _src: string;
|
|
35
|
-
private _pos: number = 0;
|
|
36
|
-
private _line: number = 1;
|
|
37
|
-
private _col: number = 1;
|
|
38
|
-
|
|
39
|
-
constructor(src: string) {
|
|
40
|
-
this._src = src;
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
tokenize(): Token[] {
|
|
44
|
-
const tokens: Token[] = [];
|
|
45
|
-
while (this._pos < this._src.length) {
|
|
46
|
-
this._skipWhitespaceAndComments();
|
|
47
|
-
if (this._pos >= this._src.length) break;
|
|
48
|
-
|
|
49
|
-
const ch = this._src[this._pos]!;
|
|
50
|
-
|
|
51
|
-
// Newline as statement separator
|
|
52
|
-
if (ch === '\n') {
|
|
53
|
-
tokens.push(this._make('NEWLINE', '\n'));
|
|
54
|
-
this._pos++;
|
|
55
|
-
this._line++;
|
|
56
|
-
this._col = 1;
|
|
57
|
-
continue;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
// Numbers
|
|
61
|
-
if (ch >= '0' && ch <= '9' || (ch === '.' && this._peek(1) >= '0' && this._peek(1) <= '9')) {
|
|
62
|
-
tokens.push(this._readNumber());
|
|
63
|
-
continue;
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
// Strings
|
|
67
|
-
if (ch === '"' || ch === "'") {
|
|
68
|
-
tokens.push(this._readString(ch));
|
|
69
|
-
continue;
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
// Identifiers / keywords
|
|
73
|
-
if (this._isAlpha(ch)) {
|
|
74
|
-
tokens.push(this._readIdent());
|
|
75
|
-
continue;
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
// Two-char operators first
|
|
79
|
-
const two = this._src.slice(this._pos, this._pos + 2);
|
|
80
|
-
if (two === '<=' ) { tokens.push(this._make('LTE', two)); this._pos += 2; this._col += 2; continue; }
|
|
81
|
-
if (two === '>=' ) { tokens.push(this._make('GTE', two)); this._pos += 2; this._col += 2; continue; }
|
|
82
|
-
if (two === '==' ) { tokens.push(this._make('EQEQ', two)); this._pos += 2; this._col += 2; continue; }
|
|
83
|
-
if (two === '!=' ) { tokens.push(this._make('NEQ', two)); this._pos += 2; this._col += 2; continue; }
|
|
84
|
-
|
|
85
|
-
// Single-char operators
|
|
86
|
-
const ops: Record<string, TokenKind> = {
|
|
87
|
-
'+': 'PLUS', '-': 'MINUS', '*': 'STAR', '/': 'SLASH', '%': 'PERCENT',
|
|
88
|
-
'<': 'LT', '>': 'GT',
|
|
89
|
-
'?': 'QMARK', ':': 'COLON',
|
|
90
|
-
'(': 'LPAREN', ')': 'RPAREN',
|
|
91
|
-
'[': 'LBRACKET', ']': 'RBRACKET',
|
|
92
|
-
',': 'COMMA',
|
|
93
|
-
'=': 'EQ',
|
|
94
|
-
};
|
|
95
|
-
if (ch in ops) {
|
|
96
|
-
tokens.push(this._make(ops[ch]!, ch));
|
|
97
|
-
this._pos++;
|
|
98
|
-
this._col++;
|
|
99
|
-
continue;
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
throw new SyntaxError(`[TScript] Unexpected character '${ch}' at ${this._line}:${this._col}`);
|
|
103
|
-
}
|
|
104
|
-
tokens.push(this._make('EOF', ''));
|
|
105
|
-
return tokens;
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
// ─── Private helpers ────────────────────────────────────────────────────────
|
|
109
|
-
|
|
110
|
-
private _make(kind: TokenKind, value: string): Token {
|
|
111
|
-
return { kind, value, line: this._line, col: this._col };
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
private _peek(offset: number): string {
|
|
115
|
-
return this._src[this._pos + offset] ?? '';
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
private _isAlpha(ch: string): boolean {
|
|
119
|
-
return (ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z') || ch === '_';
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
private _isAlphaNum(ch: string): boolean {
|
|
123
|
-
return this._isAlpha(ch) || (ch >= '0' && ch <= '9');
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
private _skipWhitespaceAndComments(): void {
|
|
127
|
-
while (this._pos < this._src.length) {
|
|
128
|
-
const ch = this._src[this._pos]!;
|
|
129
|
-
// Skip spaces/tabs/carriage-returns but NOT newlines (they are tokens)
|
|
130
|
-
if (ch === ' ' || ch === '\t' || ch === '\r') {
|
|
131
|
-
this._pos++; this._col++;
|
|
132
|
-
continue;
|
|
133
|
-
}
|
|
134
|
-
// Line comment: // ... to end of line
|
|
135
|
-
if (ch === '/' && this._peek(1) === '/') {
|
|
136
|
-
while (this._pos < this._src.length && this._src[this._pos] !== '\n') {
|
|
137
|
-
this._pos++; this._col++;
|
|
138
|
-
}
|
|
139
|
-
continue;
|
|
140
|
-
}
|
|
141
|
-
break;
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
private _readNumber(): Token {
|
|
146
|
-
const start = this._pos;
|
|
147
|
-
const startCol = this._col;
|
|
148
|
-
while (this._pos < this._src.length) {
|
|
149
|
-
const c = this._src[this._pos]!;
|
|
150
|
-
if ((c >= '0' && c <= '9') || c === '.') { this._pos++; this._col++; }
|
|
151
|
-
else break;
|
|
152
|
-
}
|
|
153
|
-
const raw = this._src.slice(start, this._pos);
|
|
154
|
-
return { kind: 'NUMBER', value: raw, line: this._line, col: startCol };
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
private _readString(quote: string): Token {
|
|
158
|
-
const startCol = this._col;
|
|
159
|
-
this._pos++; this._col++; // skip opening quote
|
|
160
|
-
let result = '';
|
|
161
|
-
while (this._pos < this._src.length && this._src[this._pos] !== quote) {
|
|
162
|
-
if (this._src[this._pos] === '\\') {
|
|
163
|
-
this._pos++; this._col++;
|
|
164
|
-
const esc = this._src[this._pos] ?? '';
|
|
165
|
-
result += esc === 'n' ? '\n' : esc === 't' ? '\t' : esc;
|
|
166
|
-
} else {
|
|
167
|
-
result += this._src[this._pos];
|
|
168
|
-
}
|
|
169
|
-
this._pos++; this._col++;
|
|
170
|
-
}
|
|
171
|
-
this._pos++; this._col++; // skip closing quote
|
|
172
|
-
return { kind: 'STRING', value: result, line: this._line, col: startCol };
|
|
173
|
-
}
|
|
174
|
-
|
|
175
|
-
private _readIdent(): Token {
|
|
176
|
-
const start = this._pos;
|
|
177
|
-
const startCol = this._col;
|
|
178
|
-
while (this._pos < this._src.length && this._isAlphaNum(this._src[this._pos]!)) {
|
|
179
|
-
this._pos++; this._col++;
|
|
180
|
-
}
|
|
181
|
-
const name = this._src.slice(start, this._pos);
|
|
182
|
-
if (name === 'true' || name === 'false') {
|
|
183
|
-
return { kind: 'BOOL', value: name, line: this._line, col: startCol };
|
|
184
|
-
}
|
|
185
|
-
// Keywords like 'and', 'or', 'not', 'indicator' stay as IDENT so parser can
|
|
186
|
-
// recognise them by value rather than needing dedicated token kinds.
|
|
187
|
-
void KEYWORDS; // referenced for documentation only
|
|
188
|
-
return { kind: 'IDENT', value: name, line: this._line, col: startCol };
|
|
189
|
-
}
|
|
190
|
-
}
|