@vninvestcharts/widget 0.0.0-stage → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +201 -0
- package/NOTICE.md +83 -0
- package/README.md +851 -3
- package/dist/AlertsModal-WKEUDTUZ.js +2 -0
- package/dist/ConnectedTradingPanel-KWJMIKTN.css +2 -0
- package/dist/ConnectedTradingPanel-XDKMOQY5.js +2 -0
- package/dist/PineEditorPanel-AUXB4FD3.js +2 -0
- package/dist/PineEditorPanel-V6YN2OTU.css +2 -0
- package/dist/RightSidebarDockHost-6FPZ6EKV.css +2 -0
- package/dist/RightSidebarDockHost-OBFXKSIY.js +2 -0
- package/dist/StrategyTesterPanel-6IUTS2P4.js +2 -0
- package/dist/StrategyTesterPanel-LEWEUMXP.css +2 -0
- package/dist/VolumeProfileWorker-UREKVPUE.js +189 -0
- package/dist/adapters/index.cjs +2532 -0
- package/dist/adapters/index.d.mts +673 -0
- package/dist/adapters/index.d.ts +673 -0
- package/dist/adapters/index.js +2521 -0
- package/dist/adapters/index.umd.js +2535 -0
- package/dist/chunk-5T6DGB3V.js +2 -0
- package/dist/chunk-66JBEGR3.js +4 -0
- package/dist/chunk-6D7DVBIK.js +2 -0
- package/dist/chunk-76E7CKUD.js +2 -0
- package/dist/chunk-AKWVXRQ6.js +2 -0
- package/dist/chunk-FHHSTO6Z.js +2 -0
- package/dist/chunk-HPL723JA.js +2 -0
- package/dist/chunk-NVGTF73S.js +2 -0
- package/dist/chunk-PNIB4OM3.js +2 -0
- package/dist/chunk-UKJ5AKQX.js +595 -0
- package/dist/chunk-UYJTX3SD.js +2 -0
- package/dist/combined.css +3068 -0
- package/dist/css-modules-manifest.json +297 -0
- package/dist/dist-Y6PZ2RN3.js +12 -0
- package/dist/drawing/index.cjs +53 -0
- package/dist/drawing/index.d.mts +2 -0
- package/dist/drawing/index.d.ts +2 -0
- package/dist/drawing/index.js +2 -0
- package/dist/drawing/index.umd.js +54 -0
- package/dist/dts/drawing-shim.d.ts +3 -0
- package/dist/dts/index.d.ts +31 -0
- package/dist/dts/lib/Chart.d.ts +31 -0
- package/dist/dts/lib/ChartContext.d.ts +10 -0
- package/dist/dts/lib/EventCapture.d.ts +3 -0
- package/dist/dts/lib/GenericChartComponent.d.ts +5 -0
- package/dist/dts/lib/GenericComponent.d.ts +124 -0
- package/dist/dts/lib/StockChartContext.d.ts +53 -0
- package/dist/dts/lib/adapters/BaseAdapter.d.ts +25 -0
- package/dist/dts/lib/adapters/BinanceAdapter.d.ts +51 -0
- package/dist/dts/lib/adapters/CSVAdapter.d.ts +17 -0
- package/dist/dts/lib/adapters/ContinuousContractAdapter.d.ts +63 -0
- package/dist/dts/lib/adapters/ContinuousContractTypes.d.ts +154 -0
- package/dist/dts/lib/adapters/DBAdapter.d.ts +16 -0
- package/dist/dts/lib/adapters/DataAdapter.d.ts +136 -0
- package/dist/dts/lib/adapters/DjangoVnstockAdapter.d.ts +15 -0
- package/dist/dts/lib/adapters/LocalCacheAdapter.d.ts +18 -0
- package/dist/dts/lib/adapters/MockAdapter.d.ts +22 -0
- package/dist/dts/lib/adapters/RESTAdapter.d.ts +16 -0
- package/dist/dts/lib/adapters/StockDataAdapter.d.ts +1 -0
- package/dist/dts/lib/adapters/UDFDataAdapter.d.ts +29 -0
- package/dist/dts/lib/adapters/VNStocksAdapter.d.ts +8 -0
- package/dist/dts/lib/adapters/WSAdapter.d.ts +30 -0
- package/dist/dts/lib/adapters/gapFixture.d.ts +71 -0
- package/dist/dts/lib/adapters/index.d.ts +15 -0
- package/dist/dts/lib/adapters/rollAlgorithms.d.ts +68 -0
- package/dist/dts/lib/advisory/AdvisoryPanel.d.ts +5 -0
- package/dist/dts/lib/alerts/AlertEvaluator.d.ts +5 -0
- package/dist/dts/lib/alerts/AlertManager.d.ts +123 -0
- package/dist/dts/lib/alerts/types.d.ts +58 -0
- package/dist/dts/lib/cache/cacheDebug.d.ts +3 -0
- package/dist/dts/lib/calendars/ExchangeCalendar.d.ts +23 -0
- package/dist/dts/lib/calendars/calendarRegistry.d.ts +10 -0
- package/dist/dts/lib/calendars/index.d.ts +3 -0
- package/dist/dts/lib/core/ChartPane.d.ts +8 -0
- package/dist/dts/lib/core/ChartSplitter.d.ts +70 -0
- package/dist/dts/lib/core/ChartTerminal.d.ts +12 -0
- package/dist/dts/lib/core/ErrorBoundary.d.ts +17 -0
- package/dist/dts/lib/core/IndicatorLegend.d.ts +47 -0
- package/dist/dts/lib/core/PaneHeader.d.ts +24 -0
- package/dist/dts/lib/core/PaneLabel.d.ts +8 -0
- package/dist/dts/lib/core/PaneSplitter.d.ts +9 -0
- package/dist/dts/lib/core/SeriesPicker.d.ts +10 -0
- package/dist/dts/lib/core/calculators/alignBarsByDate.d.ts +38 -0
- package/dist/dts/lib/core/calculators/buildIndicatorComputationPlan.d.ts +16 -0
- package/dist/dts/lib/core/calculators/calcCVDApprox.d.ts +6 -0
- package/dist/dts/lib/core/calculators/calcStrengthElder.d.ts +7 -0
- package/dist/dts/lib/core/calculators/calcWhaleApprox.d.ts +6 -0
- package/dist/dts/lib/core/calculators/computationHelpers.d.ts +12 -0
- package/dist/dts/lib/core/calculators/computeIndicatorComputationResult.d.ts +3 -0
- package/dist/dts/lib/core/calculators/computeMarketStructure.d.ts +8 -0
- package/dist/dts/lib/core/calculators/computeMomentum.d.ts +22 -0
- package/dist/dts/lib/core/calculators/computeMovingAverage.d.ts +15 -0
- package/dist/dts/lib/core/calculators/computeProfile.d.ts +9 -0
- package/dist/dts/lib/core/calculators/computeTrend.d.ts +10 -0
- package/dist/dts/lib/core/calculators/computeVolatility.d.ts +14 -0
- package/dist/dts/lib/core/calculators/computeVolumeFlow.d.ts +19 -0
- package/dist/dts/lib/core/calculators/enrichData.d.ts +7 -0
- package/dist/dts/lib/core/calculators/enrichDataWithCanonicalStore.d.ts +33 -0
- package/dist/dts/lib/core/calculators/exoticChartData.d.ts +140 -0
- package/dist/dts/lib/core/calculators/fixtures/mockData.d.ts +2 -0
- package/dist/dts/lib/core/calculators/indicatorComputation.d.ts +27 -0
- package/dist/dts/lib/core/calculators/indicatorComputationTypes.d.ts +249 -0
- package/dist/dts/lib/core/calculators/materializeIndicatorValues.d.ts +3 -0
- package/dist/dts/lib/core/calculators/normalizePrices.d.ts +36 -0
- package/dist/dts/lib/core/calculators/resolveCalculationOrder.d.ts +17 -0
- package/dist/dts/lib/core/calculators/types.d.ts +269 -0
- package/dist/dts/lib/core/canvas/ChartRenderContext.d.ts +14 -0
- package/dist/dts/lib/core/canvas/OverlayCanvas.d.ts +19 -0
- package/dist/dts/lib/core/context/ChartSyncContext.d.ts +21 -0
- package/dist/dts/lib/core/context/DataContext.d.ts +15 -0
- package/dist/dts/lib/core/context/PaneManagerContext.d.ts +10 -0
- package/dist/dts/lib/core/hooks/paneSizingHelpers.d.ts +13 -0
- package/dist/dts/lib/core/hooks/useCanvasResize.d.ts +8 -0
- package/dist/dts/lib/core/hooks/useChartTheme.d.ts +12 -0
- package/dist/dts/lib/core/hooks/useDynamicPanes.d.ts +155 -0
- package/dist/dts/lib/core/hooks/useIndicatorSets.d.ts +20 -0
- package/dist/dts/lib/core/hooks/usePaneManager.d.ts +39 -0
- package/dist/dts/lib/core/hooks/usePaneSizes.d.ts +52 -0
- package/dist/dts/lib/core/index.d.ts +41 -0
- package/dist/dts/lib/core/paneScaleSlotDomains.d.ts +3 -0
- package/dist/dts/lib/core/registry/SeriesRegistry.d.ts +22 -0
- package/dist/dts/lib/core/registry/filterPanesBySeriesTier.d.ts +43 -0
- package/dist/dts/lib/core/registry/marketStructure.d.ts +7 -0
- package/dist/dts/lib/core/registry/momentum.d.ts +20 -0
- package/dist/dts/lib/core/registry/movingAverage.d.ts +14 -0
- package/dist/dts/lib/core/registry/priceChartTypes.d.ts +16 -0
- package/dist/dts/lib/core/registry/profile.d.ts +8 -0
- package/dist/dts/lib/core/registry/registerAll.d.ts +1 -0
- package/dist/dts/lib/core/registry/registerPhaseOne.d.ts +3 -0
- package/dist/dts/lib/core/registry/registryCore.d.ts +77 -0
- package/dist/dts/lib/core/registry/trend.d.ts +11 -0
- package/dist/dts/lib/core/registry/volatility.d.ts +11 -0
- package/dist/dts/lib/core/registry/volumeFlow.d.ts +20 -0
- package/dist/dts/lib/core/replay/BarReplayController.d.ts +62 -0
- package/dist/dts/lib/core/replay/ReplayEventBus.d.ts +68 -0
- package/dist/dts/lib/core/replay/ReplayFillSimulator.d.ts +33 -0
- package/dist/dts/lib/core/replay/ReplayOrderBook.d.ts +24 -0
- package/dist/dts/lib/core/replay/ReplayPositionManager.d.ts +30 -0
- package/dist/dts/lib/core/replay/ReplaySessionAnalytics.d.ts +31 -0
- package/dist/dts/lib/core/replay/createReplayTradeMarkerPrimitives.d.ts +7 -0
- package/dist/dts/lib/core/replay/pnlUtils.d.ts +2 -0
- package/dist/dts/lib/core/replay/replayBrokerAdapters.d.ts +51 -0
- package/dist/dts/lib/core/replay/replayTradingTypes.d.ts +61 -0
- package/dist/dts/lib/core/scales/computeScales.d.ts +8 -0
- package/dist/dts/lib/core/seriesValueResolver.d.ts +27 -0
- package/dist/dts/lib/core/sets/builtins.d.ts +2 -0
- package/dist/dts/lib/core/sets/indicatorSetCodec.d.ts +15 -0
- package/dist/dts/lib/core/trading/AnalyticsEngine.d.ts +56 -0
- package/dist/dts/lib/core/trading/BrokerAPI.d.ts +40 -0
- package/dist/dts/lib/core/trading/ExecutionSimulator.d.ts +53 -0
- package/dist/dts/lib/core/trading/FillSettlement.d.ts +38 -0
- package/dist/dts/lib/core/trading/MarketDataPort.d.ts +41 -0
- package/dist/dts/lib/core/trading/MarketRules.d.ts +58 -0
- package/dist/dts/lib/core/trading/OrderManagementSystem.d.ts +57 -0
- package/dist/dts/lib/core/trading/PositionManager.d.ts +79 -0
- package/dist/dts/lib/core/trading/RiskEngine.d.ts +40 -0
- package/dist/dts/lib/core/trading/SettlementCalendar.d.ts +10 -0
- package/dist/dts/lib/core/trading/VirtualBrokerEngine.d.ts +92 -0
- package/dist/dts/lib/core/trading/orderMargin.d.ts +3 -0
- package/dist/dts/lib/core/trading/storage/InMemoryStorageAdapter.d.ts +10 -0
- package/dist/dts/lib/core/trading/storage/TradingStorage.d.ts +34 -0
- package/dist/dts/lib/core/trading/types.d.ts +99 -0
- package/dist/dts/lib/core/types/chart.d.ts +21 -0
- package/dist/dts/lib/core/types/indicator-catalog.d.ts +38 -0
- package/dist/dts/lib/core/types/indicator-set.d.ts +19 -0
- package/dist/dts/lib/core/types/pane-descriptor.d.ts +46 -0
- package/dist/dts/lib/core/types/seriesComponents.d.ts +15 -0
- package/dist/dts/lib/credentials/credentialStore.d.ts +93 -0
- package/dist/dts/lib/helper/SaveChartAsImage.d.ts +90 -0
- package/dist/dts/lib/indicator/defaultOptionsForAppearance.d.ts +105 -0
- package/dist/dts/lib/indicators/builtin/MTFWrapper.d.ts +3 -0
- package/dist/dts/lib/indicators/builtin/VolumeProfileWorker.d.ts +19 -0
- package/dist/dts/lib/indicators/builtin/ac.d.ts +4 -0
- package/dist/dts/lib/indicators/builtin/alligator.d.ts +5 -0
- package/dist/dts/lib/indicators/builtin/anchoredVwap.d.ts +5 -0
- package/dist/dts/lib/indicators/builtin/ao.d.ts +4 -0
- package/dist/dts/lib/indicators/builtin/bbi.d.ts +10 -0
- package/dist/dts/lib/indicators/builtin/bias.d.ts +4 -0
- package/dist/dts/lib/indicators/builtin/bollinger.d.ts +9 -0
- package/dist/dts/lib/indicators/builtin/brar.d.ts +4 -0
- package/dist/dts/lib/indicators/builtin/cci.d.ts +4 -0
- package/dist/dts/lib/indicators/builtin/chaikinOscillator.d.ts +14 -0
- package/dist/dts/lib/indicators/builtin/chaikinVol.d.ts +4 -0
- package/dist/dts/lib/indicators/builtin/ci.d.ts +4 -0
- package/dist/dts/lib/indicators/builtin/cmf.d.ts +4 -0
- package/dist/dts/lib/indicators/builtin/cr.d.ts +4 -0
- package/dist/dts/lib/indicators/builtin/cvd.d.ts +4 -0
- package/dist/dts/lib/indicators/builtin/deltaProfile.d.ts +5 -0
- package/dist/dts/lib/indicators/builtin/dema.d.ts +4 -0
- package/dist/dts/lib/indicators/builtin/dma.d.ts +4 -0
- package/dist/dts/lib/indicators/builtin/dmi.d.ts +4 -0
- package/dist/dts/lib/indicators/builtin/donchian.d.ts +5 -0
- package/dist/dts/lib/indicators/builtin/ema.d.ts +4 -0
- package/dist/dts/lib/indicators/builtin/emv.d.ts +4 -0
- package/dist/dts/lib/indicators/builtin/footprint.d.ts +5 -0
- package/dist/dts/lib/indicators/builtin/fractals.d.ts +5 -0
- package/dist/dts/lib/indicators/builtin/gator.d.ts +5 -0
- package/dist/dts/lib/indicators/builtin/hma.d.ts +4 -0
- package/dist/dts/lib/indicators/builtin/hv.d.ts +4 -0
- package/dist/dts/lib/indicators/builtin/ichimoku.d.ts +5 -0
- package/dist/dts/lib/indicators/builtin/kdj.d.ts +4 -0
- package/dist/dts/lib/indicators/builtin/keltner.d.ts +5 -0
- package/dist/dts/lib/indicators/builtin/ma.d.ts +10 -0
- package/dist/dts/lib/indicators/builtin/maRibbon.d.ts +5 -0
- package/dist/dts/lib/indicators/builtin/macd.d.ts +9 -0
- package/dist/dts/lib/indicators/builtin/marketProfile.d.ts +5 -0
- package/dist/dts/lib/indicators/builtin/mfi.d.ts +4 -0
- package/dist/dts/lib/indicators/builtin/mtm.d.ts +4 -0
- package/dist/dts/lib/indicators/builtin/obv.d.ts +10 -0
- package/dist/dts/lib/indicators/builtin/pivotHighLow.d.ts +5 -0
- package/dist/dts/lib/indicators/builtin/pivotStandard.d.ts +5 -0
- package/dist/dts/lib/indicators/builtin/psy.d.ts +4 -0
- package/dist/dts/lib/indicators/builtin/pvt.d.ts +4 -0
- package/dist/dts/lib/indicators/builtin/roc.d.ts +4 -0
- package/dist/dts/lib/indicators/builtin/rsi.d.ts +4 -0
- package/dist/dts/lib/indicators/builtin/sar.d.ts +10 -0
- package/dist/dts/lib/indicators/builtin/sma.d.ts +4 -0
- package/dist/dts/lib/indicators/builtin/smfi.d.ts +8 -0
- package/dist/dts/lib/indicators/builtin/stdDev.d.ts +4 -0
- package/dist/dts/lib/indicators/builtin/strengthRelative.d.ts +7 -0
- package/dist/dts/lib/indicators/builtin/supertrend.d.ts +5 -0
- package/dist/dts/lib/indicators/builtin/tema.d.ts +4 -0
- package/dist/dts/lib/indicators/builtin/trix.d.ts +4 -0
- package/dist/dts/lib/indicators/builtin/volOsc.d.ts +4 -0
- package/dist/dts/lib/indicators/builtin/volume.d.ts +4 -0
- package/dist/dts/lib/indicators/builtin/volumeProfile.d.ts +8 -0
- package/dist/dts/lib/indicators/builtin/vr.d.ts +10 -0
- package/dist/dts/lib/indicators/builtin/vwap.d.ts +5 -0
- package/dist/dts/lib/indicators/builtin/vwma.d.ts +4 -0
- package/dist/dts/lib/indicators/builtin/wma.d.ts +4 -0
- package/dist/dts/lib/indicators/builtin/wr.d.ts +10 -0
- package/dist/dts/lib/indicators/builtin/wyckoffWave.d.ts +15 -0
- package/dist/dts/lib/indicators/index.d.ts +63 -0
- package/dist/dts/lib/indicators/indicatorValueShapes.d.ts +15 -0
- package/dist/dts/lib/indicators/outputKeys.d.ts +50 -0
- package/dist/dts/lib/indicators/overlays/CVDIndicator.d.ts +26 -0
- package/dist/dts/lib/indicators/overlays/DarkFlowBadge.d.ts +19 -0
- package/dist/dts/lib/indicators/overlays/ExternalCVDOverlay.d.ts +15 -0
- package/dist/dts/lib/indicators/overlays/WhaleBubbleOverlay.d.ts +14 -0
- package/dist/dts/lib/indicators/overlays/WhaleMarketBubbleOverlay.d.ts +27 -0
- package/dist/dts/lib/indicators/overlays/whaleDetector.d.ts +66 -0
- package/dist/dts/lib/indicators/registry.d.ts +6 -0
- package/dist/dts/lib/indicators/types.d.ts +5 -0
- package/dist/dts/lib/indicators/utils.d.ts +259 -0
- package/dist/dts/lib/pinescript/PineCompiler.d.ts +34 -0
- package/dist/dts/lib/pinescript/ast.d.ts +73 -0
- package/dist/dts/lib/pinescript/compile.d.ts +40 -0
- package/dist/dts/lib/pinescript/grammar.d.ts +12 -0
- package/dist/dts/lib/pinescript/pine.worker.d.ts +1 -0
- package/dist/dts/lib/pinescript/pineBlocks.d.ts +54 -0
- package/dist/dts/lib/pinescript/pineBuiltins.d.ts +47 -0
- package/dist/dts/lib/pinescript/pineEnv.d.ts +46 -0
- package/dist/dts/lib/pinescript/pineMath.d.ts +13 -0
- package/dist/dts/lib/pinescript/pineParse.d.ts +25 -0
- package/dist/dts/lib/pinescript/pineStrings.d.ts +50 -0
- package/dist/dts/lib/pinescript/runtime.d.ts +5 -0
- package/dist/dts/lib/pinescript/scriptRegistry.d.ts +40 -0
- package/dist/dts/lib/pinescript/series-value.d.ts +64 -0
- package/dist/dts/lib/pinescript/vnscript-completion.d.ts +1 -0
- package/dist/dts/lib/pinescript/vnscript-grammar.d.ts +19 -0
- package/dist/dts/lib/scale/discontinuousTimeScaleProvider.d.ts +3 -0
- package/dist/dts/lib/scale/financeDiscontinuousScale.d.ts +15 -0
- package/dist/dts/lib/scale/index.d.ts +1 -0
- package/dist/dts/lib/scale/levels.d.ts +12 -0
- package/dist/dts/lib/series/AlternatingFillAreaSeries.d.ts +13 -0
- package/dist/dts/lib/series/AreaOnlySeries.d.ts +10 -0
- package/dist/dts/lib/series/AreaSeries.d.ts +30 -0
- package/dist/dts/lib/series/BarSeries.d.ts +40 -0
- package/dist/dts/lib/series/BollingerSeries.d.ts +11 -0
- package/dist/dts/lib/series/CandlestickSeries.d.ts +56 -0
- package/dist/dts/lib/series/CircleMarker.d.ts +28 -0
- package/dist/dts/lib/series/ElderRaySeries.d.ts +14 -0
- package/dist/dts/lib/series/FootprintSeries.d.ts +21 -0
- package/dist/dts/lib/series/GroupedBarSeries.d.ts +9 -0
- package/dist/dts/lib/series/HTFOverlaySeries.d.ts +32 -0
- package/dist/dts/lib/series/HistogramSeries.d.ts +51 -0
- package/dist/dts/lib/series/KagiSeries.d.ts +9 -0
- package/dist/dts/lib/series/LineBreakSeries.d.ts +28 -0
- package/dist/dts/lib/series/LineSeries.d.ts +54 -0
- package/dist/dts/lib/series/MACDSeries.d.ts +28 -0
- package/dist/dts/lib/series/MarketProfileSeries.d.ts +18 -0
- package/dist/dts/lib/series/OHLCSeries.d.ts +9 -0
- package/dist/dts/lib/series/OverlayBarSeries.d.ts +9 -0
- package/dist/dts/lib/series/PointAndFigureSeries.d.ts +45 -0
- package/dist/dts/lib/series/RSISeries.d.ts +38 -0
- package/dist/dts/lib/series/RenkoSeries.d.ts +9 -0
- package/dist/dts/lib/series/SARSeries.d.ts +10 -0
- package/dist/dts/lib/series/SVGComponent.d.ts +5 -0
- package/dist/dts/lib/series/ScatterSeries.d.ts +9 -0
- package/dist/dts/lib/series/SquareMarker.d.ts +28 -0
- package/dist/dts/lib/series/StackedBarSeries.d.ts +19 -0
- package/dist/dts/lib/series/StochasticSeries.d.ts +9 -0
- package/dist/dts/lib/series/StraightLine.d.ts +18 -0
- package/dist/dts/lib/series/TriangleMarker.d.ts +30 -0
- package/dist/dts/lib/series/VolumeProfileSeries.d.ts +9 -0
- package/dist/dts/lib/series/index.d.ts +28 -0
- package/dist/dts/lib/strategy/BrokerSimulator.d.ts +11 -0
- package/dist/dts/lib/strategy/types.d.ts +35 -0
- package/dist/dts/lib/tape/TapePanel.d.ts +5 -0
- package/dist/dts/lib/types/adapter.d.ts +1 -0
- package/dist/dts/lib/types/index.d.ts +5 -0
- package/dist/dts/lib/types/indicator.d.ts +11 -0
- package/dist/dts/lib/types/ohlcv.d.ts +1 -0
- package/dist/dts/lib/types/pane.d.ts +23 -0
- package/dist/dts/lib/types/runtime.d.ts +11 -0
- package/dist/dts/lib/types/vninvest.d.ts +320 -0
- package/dist/dts/lib/types.d.ts +45 -0
- package/dist/dts/lib/utils/ChartDataUtil.d.ts +26 -0
- package/dist/dts/lib/utils/PureComponent.d.ts +5 -0
- package/dist/dts/lib/utils/accumulatingWindow.d.ts +1 -0
- package/dist/dts/lib/utils/axisPriceFormat.d.ts +6 -0
- package/dist/dts/lib/utils/barWidth.d.ts +14 -0
- package/dist/dts/lib/utils/identity.d.ts +1 -0
- package/dist/dts/lib/utils/index.d.ts +70 -0
- package/dist/dts/lib/utils/logger.d.ts +28 -0
- package/dist/dts/lib/utils/mappedSlidingWindow.d.ts +1 -0
- package/dist/dts/lib/utils/merge.d.ts +6 -0
- package/dist/dts/lib/utils/noop.d.ts +1 -0
- package/dist/dts/lib/utils/rebind.d.ts +1 -0
- package/dist/dts/lib/utils/shallowEqual.d.ts +1 -0
- package/dist/dts/lib/utils/slidingWindow.d.ts +1 -0
- package/dist/dts/lib/utils/storage.d.ts +32 -0
- package/dist/dts/lib/utils/strokeDasharray.d.ts +3 -0
- package/dist/dts/lib/utils/timezoneFormatter.d.ts +14 -0
- package/dist/dts/lib/utils/zipper.d.ts +4 -0
- package/dist/dts/public-api.d.ts +31 -0
- package/dist/dts/widget/BackfillWorkerFlags.d.ts +12 -0
- package/dist/dts/widget/CanaryRollbackHelper.d.ts +95 -0
- package/dist/dts/widget/CanaryRolloutConfig.d.ts +100 -0
- package/dist/dts/widget/DrawingPriceLabelsOverlay.d.ts +20 -0
- package/dist/dts/widget/ForkDrawingsOverlay.d.ts +16 -0
- package/dist/dts/widget/MeasurementOverlay.d.ts +24 -0
- package/dist/dts/widget/VNInvestCharts.d.ts +5 -0
- package/dist/dts/widget/VNInvestChartsProps.d.ts +302 -0
- package/dist/dts/widget/VNInvestMultiCharts.d.ts +8 -0
- package/dist/dts/widget/VNInvestMultiCharts.types.d.ts +130 -0
- package/dist/dts/widget/WidgetEmptyState.d.ts +11 -0
- package/dist/dts/widget/WidgetErrorBoundary.d.ts +26 -0
- package/dist/dts/widget/adapters/ContinuousFuturesStockDataAdapter.d.ts +18 -0
- package/dist/dts/widget/adapters/DataProviderAdapterWrapper.d.ts +14 -0
- package/dist/dts/widget/adapters/MultiSourceDataAdapter.d.ts +24 -0
- package/dist/dts/widget/adapters/VNInvestClient.d.ts +161 -0
- package/dist/dts/widget/adapters/VNInvestDataAdapter.d.ts +77 -0
- package/dist/dts/widget/adapters/VNInvestWebSocketClient.d.ts +79 -0
- package/dist/dts/widget/adapters/barsPagingPolicy.d.ts +18 -0
- package/dist/dts/widget/adapters/corporateEvents.d.ts +13 -0
- package/dist/dts/widget/adapters/index.d.ts +20 -0
- package/dist/dts/widget/adapters/nativeShapes.d.ts +32 -0
- package/dist/dts/widget/adapters/watchlistRealtimeSync.d.ts +16 -0
- package/dist/dts/widget/alerts/DrawingAlertsHost.d.ts +18 -0
- package/dist/dts/widget/alerts/useDrawingAlerts.d.ts +37 -0
- package/dist/dts/widget/canaryBarFiltering.d.ts +35 -0
- package/dist/dts/widget/capabilities/CapabilityResolver.d.ts +71 -0
- package/dist/dts/widget/capabilities/capabilityProbe.d.ts +28 -0
- package/dist/dts/widget/capabilities/useTierGatedFeatures.d.ts +48 -0
- package/dist/dts/widget/components/BottomPanelHost.d.ts +80 -0
- package/dist/dts/widget/components/BottomPanelSplitter.d.ts +15 -0
- package/dist/dts/widget/components/CapabilityGate.d.ts +65 -0
- package/dist/dts/widget/components/ChartDiagOverlay.d.ts +31 -0
- package/dist/dts/widget/components/ConfirmDialog.d.ts +12 -0
- package/dist/dts/widget/components/DowngradeBanner.d.ts +9 -0
- package/dist/dts/widget/components/ForkPaneSeparators.d.ts +11 -0
- package/dist/dts/widget/components/ForkPaneTooltips.d.ts +23 -0
- package/dist/dts/widget/components/ForkXAxisOverlay.d.ts +11 -0
- package/dist/dts/widget/components/ForkYAxisCrosshairLabels.d.ts +9 -0
- package/dist/dts/widget/components/LayoutDesigner.d.ts +26 -0
- package/dist/dts/widget/components/PremiumFeatureGate.d.ts +10 -0
- package/dist/dts/widget/components/ShortcutHelpModal.d.ts +44 -0
- package/dist/dts/widget/components/SystemMenu.d.ts +66 -0
- package/dist/dts/widget/components/Toast.d.ts +20 -0
- package/dist/dts/widget/components/canvas/BarCountdownBadge.d.ts +8 -0
- package/dist/dts/widget/components/canvas/ChartA11ySummary.d.ts +40 -0
- package/dist/dts/widget/components/canvas/ChartStatusLine.d.ts +39 -0
- package/dist/dts/widget/components/canvas/PricePaneHeader.d.ts +24 -0
- package/dist/dts/widget/components/canvas/PriceScaleMenu.d.ts +27 -0
- package/dist/dts/widget/components/canvas/TimeAxisScrollbar.d.ts +18 -0
- package/dist/dts/widget/components/common/Icons.d.ts +67 -0
- package/dist/dts/widget/components/dock/DataWindow.d.ts +7 -0
- package/dist/dts/widget/components/dock/DockUpgradeNudge.d.ts +10 -0
- package/dist/dts/widget/components/dock/RightSidebarDockHost.d.ts +57 -0
- package/dist/dts/widget/components/dock/WatchlistPanel.d.ts +7 -0
- package/dist/dts/widget/components/dock/WorkspaceRightDockSlot.d.ts +46 -0
- package/dist/dts/widget/components/dock/dockAccess.d.ts +20 -0
- package/dist/dts/widget/components/dock/drawingDockContentBuilders.d.ts +29 -0
- package/dist/dts/widget/components/drawing/DrawingDock.d.ts +47 -0
- package/dist/dts/widget/components/drawing/DrawingInspector.d.ts +94 -0
- package/dist/dts/widget/components/drawing/DrawingListPanel.d.ts +62 -0
- package/dist/dts/widget/components/drawing/DrawingSemanticPointLegend.d.ts +14 -0
- package/dist/dts/widget/components/drawing/FloatingDrawingInspector.d.ts +18 -0
- package/dist/dts/widget/components/drawing/IconPickerPanel.d.ts +5 -0
- package/dist/dts/widget/components/drawing/InlineTextEditor.d.ts +20 -0
- package/dist/dts/widget/components/drawing/PatternScanPanel.d.ts +27 -0
- package/dist/dts/widget/components/drawing/TemplateManagerPanel.d.ts +18 -0
- package/dist/dts/widget/components/events/CorporateEventsOverlay.d.ts +23 -0
- package/dist/dts/widget/components/events/EventMarkerIcon.d.ts +6 -0
- package/dist/dts/widget/components/footer/ChartFooter.d.ts +26 -0
- package/dist/dts/widget/components/footer/MultiChartsFooter.d.ts +37 -0
- package/dist/dts/widget/components/footer/TimeframeFooter.d.ts +25 -0
- package/dist/dts/widget/components/footer/useBarCountdown.d.ts +5 -0
- package/dist/dts/widget/components/header/OHLCHeader.d.ts +72 -0
- package/dist/dts/widget/components/layout/DrawingConflictNotice.d.ts +4 -0
- package/dist/dts/widget/components/layout/GridContainer.d.ts +70 -0
- package/dist/dts/widget/components/layout/GridSlotErrorBoundary.d.ts +17 -0
- package/dist/dts/widget/components/layout/Splitter.d.ts +23 -0
- package/dist/dts/widget/components/layout/gridSplitterMath.d.ts +40 -0
- package/dist/dts/widget/components/layout/useGridSplitterDrag.d.ts +18 -0
- package/dist/dts/widget/components/mobile/MobileChartCarousel.d.ts +11 -0
- package/dist/dts/widget/components/mobile/MobileToolbar.d.ts +29 -0
- package/dist/dts/widget/components/overlays/AdvisoryPanel.d.ts +25 -0
- package/dist/dts/widget/components/overlays/TapePanel.d.ts +25 -0
- package/dist/dts/widget/components/overlays/WhalePanel.d.ts +5 -0
- package/dist/dts/widget/components/panels/AdvisoryPanel.d.ts +25 -0
- package/dist/dts/widget/components/panels/PineEditorPanel.d.ts +18 -0
- package/dist/dts/widget/components/panels/StrategyTesterPanel.d.ts +7 -0
- package/dist/dts/widget/components/panels/TapePanel.d.ts +17 -0
- package/dist/dts/widget/components/panels/index.d.ts +8 -0
- package/dist/dts/widget/components/replay/FloatingReplayToolbar.d.ts +24 -0
- package/dist/dts/widget/components/replay/ReplayCutOverlay.d.ts +8 -0
- package/dist/dts/widget/components/search/SymbolCompareModal.d.ts +24 -0
- package/dist/dts/widget/components/search/SymbolSearchModal.d.ts +12 -0
- package/dist/dts/widget/components/search/VNSymbolSearch.d.ts +83 -0
- package/dist/dts/widget/components/settings/AlertsModal.d.ts +74 -0
- package/dist/dts/widget/components/settings/SettingsContext.d.ts +58 -0
- package/dist/dts/widget/components/settings/SettingsModal.d.ts +78 -0
- package/dist/dts/widget/components/settings/SettingsRangeSlider.d.ts +17 -0
- package/dist/dts/widget/components/settings/SnapshotPreviewModal.d.ts +16 -0
- package/dist/dts/widget/components/settings/WorkspaceSettingsContext.d.ts +27 -0
- package/dist/dts/widget/components/settings/helpers/seriesFormatters.d.ts +11 -0
- package/dist/dts/widget/components/settings/model/appearancePayload.d.ts +31 -0
- package/dist/dts/widget/components/settings/model/chartSettingsSchema.d.ts +100 -0
- package/dist/dts/widget/components/settings/model/defaultSettings.d.ts +5 -0
- package/dist/dts/widget/components/settings/model/indicatorShare.d.ts +29 -0
- package/dist/dts/widget/components/settings/storageKeys.d.ts +29 -0
- package/dist/dts/widget/components/settings/tabs/AppearanceSettingsTab.d.ts +5 -0
- package/dist/dts/widget/components/settings/tabs/IndicatorParamsForm.d.ts +12 -0
- package/dist/dts/widget/components/settings/tabs/IndicatorsSettingsTab.d.ts +34 -0
- package/dist/dts/widget/components/settings/tabs/LicensingSettingsTab.d.ts +5 -0
- package/dist/dts/widget/components/settings/tabs/PanesLayoutSettingsTab.d.ts +11 -0
- package/dist/dts/widget/components/settings/tabs/ResetSettingsTab.d.ts +8 -0
- package/dist/dts/widget/components/settings/tabs/ScalesSettingsTab.d.ts +5 -0
- package/dist/dts/widget/components/settings/tabs/StatusLineSettingsTab.d.ts +5 -0
- package/dist/dts/widget/components/settings/tabs/SymbolSettingsTab.d.ts +5 -0
- package/dist/dts/widget/components/settings/tabs/ThemePaletteSettingsTab.d.ts +9 -0
- package/dist/dts/widget/components/settings/tabs/TradingEventsSettingsTab.d.ts +8 -0
- package/dist/dts/widget/components/toolbar/DrawingToolIcon.d.ts +10 -0
- package/dist/dts/widget/components/toolbar/DrawingToolbar.d.ts +33 -0
- package/dist/dts/widget/components/toolbar/FloatingChartBar.d.ts +20 -0
- package/dist/dts/widget/components/toolbar/FloatingFavoritesBar.d.ts +18 -0
- package/dist/dts/widget/components/toolbar/MultiChartTopbar.d.ts +47 -0
- package/dist/dts/widget/components/toolbar/UnifiedDrawingToolbar.d.ts +28 -0
- package/dist/dts/widget/components/trading/PaperTradePanel.d.ts +41 -0
- package/dist/dts/widget/components/workspace/WorkspaceToolbar.d.ts +25 -0
- package/dist/dts/widget/config/toolGroups.d.ts +11 -0
- package/dist/dts/widget/config/toolShortcuts.d.ts +27 -0
- package/dist/dts/widget/constants/comparison.d.ts +1 -0
- package/dist/dts/widget/constants/symbolSearch.d.ts +14 -0
- package/dist/dts/widget/constants/vn30.d.ts +7 -0
- package/dist/dts/widget/context/DataProviderContext.d.ts +7 -0
- package/dist/dts/widget/context/HoverEmitter.d.ts +50 -0
- package/dist/dts/widget/context/SyncContextShare.d.ts +11 -0
- package/dist/dts/widget/context/VNInvestChartsConfigContext.d.ts +24 -0
- package/dist/dts/widget/context/VNInvestChartsContext.d.ts +70 -0
- package/dist/dts/widget/context/VNInvestChartsStateContext.d.ts +50 -0
- package/dist/dts/widget/context/WidgetI18nContext.d.ts +25 -0
- package/dist/dts/widget/context/WorkspaceLiveTradingContext.d.ts +30 -0
- package/dist/dts/widget/context/WorkspacePaperVisibilityContext.d.ts +23 -0
- package/dist/dts/widget/context/WorkspaceReplayTradingContext.d.ts +36 -0
- package/dist/dts/widget/contexts/SaaSFeatureContext.d.ts +23 -0
- package/dist/dts/widget/data/DataEnvelope.d.ts +100 -0
- package/dist/dts/widget/drawingPriceLabelInputs.d.ts +3 -0
- package/dist/dts/widget/export/chartCsv.d.ts +59 -0
- package/dist/dts/widget/forkAnchorReconciliation.d.ts +6 -0
- package/dist/dts/widget/forkInteractionHelpers.d.ts +69 -0
- package/dist/dts/widget/grid/DeviceProfiles.d.ts +49 -0
- package/dist/dts/widget/grid/GridChartRegistry.d.ts +9 -0
- package/dist/dts/widget/grid/MemoryBudgetManager.d.ts +63 -0
- package/dist/dts/widget/grid/PerformanceMonitor.d.ts +70 -0
- package/dist/dts/widget/grid/customPresets.d.ts +42 -0
- package/dist/dts/widget/grid/presets.d.ts +18 -0
- package/dist/dts/widget/grid/types.d.ts +39 -0
- package/dist/dts/widget/history/BackfillDedupContext.d.ts +63 -0
- package/dist/dts/widget/history/RequestCoordinator.d.ts +59 -0
- package/dist/dts/widget/history/SharedBarStoreContext.d.ts +22 -0
- package/dist/dts/widget/history/cache/IndexedDBCacheMatrix.d.ts +16 -0
- package/dist/dts/widget/history/cache/LocalCacheMatrix.d.ts +86 -0
- package/dist/dts/widget/history/cache/index.d.ts +3 -0
- package/dist/dts/widget/history/chunkStore.d.ts +77 -0
- package/dist/dts/widget/history/externalBarsNormalization.d.ts +9 -0
- package/dist/dts/widget/history/externalBarsNormalization.worker.d.ts +1 -0
- package/dist/dts/widget/history/externalBarsNormalizationAsync.d.ts +25 -0
- package/dist/dts/widget/history/historyDataUtils.d.ts +82 -0
- package/dist/dts/widget/history/historyWindowPlanner.d.ts +89 -0
- package/dist/dts/widget/history/inflightController.d.ts +15 -0
- package/dist/dts/widget/history/requestCoalescing.d.ts +10 -0
- package/dist/dts/widget/history/sessionGuards.d.ts +3 -0
- package/dist/dts/widget/history/singleWriterLane.d.ts +4 -0
- package/dist/dts/widget/history/useExternalBarsNormalization.d.ts +5 -0
- package/dist/dts/widget/hooks/ShortcutManager.d.ts +65 -0
- package/dist/dts/widget/hooks/overlays/PaneHeaderWrapper.d.ts +11 -0
- package/dist/dts/widget/hooks/overlays/overlayHelpers.d.ts +60 -0
- package/dist/dts/widget/hooks/overlays/useDrawingDockNode.d.ts +15 -0
- package/dist/dts/widget/hooks/overlays/useLegendChrome.d.ts +36 -0
- package/dist/dts/widget/hooks/overlays/useMultiSelectActions.d.ts +22 -0
- package/dist/dts/widget/hooks/overlays/useSidebarResize.d.ts +13 -0
- package/dist/dts/widget/hooks/resolveEntitlement.d.ts +73 -0
- package/dist/dts/widget/hooks/useBottomPanelBehavior.d.ts +38 -0
- package/dist/dts/widget/hooks/useBottomPanelHeight.d.ts +39 -0
- package/dist/dts/widget/hooks/useCanvasTheme.d.ts +24 -0
- package/dist/dts/widget/hooks/useChartImperativeHandle.d.ts +57 -0
- package/dist/dts/widget/hooks/useClockAdapter.d.ts +11 -0
- package/dist/dts/widget/hooks/useComparisonState.d.ts +29 -0
- package/dist/dts/widget/hooks/useDialogFocus.d.ts +25 -0
- package/dist/dts/widget/hooks/useDrawingToolShortcuts.d.ts +16 -0
- package/dist/dts/widget/hooks/useFeatureGate.d.ts +28 -0
- package/dist/dts/widget/hooks/useFloatingChartBar.d.ts +33 -0
- package/dist/dts/widget/hooks/useForkRuntime.d.ts +155 -0
- package/dist/dts/widget/hooks/useIndicatorsShareApplier.d.ts +1 -0
- package/dist/dts/widget/hooks/useIntersectionObserver.d.ts +49 -0
- package/dist/dts/widget/hooks/useKeyboardAdapter.d.ts +9 -0
- package/dist/dts/widget/hooks/useLayoutHistory.d.ts +8 -0
- package/dist/dts/widget/hooks/useLicenseDiagnostics.d.ts +15 -0
- package/dist/dts/widget/hooks/useMultiChartReplaySync.d.ts +31 -0
- package/dist/dts/widget/hooks/useMultiWorkspacePersistence.d.ts +49 -0
- package/dist/dts/widget/hooks/usePaperTradeConfig.d.ts +27 -0
- package/dist/dts/widget/hooks/usePaperTradeInteraction.d.ts +27 -0
- package/dist/dts/widget/hooks/usePatTierAuthentication.d.ts +42 -0
- package/dist/dts/widget/hooks/usePineScriptRestore.d.ts +23 -0
- package/dist/dts/widget/hooks/usePortalAdapter.d.ts +8 -0
- package/dist/dts/widget/hooks/useRecentSymbols.d.ts +3 -0
- package/dist/dts/widget/hooks/useReplayState.d.ts +28 -0
- package/dist/dts/widget/hooks/useReplayTrading.d.ts +26 -0
- package/dist/dts/widget/hooks/useResizeAdapter.d.ts +13 -0
- package/dist/dts/widget/hooks/useScaleOverlays.d.ts +62 -0
- package/dist/dts/widget/hooks/useScriptPersistence.d.ts +72 -0
- package/dist/dts/widget/hooks/useSymbolSearch.d.ts +30 -0
- package/dist/dts/widget/hooks/useViewportBreakpoint.d.ts +15 -0
- package/dist/dts/widget/hooks/useWidgetCoordinateBridge.d.ts +70 -0
- package/dist/dts/widget/hooks/useWidgetData.d.ts +138 -0
- package/dist/dts/widget/hooks/useWidgetDataBackfill.d.ts +67 -0
- package/dist/dts/widget/hooks/useWidgetDataEnrichment.d.ts +32 -0
- package/dist/dts/widget/hooks/useWidgetDrawings.d.ts +38 -0
- package/dist/dts/widget/hooks/useWidgetForkInteraction.d.ts +68 -0
- package/dist/dts/widget/hooks/useWidgetInteractionActions.d.ts +36 -0
- package/dist/dts/widget/hooks/useWidgetOverlays.d.ts +190 -0
- package/dist/dts/widget/hooks/useWidgetRuntime.d.ts +20 -0
- package/dist/dts/widget/hooks/useWidgetSettings.d.ts +244 -0
- package/dist/dts/widget/hooks/useWidgetWorkspaceIO.d.ts +24 -0
- package/dist/dts/widget/hooks/useWorkspaceDockPanels.d.ts +11 -0
- package/dist/dts/widget/hooks/useWorkspaceLiveTrading.d.ts +28 -0
- package/dist/dts/widget/hooks/useWorkspaceReplayTrading.d.ts +22 -0
- package/dist/dts/widget/i18n/a11y.messages.en.d.ts +8 -0
- package/dist/dts/widget/i18n/a11y.messages.vi.d.ts +3 -0
- package/dist/dts/widget/i18n/capability.messages.en.d.ts +7 -0
- package/dist/dts/widget/i18n/capability.messages.vi.d.ts +3 -0
- package/dist/dts/widget/i18n/dock.messages.en.d.ts +2 -0
- package/dist/dts/widget/i18n/dock.messages.vi.d.ts +2 -0
- package/dist/dts/widget/i18n/messages.en.d.ts +2 -0
- package/dist/dts/widget/i18n/messages.licensing.d.ts +48 -0
- package/dist/dts/widget/i18n/messages.vi.d.ts +2 -0
- package/dist/dts/widget/i18n/trading.messages.en.d.ts +2 -0
- package/dist/dts/widget/i18n/trading.messages.vi.d.ts +2 -0
- package/dist/dts/widget/i18n/types.d.ts +3 -0
- package/dist/dts/widget/iframe/builtInAdapters.d.ts +63 -0
- package/dist/dts/widget/iframe/host-entry.d.ts +11 -0
- package/dist/dts/widget/iframe/hostSDK.d.ts +151 -0
- package/dist/dts/widget/iframe/iframeBridge.d.ts +165 -0
- package/dist/dts/widget/iframe/iframeEntry.d.ts +52 -0
- package/dist/dts/widget/iframe/iframeFrame.d.ts +15 -0
- package/dist/dts/widget/iframe/iframeQuotes.d.ts +20 -0
- package/dist/dts/widget/iframe/messageProtocol.d.ts +545 -0
- package/dist/dts/widget/iframe/quoteHub.d.ts +20 -0
- package/dist/dts/widget/iframe/useVNInvestChartsHost.d.ts +8 -0
- package/dist/dts/widget/iife-entry.d.ts +61 -0
- package/dist/dts/widget/iifeWidgetInstance.d.ts +60 -0
- package/dist/dts/widget/index.d.ts +56 -0
- package/dist/dts/widget/multiChartDefaults.d.ts +18 -0
- package/dist/dts/widget/paneInteractionUtils.d.ts +25 -0
- package/dist/dts/widget/patterns/autoPatternScan.d.ts +77 -0
- package/dist/dts/widget/patterns/patternDrawingFactory.d.ts +87 -0
- package/dist/dts/widget/plugin/ProPluginRegistry.d.ts +40 -0
- package/dist/dts/widget/runtime/ChartScaleAdapter.d.ts +73 -0
- package/dist/dts/widget/runtime/ChartSerializer.d.ts +12 -0
- package/dist/dts/widget/runtime/ForkRuntimeAdapter.d.ts +19 -0
- package/dist/dts/widget/runtime/IRuntimeEngine.d.ts +40 -0
- package/dist/dts/widget/runtime/WorkspaceSerializer.d.ts +31 -0
- package/dist/dts/widget/runtimePolicy.d.ts +36 -0
- package/dist/dts/widget/styles/injectStyles.d.ts +9 -0
- package/dist/dts/widget/theme/ThemeConfig.d.ts +21 -0
- package/dist/dts/widget/theme/applyTheme.d.ts +3 -0
- package/dist/dts/widget/trading/chart/DraggableOrderHandles.d.ts +15 -0
- package/dist/dts/widget/trading/chart/InteractivePositionOverlay.d.ts +19 -0
- package/dist/dts/widget/trading/chart/PendingOrderOverlay.d.ts +11 -0
- package/dist/dts/widget/trading/chart/QuickTradingHeader.d.ts +20 -0
- package/dist/dts/widget/trading/chart/TradingChartSurface.d.ts +8 -0
- package/dist/dts/widget/trading/chart/TradingOverlaysHost.d.ts +28 -0
- package/dist/dts/widget/trading/chart/priceTicks.d.ts +1 -0
- package/dist/dts/widget/trading/chart/useFloatingDrag.d.ts +40 -0
- package/dist/dts/widget/trading/chart/useTradingHotkeys.d.ts +21 -0
- package/dist/dts/widget/trading/config/paperRuntimeConfig.d.ts +53 -0
- package/dist/dts/widget/trading/context/PaperPanelRegistry.d.ts +45 -0
- package/dist/dts/widget/trading/context/TradingContext.d.ts +80 -0
- package/dist/dts/widget/trading/context/WorkspaceTradingSync.d.ts +24 -0
- package/dist/dts/widget/trading/hooks/usePaperRuntimeConfig.d.ts +36 -0
- package/dist/dts/widget/trading/index.d.ts +5 -0
- package/dist/dts/widget/trading/panel/AccountSummaryTab.d.ts +7 -0
- package/dist/dts/widget/trading/panel/ActiveChartPaperPanel.d.ts +26 -0
- package/dist/dts/widget/trading/panel/ConnectedTradingPanel.d.ts +3 -0
- package/dist/dts/widget/trading/panel/HistoryTab.d.ts +5 -0
- package/dist/dts/widget/trading/panel/MarketFallbackBanner.d.ts +4 -0
- package/dist/dts/widget/trading/panel/OrdersTab.d.ts +8 -0
- package/dist/dts/widget/trading/panel/PaperCapitalDialog.d.ts +8 -0
- package/dist/dts/widget/trading/panel/PaperSettingsModal.d.ts +17 -0
- package/dist/dts/widget/trading/panel/PositionsTab.d.ts +15 -0
- package/dist/dts/widget/trading/panel/TradeHistoryTab.d.ts +5 -0
- package/dist/dts/widget/trading/panel/TradingBottomPanel.d.ts +36 -0
- package/dist/dts/widget/trading/panel/TradingLogTab.d.ts +8 -0
- package/dist/dts/widget/trading/panel/TradingPanelHeader.d.ts +17 -0
- package/dist/dts/widget/trading/panel/csvExport.d.ts +18 -0
- package/dist/dts/widget/trading/ticket/ConnectedTradingDockPanel.d.ts +5 -0
- package/dist/dts/widget/trading/ticket/OrderTicketForm.d.ts +31 -0
- package/dist/dts/widget/trading/ticket/OrderTicketModal.d.ts +29 -0
- package/dist/dts/widget/trading/ticket/RegistryTradingDockPanel.d.ts +9 -0
- package/dist/dts/widget/trading/ticket/RiskCalculatorView.d.ts +9 -0
- package/dist/dts/widget/trading/ticket/TradingDockPanel.d.ts +36 -0
- package/dist/dts/widget/trading/ticket/orderTicketModel.d.ts +49 -0
- package/dist/dts/widget/trading/visibility/paperVisibility.d.ts +38 -0
- package/dist/dts/widget/types/dataProvider.d.ts +8 -0
- package/dist/dts/widget/types/fullChartHandle.d.ts +25 -0
- package/dist/dts/widget/types/saas.d.ts +83 -0
- package/dist/dts/widget/types/symbolSearch.d.ts +9 -0
- package/dist/dts/widget/types/watchlist.d.ts +26 -0
- package/dist/dts/widget/utils/axisHit.d.ts +16 -0
- package/dist/dts/widget/utils/chartRange.d.ts +12 -0
- package/dist/dts/widget/utils/chartTypeOptions.d.ts +38 -0
- package/dist/dts/widget/utils/clickOutside.d.ts +1 -0
- package/dist/dts/widget/utils/coordinateBridge.d.ts +31 -0
- package/dist/dts/widget/utils/crosshairSync.d.ts +50 -0
- package/dist/dts/widget/utils/drawingSync.d.ts +198 -0
- package/dist/dts/widget/utils/enrichedHash.d.ts +15 -0
- package/dist/dts/widget/utils/headerSync.d.ts +12 -0
- package/dist/dts/widget/utils/numberFormat.d.ts +13 -0
- package/dist/dts/widget/utils/paperTradeAdapters.d.ts +11 -0
- package/dist/dts/widget/utils/pineSeriesData.d.ts +71 -0
- package/dist/dts/widget/utils/rangeSync.d.ts +29 -0
- package/dist/dts/widget/utils/telemetry.d.ts +19 -0
- package/dist/dts/widget/utils/widgetEquality.d.ts +57 -0
- package/dist/dts/widget/utils/widgetErrors.d.ts +29 -0
- package/dist/dts/widget/utils/widgetHelpers.d.ts +395 -0
- package/dist/dts/widget/utils/xAxisTickFormatter.d.ts +33 -0
- package/dist/dts/widget/visibleRangeBridge.d.ts +28 -0
- package/dist/dts/widget/visibleRangeDiagnostics.d.ts +10 -0
- package/dist/dts/widget/visibleRangePolicies.d.ts +6 -0
- package/dist/dts/widget/workspace/WorkspaceManager.d.ts +23 -0
- package/dist/dts/widget/workspace/WorkspaceStore.d.ts +85 -0
- package/dist/dts/widget/workspace/types.d.ts +21 -0
- package/dist/externalBarsNormalization.worker.js +108 -0
- package/dist/iframe/index.html +63 -0
- package/dist/iframe/injected.css +6456 -0
- package/dist/iframe/vninvestchart.iframe.css +2 -0
- package/dist/iframe/vninvestchart.iframe.js +945 -0
- package/dist/iframe-host/host-entry.cjs +687 -0
- package/dist/iframe-host/host-entry.d.mts +818 -0
- package/dist/iframe-host/host-entry.d.ts +818 -0
- package/dist/iframe-host/host-entry.js +680 -0
- package/dist/index.cjs +7253 -0
- package/dist/index.css +3390 -0
- package/dist/index.d.ts +31 -0
- package/dist/index.js +6461 -0
- package/dist/injected.css +6456 -0
- package/dist/rollAlgorithms-2P2ZKKHO.js +2 -0
- package/dist/types/runtime.cjs +8 -0
- package/dist/types/runtime.d.mts +92 -0
- package/dist/types/runtime.d.ts +92 -0
- package/dist/types/runtime.js +5 -0
- package/dist/types/runtime.umd.js +14 -0
- package/dist/vninvestchart.iife.css +2 -0
- package/dist/vninvestchart.iife.js +945 -0
- package/package.json +225 -5
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { WidgetMessages } from "./types";
|
|
2
|
+
/**
|
|
3
|
+
* Chuỗi cho capability gate / upsell / data-availability.
|
|
4
|
+
* Tách riêng (W0.4) vì `messages.en.ts` chỉ còn ~48 dòng headroom budget
|
|
5
|
+
* còn Track A cần ~168 key × 2 ngôn ngữ (PLAN_FRONTEND_PROPLUS_TRACKA §8.2).
|
|
6
|
+
*/
|
|
7
|
+
export declare const capabilityMessagesEn: WidgetMessages;
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Licensing settings strings, split out from `messages.en.ts` / `messages.vi.ts`.
|
|
3
|
+
*
|
|
4
|
+
* Why a separate file: those two sit one line from their budget (en 1552, vi 1550),
|
|
5
|
+
* so there is no room for new `licensing.*` keys. This is the split CS-6 of
|
|
6
|
+
* PLAN_CREDENTIAL_SPLIT_O1 calls for; it is pulled forward because the CS-1 refusal
|
|
7
|
+
* fix could not tell the user that a save was rejected without one more key.
|
|
8
|
+
*
|
|
9
|
+
* Parity with messages.en.ts is enforced by the i18n key-count check in CI.
|
|
10
|
+
*/
|
|
11
|
+
export declare const licensingMessagesEn: {
|
|
12
|
+
readonly "licensing.notSaved": "Key not saved. A license key is still being migrated - reload and try again.";
|
|
13
|
+
readonly "licensing.degraded.offline": "Cannot reach the server. Showing offline features only.";
|
|
14
|
+
readonly "licensing.degraded.graceExpired": "Server data is stale. Reconnect to restore live features.";
|
|
15
|
+
readonly "licensing.degraded.planLimited": "Signed in. Live data works; some features need a higher plan.";
|
|
16
|
+
readonly "licensing.diag.insecureContext": "License needs HTTPS (or localhost). This page is served over insecure HTTP.";
|
|
17
|
+
readonly "licensing.diag.subtleUnavailable": "Web Crypto is unavailable here, so licenses cannot be verified.";
|
|
18
|
+
readonly "licensing.reject.unknown": "Server does not recognize this key. Check for typos or request a new one.";
|
|
19
|
+
readonly "licensing.reject.status": "Server reports this key is {status}.";
|
|
20
|
+
readonly "licensing.reject.disabled": "Server reports its service account is disabled.";
|
|
21
|
+
readonly "licensing.reject.network": "Server refuses this network for the key.";
|
|
22
|
+
readonly "licensing.licenseTitle": "Offline License Key";
|
|
23
|
+
readonly "licensing.licenseInputLabel": "Offline license key (vni1.)";
|
|
24
|
+
readonly "licensing.licensePlaceholder": "Paste vni1. here";
|
|
25
|
+
readonly "licensing.licenseSaved": "License key saved (offline).";
|
|
26
|
+
readonly "licensing.licenseCleared": "Offline license key removed.";
|
|
27
|
+
readonly "licensing.licenseSerial": "Serial";
|
|
28
|
+
readonly "licensing.patTitle": "Access Token (PAT)";
|
|
29
|
+
};
|
|
30
|
+
export declare const licensingMessagesVi: {
|
|
31
|
+
readonly "licensing.notSaved": "Chưa lưu được khóa. Còn một khóa license đang được di chuyển — hãy tải lại trang rồi thử lại.";
|
|
32
|
+
readonly "licensing.degraded.offline": "Không kết nối được server. Chỉ hiển thị tính năng offline.";
|
|
33
|
+
readonly "licensing.degraded.graceExpired": "Dữ liệu server đã cũ. Hãy kết nối lại để khôi phục tính năng trực tiếp.";
|
|
34
|
+
readonly "licensing.degraded.planLimited": "Đã đăng nhập. Dữ liệu trực tiếp hoạt động; một số tính năng cần gói cao hơn.";
|
|
35
|
+
readonly "licensing.diag.insecureContext": "License cần HTTPS (hoặc localhost). Trang này đang chạy qua HTTP không mã hoá.";
|
|
36
|
+
readonly "licensing.diag.subtleUnavailable": "Web Crypto không khả dụng ở đây, không thể xác thực license.";
|
|
37
|
+
readonly "licensing.reject.unknown": "Server không nhận key này. Kiểm tra lỗi gõ hoặc xin key mới.";
|
|
38
|
+
readonly "licensing.reject.status": "Server báo key đang ở {status}.";
|
|
39
|
+
readonly "licensing.reject.disabled": "Server báo service account bị tắt.";
|
|
40
|
+
readonly "licensing.reject.network": "Server từ chối mạng này với key.";
|
|
41
|
+
readonly "licensing.licenseTitle": "License Key offline";
|
|
42
|
+
readonly "licensing.licenseInputLabel": "License key offline (vni1.…)";
|
|
43
|
+
readonly "licensing.licensePlaceholder": "Dán vni1.… vào đây";
|
|
44
|
+
readonly "licensing.licenseSaved": "Đã lưu license key (offline).";
|
|
45
|
+
readonly "licensing.licenseCleared": "Đã xoá license key offline.";
|
|
46
|
+
readonly "licensing.licenseSerial": "Mã serial";
|
|
47
|
+
readonly "licensing.patTitle": "Access Token (PAT)";
|
|
48
|
+
};
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WP-11: Built-in Adapter Classes for Iframe Mode
|
|
3
|
+
*
|
|
4
|
+
* These adapter classes can be instantiated from JSON-serializable config
|
|
5
|
+
* and are used in the iframe-hosted widget where custom callbacks
|
|
6
|
+
* cannot be passed via postMessage.
|
|
7
|
+
*/
|
|
8
|
+
import type { StockDataAdapter, Unsubscribe, Timeframe, Trade, OrderbookSnapshot, SymbolInfo } from "../../lib/types/adapter";
|
|
9
|
+
import type { OHLCVBar } from "../../lib/types/ohlcv";
|
|
10
|
+
import type { CoverageFragment, SourceSemanticsDescriptor } from "@vninvestcharts/engine-core";
|
|
11
|
+
import { type WidgetAuthHandler } from "../adapters/VNInvestClient";
|
|
12
|
+
/**
|
|
13
|
+
* Base class for built-in adapters
|
|
14
|
+
*/
|
|
15
|
+
export declare abstract class BuiltInAdapter implements StockDataAdapter {
|
|
16
|
+
abstract readonly name: string;
|
|
17
|
+
abstract readonly type: string;
|
|
18
|
+
abstract fetchBarsInRange(symbol: string, timeframe: Timeframe, from: Date, to: Date): Promise<readonly OHLCVBar[]>;
|
|
19
|
+
abstract fetchBarsBefore(symbol: string, timeframe: Timeframe, before: Date, limit?: number): Promise<readonly OHLCVBar[]>;
|
|
20
|
+
abstract subscribeToBar(symbol: string, timeframe: Timeframe, onBar: (bar: OHLCVBar) => void): Unsubscribe;
|
|
21
|
+
subscribeToTrades(_symbol: string, _onTrade: (trade: Trade) => void): Unsubscribe;
|
|
22
|
+
subscribeToOrderbook(_symbol: string, _onUpdate: (snapshot: OrderbookSnapshot) => void): Unsubscribe;
|
|
23
|
+
abstract searchSymbols(query: string): Promise<readonly SymbolInfo[]>;
|
|
24
|
+
abstract destroy(): void;
|
|
25
|
+
getSourceSemantics(): SourceSemanticsDescriptor;
|
|
26
|
+
getLastBackfillCoverage(): readonly CoverageFragment[] | null;
|
|
27
|
+
getLastRangeCoverage(): readonly CoverageFragment[] | null;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* VNInvest Built-in Adapter
|
|
31
|
+
*/
|
|
32
|
+
export declare class VNInvestBuiltInAdapter extends BuiltInAdapter {
|
|
33
|
+
readonly name = "vninvest";
|
|
34
|
+
readonly type = "vninvest";
|
|
35
|
+
private client;
|
|
36
|
+
private wsClient;
|
|
37
|
+
private readonly barSubscribers;
|
|
38
|
+
private readonly snapshotIds;
|
|
39
|
+
private readonly lastBackfillCoverageMap;
|
|
40
|
+
private readonly lastRangeCoverageMap;
|
|
41
|
+
constructor(config: {
|
|
42
|
+
patToken: string;
|
|
43
|
+
apiBase?: string;
|
|
44
|
+
});
|
|
45
|
+
setAuthHandler(handler: WidgetAuthHandler): void;
|
|
46
|
+
private coverageKey;
|
|
47
|
+
getLastBackfillCoverage(symbol?: string, timeframe?: Timeframe, chartId?: string): readonly CoverageFragment[] | null;
|
|
48
|
+
getLastRangeCoverage(symbol?: string, timeframe?: Timeframe, chartId?: string): readonly CoverageFragment[] | null;
|
|
49
|
+
fetchBarsInRange(symbol: string, timeframe: Timeframe, from: Date, to: Date, chartId?: string): Promise<readonly OHLCVBar[]>;
|
|
50
|
+
fetchBarsBefore(symbol: string, timeframe: Timeframe, before: Date, limit?: number, chartId?: string): Promise<readonly OHLCVBar[]>;
|
|
51
|
+
subscribeToBar(symbol: string, timeframe: Timeframe, onBar: (bar: OHLCVBar) => void): Unsubscribe;
|
|
52
|
+
searchSymbols(query: string): Promise<readonly SymbolInfo[]>;
|
|
53
|
+
destroy(): void;
|
|
54
|
+
private handleTickerUpdate;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Factory function to create built-in adapter from config
|
|
58
|
+
*/
|
|
59
|
+
export declare function createBuiltInAdapter(config: {
|
|
60
|
+
type: string;
|
|
61
|
+
options?: Record<string, string | number | boolean | null>;
|
|
62
|
+
token?: string;
|
|
63
|
+
}): BuiltInAdapter | null;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Host-only entry point for iframe embedding.
|
|
3
|
+
*
|
|
4
|
+
* This module intentionally excludes React and the iframe runtime bundle.
|
|
5
|
+
* Website hosts import the postMessage Host SDK from `vninvestcharts-widget/iframe-host`.
|
|
6
|
+
*/
|
|
7
|
+
export { VNInvestChartsHostSDK, createVNInvestChartsHost, EmbedError } from "./hostSDK";
|
|
8
|
+
export { IframeBridge, createHostBridge, DEFAULT_ALLOWED_ORIGINS } from "./iframeBridge";
|
|
9
|
+
export type { HostSDKConfig, WidgetController } from "./hostSDK";
|
|
10
|
+
export type { AllowedOriginsConfig, BridgeConfig } from "./iframeBridge";
|
|
11
|
+
export type { AdapterConfig, HostToIframeCommand, IframeToHostEvent, ResponsePayload, WidgetConfig, } from "./messageProtocol";
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WP-11: Host SDK - Type-safe API for embedding VNInvestCharts in an iframe
|
|
3
|
+
*
|
|
4
|
+
* Provides a clean Promise-based API for controlling the widget from the parent page.
|
|
5
|
+
* Handles connection lifecycle, origin validation, and automatic reconnection.
|
|
6
|
+
*/
|
|
7
|
+
import { type IframeToHostEvent, type WidgetConfig } from "./iframeBridge";
|
|
8
|
+
/** Host SDK configuration */
|
|
9
|
+
export interface HostSDKConfig {
|
|
10
|
+
/** Iframe element or selector */
|
|
11
|
+
iframe: HTMLIFrameElement | string;
|
|
12
|
+
/** Allowed origins for postMessage security */
|
|
13
|
+
allowedOrigins?: string[];
|
|
14
|
+
/** Connection timeout in ms */
|
|
15
|
+
connectionTimeout?: number;
|
|
16
|
+
/** Request timeout in ms */
|
|
17
|
+
requestTimeout?: number;
|
|
18
|
+
/** Callback when widget is ready */
|
|
19
|
+
onReady?: (info: {
|
|
20
|
+
version: string;
|
|
21
|
+
capabilities: string[];
|
|
22
|
+
}) => void;
|
|
23
|
+
/** Callback on widget events */
|
|
24
|
+
onEvent?: (event: IframeToHostEvent) => void;
|
|
25
|
+
/** Callback on connection error */
|
|
26
|
+
onError?: (error: Error) => void;
|
|
27
|
+
/** Callback when connection is lost */
|
|
28
|
+
onDisconnect?: () => void;
|
|
29
|
+
}
|
|
30
|
+
/** Widget control API returned by HostSDK */
|
|
31
|
+
export interface WidgetController {
|
|
32
|
+
/** Initialize widget with configuration */
|
|
33
|
+
initialize(config: WidgetConfig): Promise<{
|
|
34
|
+
widgetId: string;
|
|
35
|
+
}>;
|
|
36
|
+
/** Change symbol */
|
|
37
|
+
setSymbol(symbol: string): Promise<void>;
|
|
38
|
+
/** Change timeframe */
|
|
39
|
+
setTimeframe(timeframe: string): Promise<void>;
|
|
40
|
+
/** Change visible range */
|
|
41
|
+
setRange(range: string): Promise<void>;
|
|
42
|
+
/** Change theme */
|
|
43
|
+
setTheme(theme: "light" | "dark"): Promise<void>;
|
|
44
|
+
/** Replace all drawings */
|
|
45
|
+
setDrawings(drawings: readonly any[]): Promise<void>;
|
|
46
|
+
/** Add a drawing */
|
|
47
|
+
addDrawing(drawing: any): Promise<void>;
|
|
48
|
+
/** Remove a drawing by ID */
|
|
49
|
+
removeDrawing(drawingId: string): Promise<void>;
|
|
50
|
+
/** Update a drawing */
|
|
51
|
+
updateDrawing(drawingId: string, updates: Partial<any>): Promise<void>;
|
|
52
|
+
/** Set active drawing tool */
|
|
53
|
+
setActiveTool(tool: string): Promise<void>;
|
|
54
|
+
/** E3: switch the right-dock tab */
|
|
55
|
+
setDockTab(tab: string): Promise<void>;
|
|
56
|
+
/** E3: replace the dock watchlist (static symbols) */
|
|
57
|
+
setWatchlist(symbols: string[]): Promise<void>;
|
|
58
|
+
/** Export current drawings */
|
|
59
|
+
exportDrawings(): Promise<readonly any[]>;
|
|
60
|
+
/** Get current visible range */
|
|
61
|
+
getVisibleRange(): Promise<{
|
|
62
|
+
startIndex: number;
|
|
63
|
+
endIndex: number;
|
|
64
|
+
startDate: string;
|
|
65
|
+
endDate: string;
|
|
66
|
+
barCount: number;
|
|
67
|
+
} | null>;
|
|
68
|
+
/** Get current pane snapshots */
|
|
69
|
+
getPaneSnapshots(): Promise<readonly any[]>;
|
|
70
|
+
/** Capture snapshot as image */
|
|
71
|
+
captureSnapshot(format?: "png" | "jpeg", quality?: number): Promise<string>;
|
|
72
|
+
/** Toggle fullscreen */
|
|
73
|
+
toggleFullscreen(): Promise<void>;
|
|
74
|
+
/** Set locale */
|
|
75
|
+
setLocale(locale: string): Promise<void>;
|
|
76
|
+
/** Set timezone */
|
|
77
|
+
setTimezone(timezone: string): Promise<void>;
|
|
78
|
+
/** Destroy widget and cleanup */
|
|
79
|
+
destroy(): Promise<void>;
|
|
80
|
+
/** E5: subscribe to live quote fan-out (batch ≥250ms); returns unsubscribe */
|
|
81
|
+
subscribeQuotes(symbols: string[], onQuotes: (updates: Array<{
|
|
82
|
+
symbol: string;
|
|
83
|
+
price?: number;
|
|
84
|
+
change?: number;
|
|
85
|
+
changePercent?: number;
|
|
86
|
+
}>) => void): Promise<() => Promise<void>>;
|
|
87
|
+
/** Check if widget is ready */
|
|
88
|
+
isReady(): boolean;
|
|
89
|
+
/** Get widget version */
|
|
90
|
+
getVersion(): string | null;
|
|
91
|
+
}
|
|
92
|
+
/** E4: typed embed error — `{code, recoverable, detail}` for the host matrix. */
|
|
93
|
+
export declare class EmbedError extends Error {
|
|
94
|
+
readonly code: string;
|
|
95
|
+
readonly recoverable: boolean;
|
|
96
|
+
readonly detail?: string;
|
|
97
|
+
constructor(code: string, message: string, recoverable?: boolean, detail?: string);
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Host SDK for controlling VNInvestCharts widget in an iframe
|
|
101
|
+
*/
|
|
102
|
+
export declare class VNInvestChartsHostSDK {
|
|
103
|
+
private config;
|
|
104
|
+
private iframe;
|
|
105
|
+
private bridge;
|
|
106
|
+
private isReady;
|
|
107
|
+
private version;
|
|
108
|
+
private capabilities;
|
|
109
|
+
private readyPromise;
|
|
110
|
+
private readyResolve;
|
|
111
|
+
private eventListeners;
|
|
112
|
+
constructor(config: HostSDKConfig);
|
|
113
|
+
/**
|
|
114
|
+
* Connect to the iframe widget
|
|
115
|
+
*/
|
|
116
|
+
connect(): Promise<void>;
|
|
117
|
+
/**
|
|
118
|
+
* Wait for iframe to finish loading
|
|
119
|
+
*/
|
|
120
|
+
private waitForIframeLoad;
|
|
121
|
+
/**
|
|
122
|
+
* Handle ready signal from iframe
|
|
123
|
+
*/
|
|
124
|
+
private handleReady;
|
|
125
|
+
/**
|
|
126
|
+
* Handle incoming events from iframe
|
|
127
|
+
*/
|
|
128
|
+
private handleEvent;
|
|
129
|
+
/**
|
|
130
|
+
* Get the widget controller API
|
|
131
|
+
*/
|
|
132
|
+
getController(): WidgetController;
|
|
133
|
+
/**
|
|
134
|
+
* Subscribe to specific event types
|
|
135
|
+
*/
|
|
136
|
+
on<K extends IframeToHostEvent["type"]>(eventType: K, listener: (payload: Extract<IframeToHostEvent, {
|
|
137
|
+
type: K;
|
|
138
|
+
}>["payload"]) => void): () => void;
|
|
139
|
+
/**
|
|
140
|
+
* Disconnect and cleanup
|
|
141
|
+
*/
|
|
142
|
+
disconnect(): void;
|
|
143
|
+
/**
|
|
144
|
+
* Check if connected and ready
|
|
145
|
+
*/
|
|
146
|
+
get connected(): boolean;
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Convenience function to create and connect Host SDK in one call
|
|
150
|
+
*/
|
|
151
|
+
export declare function createVNInvestChartsHost(config: HostSDKConfig): Promise<VNInvestChartsHostSDK>;
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WP-11: Iframe Bridge - Host ↔ Iframe Communication Layer
|
|
3
|
+
*
|
|
4
|
+
* Handles postMessage communication with:
|
|
5
|
+
* - Origin validation against allowlist
|
|
6
|
+
* - Request/response correlation
|
|
7
|
+
* - Event emission
|
|
8
|
+
* - Automatic cleanup
|
|
9
|
+
*/
|
|
10
|
+
import { HostToIframeCommand, IframeToHostEvent, RequestMessage, ResponsePayload } from "./messageProtocol";
|
|
11
|
+
export type { HostToIframeCommand, IframeToHostEvent, RequestMessage, ResponseMessage, EventMessage, WidgetConfig, AdapterConfig, ResponsePayload, } from "./messageProtocol";
|
|
12
|
+
export { generateCorrelationId, createRequest, createResponse, createEvent, isHostToIframeCommand, isIframeToHostEvent } from "./messageProtocol";
|
|
13
|
+
/** Allowed origins for postMessage security */
|
|
14
|
+
export interface AllowedOriginsConfig {
|
|
15
|
+
/** List of allowed origins (exact match or wildcard patterns) */
|
|
16
|
+
allowedOrigins: string[];
|
|
17
|
+
/** Whether to allow any origin (DANGEROUS - only for development) */
|
|
18
|
+
allowAnyOrigin?: boolean;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Default allowed origins — override per deployment.
|
|
22
|
+
* SECURITY: Remove `http://localhost` entries in production.
|
|
23
|
+
*/
|
|
24
|
+
export declare const DEFAULT_ALLOWED_ORIGINS: string[];
|
|
25
|
+
/**
|
|
26
|
+
* SEC-01: origin allowlist matcher.
|
|
27
|
+
*
|
|
28
|
+
* Deliberately regex-free. A wildcard is only honoured as a leading subdomain
|
|
29
|
+
* marker (`scheme://*.<rest>`), and the remainder is compared with plain string
|
|
30
|
+
* equality. Compiling the pattern into a RegExp (the previous behaviour) let
|
|
31
|
+
* every `.` act as "any character", so an allowlist entry for
|
|
32
|
+
* `https:` + wildcard + `vninvestcharts.com` also accepted unrelated hosts.
|
|
33
|
+
*/
|
|
34
|
+
export declare function matchOriginPattern(pattern: string, origin: string): boolean;
|
|
35
|
+
/** Message handler type */
|
|
36
|
+
export type MessageHandler = (message: IframeToHostEvent) => void;
|
|
37
|
+
/** Request handler type (for Iframe side) */
|
|
38
|
+
export type RequestHandler = (command: HostToIframeCommand) => Promise<ResponsePayload>;
|
|
39
|
+
/** Bridge configuration */
|
|
40
|
+
export interface BridgeConfig {
|
|
41
|
+
/** Target window (iframe.contentWindow or window.parent) */
|
|
42
|
+
targetWindow: Window;
|
|
43
|
+
/** Target origin for sending messages */
|
|
44
|
+
targetOrigin: string;
|
|
45
|
+
/** Allowed origins for receiving messages */
|
|
46
|
+
allowedOrigins: string[];
|
|
47
|
+
/** Whether we are the Host (true) or Iframe (false) */
|
|
48
|
+
isHost: boolean;
|
|
49
|
+
/** Request timeout in ms */
|
|
50
|
+
requestTimeout?: number;
|
|
51
|
+
/** Callback when connection is established */
|
|
52
|
+
onReady?: () => void;
|
|
53
|
+
/** Callback on connection error */
|
|
54
|
+
onError?: (error: Error) => void;
|
|
55
|
+
/** Whether to allow any origin (DANGEROUS - only for development) */
|
|
56
|
+
allowAnyOrigin?: boolean;
|
|
57
|
+
/**
|
|
58
|
+
* SEC-01: maximum serialized size of an accepted inbound message.
|
|
59
|
+
* Oversized payloads are rejected before parsing or state mutation.
|
|
60
|
+
*/
|
|
61
|
+
maxPayloadBytes?: number;
|
|
62
|
+
/**
|
|
63
|
+
* SEC-01: inbound message budget. Once more than `maxMessages` are accepted
|
|
64
|
+
* within `rateWindowMs`, further traffic is dropped until the window rolls.
|
|
65
|
+
*/
|
|
66
|
+
maxMessages?: number;
|
|
67
|
+
rateWindowMs?: number;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Iframe Bridge - bidirectional postMessage communication
|
|
71
|
+
*/
|
|
72
|
+
export declare class IframeBridge {
|
|
73
|
+
private config;
|
|
74
|
+
private pendingRequests;
|
|
75
|
+
private messageHandler;
|
|
76
|
+
private requestHandler;
|
|
77
|
+
private boundHandleMessage;
|
|
78
|
+
private isDestroyed;
|
|
79
|
+
private readyPromise;
|
|
80
|
+
private readyResolve;
|
|
81
|
+
/**
|
|
82
|
+
* Origin pinned from the first origin-allowlisted incoming message
|
|
83
|
+
* (iframe side). All outbound sends use it instead of the "*" fallback,
|
|
84
|
+
* so widget data is never broadcast to arbitrary windows once the host
|
|
85
|
+
* is known. Re-pinned on every validated message (allows host moves).
|
|
86
|
+
*/
|
|
87
|
+
private pinnedSendOrigin;
|
|
88
|
+
/** SEC-01: sliding-window counters for the inbound rate limit. */
|
|
89
|
+
private rateWindowStart;
|
|
90
|
+
private rateCount;
|
|
91
|
+
constructor(config: BridgeConfig);
|
|
92
|
+
/**
|
|
93
|
+
* Set handler for incoming events (Host side)
|
|
94
|
+
*/
|
|
95
|
+
setMessageHandler(handler: MessageHandler): void;
|
|
96
|
+
/**
|
|
97
|
+
* Set handler for incoming requests (Iframe side)
|
|
98
|
+
*/
|
|
99
|
+
setRequestHandler(handler: RequestHandler): void;
|
|
100
|
+
/**
|
|
101
|
+
* Resolve the target origin for outbound sends. Prefers the pinned
|
|
102
|
+
* validated origin; falls back to the configured targetOrigin ("*" only
|
|
103
|
+
* until the first allowlisted message arrives on the iframe side).
|
|
104
|
+
*/
|
|
105
|
+
private resolveSendOrigin;
|
|
106
|
+
/**
|
|
107
|
+
* Send a command to the other side
|
|
108
|
+
*/
|
|
109
|
+
sendCommand<T extends HostToIframeCommand>(command: T, timeoutMs?: number): Promise<ResponsePayload>;
|
|
110
|
+
/**
|
|
111
|
+
* Send an event (fire-and-forget)
|
|
112
|
+
*/
|
|
113
|
+
sendEvent(event: IframeToHostEvent): void;
|
|
114
|
+
/**
|
|
115
|
+
* Send a response to a request
|
|
116
|
+
*/
|
|
117
|
+
sendResponse(request: RequestMessage, payload: ResponsePayload, success?: boolean, error?: string): void;
|
|
118
|
+
/**
|
|
119
|
+
* Wait for the bridge to be ready (Iframe side)
|
|
120
|
+
*/
|
|
121
|
+
waitForReady(): Promise<void>;
|
|
122
|
+
/**
|
|
123
|
+
* Signal that Iframe is ready (Iframe side)
|
|
124
|
+
*/
|
|
125
|
+
signalReady(version: string, capabilities: string[]): void;
|
|
126
|
+
/**
|
|
127
|
+
* Validate message origin against allowlist.
|
|
128
|
+
*
|
|
129
|
+
* SEC-01: wildcard patterns are matched as PLAIN STRINGS, never compiled into
|
|
130
|
+
* a RegExp. The previous implementation replaced every `*` with `.*` and then
|
|
131
|
+
* ran `new RegExp`, which left every `.` unescaped, so a pattern like
|
|
132
|
+
* `https:` + wildcard-subdomain + `vninvestcharts.com` also matched origins
|
|
133
|
+
* such as `https://evilvninvestchartsXcom`. Only a leading subdomain
|
|
134
|
+
* wildcard is supported and it must sit on a scheme boundary.
|
|
135
|
+
*/
|
|
136
|
+
private isOriginAllowed;
|
|
137
|
+
/** SEC-01: counters for rejected traffic — surfaced for tests/monitoring. */
|
|
138
|
+
readonly stats: {
|
|
139
|
+
rejectedOrigin: number;
|
|
140
|
+
rejectedSize: number;
|
|
141
|
+
rejectedRate: number;
|
|
142
|
+
accepted: number;
|
|
143
|
+
};
|
|
144
|
+
/**
|
|
145
|
+
* SEC-01: size + rate gate, applied after the origin is trusted so that
|
|
146
|
+
* hostile origins are not charged against the budget.
|
|
147
|
+
*/
|
|
148
|
+
private passesTrafficBudget;
|
|
149
|
+
/**
|
|
150
|
+
* Handle incoming postMessage
|
|
151
|
+
*/
|
|
152
|
+
private handleMessage;
|
|
153
|
+
/**
|
|
154
|
+
* Destroy the bridge and cleanup
|
|
155
|
+
*/
|
|
156
|
+
destroy(): void;
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* Create Host-side bridge (parent page embedding iframe)
|
|
160
|
+
*/
|
|
161
|
+
export declare function createHostBridge(iframe: HTMLIFrameElement, allowedOrigins?: string[], options?: Partial<BridgeConfig>): IframeBridge;
|
|
162
|
+
/**
|
|
163
|
+
* Create Iframe-side bridge (widget inside iframe)
|
|
164
|
+
*/
|
|
165
|
+
export declare function createIframeBridge(allowedOrigins?: string[], options?: Partial<BridgeConfig>): IframeBridge;
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WP-11: Iframe Entry Point - Widget running inside iframe
|
|
3
|
+
*
|
|
4
|
+
* This is the standalone entry point for the iframe-hosted widget.
|
|
5
|
+
* It initializes the bridge, listens for commands from Host, and renders the widget.
|
|
6
|
+
*/
|
|
7
|
+
import { type VNInvestChartsProps } from "../VNInvestCharts";
|
|
8
|
+
import { type RequestHandler, type WidgetConfig } from "./iframeBridge";
|
|
9
|
+
import type { WatchlistAdapter } from "../types/watchlist";
|
|
10
|
+
export declare const requestHandler: RequestHandler;
|
|
11
|
+
/**
|
|
12
|
+
* E3: static in-iframe watchlist adapter from plain symbols (JSON-safe).
|
|
13
|
+
* No streaming here — live quotes arrive via E5 subscribeQuotes.
|
|
14
|
+
*/
|
|
15
|
+
export declare function buildStaticWatchlistAdapter(symbols: readonly string[] | undefined): WatchlistAdapter | undefined;
|
|
16
|
+
/**
|
|
17
|
+
* Build widget props from host config (exported for tests).
|
|
18
|
+
*/
|
|
19
|
+
export declare function buildWidgetProps(config: WidgetConfig): VNInvestChartsProps;
|
|
20
|
+
/**
|
|
21
|
+
* Convert an engine snapshot (canvas or bitmap) to a data URL.
|
|
22
|
+
* Returns null when capture is unavailable. Exported for tests.
|
|
23
|
+
*/
|
|
24
|
+
export declare function captureWidgetSnapshot(capture: () => Promise<ImageBitmap | HTMLCanvasElement | null | undefined> | ImageBitmap | HTMLCanvasElement | null | undefined, format?: "png" | "jpeg", quality?: number): Promise<string | null>;
|
|
25
|
+
/**
|
|
26
|
+
* Reset module state for tests only. Not part of the runtime contract.
|
|
27
|
+
*/
|
|
28
|
+
export declare function __resetIframeEntryForTests(): void;
|
|
29
|
+
/**
|
|
30
|
+
* Attach a fake widget handle for tests only (the real handle attaches via
|
|
31
|
+
* React ref when the mocked root renders). Not part of the runtime contract.
|
|
32
|
+
*/
|
|
33
|
+
export declare function __setWidgetRefForTests(handle: unknown): void;
|
|
34
|
+
export declare function __getIframeEntryStateForTests(): {
|
|
35
|
+
isInitialized: boolean;
|
|
36
|
+
hasRoot: boolean;
|
|
37
|
+
props: VNInvestChartsProps | null;
|
|
38
|
+
};
|
|
39
|
+
/**
|
|
40
|
+
* E0: resolve the parent-origin allowlist. Query params (set by whoever
|
|
41
|
+
* serves iframe.html) extend the compiled default whitelist:
|
|
42
|
+
* - `?parentOrigin=https://doi-tac.vn` (repeatable) or
|
|
43
|
+
* `?allowedOrigins=https://a.vn,https://b.vn`
|
|
44
|
+
* - `?allowAnyOrigin=1` works ONLY with the debug gate (`?vnsc_debug=1` or
|
|
45
|
+
* localStorage) — never in a plain prod load. `file://` parents (origin
|
|
46
|
+
* "null") must be listed explicitly to pass.
|
|
47
|
+
*/
|
|
48
|
+
export declare function resolveAllowedOrigins(search?: string): {
|
|
49
|
+
allowedOrigins: string[];
|
|
50
|
+
allowAnyOrigin: boolean;
|
|
51
|
+
};
|
|
52
|
+
export declare function isIframeDebugEnabled(): boolean;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { IframeBridge } from "./iframeBridge";
|
|
2
|
+
import { type WidgetConfig } from "./messageProtocol";
|
|
3
|
+
/**
|
|
4
|
+
* E1 (split from iframeEntry): frame sizing controller.
|
|
5
|
+
* Fill mode (default) = 100%/100%, host owns the frame, zero resize
|
|
6
|
+
* messages. Card mode (numeric height) pins the height and reports guarded
|
|
7
|
+
* `event:resized` for bottom-panel expansion only.
|
|
8
|
+
*/
|
|
9
|
+
export interface FrameResizeReporter {
|
|
10
|
+
onResize?: (height: number) => void;
|
|
11
|
+
}
|
|
12
|
+
export declare function createFrameController(container: HTMLElement, getBridge: () => IframeBridge | null): {
|
|
13
|
+
applyFrameHeight: (config: WidgetConfig) => void;
|
|
14
|
+
stopFrameResizeReporter: () => void;
|
|
15
|
+
};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { Timeframe } from "../../lib/types/adapter";
|
|
2
|
+
import type { OHLCVBar } from "../../lib/types/ohlcv";
|
|
3
|
+
import type { WatchlistAdapter, WatchlistQuoteUpdate } from "../types/watchlist";
|
|
4
|
+
import { type QuoteHub } from "./quoteHub";
|
|
5
|
+
/** Minimal structural surface needed for bar→quotes (avoids adapter-type coupling). */
|
|
6
|
+
export interface BarStreamSource {
|
|
7
|
+
subscribeToBar: (symbol: string, timeframe: Timeframe, onBar: (bar: OHLCVBar) => void) => () => void;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* E5 (split from iframeEntry): quote-hub wiring.
|
|
11
|
+
* Source priority: explicit watchlist adapter with subscribeQuotes, else
|
|
12
|
+
* last-price quotes derived from the bar adapter's live WS.
|
|
13
|
+
*/
|
|
14
|
+
export declare function createQuotesController(emit: (updates: WatchlistQuoteUpdate[]) => void): {
|
|
15
|
+
setWatchlistAdapter: (adapter: WatchlistAdapter | null) => void;
|
|
16
|
+
setBarAdapter: (adapter: BarStreamSource | null, timeframe: Timeframe | undefined) => void;
|
|
17
|
+
getHub: () => QuoteHub;
|
|
18
|
+
reset: () => void;
|
|
19
|
+
};
|
|
20
|
+
export type QuotesController = ReturnType<typeof createQuotesController>;
|