@forgecharts/sdk 1.1.27 → 1.1.29
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/__tests__/backwardCompatibility.test.d.ts +14 -0
- package/dist/__tests__/backwardCompatibility.test.d.ts.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__/public-api-surface.d.ts +13 -0
- package/dist/__tests__/public-api-surface.d.ts.map +1 -0
- package/dist/__tests__/timeframeBoundary.test.d.ts +17 -0
- package/dist/__tests__/timeframeBoundary.test.d.ts.map +1 -0
- package/dist/api/DrawingManager.d.ts +20 -0
- package/dist/api/DrawingManager.d.ts.map +1 -0
- package/dist/api/EventBus.d.ts +19 -0
- package/dist/api/EventBus.d.ts.map +1 -0
- package/dist/api/IndicatorDAG.d.ts +85 -0
- package/dist/api/IndicatorDAG.d.ts.map +1 -0
- package/dist/api/IndicatorRegistry.d.ts +22 -0
- package/dist/api/IndicatorRegistry.d.ts.map +1 -0
- package/dist/api/LayoutManager.d.ts +30 -0
- package/dist/api/LayoutManager.d.ts.map +1 -0
- package/dist/api/PaneManager.d.ts +42 -0
- package/dist/api/PaneManager.d.ts.map +1 -0
- package/dist/api/ReferenceAPI.d.ts +78 -0
- package/dist/api/ReferenceAPI.d.ts.map +1 -0
- package/dist/api/TChart.d.ts +345 -0
- package/dist/api/TChart.d.ts.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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/vertical.d.ts +4 -0
- package/dist/api/drawing tools/lines menu/vertical.d.ts.map +1 -0
- package/{src/api/drawing tools/pointers menu/crosshair.ts → dist/api/drawing tools/pointers menu/crosshair.d.ts } +8 -9
- package/dist/api/drawing tools/pointers menu/crosshair.d.ts.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/demonstration.ts → dist/api/drawing tools/pointers menu/demonstration.d.ts } +12 -17
- package/dist/api/drawing tools/pointers menu/demonstration.d.ts.map +1 -0
- package/{src/api/drawing tools/pointers menu/dot.ts → dist/api/drawing tools/pointers menu/dot.d.ts } +10 -13
- package/dist/api/drawing tools/pointers menu/dot.d.ts.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/text.d.ts +4 -0
- package/dist/api/drawing tools/shapes menu/text.d.ts.map +1 -0
- package/dist/api/drawingUtils.d.ts +22 -0
- package/dist/api/drawingUtils.d.ts.map +1 -0
- package/dist/core/CanvasLayer.d.ts +26 -0
- package/dist/core/CanvasLayer.d.ts.map +1 -0
- package/dist/core/Chart.d.ts +164 -0
- package/dist/core/Chart.d.ts.map +1 -0
- package/dist/core/CoordTransform.d.ts +168 -0
- package/dist/core/CoordTransform.d.ts.map +1 -0
- package/dist/core/Crosshair.d.ts +30 -0
- package/dist/core/Crosshair.d.ts.map +1 -0
- package/dist/core/IndicatorEngine.d.ts +51 -0
- package/dist/core/IndicatorEngine.d.ts.map +1 -0
- package/dist/core/InteractionManager.d.ts +197 -0
- package/dist/core/InteractionManager.d.ts.map +1 -0
- package/dist/core/PriceScale.d.ts +27 -0
- package/dist/core/PriceScale.d.ts.map +1 -0
- package/dist/core/Series.d.ts +40 -0
- package/dist/core/Series.d.ts.map +1 -0
- package/dist/core/TimeScale.d.ts +43 -0
- package/dist/core/TimeScale.d.ts.map +1 -0
- package/dist/datafeed/DatafeedConnector.d.ts +89 -0
- package/dist/datafeed/DatafeedConnector.d.ts.map +1 -0
- package/dist/engine/CandleEngine.d.ts +207 -0
- package/dist/engine/CandleEngine.d.ts.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/candleInvariants.d.ts +66 -0
- package/dist/engine/candleInvariants.d.ts.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/timeframeUtils.d.ts +80 -0
- package/dist/engine/timeframeUtils.d.ts.map +1 -0
- package/dist/index.d.ts +40 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +8101 -0
- package/dist/index.js.map +1 -0
- package/{src/internal.ts → dist/internal.d.ts} +1 -13
- package/dist/internal.d.ts.map +1 -0
- package/dist/internal.js +8852 -0
- 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/LicenseManager.d.ts +55 -0
- package/dist/licensing/LicenseManager.d.ts.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__/LicenseManager.test.d.ts +12 -0
- package/dist/licensing/__tests__/LicenseManager.test.d.ts.map +1 -0
- package/dist/licensing/licenseTypes.d.ts +18 -0
- package/dist/licensing/licenseTypes.d.ts.map +1 -0
- package/dist/pine/PineCompiler.d.ts +35 -0
- package/dist/pine/PineCompiler.d.ts.map +1 -0
- package/dist/pine/diagnostics.d.ts +20 -0
- package/dist/pine/diagnostics.d.ts.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/pine-ast.d.ts +142 -0
- package/dist/pine/pine-ast.d.ts.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-parser.d.ts +51 -0
- package/dist/pine/pine-parser.d.ts.map +1 -0
- package/dist/pine/pine-transpiler.d.ts +33 -0
- package/dist/pine/pine-transpiler.d.ts.map +1 -0
- package/dist/pixi/LayerName.d.ts +18 -0
- package/dist/pixi/LayerName.d.ts.map +1 -0
- package/dist/pixi/PixiCandlestickRenderer.d.ts +23 -0
- package/dist/pixi/PixiCandlestickRenderer.d.ts.map +1 -0
- package/dist/pixi/PixiChart.d.ts +72 -0
- package/dist/pixi/PixiChart.d.ts.map +1 -0
- package/dist/pixi/PixiCrosshairRenderer.d.ts +29 -0
- package/dist/pixi/PixiCrosshairRenderer.d.ts.map +1 -0
- package/dist/pixi/PixiDrawingRenderer.d.ts +17 -0
- package/dist/pixi/PixiDrawingRenderer.d.ts.map +1 -0
- package/dist/pixi/PixiGridRenderer.d.ts +22 -0
- package/dist/pixi/PixiGridRenderer.d.ts.map +1 -0
- package/dist/pixi/PixiLayerManager.d.ts +56 -0
- package/dist/pixi/PixiLayerManager.d.ts.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/ChartContextMenu.d.ts +18 -0
- package/dist/react/canvas/ChartContextMenu.d.ts.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/IndicatorLabel.d.ts +21 -0
- package/dist/react/canvas/IndicatorLabel.d.ts.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/PointerOverlay.d.ts +23 -0
- package/dist/react/canvas/PointerOverlay.d.ts.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/hooks/useChartCapabilities.d.ts +21 -0
- package/dist/react/hooks/useChartCapabilities.d.ts.map +1 -0
- package/{src/react/index.ts → dist/react/index.d.ts} +2 -23
- package/dist/react/index.d.ts.map +1 -0
- package/dist/react/index.js +11559 -0
- package/dist/react/index.js.map +1 -0
- package/{src/react/internal.ts → dist/react/internal.d.ts} +2 -26
- package/dist/react/internal.d.ts.map +1 -0
- package/dist/react/internal.js +12148 -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/trading/TradingBridge.d.ts +86 -0
- package/dist/react/trading/TradingBridge.d.ts.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/FloatingPanel.d.ts +18 -0
- package/dist/react/workspace/FloatingPanel.d.ts.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/LayoutMenu.d.ts +33 -0
- package/dist/react/workspace/LayoutMenu.d.ts.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/TabBar.d.ts +17 -0
- package/dist/react/workspace/TabBar.d.ts.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/RightToolbar.d.ts +8 -0
- package/dist/react/workspace/toolbars/RightToolbar.d.ts.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/renderers/CandlestickRenderer.d.ts +13 -0
- package/dist/renderers/CandlestickRenderer.d.ts.map +1 -0
- package/dist/renderers/HistogramRenderer.d.ts +11 -0
- package/dist/renderers/HistogramRenderer.d.ts.map +1 -0
- package/dist/renderers/LineRenderer.d.ts +12 -0
- package/dist/renderers/LineRenderer.d.ts.map +1 -0
- package/dist/theme/colors.d.ts +4 -0
- package/dist/theme/colors.d.ts.map +1 -0
- package/dist/tools/barDivergenceCheck.d.ts +120 -0
- package/dist/tools/barDivergenceCheck.d.ts.map +1 -0
- package/dist/trading/TradingOverlayStore.d.ts +86 -0
- package/dist/trading/TradingOverlayStore.d.ts.map +1 -0
- package/dist/trading/UnmanagedIngestion.d.ts +91 -0
- package/dist/trading/UnmanagedIngestion.d.ts.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__/TradingOverlayStore.test.d.ts +16 -0
- package/dist/trading/__tests__/TradingOverlayStore.test.d.ts.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/managed/ManagedTradingController.d.ts +110 -0
- package/dist/trading/managed/ManagedTradingController.d.ts.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/managedTypes.d.ts +122 -0
- package/dist/trading/managed/managedTypes.d.ts.map +1 -0
- package/dist/trading/tradingTypes.d.ts +89 -0
- package/dist/trading/tradingTypes.d.ts.map +1 -0
- package/dist/tscript/TScriptIndicator.d.ts +41 -0
- package/dist/tscript/TScriptIndicator.d.ts.map +1 -0
- package/dist/tscript/ast.d.ts +89 -0
- package/dist/tscript/ast.d.ts.map +1 -0
- package/dist/tscript/lexer.d.ts +36 -0
- package/dist/tscript/lexer.d.ts.map +1 -0
- package/dist/tscript/parser.d.ts +50 -0
- package/dist/tscript/parser.d.ts.map +1 -0
- package/dist/tscript/runtime.d.ts +123 -0
- package/dist/tscript/runtime.d.ts.map +1 -0
- package/dist/tscript/series.d.ts +49 -0
- package/dist/tscript/series.d.ts.map +1 -0
- package/dist/types/IChart.d.ts +48 -0
- package/dist/types/IChart.d.ts.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/ISeries.d.ts +26 -0
- package/dist/types/ISeries.d.ts.map +1 -0
- package/package.json +5 -1
- package/src/__tests__/backwardCompatibility.test.ts +0 -191
- package/src/__tests__/candleInvariant.test.ts +0 -500
- package/src/__tests__/public-api-surface.ts +0 -76
- 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/pointers menu/cursor.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/engine/timeframeUtils.ts +0 -118
- 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/react/canvas/ChartCanvas.tsx +0 -984
- package/src/react/canvas/ChartContextMenu.tsx +0 -60
- package/src/react/canvas/ChartSettingsDialog.tsx +0 -133
- package/src/react/canvas/IndicatorLabel.tsx +0 -347
- package/src/react/canvas/IndicatorPane.tsx +0 -503
- package/src/react/canvas/PointerOverlay.tsx +0 -126
- package/src/react/canvas/toolbars/LeftToolbar.tsx +0 -1096
- package/src/react/hooks/useChartCapabilities.ts +0 -76
- package/src/react/shell/ManagedAppShell.tsx +0 -699
- package/src/react/trading/TradingBridge.ts +0 -156
- package/src/react/workspace/ChartWorkspace.tsx +0 -228
- package/src/react/workspace/FloatingPanel.tsx +0 -131
- package/src/react/workspace/IndicatorsDialog.tsx +0 -246
- package/src/react/workspace/LayoutMenu.tsx +0 -345
- package/src/react/workspace/SymbolSearchDialog.tsx +0 -377
- package/src/react/workspace/TabBar.tsx +0 -87
- package/src/react/workspace/toolbars/BottomToolbar.tsx +0 -372
- package/src/react/workspace/toolbars/RightToolbar.tsx +0 -46
- package/src/react/workspace/toolbars/TopToolbar.tsx +0 -431
- 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 -23
- package/tsup.config.ts +0 -16
- package/vitest.config.ts +0 -25
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Backward compatibility — unit tests
|
|
3
|
+
*
|
|
4
|
+
* Verifies that the introduction of licensing, unmanaged mode, and managed
|
|
5
|
+
* foundations does NOT break the existing SDK contract:
|
|
6
|
+
*
|
|
7
|
+
* 1. All expected exports exist and have the correct shape/type
|
|
8
|
+
* 2. CandleEngine works unchanged (no side-effects from new code)
|
|
9
|
+
* 3. Default mode is unmanaged (safe default — nothing breaks by default)
|
|
10
|
+
* 4. The RapidAPI datafeed path is unaffected (DatafeedConnector still exports)
|
|
11
|
+
* 5. New modules export correctly from the package root (index.ts)
|
|
12
|
+
*/
|
|
13
|
+
export {};
|
|
14
|
+
//# sourceMappingURL=backwardCompatibility.test.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"backwardCompatibility.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/backwardCompatibility.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Candle Invariant Tests
|
|
3
|
+
*
|
|
4
|
+
* Verifies that the invariant guards in `candleInvariants.ts` fire correctly,
|
|
5
|
+
* and that `CandleEngine.applyLiveUpdate` maintains all invariants during
|
|
6
|
+
* normal operation (no warnings) and surfaces violations during abnormal
|
|
7
|
+
* conditions (mocked guard paths).
|
|
8
|
+
*
|
|
9
|
+
* Test categories:
|
|
10
|
+
* 1. assertOhlcRelationships — each OHLC violation is detected independently
|
|
11
|
+
* 2. assertBucketAlignment — misaligned timestamps are caught
|
|
12
|
+
* 3. assertNotFinalized — mutating a closed bar triggers the guard
|
|
13
|
+
* 4. assertOpenImmutability — open-price overwrite is detected
|
|
14
|
+
* 5. assertNoDuplicateAppend — same-bucket spurious append is detected
|
|
15
|
+
* 6. assertFinalizedUnchanged — new-bucket finalisation is verified
|
|
16
|
+
* 7. CandleEngine integration — no spurious warnings during correct operation
|
|
17
|
+
* 8. barDivergenceCheck — compareSources and formatReport
|
|
18
|
+
*/
|
|
19
|
+
export {};
|
|
20
|
+
//# sourceMappingURL=candleInvariant.test.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"candleInvariant.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/candleInvariant.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SDK Public API Surface — type-level integration test.
|
|
3
|
+
*
|
|
4
|
+
* Verifies that @forgecharts/sdk exports the required public symbols.
|
|
5
|
+
* Compiled by `tsc --noEmit` (no runtime execution needed).
|
|
6
|
+
*
|
|
7
|
+
* The three primary integration points are:
|
|
8
|
+
* 1. createChart() — vanilla JS/TS DOM-based embed
|
|
9
|
+
* 2. ChartCanvas — React component embed
|
|
10
|
+
* 3. ChartWorkspace — full-workspace React embed
|
|
11
|
+
*/
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=public-api-surface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"public-api-surface.d.ts","sourceRoot":"","sources":["../../src/__tests__/public-api-surface.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Timeframe Boundary Tests
|
|
3
|
+
*
|
|
4
|
+
* Verifies correctness of `getBucketStart` (from `@forgecharts/shared`) and the
|
|
5
|
+
* `CandleEngine` live-update / reconnect behaviour at every critical boundary.
|
|
6
|
+
*
|
|
7
|
+
* Test categories:
|
|
8
|
+
* 1. Fixed intervals — standard and previously-missing timeframes
|
|
9
|
+
* 2. Weekly alignment — Monday start (ISO 8601)
|
|
10
|
+
* 3. Monthly alignment — calendar first-of-month, incl. leap-year February
|
|
11
|
+
* 4. Live update semantics — open immutability, high/low expansion, close,
|
|
12
|
+
* same-bucket vs new-bucket
|
|
13
|
+
* 5. Reconnect — gap backfill, historical bars override provisional,
|
|
14
|
+
* forming candle survives reconnect
|
|
15
|
+
*/
|
|
16
|
+
export {};
|
|
17
|
+
//# sourceMappingURL=timeframeBoundary.test.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"timeframeBoundary.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/timeframeBoundary.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { Drawing, OHLCV } from '@forgecharts/types';
|
|
2
|
+
import type { CoordTransform } from '../core/CoordTransform';
|
|
3
|
+
export declare class DrawingManager {
|
|
4
|
+
private readonly _map;
|
|
5
|
+
add(drawing: Omit<Drawing, 'id'>): string;
|
|
6
|
+
remove(id: string): boolean;
|
|
7
|
+
update(id: string, patches: Partial<Pick<Drawing, 'points' | 'color' | 'text' | 'visible' | 'lineWidth' | 'fillColor' | 'fillOpacity' | 'deviationMultiplier'>>): boolean;
|
|
8
|
+
get(id: string): Drawing | undefined;
|
|
9
|
+
has(id: string): boolean;
|
|
10
|
+
all(): readonly Drawing[];
|
|
11
|
+
clear(): void;
|
|
12
|
+
render(ctx: CanvasRenderingContext2D, transform: CoordTransform, selectedId?: string | null, interval?: string, candles?: readonly OHLCV[]): void;
|
|
13
|
+
renderPreview(ctx: CanvasRenderingContext2D, transform: CoordTransform, draft: Omit<Drawing, 'id'>, interval?: string, candles?: readonly OHLCV[]): void;
|
|
14
|
+
/** Returns anchor pixel positions — used by InteractionManager for handle hit-testing. */
|
|
15
|
+
static anchorPixels(d: Drawing, transform: CoordTransform): Array<{
|
|
16
|
+
x: number;
|
|
17
|
+
y: number;
|
|
18
|
+
}>;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=DrawingManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DrawingManager.d.ts","sourceRoot":"","sources":["../../src/api/DrawingManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAuF7D,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA8B;IAInD,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,MAAM;IAMzC,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAI3B,MAAM,CACJ,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,GAAG,WAAW,GAAG,WAAW,GAAG,aAAa,GAAG,qBAAqB,CAAC,CAAC,GAC3I,OAAO;IAOV,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS;IAIpC,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAIxB,GAAG,IAAI,SAAS,OAAO,EAAE;IAIzB,KAAK,IAAI,IAAI;IAMb,MAAM,CACJ,GAAG,EAAE,wBAAwB,EAC7B,SAAS,EAAE,cAAc,EACzB,UAAU,GAAE,MAAM,GAAG,IAAW,EAChC,QAAQ,SAAO,EACf,OAAO,GAAE,SAAS,KAAK,EAAO,GAC7B,IAAI;IAuBP,aAAa,CACX,GAAG,EAAE,wBAAwB,EAC7B,SAAS,EAAE,cAAc,EACzB,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,EAC1B,QAAQ,SAAO,EACf,OAAO,GAAE,SAAS,KAAK,EAAO,GAC7B,IAAI;IAWP,0FAA0F;IAC1F,MAAM,CAAC,YAAY,CACjB,CAAC,EAAE,OAAO,EACV,SAAS,EAAE,cAAc,GACxB,KAAK,CAAC;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAMnC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { ChartEventMap } from '@forgecharts/types';
|
|
2
|
+
type Handler<T> = (payload: T) => void;
|
|
3
|
+
/**
|
|
4
|
+
* EventBus — internal typed pub/sub used by TChart.
|
|
5
|
+
*
|
|
6
|
+
* All event keys are constrained to `keyof ChartEventMap`, giving
|
|
7
|
+
* full type inference on payload shapes at every call site.
|
|
8
|
+
*/
|
|
9
|
+
export declare class EventBus {
|
|
10
|
+
private readonly _listeners;
|
|
11
|
+
on<K extends keyof ChartEventMap>(event: K, handler: Handler<ChartEventMap[K]>): void;
|
|
12
|
+
off<K extends keyof ChartEventMap>(event: K, handler: Handler<ChartEventMap[K]>): void;
|
|
13
|
+
once<K extends keyof ChartEventMap>(event: K, handler: Handler<ChartEventMap[K]>): void;
|
|
14
|
+
emit<K extends keyof ChartEventMap>(event: K, payload: ChartEventMap[K]): void;
|
|
15
|
+
/** Removes all listeners — called on chart destruction. */
|
|
16
|
+
clear(): void;
|
|
17
|
+
}
|
|
18
|
+
export {};
|
|
19
|
+
//# sourceMappingURL=EventBus.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EventBus.d.ts","sourceRoot":"","sources":["../../src/api/EventBus.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD,KAAK,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,IAAI,CAAC;AAEvC;;;;;GAKG;AACH,qBAAa,QAAQ;IACnB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAGvB;IAEJ,EAAE,CAAC,CAAC,SAAS,MAAM,aAAa,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI;IAOrF,GAAG,CAAC,CAAC,SAAS,MAAM,aAAa,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI;IAItF,IAAI,CAAC,CAAC,SAAS,MAAM,aAAa,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI;IAQvF,IAAI,CAAC,CAAC,SAAS,MAAM,aAAa,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,IAAI;IAa9E,2DAA2D;IAC3D,KAAK,IAAI,IAAI;CAGd"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* IndicatorDAG — Directed Acyclic Graph for indicator computation.
|
|
3
|
+
*
|
|
4
|
+
* Allows indicators to be chained: e.g. EMA can consume SMA's output instead
|
|
5
|
+
* of raw OHLCV prices. Circular dependencies are rejected at registration time.
|
|
6
|
+
* Results are cached and recomputed only when inputs actually change.
|
|
7
|
+
*
|
|
8
|
+
* Incremental fast-path: when a single bar is appended, SMA and EMA extend
|
|
9
|
+
* their result by exactly one point in O(1) time.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```ts
|
|
13
|
+
* const dag = new IndicatorDAG();
|
|
14
|
+
* dag.addNode('sma1', { type: 'sma', params: { period: 20 } });
|
|
15
|
+
* dag.addNode('ema1', { type: 'ema', params: { period: 10 }, sourceId: 'sma1' });
|
|
16
|
+
*
|
|
17
|
+
* dag.execute(bars); // SMA first, then EMA(SMA)
|
|
18
|
+
* const result = dag.getResult('ema1'); // { kind: 'series', points: [...] }
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
21
|
+
import type { OHLCV, IndicatorConfig } from '@forgecharts/types';
|
|
22
|
+
import type { IndicatorPoint, MACDPoint } from '../core/IndicatorEngine';
|
|
23
|
+
/** Computed output of a single DAG node. */
|
|
24
|
+
export type DAGResult = {
|
|
25
|
+
readonly kind: 'series';
|
|
26
|
+
readonly points: readonly IndicatorPoint[];
|
|
27
|
+
} | {
|
|
28
|
+
readonly kind: 'macd';
|
|
29
|
+
readonly points: readonly MACDPoint[];
|
|
30
|
+
};
|
|
31
|
+
export declare class IndicatorDAG {
|
|
32
|
+
private readonly _nodes;
|
|
33
|
+
/**
|
|
34
|
+
* Registers a node for `id`.
|
|
35
|
+
* If the node already exists its config is updated if changed.
|
|
36
|
+
* Throws `'[IndicatorDAG] Circular dependency detected'` if adding `id`
|
|
37
|
+
* would form a cycle.
|
|
38
|
+
*/
|
|
39
|
+
addNode(id: string, config: IndicatorConfig): void;
|
|
40
|
+
/** Removes `id` and marks any indicators that depended on it as dirty. */
|
|
41
|
+
removeNode(id: string): void;
|
|
42
|
+
/**
|
|
43
|
+
* Syncs the DAG to exactly the provided indicator list.
|
|
44
|
+
* Adds new nodes, removes obsolete ones, updates changed configs.
|
|
45
|
+
* Throws if the resulting graph contains a cycle.
|
|
46
|
+
*/
|
|
47
|
+
sync(indicators: ReadonlyArray<{
|
|
48
|
+
readonly id: string;
|
|
49
|
+
readonly config: IndicatorConfig;
|
|
50
|
+
}>): void;
|
|
51
|
+
/**
|
|
52
|
+
* Runs all dirty nodes in topological order.
|
|
53
|
+
*
|
|
54
|
+
* When the OHLCV array grew by exactly one bar since a node's last run and
|
|
55
|
+
* its input series also grew by one, SMA and EMA use an O(1) incremental
|
|
56
|
+
* append path. All other types fall back to a full recompute.
|
|
57
|
+
*
|
|
58
|
+
* @returns `true` if any node was executed.
|
|
59
|
+
*/
|
|
60
|
+
execute(bars: readonly OHLCV[]): boolean;
|
|
61
|
+
/** Forces every node to recompute on the next `execute()` call. */
|
|
62
|
+
invalidateAll(): void;
|
|
63
|
+
isDirty(): boolean;
|
|
64
|
+
getResult(id: string): DAGResult | null;
|
|
65
|
+
getAllResults(): ReadonlyMap<string, DAGResult>;
|
|
66
|
+
/**
|
|
67
|
+
* Returns node ids in topological execution order.
|
|
68
|
+
* Throws `'[IndicatorDAG] Circular dependency detected'` when a cycle exists.
|
|
69
|
+
*/
|
|
70
|
+
private _topoSort;
|
|
71
|
+
private _needsRun;
|
|
72
|
+
/** Returns the ordered input series for `node` — either from a source indicator or raw price field. */
|
|
73
|
+
private _resolveSource;
|
|
74
|
+
/** Full recompute of a node's result. */
|
|
75
|
+
private _computeFull;
|
|
76
|
+
/**
|
|
77
|
+
* O(1) append of a single new point.
|
|
78
|
+
* Only called when `canIncremental` is true (input grew by exactly one element).
|
|
79
|
+
* Falls back to `_computeFull` for types that have no O(1) path.
|
|
80
|
+
*/
|
|
81
|
+
private _appendOne;
|
|
82
|
+
/** Recursively marks all indicators that depend on `sourceId` as dirty. */
|
|
83
|
+
private _markDependentsDirty;
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=IndicatorDAG.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IndicatorDAG.d.ts","sourceRoot":"","sources":["../../src/api/IndicatorDAG.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,eAAe,EAAc,MAAM,oBAAoB,CAAC;AAC7E,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAczE,4CAA4C;AAC5C,MAAM,MAAM,SAAS,GACjB;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,cAAc,EAAE,CAAA;CAAE,GACvE;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAG,QAAQ,CAAC,MAAM,EAAE,SAAS,SAAS,EAAE,CAAA;CAAO,CAAC;AA8B5E,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA2B;IAIlD;;;;;OAKG;IACH,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,GAAG,IAAI;IA+BlD,0EAA0E;IAC1E,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAK5B;;;;OAIG;IACH,IAAI,CACF,UAAU,EAAE,aAAa,CAAC;QAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAA;KAAE,CAAC,GACnF,IAAI;IAsCP;;;;;;;;OAQG;IACH,OAAO,CAAC,IAAI,EAAE,SAAS,KAAK,EAAE,GAAG,OAAO;IA+BxC,mEAAmE;IACnE,aAAa,IAAI,IAAI;IAMrB,OAAO,IAAI,OAAO;IAMlB,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAIvC,aAAa,IAAI,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC;IAU/C;;;OAGG;IACH,OAAO,CAAC,SAAS;IAmCjB,OAAO,CAAC,SAAS;IAcjB,uGAAuG;IACvG,OAAO,CAAC,cAAc;IAWtB,yCAAyC;IACzC,OAAO,CAAC,YAAY;IA6CpB;;;;OAIG;IACH,OAAO,CAAC,UAAU;IAiClB,2EAA2E;IAC3E,OAAO,CAAC,oBAAoB;CAS7B"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { IndicatorConfig, IndicatorInstance } from '@forgecharts/types';
|
|
2
|
+
/**
|
|
3
|
+
* IndicatorRegistry — tracks active indicator instances for a chart.
|
|
4
|
+
* Rendering is a separate concern (handled by sub-pane renderers, out of SDK scope).
|
|
5
|
+
*/
|
|
6
|
+
export declare class IndicatorRegistry {
|
|
7
|
+
private readonly _map;
|
|
8
|
+
/**
|
|
9
|
+
* Registers a new indicator and returns its opaque id.
|
|
10
|
+
*/
|
|
11
|
+
add(config: IndicatorConfig): string;
|
|
12
|
+
/**
|
|
13
|
+
* Removes an indicator by id.
|
|
14
|
+
* @returns `true` if the indicator existed and was removed.
|
|
15
|
+
*/
|
|
16
|
+
remove(id: string): boolean;
|
|
17
|
+
get(id: string): IndicatorInstance | undefined;
|
|
18
|
+
has(id: string): boolean;
|
|
19
|
+
all(): readonly IndicatorInstance[];
|
|
20
|
+
clear(): void;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=IndicatorRegistry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IndicatorRegistry.d.ts","sourceRoot":"","sources":["../../src/api/IndicatorRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAO7E;;;GAGG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAwC;IAE7D;;OAEG;IACH,GAAG,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM;IAMpC;;;OAGG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAI3B,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS;IAI9C,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAIxB,GAAG,IAAI,SAAS,iBAAiB,EAAE;IAInC,KAAK,IAAI,IAAI;CAGd"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { ChartLayout, ChartInterval, ChartTheme, IndicatorInstance, Drawing, Viewport, PaneDescriptor } from '@forgecharts/types';
|
|
2
|
+
/**
|
|
3
|
+
* LayoutManager — pure serialisation / deserialisation of chart state.
|
|
4
|
+
* No side effects; state mutations are the caller's responsibility.
|
|
5
|
+
*/
|
|
6
|
+
export declare class LayoutManager {
|
|
7
|
+
/**
|
|
8
|
+
* Produces a serialisable snapshot of the current chart state.
|
|
9
|
+
*/
|
|
10
|
+
static save(params: {
|
|
11
|
+
symbol: string;
|
|
12
|
+
interval: ChartInterval;
|
|
13
|
+
theme: ChartTheme;
|
|
14
|
+
indicators: readonly IndicatorInstance[];
|
|
15
|
+
drawings: readonly Drawing[];
|
|
16
|
+
viewport?: Viewport;
|
|
17
|
+
panes?: readonly PaneDescriptor[];
|
|
18
|
+
}): ChartLayout;
|
|
19
|
+
/**
|
|
20
|
+
* Serialises a layout to a JSON string safe for `localStorage` / remote persistence.
|
|
21
|
+
*/
|
|
22
|
+
static toJSON(layout: ChartLayout): string;
|
|
23
|
+
/**
|
|
24
|
+
* Parses a JSON string back into a ChartLayout.
|
|
25
|
+
* Throws if the string is malformed.
|
|
26
|
+
*/
|
|
27
|
+
static fromJSON(raw: string): ChartLayout;
|
|
28
|
+
private static _isLayout;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=LayoutManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LayoutManager.d.ts","sourceRoot":"","sources":["../../src/api/LayoutManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,aAAa,EACb,UAAU,EACV,iBAAiB,EACjB,OAAO,EACP,QAAQ,EACR,cAAc,EACf,MAAM,oBAAoB,CAAC;AAE5B;;;GAGG;AACH,qBAAa,aAAa;IACxB;;OAEG;IACH,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE;QAClB,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,aAAa,CAAC;QACxB,KAAK,EAAE,UAAU,CAAC;QAClB,UAAU,EAAE,SAAS,iBAAiB,EAAE,CAAC;QACzC,QAAQ,EAAE,SAAS,OAAO,EAAE,CAAC;QAC7B,QAAQ,CAAC,EAAE,QAAQ,CAAC;QACpB,KAAK,CAAC,EAAE,SAAS,cAAc,EAAE,CAAC;KACnC,GAAG,WAAW;IAaf;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM;IAI1C;;;OAGG;IACH,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW;IAQzC,OAAO,CAAC,MAAM,CAAC,SAAS;CAazB"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import type { PaneDescriptor } from '@forgecharts/types';
|
|
2
|
+
/**
|
|
3
|
+
* PaneManager — manages the collection of sub-pane (indicator panel) descriptors.
|
|
4
|
+
*
|
|
5
|
+
* Each `PaneDescriptor` carries:
|
|
6
|
+
* - a stable `id`
|
|
7
|
+
* - a `heightFraction` (0–1, all panes sum to 1)
|
|
8
|
+
* - the `indicatorIds` assigned to that pane
|
|
9
|
+
*
|
|
10
|
+
* Height redistribution is proportional: when a pane is added/removed/resized,
|
|
11
|
+
* the remaining panes absorb or donate height proportionally to their current sizes.
|
|
12
|
+
*/
|
|
13
|
+
export declare class PaneManager {
|
|
14
|
+
private _panes;
|
|
15
|
+
getPanes(): readonly PaneDescriptor[];
|
|
16
|
+
/**
|
|
17
|
+
* Creates a new pane, distributing total height evenly across all panes.
|
|
18
|
+
* @returns The new pane's id.
|
|
19
|
+
*/
|
|
20
|
+
createPane(label?: string): string;
|
|
21
|
+
/**
|
|
22
|
+
* Removes a pane and redistributes its height fraction to remaining panes.
|
|
23
|
+
*/
|
|
24
|
+
removePane(id: string): void;
|
|
25
|
+
/**
|
|
26
|
+
* Assigns an indicator to a pane, removing it from any previous pane first.
|
|
27
|
+
*/
|
|
28
|
+
assignIndicator(indicatorId: string, paneId: string): void;
|
|
29
|
+
/**
|
|
30
|
+
* Unassigns an indicator from whichever pane currently holds it.
|
|
31
|
+
*/
|
|
32
|
+
unassignIndicator(indicatorId: string): void;
|
|
33
|
+
/**
|
|
34
|
+
* Resizes a pane by setting its `heightFraction`, clamped to [0.05, 0.9].
|
|
35
|
+
* Remaining panes absorb the difference proportionally.
|
|
36
|
+
*/
|
|
37
|
+
resizePane(id: string, newFraction: number): void;
|
|
38
|
+
serialize(): readonly PaneDescriptor[];
|
|
39
|
+
restore(panes: readonly PaneDescriptor[]): void;
|
|
40
|
+
clear(): void;
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=PaneManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PaneManager.d.ts","sourceRoot":"","sources":["../../src/api/PaneManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAOzD;;;;;;;;;;GAUG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAwB;IAEtC,QAAQ,IAAI,SAAS,cAAc,EAAE;IAIrC;;;OAGG;IACH,UAAU,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM;IAiBlC;;OAEG;IACH,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAmB5B;;OAEG;IACH,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAY1D;;OAEG;IACH,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAO5C;;;OAGG;IACH,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI;IAoBjD,SAAS,IAAI,SAAS,cAAc,EAAE;IAItC,OAAO,CAAC,KAAK,EAAE,SAAS,cAAc,EAAE,GAAG,IAAI;IAI/C,KAAK,IAAI,IAAI;CAGd"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import type { RefMarket, RefExchange, RefSymbol, SymbolSearchFilters, SymbolSearchResult } from '@forgecharts/types';
|
|
2
|
+
export type ReferenceAPIConfig = {
|
|
3
|
+
/** Base URL of the ForgeCharts API server (e.g. "https://charts.myapp.com"). Defaults to current origin. */
|
|
4
|
+
apiUrl?: string;
|
|
5
|
+
/** Called to retrieve a Bearer token for authenticated endpoints. Falls back to localStorage['forgecharts-token']. */
|
|
6
|
+
getAuthToken?: () => string | Promise<string>;
|
|
7
|
+
};
|
|
8
|
+
type ProviderMapping = {
|
|
9
|
+
providerCode: string;
|
|
10
|
+
providerSymbol: string;
|
|
11
|
+
providerExchange: string | null;
|
|
12
|
+
metadata: unknown;
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* ReferenceAPI — headless SDK client for the Global Reference Data Platform.
|
|
16
|
+
*
|
|
17
|
+
* Provides symbol lookup, search, market/exchange browsing,
|
|
18
|
+
* provider mapping resolution, plus per-user favorites and recents.
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* ```ts
|
|
22
|
+
* const ref = new ReferenceAPI();
|
|
23
|
+
* const { symbols } = await ref.searchSymbols('BTC');
|
|
24
|
+
* const popular = await ref.getPopularSymbols('crypto', 10);
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
27
|
+
export declare class ReferenceAPI {
|
|
28
|
+
private readonly _base;
|
|
29
|
+
private readonly _getToken;
|
|
30
|
+
constructor(config?: ReferenceAPIConfig);
|
|
31
|
+
private _authHeaders;
|
|
32
|
+
private _get;
|
|
33
|
+
private _post;
|
|
34
|
+
private _delete;
|
|
35
|
+
/** Returns all active market categories (crypto, stocks, forex, …). */
|
|
36
|
+
getMarkets(): Promise<RefMarket[]>;
|
|
37
|
+
/** Returns all active exchanges / venues. */
|
|
38
|
+
getExchanges(): Promise<RefExchange[]>;
|
|
39
|
+
/**
|
|
40
|
+
* Full-text search across symbol tickers, names, and aliases.
|
|
41
|
+
* @param query Search term (minimum 1 character).
|
|
42
|
+
* @param filters Optional market / exchange / limit / offset filters.
|
|
43
|
+
*/
|
|
44
|
+
searchSymbols(query: string, filters?: SymbolSearchFilters): Promise<SymbolSearchResult>;
|
|
45
|
+
/**
|
|
46
|
+
* Browse the symbol catalogue with optional filters.
|
|
47
|
+
* Returns symbols ordered alphabetically.
|
|
48
|
+
*/
|
|
49
|
+
getSymbols(filters?: SymbolSearchFilters): Promise<SymbolSearchResult>;
|
|
50
|
+
/**
|
|
51
|
+
* Returns the most popular / trending symbols.
|
|
52
|
+
* @param market Optional market code to restrict results (e.g. "crypto").
|
|
53
|
+
* @param limit Maximum results to return. Defaults to 20.
|
|
54
|
+
*/
|
|
55
|
+
getPopularSymbols(market?: string, limit?: number): Promise<RefSymbol[]>;
|
|
56
|
+
/**
|
|
57
|
+
* Fetches full metadata for a single symbol by its global symbol key.
|
|
58
|
+
* @param symbolKey e.g. "CRYPTO:BINANCE:BTCUSDT"
|
|
59
|
+
*/
|
|
60
|
+
getSymbol(symbolKey: string): Promise<RefSymbol>;
|
|
61
|
+
/**
|
|
62
|
+
* Returns all provider-specific mappings for a symbol.
|
|
63
|
+
* Useful for resolving the correct datafeed symbol string at runtime.
|
|
64
|
+
*/
|
|
65
|
+
getProviderMapping(symbolKey: string): Promise<ProviderMapping[]>;
|
|
66
|
+
/** Returns the authenticated user's recently viewed symbols (newest first). */
|
|
67
|
+
getRecentSymbols(): Promise<RefSymbol[]>;
|
|
68
|
+
/** Records a symbol as recently viewed for the authenticated user. */
|
|
69
|
+
recordRecentSymbol(symbolKey: string): Promise<void>;
|
|
70
|
+
/** Returns the authenticated user's favorite symbols. */
|
|
71
|
+
getFavoriteSymbols(): Promise<RefSymbol[]>;
|
|
72
|
+
/** Adds a symbol to the authenticated user's favorites. */
|
|
73
|
+
addFavoriteSymbol(symbolKey: string): Promise<void>;
|
|
74
|
+
/** Removes a symbol from the authenticated user's favorites. */
|
|
75
|
+
removeFavoriteSymbol(symbolKey: string): Promise<void>;
|
|
76
|
+
}
|
|
77
|
+
export {};
|
|
78
|
+
//# sourceMappingURL=ReferenceAPI.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ReferenceAPI.d.ts","sourceRoot":"","sources":["../../src/api/ReferenceAPI.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,SAAS,EACT,WAAW,EACX,SAAS,EACT,mBAAmB,EACnB,kBAAkB,EACnB,MAAM,oBAAoB,CAAC;AAE5B,MAAM,MAAM,kBAAkB,GAAG;IAC/B,4GAA4G;IAC5G,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,sHAAsH;IACtH,YAAY,CAAC,EAAE,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAC/C,CAAC;AAEF,KAAK,eAAe,GAAG;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,QAAQ,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA+C;gBAE7D,MAAM,GAAE,kBAAuB;YAO7B,YAAY;YAcZ,IAAI;YAeJ,KAAK;YAWL,OAAO;IAYrB,uEAAuE;IACjE,UAAU,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;IAIxC,6CAA6C;IACvC,YAAY,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;IAM5C;;;;OAIG;IACG,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAU9F;;;OAGG;IACG,UAAU,CAAC,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAU5E;;;;OAIG;IACG,iBAAiB,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,KAAK,SAAK,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAI1E;;;OAGG;IACG,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAItD;;;OAGG;IACG,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAQvE,+EAA+E;IACzE,gBAAgB,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;IAI9C,sEAAsE;IAChE,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAM1D,yDAAyD;IACnD,kBAAkB,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;IAIhD,2DAA2D;IACrD,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIzD,gEAAgE;IAC1D,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAG7D"}
|