@invinite-org/chartlang-runtime 1.0.2 → 1.1.1
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/CHANGELOG.md +101 -0
- package/README.md +10 -2
- package/dist/buildComputeContext.js.map +1 -1
- package/dist/createScriptRunner.d.ts +55 -4
- package/dist/createScriptRunner.d.ts.map +1 -1
- package/dist/createScriptRunner.js +103 -35
- package/dist/createScriptRunner.js.map +1 -1
- package/dist/dep/DepOutputStore.d.ts +92 -0
- package/dist/dep/DepOutputStore.d.ts.map +1 -0
- package/dist/dep/DepOutputStore.js +0 -0
- package/dist/dep/DepOutputStore.js.map +1 -0
- package/dist/dep/DepRunner.d.ts +146 -0
- package/dist/dep/DepRunner.d.ts.map +1 -0
- package/dist/dep/DepRunner.js +243 -0
- package/dist/dep/DepRunner.js.map +1 -0
- package/dist/dep/depOutput.d.ts +50 -0
- package/dist/dep/depOutput.d.ts.map +1 -0
- package/dist/dep/depOutput.js +92 -0
- package/dist/dep/depOutput.js.map +1 -0
- package/dist/dep/emissionFilter.d.ts +70 -0
- package/dist/dep/emissionFilter.d.ts.map +1 -0
- package/dist/dep/emissionFilter.js +105 -0
- package/dist/dep/emissionFilter.js.map +1 -0
- package/dist/dep/index.d.ts +8 -0
- package/dist/dep/index.d.ts.map +1 -0
- package/dist/dep/index.js +7 -0
- package/dist/dep/index.js.map +1 -0
- package/dist/emit/alert.js.map +1 -1
- package/dist/emit/alertConditionEmission.js.map +1 -1
- package/dist/emit/applyPlotOverride.d.ts +24 -0
- package/dist/emit/applyPlotOverride.d.ts.map +1 -0
- package/dist/emit/applyPlotOverride.js +48 -0
- package/dist/emit/applyPlotOverride.js.map +1 -0
- package/dist/emit/draw/annotations/arrow.js +1 -1
- package/dist/emit/draw/annotations/arrow.js.map +1 -1
- package/dist/emit/draw/annotations/arrowMarkDown.js +1 -1
- package/dist/emit/draw/annotations/arrowMarkDown.js.map +1 -1
- package/dist/emit/draw/annotations/arrowMarkUp.js +1 -1
- package/dist/emit/draw/annotations/arrowMarkUp.js.map +1 -1
- package/dist/emit/draw/annotations/arrowMarker.js +1 -1
- package/dist/emit/draw/annotations/arrowMarker.js.map +1 -1
- package/dist/emit/draw/annotations/text.js +1 -1
- package/dist/emit/draw/annotations/text.js.map +1 -1
- package/dist/emit/draw/boxes/circle.js +1 -1
- package/dist/emit/draw/boxes/circle.js.map +1 -1
- package/dist/emit/draw/boxes/ellipse.d.ts +1 -1
- package/dist/emit/draw/boxes/ellipse.js +1 -1
- package/dist/emit/draw/boxes/ellipse.js.map +1 -1
- package/dist/emit/draw/boxes/marker.js +1 -1
- package/dist/emit/draw/boxes/marker.js.map +1 -1
- package/dist/emit/draw/boxes/path.d.ts +1 -1
- package/dist/emit/draw/boxes/path.js +1 -1
- package/dist/emit/draw/boxes/path.js.map +1 -1
- package/dist/emit/draw/boxes/polyline.d.ts +1 -1
- package/dist/emit/draw/boxes/polyline.js +1 -1
- package/dist/emit/draw/boxes/polyline.js.map +1 -1
- package/dist/emit/draw/boxes/rectangle.js +1 -1
- package/dist/emit/draw/boxes/rectangle.js.map +1 -1
- package/dist/emit/draw/boxes/rotatedRectangle.js +1 -1
- package/dist/emit/draw/boxes/rotatedRectangle.js.map +1 -1
- package/dist/emit/draw/boxes/triangle.d.ts +1 -1
- package/dist/emit/draw/boxes/triangle.js +1 -1
- package/dist/emit/draw/boxes/triangle.js.map +1 -1
- package/dist/emit/draw/channels/disjointChannel.js +1 -1
- package/dist/emit/draw/channels/disjointChannel.js.map +1 -1
- package/dist/emit/draw/channels/flatTopBottom.d.ts +1 -2
- package/dist/emit/draw/channels/flatTopBottom.d.ts.map +1 -1
- package/dist/emit/draw/channels/flatTopBottom.js +1 -1
- package/dist/emit/draw/channels/flatTopBottom.js.map +1 -1
- package/dist/emit/draw/channels/regressionTrend.d.ts +3 -4
- package/dist/emit/draw/channels/regressionTrend.d.ts.map +1 -1
- package/dist/emit/draw/channels/regressionTrend.js +1 -1
- package/dist/emit/draw/channels/regressionTrend.js.map +1 -1
- package/dist/emit/draw/channels/trendChannel.js +1 -1
- package/dist/emit/draw/channels/trendChannel.js.map +1 -1
- package/dist/emit/draw/containers/frame.d.ts +1 -1
- package/dist/emit/draw/containers/frame.js +2 -2
- package/dist/emit/draw/containers/frame.js.map +1 -1
- package/dist/emit/draw/containers/group.d.ts +1 -2
- package/dist/emit/draw/containers/group.d.ts.map +1 -1
- package/dist/emit/draw/containers/group.js +2 -2
- package/dist/emit/draw/containers/group.js.map +1 -1
- package/dist/emit/draw/curves/arc.js +1 -1
- package/dist/emit/draw/curves/arc.js.map +1 -1
- package/dist/emit/draw/curves/brush.js +1 -1
- package/dist/emit/draw/curves/brush.js.map +1 -1
- package/dist/emit/draw/curves/curve.js +1 -1
- package/dist/emit/draw/curves/curve.js.map +1 -1
- package/dist/emit/draw/curves/doubleCurve.js +1 -1
- package/dist/emit/draw/curves/doubleCurve.js.map +1 -1
- package/dist/emit/draw/curves/highlighter.js +1 -1
- package/dist/emit/draw/curves/highlighter.js.map +1 -1
- package/dist/emit/draw/curves/pen.js +1 -1
- package/dist/emit/draw/curves/pen.js.map +1 -1
- package/dist/emit/draw/cycles/cyclicLines.js +1 -1
- package/dist/emit/draw/cycles/cyclicLines.js.map +1 -1
- package/dist/emit/draw/cycles/sineLine.js +1 -1
- package/dist/emit/draw/cycles/sineLine.js.map +1 -1
- package/dist/emit/draw/cycles/timeCycles.js +1 -1
- package/dist/emit/draw/cycles/timeCycles.js.map +1 -1
- package/dist/emit/draw/elliott/elliottCorrectionWave.js +1 -1
- package/dist/emit/draw/elliott/elliottCorrectionWave.js.map +1 -1
- package/dist/emit/draw/elliott/elliottDoubleCombo.js +1 -1
- package/dist/emit/draw/elliott/elliottDoubleCombo.js.map +1 -1
- package/dist/emit/draw/elliott/elliottImpulseWave.js +1 -1
- package/dist/emit/draw/elliott/elliottImpulseWave.js.map +1 -1
- package/dist/emit/draw/elliott/elliottTriangleWave.js +1 -1
- package/dist/emit/draw/elliott/elliottTriangleWave.js.map +1 -1
- package/dist/emit/draw/elliott/elliottTripleCombo.js +1 -1
- package/dist/emit/draw/elliott/elliottTripleCombo.js.map +1 -1
- package/dist/emit/draw/fibA/fibChannel.js +1 -1
- package/dist/emit/draw/fibA/fibChannel.js.map +1 -1
- package/dist/emit/draw/fibA/fibRetracement.js +1 -1
- package/dist/emit/draw/fibA/fibRetracement.js.map +1 -1
- package/dist/emit/draw/fibA/fibTimeZone.d.ts +1 -2
- package/dist/emit/draw/fibA/fibTimeZone.d.ts.map +1 -1
- package/dist/emit/draw/fibA/fibTimeZone.js +1 -1
- package/dist/emit/draw/fibA/fibTimeZone.js.map +1 -1
- package/dist/emit/draw/fibA/fibTrendExtension.js +1 -1
- package/dist/emit/draw/fibA/fibTrendExtension.js.map +1 -1
- package/dist/emit/draw/fibA/fibWedge.js +1 -1
- package/dist/emit/draw/fibA/fibWedge.js.map +1 -1
- package/dist/emit/draw/fibB/fibCircles.d.ts +1 -2
- package/dist/emit/draw/fibB/fibCircles.d.ts.map +1 -1
- package/dist/emit/draw/fibB/fibCircles.js +1 -1
- package/dist/emit/draw/fibB/fibCircles.js.map +1 -1
- package/dist/emit/draw/fibB/fibSpeedArcs.js +1 -1
- package/dist/emit/draw/fibB/fibSpeedArcs.js.map +1 -1
- package/dist/emit/draw/fibB/fibSpeedFan.js +1 -1
- package/dist/emit/draw/fibB/fibSpeedFan.js.map +1 -1
- package/dist/emit/draw/fibB/fibSpiral.d.ts +1 -2
- package/dist/emit/draw/fibB/fibSpiral.d.ts.map +1 -1
- package/dist/emit/draw/fibB/fibSpiral.js +1 -1
- package/dist/emit/draw/fibB/fibSpiral.js.map +1 -1
- package/dist/emit/draw/fibB/fibTrendTime.d.ts +1 -2
- package/dist/emit/draw/fibB/fibTrendTime.d.ts.map +1 -1
- package/dist/emit/draw/fibB/fibTrendTime.js +1 -1
- package/dist/emit/draw/fibB/fibTrendTime.js.map +1 -1
- package/dist/emit/draw/gann/gannBox.js +1 -1
- package/dist/emit/draw/gann/gannBox.js.map +1 -1
- package/dist/emit/draw/gann/gannFan.js +1 -1
- package/dist/emit/draw/gann/gannFan.js.map +1 -1
- package/dist/emit/draw/gann/gannSquare.js +1 -1
- package/dist/emit/draw/gann/gannSquare.js.map +1 -1
- package/dist/emit/draw/gann/gannSquareFixed.js +1 -1
- package/dist/emit/draw/gann/gannSquareFixed.js.map +1 -1
- package/dist/emit/draw/handle.d.ts +2 -2
- package/dist/emit/draw/handle.js +2 -2
- package/dist/emit/draw/handle.js.map +1 -1
- package/dist/emit/draw/index.js.map +1 -1
- package/dist/emit/draw/lines/crossLine.js +1 -1
- package/dist/emit/draw/lines/crossLine.js.map +1 -1
- package/dist/emit/draw/lines/horizontalLine.d.ts +1 -1
- package/dist/emit/draw/lines/horizontalLine.js +1 -1
- package/dist/emit/draw/lines/horizontalLine.js.map +1 -1
- package/dist/emit/draw/lines/horizontalRay.js +1 -1
- package/dist/emit/draw/lines/horizontalRay.js.map +1 -1
- package/dist/emit/draw/lines/line.d.ts +1 -1
- package/dist/emit/draw/lines/line.d.ts.map +1 -1
- package/dist/emit/draw/lines/line.js +2 -3
- package/dist/emit/draw/lines/line.js.map +1 -1
- package/dist/emit/draw/lines/trendAngle.js +1 -1
- package/dist/emit/draw/lines/trendAngle.js.map +1 -1
- package/dist/emit/draw/lines/verticalLine.js +1 -1
- package/dist/emit/draw/lines/verticalLine.js.map +1 -1
- package/dist/emit/draw/namespace.d.ts +1 -1
- package/dist/emit/draw/namespace.js +1 -1
- package/dist/emit/draw/namespace.js.map +1 -1
- package/dist/emit/draw/patterns/abcdPattern.js +1 -1
- package/dist/emit/draw/patterns/abcdPattern.js.map +1 -1
- package/dist/emit/draw/patterns/cypherPattern.d.ts +1 -2
- package/dist/emit/draw/patterns/cypherPattern.d.ts.map +1 -1
- package/dist/emit/draw/patterns/cypherPattern.js +1 -1
- package/dist/emit/draw/patterns/cypherPattern.js.map +1 -1
- package/dist/emit/draw/patterns/headAndShoulders.js +1 -1
- package/dist/emit/draw/patterns/headAndShoulders.js.map +1 -1
- package/dist/emit/draw/patterns/threeDrivesPattern.js +1 -1
- package/dist/emit/draw/patterns/threeDrivesPattern.js.map +1 -1
- package/dist/emit/draw/patterns/trianglePattern.d.ts +1 -1
- package/dist/emit/draw/patterns/trianglePattern.js +1 -1
- package/dist/emit/draw/patterns/trianglePattern.js.map +1 -1
- package/dist/emit/draw/patterns/xabcdPattern.js +1 -1
- package/dist/emit/draw/patterns/xabcdPattern.js.map +1 -1
- package/dist/emit/draw/pitchforks/pitchfan.js +1 -1
- package/dist/emit/draw/pitchforks/pitchfan.js.map +1 -1
- package/dist/emit/draw/pitchforks/pitchfork.d.ts +1 -1
- package/dist/emit/draw/pitchforks/pitchfork.js +2 -2
- package/dist/emit/draw/pitchforks/pitchfork.js.map +1 -1
- package/dist/emit/draw/pushDrawing.js.map +1 -1
- package/dist/emit/draw/subIdAllocator.d.ts +1 -1
- package/dist/emit/draw/subIdAllocator.js +1 -1
- package/dist/emit/draw/subIdAllocator.js.map +1 -1
- package/dist/emit/draw/table/table.d.ts +1 -1
- package/dist/emit/draw/table/table.js.map +1 -1
- package/dist/emit/emissionsQueue.js.map +1 -1
- package/dist/emit/hash.js.map +1 -1
- package/dist/emit/hline.d.ts +6 -4
- package/dist/emit/hline.d.ts.map +1 -1
- package/dist/emit/hline.js +5 -2
- package/dist/emit/hline.js.map +1 -1
- package/dist/emit/index.d.ts +2 -1
- package/dist/emit/index.d.ts.map +1 -1
- package/dist/emit/index.js +2 -1
- package/dist/emit/index.js.map +1 -1
- package/dist/emit/logEmission.js.map +1 -1
- package/dist/emit/paneResolver.d.ts +52 -11
- package/dist/emit/paneResolver.d.ts.map +1 -1
- package/dist/emit/paneResolver.js +69 -26
- package/dist/emit/paneResolver.js.map +1 -1
- package/dist/emit/plot.d.ts.map +1 -1
- package/dist/emit/plot.js +2 -1
- package/dist/emit/plot.js.map +1 -1
- package/dist/emit/runtimeError.js.map +1 -1
- package/dist/execution/dispose.d.ts.map +1 -1
- package/dist/execution/dispose.js +7 -0
- package/dist/execution/dispose.js.map +1 -1
- package/dist/execution/drain.js.map +1 -1
- package/dist/execution/index.js.map +1 -1
- package/dist/execution/onBarClose.d.ts +9 -13
- package/dist/execution/onBarClose.d.ts.map +1 -1
- package/dist/execution/onBarClose.js +28 -59
- package/dist/execution/onBarClose.js.map +1 -1
- package/dist/execution/onBarTick.d.ts +4 -10
- package/dist/execution/onBarTick.d.ts.map +1 -1
- package/dist/execution/onBarTick.js +24 -57
- package/dist/execution/onBarTick.js.map +1 -1
- package/dist/execution/onHistory.js.map +1 -1
- package/dist/execution/runComputeStep.d.ts +68 -0
- package/dist/execution/runComputeStep.d.ts.map +1 -0
- package/dist/execution/runComputeStep.js +96 -0
- package/dist/execution/runComputeStep.js.map +1 -0
- package/dist/execution/secondaryStream.js.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/inputs/index.js.map +1 -1
- package/dist/inputs/resolveInputs.js.map +1 -1
- package/dist/internal.d.ts +12 -0
- package/dist/internal.d.ts.map +1 -0
- package/dist/internal.js +14 -0
- package/dist/internal.js.map +1 -0
- package/dist/persistentStateStore.js.map +1 -1
- package/dist/persistentStateStore.runtime.d.ts +18 -4
- package/dist/persistentStateStore.runtime.d.ts.map +1 -1
- package/dist/persistentStateStore.runtime.js +111 -18
- package/dist/persistentStateStore.runtime.js.map +1 -1
- package/dist/persistentStateStore.validate.d.ts +11 -1
- package/dist/persistentStateStore.validate.d.ts.map +1 -1
- package/dist/persistentStateStore.validate.js +32 -3
- package/dist/persistentStateStore.validate.js.map +1 -1
- package/dist/primitives.js.map +1 -1
- package/dist/request/alignHtfSeriesCache.js.map +1 -1
- package/dist/request/alignHtfSeriesToLtf.d.ts +2 -2
- package/dist/request/alignHtfSeriesToLtf.js +2 -2
- package/dist/request/alignHtfSeriesToLtf.js.map +1 -1
- package/dist/request/bucketLtfBarsByMainContainment.js.map +1 -1
- package/dist/request/bucketLtfBarsCache.js.map +1 -1
- package/dist/request/index.js.map +1 -1
- package/dist/request/lowerTf.js.map +1 -1
- package/dist/request/pushOnce.js.map +1 -1
- package/dist/request/requestNamespace.js.map +1 -1
- package/dist/request/security.js.map +1 -1
- package/dist/request/streamBars.js.map +1 -1
- package/dist/ringBuffer.d.ts +2 -2
- package/dist/ringBuffer.js +1 -1
- package/dist/ringBuffer.js.map +1 -1
- package/dist/runtimeContext.d.ts +65 -7
- package/dist/runtimeContext.d.ts.map +1 -1
- package/dist/runtimeContext.js.map +1 -1
- package/dist/seriesView.d.ts +1 -1
- package/dist/seriesView.js +1 -1
- package/dist/seriesView.js.map +1 -1
- package/dist/state/index.js.map +1 -1
- package/dist/state/lifecycle.js.map +1 -1
- package/dist/state/stateNamespace.d.ts.map +1 -1
- package/dist/state/stateNamespace.js +13 -2
- package/dist/state/stateNamespace.js.map +1 -1
- package/dist/state/stateSlot.js.map +1 -1
- package/dist/stateStore.d.ts +7 -4
- package/dist/stateStore.d.ts.map +1 -1
- package/dist/stateStore.js.map +1 -1
- package/dist/streamState.d.ts +1 -1
- package/dist/streamState.js +1 -1
- package/dist/streamState.js.map +1 -1
- package/dist/ta/adl.js +2 -2
- package/dist/ta/adl.js.map +1 -1
- package/dist/ta/adr.d.ts +3 -3
- package/dist/ta/adr.js +5 -5
- package/dist/ta/adr.js.map +1 -1
- package/dist/ta/adx.d.ts +1 -1
- package/dist/ta/adx.js +3 -3
- package/dist/ta/adx.js.map +1 -1
- package/dist/ta/alma.d.ts +3 -3
- package/dist/ta/alma.js +5 -5
- package/dist/ta/alma.js.map +1 -1
- package/dist/ta/anchoredVolumeProfile.js.map +1 -1
- package/dist/ta/anchoredVwap.d.ts +1 -1
- package/dist/ta/anchoredVwap.js +3 -3
- package/dist/ta/anchoredVwap.js.map +1 -1
- package/dist/ta/ao.js +2 -2
- package/dist/ta/ao.js.map +1 -1
- package/dist/ta/aroon.js +2 -2
- package/dist/ta/aroon.js.map +1 -1
- package/dist/ta/aroonOsc.js +2 -2
- package/dist/ta/aroonOsc.js.map +1 -1
- package/dist/ta/atr.d.ts +1 -1
- package/dist/ta/atr.js +3 -3
- package/dist/ta/atr.js.map +1 -1
- package/dist/ta/barssince.js +1 -1
- package/dist/ta/barssince.js.map +1 -1
- package/dist/ta/bb.d.ts +1 -1
- package/dist/ta/bb.js +3 -3
- package/dist/ta/bb.js.map +1 -1
- package/dist/ta/bbPercentB.js +2 -2
- package/dist/ta/bbPercentB.js.map +1 -1
- package/dist/ta/bbw.js +2 -2
- package/dist/ta/bbw.js.map +1 -1
- package/dist/ta/bop.js +2 -2
- package/dist/ta/bop.js.map +1 -1
- package/dist/ta/cci.js +2 -2
- package/dist/ta/cci.js.map +1 -1
- package/dist/ta/chaikinOsc.d.ts +1 -1
- package/dist/ta/chaikinOsc.js +3 -3
- package/dist/ta/chaikinOsc.js.map +1 -1
- package/dist/ta/chandeKrollStop.d.ts +1 -1
- package/dist/ta/chandeKrollStop.js +3 -3
- package/dist/ta/chandeKrollStop.js.map +1 -1
- package/dist/ta/chandelier.d.ts +1 -1
- package/dist/ta/chandelier.js +3 -3
- package/dist/ta/chandelier.js.map +1 -1
- package/dist/ta/change.js +1 -1
- package/dist/ta/change.js.map +1 -1
- package/dist/ta/chop.js +2 -2
- package/dist/ta/chop.js.map +1 -1
- package/dist/ta/cmf.js +2 -2
- package/dist/ta/cmf.js.map +1 -1
- package/dist/ta/cmo.js +2 -2
- package/dist/ta/cmo.js.map +1 -1
- package/dist/ta/connorsRsi.d.ts +1 -1
- package/dist/ta/connorsRsi.js +3 -3
- package/dist/ta/connorsRsi.js.map +1 -1
- package/dist/ta/coppock.js +2 -2
- package/dist/ta/coppock.js.map +1 -1
- package/dist/ta/crossover.d.ts +1 -1
- package/dist/ta/crossover.js +2 -2
- package/dist/ta/crossover.js.map +1 -1
- package/dist/ta/crossunder.d.ts +1 -1
- package/dist/ta/crossunder.js +2 -2
- package/dist/ta/crossunder.js.map +1 -1
- package/dist/ta/dema.js +2 -2
- package/dist/ta/dema.js.map +1 -1
- package/dist/ta/dmi.d.ts +1 -1
- package/dist/ta/dmi.js +3 -3
- package/dist/ta/dmi.js.map +1 -1
- package/dist/ta/donchian.js +2 -2
- package/dist/ta/donchian.js.map +1 -1
- package/dist/ta/dpo.js +2 -2
- package/dist/ta/dpo.js.map +1 -1
- package/dist/ta/ema.d.ts +1 -1
- package/dist/ta/ema.js +3 -3
- package/dist/ta/ema.js.map +1 -1
- package/dist/ta/envelope.js +2 -2
- package/dist/ta/envelope.js.map +1 -1
- package/dist/ta/eom.d.ts +1 -1
- package/dist/ta/eom.js +3 -3
- package/dist/ta/eom.js.map +1 -1
- package/dist/ta/fisher.js +2 -2
- package/dist/ta/fisher.js.map +1 -1
- package/dist/ta/fixedRangeVolumeProfile.js.map +1 -1
- package/dist/ta/highest.js +1 -1
- package/dist/ta/highest.js.map +1 -1
- package/dist/ta/historicalVolatility.d.ts +1 -1
- package/dist/ta/historicalVolatility.js +3 -3
- package/dist/ta/historicalVolatility.js.map +1 -1
- package/dist/ta/hma.js +2 -2
- package/dist/ta/hma.js.map +1 -1
- package/dist/ta/ichimoku.d.ts +1 -1
- package/dist/ta/ichimoku.js +3 -3
- package/dist/ta/ichimoku.js.map +1 -1
- package/dist/ta/index.js.map +1 -1
- package/dist/ta/kama.js +2 -2
- package/dist/ta/kama.js.map +1 -1
- package/dist/ta/keltner.js +2 -2
- package/dist/ta/keltner.js.map +1 -1
- package/dist/ta/klinger.js +2 -2
- package/dist/ta/klinger.js.map +1 -1
- package/dist/ta/kst.js +2 -2
- package/dist/ta/kst.js.map +1 -1
- package/dist/ta/lib/adxFromDi.js +2 -2
- package/dist/ta/lib/adxFromDi.js.map +1 -1
- package/dist/ta/lib/applyOffset.js +2 -2
- package/dist/ta/lib/applyOffset.js.map +1 -1
- package/dist/ta/lib/computeMa.js +2 -2
- package/dist/ta/lib/computeMa.js.map +1 -1
- package/dist/ta/lib/computeMaOfFloat64.js +2 -2
- package/dist/ta/lib/computeMaOfFloat64.js.map +1 -1
- package/dist/ta/lib/directionalState.js +2 -2
- package/dist/ta/lib/directionalState.js.map +1 -1
- package/dist/ta/lib/donchianMid.js +2 -2
- package/dist/ta/lib/donchianMid.js.map +1 -1
- package/dist/ta/lib/emaFloat64.js +2 -2
- package/dist/ta/lib/emaFloat64.js.map +1 -1
- package/dist/ta/lib/linearRegression.js +2 -2
- package/dist/ta/lib/linearRegression.js.map +1 -1
- package/dist/ta/lib/maTypes.js.map +1 -1
- package/dist/ta/lib/pearson.js +2 -2
- package/dist/ta/lib/pearson.js.map +1 -1
- package/dist/ta/lib/pickCandleSource.js +2 -2
- package/dist/ta/lib/pickCandleSource.js.map +1 -1
- package/dist/ta/lib/readSourceField.js +2 -2
- package/dist/ta/lib/readSourceField.js.map +1 -1
- package/dist/ta/lib/rollingStddev.js +2 -2
- package/dist/ta/lib/rollingStddev.js.map +1 -1
- package/dist/ta/lib/smaFloat64.js +2 -2
- package/dist/ta/lib/smaFloat64.js.map +1 -1
- package/dist/ta/lib/smmaFloat64.js +2 -2
- package/dist/ta/lib/smmaFloat64.js.map +1 -1
- package/dist/ta/lib/sourceValue.js.map +1 -1
- package/dist/ta/lib/trSeries.js +2 -2
- package/dist/ta/lib/trSeries.js.map +1 -1
- package/dist/ta/lib/volume-profile/bucketEdges.js.map +1 -1
- package/dist/ta/lib/volume-profile/bucketizeVolume.js.map +1 -1
- package/dist/ta/lib/volume-profile/developingSeries.js.map +1 -1
- package/dist/ta/lib/volume-profile/index.js.map +1 -1
- package/dist/ta/lib/volume-profile/intercept.js.map +1 -1
- package/dist/ta/lib/volume-profile/scaffold.js.map +1 -1
- package/dist/ta/lib/volume-profile/tooHeavy.js.map +1 -1
- package/dist/ta/lib/volume-profile/types.js.map +1 -1
- package/dist/ta/lib/volume-profile/valueArea.js.map +1 -1
- package/dist/ta/lib/volume-profile/volumeProfileShared.js.map +1 -1
- package/dist/ta/lib/vwmaFloat64.js +2 -2
- package/dist/ta/lib/vwmaFloat64.js.map +1 -1
- package/dist/ta/lib/wilderDirectional.js +2 -2
- package/dist/ta/lib/wilderDirectional.js.map +1 -1
- package/dist/ta/lib/wilderSmoothing.js +2 -2
- package/dist/ta/lib/wilderSmoothing.js.map +1 -1
- package/dist/ta/lib/wmaFloat64.js +2 -2
- package/dist/ta/lib/wmaFloat64.js.map +1 -1
- package/dist/ta/lowest.js +1 -1
- package/dist/ta/lowest.js.map +1 -1
- package/dist/ta/lsma.js +2 -2
- package/dist/ta/lsma.js.map +1 -1
- package/dist/ta/maRibbon.js +2 -2
- package/dist/ta/maRibbon.js.map +1 -1
- package/dist/ta/macd.d.ts +1 -1
- package/dist/ta/macd.js +4 -4
- package/dist/ta/macd.js.map +1 -1
- package/dist/ta/massIndex.d.ts +1 -1
- package/dist/ta/massIndex.js +3 -3
- package/dist/ta/massIndex.js.map +1 -1
- package/dist/ta/mcginley.js +2 -2
- package/dist/ta/mcginley.js.map +1 -1
- package/dist/ta/median.js +2 -2
- package/dist/ta/median.js.map +1 -1
- package/dist/ta/mfi.d.ts +1 -1
- package/dist/ta/mfi.js +3 -3
- package/dist/ta/mfi.js.map +1 -1
- package/dist/ta/momentum.js +2 -2
- package/dist/ta/momentum.js.map +1 -1
- package/dist/ta/netVolume.d.ts +1 -1
- package/dist/ta/netVolume.js +3 -3
- package/dist/ta/netVolume.js.map +1 -1
- package/dist/ta/nvi.d.ts +1 -1
- package/dist/ta/nvi.js +3 -3
- package/dist/ta/nvi.js.map +1 -1
- package/dist/ta/nz.js +1 -1
- package/dist/ta/nz.js.map +1 -1
- package/dist/ta/obv.js +2 -2
- package/dist/ta/obv.js.map +1 -1
- package/dist/ta/persistence.js.map +1 -1
- package/dist/ta/pivotsHighLow.js +2 -2
- package/dist/ta/pivotsHighLow.js.map +1 -1
- package/dist/ta/pivotsStandard.d.ts +1 -1
- package/dist/ta/pivotsStandard.js +3 -3
- package/dist/ta/pivotsStandard.js.map +1 -1
- package/dist/ta/pmo.js +2 -2
- package/dist/ta/pmo.js.map +1 -1
- package/dist/ta/ppo.d.ts +1 -1
- package/dist/ta/ppo.js +3 -3
- package/dist/ta/ppo.js.map +1 -1
- package/dist/ta/psar.js +2 -2
- package/dist/ta/psar.js.map +1 -1
- package/dist/ta/pvi.d.ts +1 -1
- package/dist/ta/pvi.js +3 -3
- package/dist/ta/pvi.js.map +1 -1
- package/dist/ta/pvo.d.ts +1 -1
- package/dist/ta/pvo.js +3 -3
- package/dist/ta/pvo.js.map +1 -1
- package/dist/ta/pvt.d.ts +1 -1
- package/dist/ta/pvt.js +3 -3
- package/dist/ta/pvt.js.map +1 -1
- package/dist/ta/registry.js.map +1 -1
- package/dist/ta/roc.js +2 -2
- package/dist/ta/roc.js.map +1 -1
- package/dist/ta/rsi.d.ts +1 -1
- package/dist/ta/rsi.js +3 -3
- package/dist/ta/rsi.js.map +1 -1
- package/dist/ta/rvgi.js +2 -2
- package/dist/ta/rvgi.js.map +1 -1
- package/dist/ta/rvi.d.ts +1 -1
- package/dist/ta/rvi.js +3 -3
- package/dist/ta/rvi.js.map +1 -1
- package/dist/ta/sessionVolumeProfile.js.map +1 -1
- package/dist/ta/sma.d.ts +1 -1
- package/dist/ta/sma.js +3 -3
- package/dist/ta/sma.js.map +1 -1
- package/dist/ta/smi.js +2 -2
- package/dist/ta/smi.js.map +1 -1
- package/dist/ta/smma.js +2 -2
- package/dist/ta/smma.js.map +1 -1
- package/dist/ta/stdev.d.ts +1 -1
- package/dist/ta/stdev.js +3 -3
- package/dist/ta/stdev.js.map +1 -1
- package/dist/ta/stoch.js +2 -2
- package/dist/ta/stoch.js.map +1 -1
- package/dist/ta/stochRsi.js +2 -2
- package/dist/ta/stochRsi.js.map +1 -1
- package/dist/ta/supertrend.d.ts +1 -1
- package/dist/ta/supertrend.js +3 -3
- package/dist/ta/supertrend.js.map +1 -1
- package/dist/ta/tema.js +2 -2
- package/dist/ta/tema.js.map +1 -1
- package/dist/ta/trendStrengthIndex.d.ts +2 -2
- package/dist/ta/trendStrengthIndex.js +4 -4
- package/dist/ta/trendStrengthIndex.js.map +1 -1
- package/dist/ta/trix.d.ts +1 -1
- package/dist/ta/trix.js +3 -3
- package/dist/ta/trix.js.map +1 -1
- package/dist/ta/tsi.js +2 -2
- package/dist/ta/tsi.js.map +1 -1
- package/dist/ta/ulcerIndex.js +2 -2
- package/dist/ta/ulcerIndex.js.map +1 -1
- package/dist/ta/ultimateOsc.js +2 -2
- package/dist/ta/ultimateOsc.js.map +1 -1
- package/dist/ta/valuewhen.js +1 -1
- package/dist/ta/valuewhen.js.map +1 -1
- package/dist/ta/visibleRangeVolumeProfile.d.ts +2 -2
- package/dist/ta/visibleRangeVolumeProfile.js +2 -2
- package/dist/ta/visibleRangeVolumeProfile.js.map +1 -1
- package/dist/ta/vol.js +2 -2
- package/dist/ta/vol.js.map +1 -1
- package/dist/ta/volatilityStop.d.ts +1 -1
- package/dist/ta/volatilityStop.js +3 -3
- package/dist/ta/volatilityStop.js.map +1 -1
- package/dist/ta/vortex.d.ts +1 -1
- package/dist/ta/vortex.js +3 -3
- package/dist/ta/vortex.js.map +1 -1
- package/dist/ta/vwap.d.ts +3 -3
- package/dist/ta/vwap.js +5 -5
- package/dist/ta/vwap.js.map +1 -1
- package/dist/ta/vwma.js +2 -2
- package/dist/ta/vwma.js.map +1 -1
- package/dist/ta/williamsFractal.js +2 -2
- package/dist/ta/williamsFractal.js.map +1 -1
- package/dist/ta/williamsR.js +2 -2
- package/dist/ta/williamsR.js.map +1 -1
- package/dist/ta/wma.js +2 -2
- package/dist/ta/wma.js.map +1 -1
- package/dist/ta/zigZag.js +2 -2
- package/dist/ta/zigZag.js.map +1 -1
- package/dist/views/barstateView.js.map +1 -1
- package/dist/views/index.js.map +1 -1
- package/dist/views/refreshRuntimeViews.js.map +1 -1
- package/dist/views/symInfoView.js.map +1 -1
- package/dist/views/timeframeView.js.map +1 -1
- package/package.json +7 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"threeDrivesPattern.js","sourceRoot":"","sources":["../../../../src/emit/draw/patterns/threeDrivesPattern.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAC/D,EAAE;AACF,oCAAoC;AACpC,6DAA6D;AAC7D,0CAA0C;AAC1C,4DAA4D;AAC5D,iBAAiB;AACjB,8EAA8E;AAC9E,
|
|
1
|
+
{"version":3,"file":"threeDrivesPattern.js","sourceRoot":"","sources":["../../../../src/emit/draw/patterns/threeDrivesPattern.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAC/D,EAAE;AACF,oCAAoC;AACpC,6DAA6D;AAC7D,0CAA0C;AAC1C,4DAA4D;AAC5D,iBAAiB;AACjB,8EAA8E;AAC9E,iCAAiC;AASjC,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEjD,MAAM,mBAAmB,GAAG,8DAA8D,CAAC;AAE3F,SAAS,sBAAsB,CAC3B,MAAc,EACd,OAAmB,EACnB,IAAmB;IAEnB,MAAM,GAAG,GAAG,sBAAsB,CAAC,OAAO,CAAC;IAC3C,IAAI,GAAG,KAAK,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACvD,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACrC,MAAM,KAAK,GAA4B;QACnC,IAAI,EAAE,sBAAsB;QAC5B,OAAO;QACP,KAAK,EAAE,IAAI;KACd,CAAC;IACF,OAAO,mBAAmB,CAAC,MAAM,EAAE,KAAK,EAAE,sBAAsB,EAAE,KAAK,CAAC,CAAC;AAC7E,CAAC;AA+CD;;;;;;;;;;GAUG;AACH,MAAM,UAAU,kBAAkB,CAC9B,IAAyB,EACzB,IAAiC,EACjC,IAAoB;IAEpB,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACzE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACzC,CAAC;IACD,OAAO,sBAAsB,CAAC,IAAI,EAAE,IAAkB,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;AACxE,CAAC","sourcesContent":["// Copyright (c) 2026 Invinite. Licensed under the MIT License.\n// See the LICENSE file in the repo root for full license text.\n//\n// Anchors + state shape ported from\n// invinite/shared/trading-chart-collab-yjs/y-doc-bridge.ts\n// (ThreeDrivesPatternDrawing), commit\n// 078f41fe2569d659d5aba726da8bcb5d3e2ced02, © Invinite.\n// Behaviour from\n// invinite/src/components/trading-chart/tools/three-drives-pattern-tool.ts.\n// Re-licensed MIT for chartlang.\n\nimport type {\n AnchorHept,\n DrawingHandle,\n LineDrawStyle,\n ThreeDrivesPatternState,\n} from \"@invinite-org/chartlang-core\";\n\nimport { ACTIVE_RUNTIME_CONTEXT } from \"../../../runtimeContext.js\";\nimport { createDrawingHandle } from \"../handle.js\";\nimport { nextSubId } from \"../subIdAllocator.js\";\n\nconst OUTSIDE_CTX_MESSAGE = \"draw.threeDrivesPattern called outside an active script step\";\n\nfunction threeDrivesPatternImpl(\n slotId: string,\n anchors: AnchorHept,\n opts: LineDrawStyle,\n): DrawingHandle {\n const ctx = ACTIVE_RUNTIME_CONTEXT.current;\n if (ctx === null) throw new Error(OUTSIDE_CTX_MESSAGE);\n const subId = nextSubId(ctx, slotId);\n const state: ThreeDrivesPatternState = {\n kind: \"three-drives-pattern\",\n anchors,\n style: opts,\n };\n return createDrawingHandle(slotId, subId, \"three-drives-pattern\", state);\n}\n\n/**\n * Draw a three-drives reversal pattern through 7 world anchors\n * `[start, drive1, retr1, drive2, retr2, drive3, end]`. The renderer\n * strokes the 6-leg open polyline and labels each pivot. Mirrors\n * invinite's `three-drives-pattern-tool.ts` shape.\n *\n * @anchors `anchors` — `[start, drive1, retr1, drive2, retr2, drive3, end]`\n * @anchorCount 7\n * @bucket polylines\n * @since 0.3\n * @stable\n * @example\n * import { defineIndicator } from \"@invinite-org/chartlang-core\";\n * export default defineIndicator({\n * name: \"draw.threeDrivesPattern demo\",\n * apiVersion: 1,\n * compute({ bar, draw }) {\n * draw.threeDrivesPattern([\n * { time: bar.time, price: bar.low },\n * { time: bar.time + 10_000, price: bar.high },\n * { time: bar.time + 20_000, price: bar.close },\n * { time: bar.time + 30_000, price: bar.high + 1 },\n * { time: bar.time + 40_000, price: bar.close + 0.5 },\n * { time: bar.time + 50_000, price: bar.high + 2 },\n * { time: bar.time + 60_000, price: bar.close + 1 },\n * ]);\n * },\n * });\n */\nexport function threeDrivesPattern(anchors: AnchorHept, opts?: LineDrawStyle): DrawingHandle;\n/**\n * Compiler-injected overload.\n *\n * @since 0.3\n * @stable\n * @example\n * // Internal — the compiler rewrites every script callsite.\n * // const fn: typeof threeDrivesPattern = threeDrivesPattern;\n * // void fn;\n */\nexport function threeDrivesPattern(\n slotId: string,\n anchors: AnchorHept,\n opts?: LineDrawStyle,\n): DrawingHandle;\n/**\n * Implementation signature for {@link threeDrivesPattern}. Branches on\n * `typeof arg1 === \"string\"` to dispatch the script-facing vs\n * compiler-injected overload.\n *\n * @since 0.3\n * @stable\n * @example\n * // const fn: typeof threeDrivesPattern = threeDrivesPattern;\n * // void fn;\n */\nexport function threeDrivesPattern(\n arg1: string | AnchorHept,\n arg2?: AnchorHept | LineDrawStyle,\n arg3?: LineDrawStyle,\n): DrawingHandle {\n if (typeof arg1 !== \"string\" || arg2 === undefined || !Array.isArray(arg2)) {\n throw new Error(OUTSIDE_CTX_MESSAGE);\n }\n return threeDrivesPatternImpl(arg1, arg2 as AnchorHept, arg3 ?? {});\n}\n"]}
|
|
@@ -3,7 +3,7 @@ import type { AnchorTriple, DrawingHandle, LineDrawStyle } from "@invinite-org/c
|
|
|
3
3
|
* Draw a triangle pattern (ascending / descending / symmetrical)
|
|
4
4
|
* through 3 world anchors `[apex, baseHigh, baseLow]`. The renderer
|
|
5
5
|
* strokes the 3-vertex closed polygon and labels each pivot.
|
|
6
|
-
* **Distinct from `draw.triangle`** (
|
|
6
|
+
* **Distinct from `draw.triangle`** (a solid-shape primitive
|
|
7
7
|
* with ShapeStyle); this is the harmonic-pattern outline with
|
|
8
8
|
* LineDrawStyle. Mirrors invinite's `triangle-pattern-tool.ts` shape.
|
|
9
9
|
*
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
// flagged as a Task-1 reshape follow-up. The kind is distinct from
|
|
14
14
|
// `draw.triangle` (Task 6), a 3-anchor solid-shape primitive — this
|
|
15
15
|
// is the 3-anchor harmonic-pattern outline.
|
|
16
|
-
// Re-licensed MIT for chartlang.
|
|
16
|
+
// Re-licensed MIT for chartlang.
|
|
17
17
|
import { ACTIVE_RUNTIME_CONTEXT } from "../../../runtimeContext.js";
|
|
18
18
|
import { createDrawingHandle } from "../handle.js";
|
|
19
19
|
import { nextSubId } from "../subIdAllocator.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trianglePattern.js","sourceRoot":"","sources":["../../../../src/emit/draw/patterns/trianglePattern.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAC/D,EAAE;AACF,oCAAoC;AACpC,6DAA6D;AAC7D,uCAAuC;AACvC,4DAA4D;AAC5D,iBAAiB;AACjB,0EAA0E;AAC1E,mEAAmE;AACnE,kEAAkE;AAClE,iEAAiE;AACjE,mEAAmE;AACnE,oEAAoE;AACpE,4CAA4C;AAC5C,
|
|
1
|
+
{"version":3,"file":"trianglePattern.js","sourceRoot":"","sources":["../../../../src/emit/draw/patterns/trianglePattern.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAC/D,EAAE;AACF,oCAAoC;AACpC,6DAA6D;AAC7D,uCAAuC;AACvC,4DAA4D;AAC5D,iBAAiB;AACjB,0EAA0E;AAC1E,mEAAmE;AACnE,kEAAkE;AAClE,iEAAiE;AACjE,mEAAmE;AACnE,oEAAoE;AACpE,4CAA4C;AAC5C,iCAAiC;AASjC,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEjD,MAAM,mBAAmB,GAAG,2DAA2D,CAAC;AAExF,SAAS,mBAAmB,CACxB,MAAc,EACd,OAAqB,EACrB,IAAmB;IAEnB,MAAM,GAAG,GAAG,sBAAsB,CAAC,OAAO,CAAC;IAC3C,IAAI,GAAG,KAAK,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACvD,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACrC,MAAM,KAAK,GAAyB;QAChC,IAAI,EAAE,kBAAkB;QACxB,OAAO;QACP,KAAK,EAAE,IAAI;KACd,CAAC;IACF,OAAO,mBAAmB,CAAC,MAAM,EAAE,KAAK,EAAE,kBAAkB,EAAE,KAAK,CAAC,CAAC;AACzE,CAAC;AA6CD;;;;;;;;;;GAUG;AACH,MAAM,UAAU,eAAe,CAC3B,IAA2B,EAC3B,IAAmC,EACnC,IAAoB;IAEpB,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACzE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACzC,CAAC;IACD,OAAO,mBAAmB,CAAC,IAAI,EAAE,IAAoB,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;AACvE,CAAC","sourcesContent":["// Copyright (c) 2026 Invinite. Licensed under the MIT License.\n// See the LICENSE file in the repo root for full license text.\n//\n// Anchors + state shape ported from\n// invinite/shared/trading-chart-collab-yjs/y-doc-bridge.ts\n// (TrianglePatternDrawing), commit\n// 078f41fe2569d659d5aba726da8bcb5d3e2ced02, © Invinite.\n// Behaviour from\n// invinite/src/components/trading-chart/tools/triangle-pattern-tool.ts.\n// Note: invinite's full schema carries 4 anchors (a, b, c, d). The\n// landed Task-1 `TrianglePatternState.anchors: AnchorTriple` is a\n// 3-anchor shell `[apex, baseHigh, baseLow]` — the 4th anchor is\n// flagged as a Task-1 reshape follow-up. The kind is distinct from\n// `draw.triangle` (Task 6), a 3-anchor solid-shape primitive — this\n// is the 3-anchor harmonic-pattern outline.\n// Re-licensed MIT for chartlang.\n\nimport type {\n AnchorTriple,\n DrawingHandle,\n LineDrawStyle,\n TrianglePatternState,\n} from \"@invinite-org/chartlang-core\";\n\nimport { ACTIVE_RUNTIME_CONTEXT } from \"../../../runtimeContext.js\";\nimport { createDrawingHandle } from \"../handle.js\";\nimport { nextSubId } from \"../subIdAllocator.js\";\n\nconst OUTSIDE_CTX_MESSAGE = \"draw.trianglePattern called outside an active script step\";\n\nfunction trianglePatternImpl(\n slotId: string,\n anchors: AnchorTriple,\n opts: LineDrawStyle,\n): DrawingHandle {\n const ctx = ACTIVE_RUNTIME_CONTEXT.current;\n if (ctx === null) throw new Error(OUTSIDE_CTX_MESSAGE);\n const subId = nextSubId(ctx, slotId);\n const state: TrianglePatternState = {\n kind: \"triangle-pattern\",\n anchors,\n style: opts,\n };\n return createDrawingHandle(slotId, subId, \"triangle-pattern\", state);\n}\n\n/**\n * Draw a triangle pattern (ascending / descending / symmetrical)\n * through 3 world anchors `[apex, baseHigh, baseLow]`. The renderer\n * strokes the 3-vertex closed polygon and labels each pivot.\n * **Distinct from `draw.triangle`** (a solid-shape primitive\n * with ShapeStyle); this is the harmonic-pattern outline with\n * LineDrawStyle. Mirrors invinite's `triangle-pattern-tool.ts` shape.\n *\n * @anchors `anchors` — `[apex, baseHigh, baseLow]` triple\n * @anchorCount 3\n * @bucket polylines\n * @since 0.3\n * @stable\n * @example\n * import { defineIndicator } from \"@invinite-org/chartlang-core\";\n * export default defineIndicator({\n * name: \"draw.trianglePattern demo\",\n * apiVersion: 1,\n * compute({ bar, draw }) {\n * draw.trianglePattern([\n * { time: bar.time + 60_000, price: bar.close },\n * { time: bar.time, price: bar.high },\n * { time: bar.time, price: bar.low },\n * ]);\n * },\n * });\n */\nexport function trianglePattern(anchors: AnchorTriple, opts?: LineDrawStyle): DrawingHandle;\n/**\n * Compiler-injected overload.\n *\n * @since 0.3\n * @stable\n * @example\n * // Internal — the compiler rewrites every script callsite.\n * // const fn: typeof trianglePattern = trianglePattern;\n * // void fn;\n */\nexport function trianglePattern(\n slotId: string,\n anchors: AnchorTriple,\n opts?: LineDrawStyle,\n): DrawingHandle;\n/**\n * Implementation signature for {@link trianglePattern}. Branches on\n * `typeof arg1 === \"string\"` to dispatch the script-facing vs\n * compiler-injected overload.\n *\n * @since 0.3\n * @stable\n * @example\n * // const fn: typeof trianglePattern = trianglePattern;\n * // void fn;\n */\nexport function trianglePattern(\n arg1: string | AnchorTriple,\n arg2?: AnchorTriple | LineDrawStyle,\n arg3?: LineDrawStyle,\n): DrawingHandle {\n if (typeof arg1 !== \"string\" || arg2 === undefined || !Array.isArray(arg2)) {\n throw new Error(OUTSIDE_CTX_MESSAGE);\n }\n return trianglePatternImpl(arg1, arg2 as AnchorTriple, arg3 ?? {});\n}\n"]}
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
// 078f41fe2569d659d5aba726da8bcb5d3e2ced02, © Invinite.
|
|
8
8
|
// Behaviour from
|
|
9
9
|
// invinite/src/components/trading-chart/tools/xabcd-pattern-tool.ts.
|
|
10
|
-
// Re-licensed MIT for chartlang.
|
|
10
|
+
// Re-licensed MIT for chartlang.
|
|
11
11
|
import { ACTIVE_RUNTIME_CONTEXT } from "../../../runtimeContext.js";
|
|
12
12
|
import { createDrawingHandle } from "../handle.js";
|
|
13
13
|
import { nextSubId } from "../subIdAllocator.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"xabcdPattern.js","sourceRoot":"","sources":["../../../../src/emit/draw/patterns/xabcdPattern.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAC/D,EAAE;AACF,oCAAoC;AACpC,6DAA6D;AAC7D,oCAAoC;AACpC,4DAA4D;AAC5D,iBAAiB;AACjB,uEAAuE;AACvE,
|
|
1
|
+
{"version":3,"file":"xabcdPattern.js","sourceRoot":"","sources":["../../../../src/emit/draw/patterns/xabcdPattern.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAC/D,EAAE;AACF,oCAAoC;AACpC,6DAA6D;AAC7D,oCAAoC;AACpC,4DAA4D;AAC5D,iBAAiB;AACjB,uEAAuE;AACvE,iCAAiC;AASjC,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEjD,MAAM,mBAAmB,GAAG,wDAAwD,CAAC;AAErF,SAAS,gBAAgB,CACrB,MAAc,EACd,OAAoB,EACpB,IAAmB;IAEnB,MAAM,GAAG,GAAG,sBAAsB,CAAC,OAAO,CAAC;IAC3C,IAAI,GAAG,KAAK,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACvD,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACrC,MAAM,KAAK,GAAsB,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IACjF,OAAO,mBAAmB,CAAC,MAAM,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,CAAC,CAAC;AACtE,CAAC;AA6CD;;;;;;;;;;GAUG;AACH,MAAM,UAAU,YAAY,CACxB,IAA0B,EAC1B,IAAkC,EAClC,IAAoB;IAEpB,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACzE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACzC,CAAC;IACD,OAAO,gBAAgB,CAAC,IAAI,EAAE,IAAmB,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;AACnE,CAAC","sourcesContent":["// Copyright (c) 2026 Invinite. Licensed under the MIT License.\n// See the LICENSE file in the repo root for full license text.\n//\n// Anchors + state shape ported from\n// invinite/shared/trading-chart-collab-yjs/y-doc-bridge.ts\n// (XabcdPatternDrawing), commit\n// 078f41fe2569d659d5aba726da8bcb5d3e2ced02, © Invinite.\n// Behaviour from\n// invinite/src/components/trading-chart/tools/xabcd-pattern-tool.ts.\n// Re-licensed MIT for chartlang.\n\nimport type {\n AnchorQuint,\n DrawingHandle,\n LineDrawStyle,\n XabcdPatternState,\n} from \"@invinite-org/chartlang-core\";\n\nimport { ACTIVE_RUNTIME_CONTEXT } from \"../../../runtimeContext.js\";\nimport { createDrawingHandle } from \"../handle.js\";\nimport { nextSubId } from \"../subIdAllocator.js\";\n\nconst OUTSIDE_CTX_MESSAGE = \"draw.xabcdPattern called outside an active script step\";\n\nfunction xabcdPatternImpl(\n slotId: string,\n anchors: AnchorQuint,\n opts: LineDrawStyle,\n): DrawingHandle {\n const ctx = ACTIVE_RUNTIME_CONTEXT.current;\n if (ctx === null) throw new Error(OUTSIDE_CTX_MESSAGE);\n const subId = nextSubId(ctx, slotId);\n const state: XabcdPatternState = { kind: \"xabcd-pattern\", anchors, style: opts };\n return createDrawingHandle(slotId, subId, \"xabcd-pattern\", state);\n}\n\n/**\n * Draw an XABCD harmonic pattern through 5 world anchors `[X, A, B, C,\n * D]`. The renderer strokes the connecting legs (X-A, A-B, B-C, C-D)\n * and labels each pivot. Mirrors invinite's `xabcd-pattern-tool.ts`\n * shape.\n *\n * @anchors `anchors` — `[X, A, B, C, D]` quint of world points\n * @anchorCount 5\n * @bucket polylines\n * @since 0.3\n * @stable\n * @example\n * import { defineIndicator } from \"@invinite-org/chartlang-core\";\n * export default defineIndicator({\n * name: \"draw.xabcdPattern demo\",\n * apiVersion: 1,\n * compute({ bar, draw }) {\n * draw.xabcdPattern([\n * { time: bar.time, price: bar.low },\n * { time: bar.time + 15_000, price: bar.high },\n * { time: bar.time + 30_000, price: bar.close },\n * { time: bar.time + 45_000, price: bar.high - 1 },\n * { time: bar.time + 60_000, price: bar.low + 1 },\n * ]);\n * },\n * });\n */\nexport function xabcdPattern(anchors: AnchorQuint, opts?: LineDrawStyle): DrawingHandle;\n/**\n * Compiler-injected overload.\n *\n * @since 0.3\n * @stable\n * @example\n * // Internal — the compiler rewrites every script callsite.\n * // const fn: typeof xabcdPattern = xabcdPattern;\n * // void fn;\n */\nexport function xabcdPattern(\n slotId: string,\n anchors: AnchorQuint,\n opts?: LineDrawStyle,\n): DrawingHandle;\n/**\n * Implementation signature for {@link xabcdPattern}. Branches on\n * `typeof arg1 === \"string\"` to dispatch the script-facing vs\n * compiler-injected overload.\n *\n * @since 0.3\n * @stable\n * @example\n * // const fn: typeof xabcdPattern = xabcdPattern;\n * // void fn;\n */\nexport function xabcdPattern(\n arg1: string | AnchorQuint,\n arg2?: AnchorQuint | LineDrawStyle,\n arg3?: LineDrawStyle,\n): DrawingHandle {\n if (typeof arg1 !== \"string\" || arg2 === undefined || !Array.isArray(arg2)) {\n throw new Error(OUTSIDE_CTX_MESSAGE);\n }\n return xabcdPatternImpl(arg1, arg2 as AnchorQuint, arg3 ?? {});\n}\n"]}
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
// 078f41fe2569d659d5aba726da8bcb5d3e2ced02, © Invinite.
|
|
8
8
|
// Behaviour from
|
|
9
9
|
// invinite/src/components/trading-chart/tools/pitchfan-tool.ts.
|
|
10
|
-
// Re-licensed MIT for chartlang.
|
|
10
|
+
// Re-licensed MIT for chartlang.
|
|
11
11
|
import { ACTIVE_RUNTIME_CONTEXT } from "../../../runtimeContext.js";
|
|
12
12
|
import { createDrawingHandle } from "../handle.js";
|
|
13
13
|
import { nextSubId } from "../subIdAllocator.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pitchfan.js","sourceRoot":"","sources":["../../../../src/emit/draw/pitchforks/pitchfan.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAC/D,EAAE;AACF,oCAAoC;AACpC,6DAA6D;AAC7D,gCAAgC;AAChC,4DAA4D;AAC5D,iBAAiB;AACjB,kEAAkE;AAClE,
|
|
1
|
+
{"version":3,"file":"pitchfan.js","sourceRoot":"","sources":["../../../../src/emit/draw/pitchforks/pitchfan.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAC/D,EAAE;AACF,oCAAoC;AACpC,6DAA6D;AAC7D,gCAAgC;AAChC,4DAA4D;AAC5D,iBAAiB;AACjB,kEAAkE;AAClE,iCAAiC;AASjC,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEjD,MAAM,mBAAmB,GAAG,oDAAoD,CAAC;AAEjF,SAAS,YAAY,CAAC,MAAc,EAAE,OAAqB,EAAE,IAAmB;IAC5E,MAAM,GAAG,GAAG,sBAAsB,CAAC,OAAO,CAAC;IAC3C,IAAI,GAAG,KAAK,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACvD,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACrC,MAAM,KAAK,GAAkB,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IACxE,OAAO,mBAAmB,CAAC,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;AACjE,CAAC;AA2CD;;;;;;;;;;GAUG;AACH,MAAM,UAAU,QAAQ,CACpB,IAA2B,EAC3B,IAAmC,EACnC,IAAoB;IAEpB,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACzE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACzC,CAAC;IACD,OAAO,YAAY,CAAC,IAAI,EAAE,IAAoB,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;AAChE,CAAC","sourcesContent":["// Copyright (c) 2026 Invinite. Licensed under the MIT License.\n// See the LICENSE file in the repo root for full license text.\n//\n// Anchors + state shape ported from\n// invinite/shared/trading-chart-collab-yjs/y-doc-bridge.ts\n// (PitchfanDrawing), commit\n// 078f41fe2569d659d5aba726da8bcb5d3e2ced02, © Invinite.\n// Behaviour from\n// invinite/src/components/trading-chart/tools/pitchfan-tool.ts.\n// Re-licensed MIT for chartlang.\n\nimport type {\n AnchorTriple,\n DrawingHandle,\n LineDrawStyle,\n PitchfanState,\n} from \"@invinite-org/chartlang-core\";\n\nimport { ACTIVE_RUNTIME_CONTEXT } from \"../../../runtimeContext.js\";\nimport { createDrawingHandle } from \"../handle.js\";\nimport { nextSubId } from \"../subIdAllocator.js\";\n\nconst OUTSIDE_CTX_MESSAGE = \"draw.pitchfan called outside an active script step\";\n\nfunction pitchfanImpl(slotId: string, anchors: AnchorTriple, opts: LineDrawStyle): DrawingHandle {\n const ctx = ACTIVE_RUNTIME_CONTEXT.current;\n if (ctx === null) throw new Error(OUTSIDE_CTX_MESSAGE);\n const subId = nextSubId(ctx, slotId);\n const state: PitchfanState = { kind: \"pitchfan\", anchors, style: opts };\n return createDrawingHandle(slotId, subId, \"pitchfan\", state);\n}\n\n/**\n * Draw a pitchfan — three rays from `anchors[0]` through `anchors[1]`,\n * `midpoint(anchors[1], anchors[2])`, and `anchors[2]`. Unlike a\n * pitchfork the rays diverge from a single pivot rather than forming\n * parallel rails. Mirrors invinite's `pitchfan-tool.ts` shape.\n *\n * @anchors `anchors` — `[pivot, high, low]` triple\n * @anchorCount 3\n * @bucket polylines\n * @since 0.3\n * @stable\n * @example\n * import { defineIndicator } from \"@invinite-org/chartlang-core\";\n * export default defineIndicator({\n * name: \"draw.pitchfan demo\",\n * apiVersion: 1,\n * compute({ bar, draw }) {\n * draw.pitchfan([\n * { time: bar.time, price: bar.low },\n * { time: bar.time + 30_000, price: bar.high },\n * { time: bar.time + 60_000, price: bar.close },\n * ]);\n * },\n * });\n */\nexport function pitchfan(anchors: AnchorTriple, opts?: LineDrawStyle): DrawingHandle;\n/**\n * Compiler-injected overload.\n *\n * @since 0.3\n * @stable\n * @example\n * // Internal — the compiler rewrites every script callsite.\n * // const fn: typeof pitchfan = pitchfan;\n * // void fn;\n */\nexport function pitchfan(\n slotId: string,\n anchors: AnchorTriple,\n opts?: LineDrawStyle,\n): DrawingHandle;\n/**\n * Implementation signature for {@link pitchfan}. Branches on\n * `typeof arg1 === \"string\"` to dispatch the script-facing vs\n * compiler-injected overload.\n *\n * @since 0.3\n * @stable\n * @example\n * // const fn: typeof pitchfan = pitchfan;\n * // void fn;\n */\nexport function pitchfan(\n arg1: string | AnchorTriple,\n arg2?: AnchorTriple | LineDrawStyle,\n arg3?: LineDrawStyle,\n): DrawingHandle {\n if (typeof arg1 !== \"string\" || arg2 === undefined || !Array.isArray(arg2)) {\n throw new Error(OUTSIDE_CTX_MESSAGE);\n }\n return pitchfanImpl(arg1, arg2 as AnchorTriple, arg3 ?? {});\n}\n"]}
|
|
@@ -11,7 +11,7 @@ type PitchforkOpts = LineDrawStyle & {
|
|
|
11
11
|
* `"modifiedSchiff"` (median origin at `mid(a, b)`); `"inside"`
|
|
12
12
|
* (median origin at `mid(b, c)` with the `(a → mid(a, b))` direction).
|
|
13
13
|
* Default variant: `"standard"`. Mirrors invinite's four pitchfork
|
|
14
|
-
* tools collapsed into one kind
|
|
14
|
+
* tools collapsed into one kind.
|
|
15
15
|
*
|
|
16
16
|
* @anchors `anchors` — `[pivot, high, low]` triple
|
|
17
17
|
* @anchorCount 3
|
|
@@ -10,8 +10,8 @@
|
|
|
10
10
|
// invinite/src/components/trading-chart/tools/schiff-pitchfork-tool.ts +
|
|
11
11
|
// invinite/src/components/trading-chart/tools/modified-schiff-pitchfork-tool.ts +
|
|
12
12
|
// invinite/src/components/trading-chart/tools/inside-pitchfork-tool.ts
|
|
13
|
-
// (4 tools collapsed into one kind
|
|
14
|
-
// Re-licensed MIT for chartlang.
|
|
13
|
+
// (4 tools collapsed into one kind).
|
|
14
|
+
// Re-licensed MIT for chartlang.
|
|
15
15
|
import { ACTIVE_RUNTIME_CONTEXT } from "../../../runtimeContext.js";
|
|
16
16
|
import { createDrawingHandle } from "../handle.js";
|
|
17
17
|
import { nextSubId } from "../subIdAllocator.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pitchfork.js","sourceRoot":"","sources":["../../../../src/emit/draw/pitchforks/pitchfork.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAC/D,EAAE;AACF,oCAAoC;AACpC,6DAA6D;AAC7D,oDAAoD;AACpD,4DAA4D;AAC5D,iBAAiB;AACjB,oEAAoE;AACpE,2EAA2E;AAC3E,oFAAoF;AACpF,yEAAyE;AACzE,
|
|
1
|
+
{"version":3,"file":"pitchfork.js","sourceRoot":"","sources":["../../../../src/emit/draw/pitchforks/pitchfork.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAC/D,EAAE;AACF,oCAAoC;AACpC,6DAA6D;AAC7D,oDAAoD;AACpD,4DAA4D;AAC5D,iBAAiB;AACjB,oEAAoE;AACpE,2EAA2E;AAC3E,oFAAoF;AACpF,yEAAyE;AACzE,uCAAuC;AACvC,iCAAiC;AASjC,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEjD,MAAM,mBAAmB,GAAG,qDAAqD,CAAC;AAMlF,SAAS,aAAa,CAAC,MAAc,EAAE,OAAqB,EAAE,IAAmB;IAC7E,MAAM,GAAG,GAAG,sBAAsB,CAAC,OAAO,CAAC;IAC3C,IAAI,GAAG,KAAK,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACvD,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACrC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,KAAK,EAAE,GAAG,IAAI,CAAC;IAC/C,MAAM,KAAK,GAAmB;QAC1B,IAAI,EAAE,WAAW;QACjB,OAAO;QACP,OAAO,EAAE,UAAU,IAAI,UAAU;QACjC,KAAK;KACR,CAAC;IACF,OAAO,mBAAmB,CAAC,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;AAClE,CAAC;AAkDD;;;;;;;;;;GAUG;AACH,MAAM,UAAU,SAAS,CACrB,IAA2B,EAC3B,IAAmC,EACnC,IAAoB;IAEpB,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACzE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACzC,CAAC;IACD,OAAO,aAAa,CAAC,IAAI,EAAE,IAAoB,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;AACjE,CAAC","sourcesContent":["// Copyright (c) 2026 Invinite. Licensed under the MIT License.\n// See the LICENSE file in the repo root for full license text.\n//\n// Anchors + state shape ported from\n// invinite/shared/trading-chart-collab-yjs/y-doc-bridge.ts\n// (PitchforkDrawing + PitchforkVariant), commit\n// 078f41fe2569d659d5aba726da8bcb5d3e2ced02, © Invinite.\n// Behaviour from\n// invinite/src/components/trading-chart/tools/pitchfork-tool.ts +\n// invinite/src/components/trading-chart/tools/schiff-pitchfork-tool.ts +\n// invinite/src/components/trading-chart/tools/modified-schiff-pitchfork-tool.ts +\n// invinite/src/components/trading-chart/tools/inside-pitchfork-tool.ts\n// (4 tools collapsed into one kind).\n// Re-licensed MIT for chartlang.\n\nimport type {\n AnchorTriple,\n DrawingHandle,\n LineDrawStyle,\n PitchforkState,\n} from \"@invinite-org/chartlang-core\";\n\nimport { ACTIVE_RUNTIME_CONTEXT } from \"../../../runtimeContext.js\";\nimport { createDrawingHandle } from \"../handle.js\";\nimport { nextSubId } from \"../subIdAllocator.js\";\n\nconst OUTSIDE_CTX_MESSAGE = \"draw.pitchfork called outside an active script step\";\n\ntype PitchforkVariant = PitchforkState[\"variant\"];\n\ntype PitchforkOpts = LineDrawStyle & { readonly variant?: PitchforkVariant };\n\nfunction pitchforkImpl(slotId: string, anchors: AnchorTriple, opts: PitchforkOpts): DrawingHandle {\n const ctx = ACTIVE_RUNTIME_CONTEXT.current;\n if (ctx === null) throw new Error(OUTSIDE_CTX_MESSAGE);\n const subId = nextSubId(ctx, slotId);\n const { variant: variantOpt, ...style } = opts;\n const state: PitchforkState = {\n kind: \"pitchfork\",\n anchors,\n variant: variantOpt ?? \"standard\",\n style,\n };\n return createDrawingHandle(slotId, subId, \"pitchfork\", state);\n}\n\n/**\n * Draw an Andrews pitchfork from three world anchors `[a, b, c]`. The\n * `variant` opt selects one of four median-origin formulas:\n * `\"standard\"` (median from `a` to `mid(b, c)`); `\"schiff\"` (median\n * origin at `(a.time, mid(a.price, mid(b, c).price))`);\n * `\"modifiedSchiff\"` (median origin at `mid(a, b)`); `\"inside\"`\n * (median origin at `mid(b, c)` with the `(a → mid(a, b))` direction).\n * Default variant: `\"standard\"`. Mirrors invinite's four pitchfork\n * tools collapsed into one kind.\n *\n * @anchors `anchors` — `[pivot, high, low]` triple\n * @anchorCount 3\n * @bucket polylines\n * @since 0.3\n * @stable\n * @example\n * import { defineIndicator } from \"@invinite-org/chartlang-core\";\n * export default defineIndicator({\n * name: \"draw.pitchfork demo\",\n * apiVersion: 1,\n * compute({ bar, draw }) {\n * draw.pitchfork(\n * [\n * { time: bar.time, price: bar.low },\n * { time: bar.time + 30_000, price: bar.high },\n * { time: bar.time + 60_000, price: bar.close },\n * ],\n * { variant: \"modifiedSchiff\" },\n * );\n * },\n * });\n */\nexport function pitchfork(anchors: AnchorTriple, opts?: PitchforkOpts): DrawingHandle;\n/**\n * Compiler-injected overload.\n *\n * @since 0.3\n * @stable\n * @example\n * // Internal — the compiler rewrites every script callsite.\n * // const fn: typeof pitchfork = pitchfork;\n * // void fn;\n */\nexport function pitchfork(\n slotId: string,\n anchors: AnchorTriple,\n opts?: PitchforkOpts,\n): DrawingHandle;\n/**\n * Implementation signature for {@link pitchfork}. Branches on\n * `typeof arg1 === \"string\"` to dispatch the script-facing vs\n * compiler-injected overload.\n *\n * @since 0.3\n * @stable\n * @example\n * // const fn: typeof pitchfork = pitchfork;\n * // void fn;\n */\nexport function pitchfork(\n arg1: string | AnchorTriple,\n arg2?: AnchorTriple | PitchforkOpts,\n arg3?: PitchforkOpts,\n): DrawingHandle {\n if (typeof arg1 !== \"string\" || arg2 === undefined || !Array.isArray(arg2)) {\n throw new Error(OUTSIDE_CTX_MESSAGE);\n }\n return pitchforkImpl(arg1, arg2 as AnchorTriple, arg3 ?? {});\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pushDrawing.js","sourceRoot":"","sources":["../../../src/emit/draw/pushDrawing.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pushDrawing.js","sourceRoot":"","sources":["../../../src/emit/draw/pushDrawing.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) 2026 Invinite. Licensed under the MIT License.\n// See the LICENSE file in the repo root for full license text.\n\nimport type { DrawingEmission } from \"@invinite-org/chartlang-adapter-kit\";\nimport { validateEmission } from \"@invinite-org/chartlang-adapter-kit\";\nimport { bucketFor, type DrawingBucket } from \"@invinite-org/chartlang-core\";\n\nimport type { RuntimeContext } from \"../../runtimeContext.js\";\nimport { pushDiagnostic } from \"../emissionsQueue.js\";\n\nfunction effectiveBudget(ctx: RuntimeContext, bucket: DrawingBucket): number {\n const adapterCap = ctx.capabilities.maxDrawingsPerScript[bucket];\n const scriptCap = ctx.scriptMaxDrawings?.[bucket] ?? Number.POSITIVE_INFINITY;\n return Math.min(adapterCap, scriptCap);\n}\n\n/**\n * Push a {@link DrawingEmission} through the §10/§7.4 enforcement\n * pipeline:\n *\n * 1. **Capability gate** — drop with `unsupported-drawing-kind` if\n * `ctx.capabilities.drawings` does not include `e.drawingKind`.\n * 2. **Wire-shape validation** — drop with `malformed-emission`\n * (or `unsupported-drawing-kind` for unknown kinds) if\n * `validateEmission` rejects the payload. Adapter-kit ships\n * per-kind validators (Task 2 + per-port tasks 5–18); unknown\n * kinds fail at step 1 before reaching here.\n * 3. **Bucket budget** — on `op: \"create\"`, drop with\n * `drawing-budget-exceeded` if the bucket counter has reached\n * its effective cap (`min(scriptMaxDrawings, adapter cap)`).\n * On success, increment the counter. On `op: \"remove\"`,\n * decrement (clamped at zero). `op: \"update\"` is free.\n * 4. **Per-bar `(handleId, bar)` dedup** — replace any prior\n * in-bar emission for the same handle (last-write-wins).\n *\n * On any drop path, the original emission does not reach\n * `ctx.emissions.drawings`; a diagnostic with the appropriate code\n * lands on `ctx.emissions.diagnostics` instead.\n *\n * @since 0.3\n * @stable\n * @example\n * // import { pushDrawing } from \"@invinite-org/chartlang-runtime\";\n * // pushDrawing(ctx, {\n * // kind: \"drawing\",\n * // handleId: \"x.chart.ts:1:1#0\",\n * // drawingKind: \"line\",\n * // op: \"create\",\n * // state: {\n * // kind: \"line\",\n * // anchors: [{ time: 0, price: 0 }, { time: 1, price: 1 }],\n * // style: {},\n * // },\n * // bar: 0,\n * // time: 0,\n * // });\n */\nexport function pushDrawing(ctx: RuntimeContext, e: DrawingEmission): void {\n if (!ctx.capabilities.drawings.has(e.drawingKind)) {\n pushDiagnostic(ctx.emissions, {\n kind: \"diagnostic\",\n severity: \"warning\",\n code: \"unsupported-drawing-kind\",\n message: `Adapter cannot render drawing kind \"${e.drawingKind}\".`,\n slotId: e.handleId,\n bar: e.bar,\n });\n return;\n }\n\n const validation = validateEmission(e);\n if (!validation.ok) {\n pushDiagnostic(ctx.emissions, {\n kind: \"diagnostic\",\n severity: \"warning\",\n code: validation.code,\n message: validation.message,\n slotId: e.handleId,\n bar: e.bar,\n });\n return;\n }\n\n const bucket = bucketFor(e.drawingKind);\n if (e.op === \"create\") {\n const used = ctx.drawingBucketCounters[bucket];\n const cap = effectiveBudget(ctx, bucket);\n if (used >= cap) {\n pushDiagnostic(ctx.emissions, {\n kind: \"diagnostic\",\n severity: \"warning\",\n code: \"drawing-budget-exceeded\",\n message: `Bucket '${bucket}' budget (${cap}) exhausted; drawing dropped.`,\n slotId: e.handleId,\n bar: e.bar,\n });\n return;\n }\n ctx.drawingBucketCounters[bucket] = used + 1;\n } else if (e.op === \"remove\") {\n const used = ctx.drawingBucketCounters[bucket];\n ctx.drawingBucketCounters[bucket] = Math.max(0, used - 1);\n }\n\n const drawings = ctx.emissions.drawings;\n for (let i = drawings.length - 1; i >= 0; i -= 1) {\n const existing = drawings[i];\n if (existing.handleId === e.handleId && existing.bar === e.bar) {\n drawings[i] = e;\n return;\n }\n }\n drawings.push(e);\n}\n"]}
|
|
@@ -9,7 +9,7 @@ import type { RuntimeContext } from "../../runtimeContext.js";
|
|
|
9
9
|
* {@link resetSubIdCounters} clears every counter at the top of every
|
|
10
10
|
* `onBarClose` / `onBarTick`, so iteration `i` across bars at the same
|
|
11
11
|
* callsite yields the same sub-id — that's the cross-bar handle
|
|
12
|
-
* stability contract
|
|
12
|
+
* stability contract.
|
|
13
13
|
*
|
|
14
14
|
* @since 0.3
|
|
15
15
|
* @stable
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
* {@link resetSubIdCounters} clears every counter at the top of every
|
|
11
11
|
* `onBarClose` / `onBarTick`, so iteration `i` across bars at the same
|
|
12
12
|
* callsite yields the same sub-id — that's the cross-bar handle
|
|
13
|
-
* stability contract
|
|
13
|
+
* stability contract.
|
|
14
14
|
*
|
|
15
15
|
* @since 0.3
|
|
16
16
|
* @stable
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subIdAllocator.js","sourceRoot":"","sources":["../../../src/emit/draw/subIdAllocator.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAI/D;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,SAAS,CAAC,GAAmB,EAAE,MAAc;IACzD,MAAM,QAAQ,GAAG,GAAG,CAAC,oBAAoB,CAAC;IAC1C,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC1C,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,GAAG,CAAC,CAAC,CAAC;IAClC,OAAO,OAAO,CAAC;AACnB,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,kBAAkB,CAAC,GAAmB;IAClD,GAAG,CAAC,oBAAoB,CAAC,KAAK,EAAE,CAAC;AACrC,CAAC"}
|
|
1
|
+
{"version":3,"file":"subIdAllocator.js","sourceRoot":"","sources":["../../../src/emit/draw/subIdAllocator.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAI/D;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,SAAS,CAAC,GAAmB,EAAE,MAAc;IACzD,MAAM,QAAQ,GAAG,GAAG,CAAC,oBAAoB,CAAC;IAC1C,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC1C,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,GAAG,CAAC,CAAC,CAAC;IAClC,OAAO,OAAO,CAAC;AACnB,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,kBAAkB,CAAC,GAAmB;IAClD,GAAG,CAAC,oBAAoB,CAAC,KAAK,EAAE,CAAC;AACrC,CAAC","sourcesContent":["// Copyright (c) 2026 Invinite. Licensed under the MIT License.\n// See the LICENSE file in the repo root for full license text.\n\nimport type { RuntimeContext } from \"../../runtimeContext.js\";\n\n/**\n * Return the next sub-id for a given compiler-injected `slotId` within\n * the current bar, then increment the counter. The first call inside a\n * bar yields `0`; the N-th call at the same callsite yields `N-1`.\n *\n * A script's `for (let i = 0; i < N; i++) draw.text(...)` loop produces\n * N stable handles keyed `<slotId>#0` ... `<slotId>#N-1`.\n * {@link resetSubIdCounters} clears every counter at the top of every\n * `onBarClose` / `onBarTick`, so iteration `i` across bars at the same\n * callsite yields the same sub-id — that's the cross-bar handle\n * stability contract.\n *\n * @since 0.3\n * @stable\n * @example\n * // import { nextSubId } from \"@invinite-org/chartlang-runtime\";\n * // const subId = nextSubId(ctx, \"demo.chart.ts:5:13#0\");\n */\nexport function nextSubId(ctx: RuntimeContext, slotId: string): number {\n const counters = ctx.drawingSubIdCounters;\n const current = counters.get(slotId) ?? 0;\n counters.set(slotId, current + 1);\n return current;\n}\n\n/**\n * Clear every sub-id counter on the context. Called by the execution\n * loop at the top of `onBarClose` and `onBarTick` so callsite iteration\n * order is identical across bars — handles allocated by iteration `i`\n * in bar `N` and bar `N+1` share the same `slotId#i`.\n *\n * @since 0.3\n * @stable\n * @example\n * // import { resetSubIdCounters } from \"@invinite-org/chartlang-runtime\";\n * // resetSubIdCounters(ctx);\n */\nexport function resetSubIdCounters(ctx: RuntimeContext): void {\n ctx.drawingSubIdCounters.clear();\n}\n"]}
|
|
@@ -2,7 +2,7 @@ import type { DrawingHandle, TableOpts } from "@invinite-org/chartlang-core";
|
|
|
2
2
|
/**
|
|
3
3
|
* Draw a CSS-pixel viewport-anchored table. Unlike world-space
|
|
4
4
|
* drawings, `draw.table` carries no `WorldPoint` anchor; adapters
|
|
5
|
-
* resolve `position` against the visible viewport
|
|
5
|
+
* resolve `position` against the visible viewport.
|
|
6
6
|
*
|
|
7
7
|
* @anchors `position` — CSS viewport anchor; `cells` — 2D grid payload
|
|
8
8
|
* @anchorCount 0 (viewport anchored)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table.js","sourceRoot":"","sources":["../../../../src/emit/draw/table/table.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAI/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEjD,MAAM,mBAAmB,GAAG,iDAAiD,CAAC;AAE9E,SAAS,SAAS,CAAC,MAAc,EAAE,IAAe;IAC9C,MAAM,GAAG,GAAG,sBAAsB,CAAC,OAAO,CAAC;IAC3C,IAAI,GAAG,KAAK,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACvD,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACrC,MAAM,KAAK,GAAe;QACtB,IAAI,EAAE,OAAO;QACb,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,GAAG,CAAC,IAAI,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;QAC5E,GAAG,CAAC,IAAI,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;QAC5E,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;KAC7D,CAAC;IACF,OAAO,mBAAmB,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;AAC9D,CAAC;AAuCD;;;;;;;;;;GAUG;AACH,MAAM,UAAU,KAAK,CAAC,IAAwB,EAAE,IAAgB;IAC5D,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACjD,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACzC,CAAC;IACD,OAAO,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACjC,CAAC"}
|
|
1
|
+
{"version":3,"file":"table.js","sourceRoot":"","sources":["../../../../src/emit/draw/table/table.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAI/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEjD,MAAM,mBAAmB,GAAG,iDAAiD,CAAC;AAE9E,SAAS,SAAS,CAAC,MAAc,EAAE,IAAe;IAC9C,MAAM,GAAG,GAAG,sBAAsB,CAAC,OAAO,CAAC;IAC3C,IAAI,GAAG,KAAK,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACvD,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACrC,MAAM,KAAK,GAAe;QACtB,IAAI,EAAE,OAAO;QACb,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,GAAG,CAAC,IAAI,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;QAC5E,GAAG,CAAC,IAAI,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;QAC5E,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;KAC7D,CAAC;IACF,OAAO,mBAAmB,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;AAC9D,CAAC;AAuCD;;;;;;;;;;GAUG;AACH,MAAM,UAAU,KAAK,CAAC,IAAwB,EAAE,IAAgB;IAC5D,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACjD,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACzC,CAAC;IACD,OAAO,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACjC,CAAC","sourcesContent":["// Copyright (c) 2026 Invinite. Licensed under the MIT License.\n// See the LICENSE file in the repo root for full license text.\n\nimport type { DrawingHandle, TableOpts, TableState } from \"@invinite-org/chartlang-core\";\n\nimport { ACTIVE_RUNTIME_CONTEXT } from \"../../../runtimeContext.js\";\nimport { createDrawingHandle } from \"../handle.js\";\nimport { nextSubId } from \"../subIdAllocator.js\";\n\nconst OUTSIDE_CTX_MESSAGE = \"draw.table called outside an active script step\";\n\nfunction tableImpl(slotId: string, opts: TableOpts): DrawingHandle {\n const ctx = ACTIVE_RUNTIME_CONTEXT.current;\n if (ctx === null) throw new Error(OUTSIDE_CTX_MESSAGE);\n const subId = nextSubId(ctx, slotId);\n const state: TableState = {\n kind: \"table\",\n position: opts.position,\n cells: opts.cells,\n ...(opts.borderColor === undefined ? {} : { borderColor: opts.borderColor }),\n ...(opts.borderWidth === undefined ? {} : { borderWidth: opts.borderWidth }),\n ...(opts.frame === undefined ? {} : { frame: opts.frame }),\n };\n return createDrawingHandle(slotId, subId, \"table\", state);\n}\n\n/**\n * Draw a CSS-pixel viewport-anchored table. Unlike world-space\n * drawings, `draw.table` carries no `WorldPoint` anchor; adapters\n * resolve `position` against the visible viewport.\n *\n * @anchors `position` — CSS viewport anchor; `cells` — 2D grid payload\n * @anchorCount 0 (viewport anchored)\n * @bucket other\n * @since 0.5\n * @stable\n * @example\n * import { defineIndicator } from \"@invinite-org/chartlang-core\";\n * export default defineIndicator({\n * name: \"draw.table demo\",\n * apiVersion: 1,\n * compute({ draw }) {\n * draw.table({\n * position: \"top-right\",\n * cells: [[{ text: \"P&L\" }, { text: \"+12.5%\", textColor: \"#16a34a\" }]],\n * });\n * },\n * });\n */\nexport function table(opts: TableOpts): DrawingHandle;\n/**\n * Compiler-injected overload — the callsite-id transformer rewrites\n * every script-side `draw.table(opts)` into\n * `draw.table(slotId, opts)`.\n *\n * @since 0.5\n * @stable\n * @example\n * // Internal — the compiler rewrites every script callsite.\n * // const fn: typeof table = table;\n * // void fn;\n */\nexport function table(slotId: string, opts: TableOpts): DrawingHandle;\n/**\n * Implementation signature for {@link table}. Branches on\n * `typeof arg1 === \"string\"` to dispatch the script-facing vs\n * compiler-injected overload.\n *\n * @since 0.5\n * @stable\n * @example\n * // const fn: typeof table = table;\n * // void fn;\n */\nexport function table(arg1: string | TableOpts, arg2?: TableOpts): DrawingHandle {\n if (typeof arg1 !== \"string\" || arg2 === undefined) {\n throw new Error(OUTSIDE_CTX_MESSAGE);\n }\n return tableImpl(arg1, arg2);\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"emissionsQueue.js","sourceRoot":"","sources":["../../src/emit/emissionsQueue.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"emissionsQueue.js","sourceRoot":"","sources":["../../src/emit/emissionsQueue.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) 2026 Invinite. Licensed under the MIT License.\n// See the LICENSE file in the repo root for full license text.\n\nimport {\n type AlertEmission,\n type AlertConditionEmission,\n type LogEmission,\n type PlotEmission,\n type RuntimeDiagnostic,\n validateEmission,\n} from \"@invinite-org/chartlang-adapter-kit\";\n\nimport type { MutableRunnerEmissions } from \"../runtimeContext.js\";\n\n/**\n * Push a `PlotEmission` onto the runner's mutable plot queue. The\n * payload is first validated through Task 4's `validateEmission`; on\n * failure a `malformed-emission` diagnostic is pushed and the plot is\n * dropped. On success, the queue is searched backwards for a\n * `(slotId, bar)` match — if found, the existing entry is replaced\n * in place (last-write-wins per PLAN §7.4). Otherwise the new emission\n * is appended.\n *\n * @since 0.1\n * @example\n * // import { pushPlot } from \"@invinite-org/chartlang-runtime/emit\";\n * // pushPlot(queue, plotEmission);\n */\nexport function pushPlot(queue: MutableRunnerEmissions, e: PlotEmission): void {\n const result = validateEmission(e);\n if (!result.ok) {\n pushDiagnostic(queue, {\n kind: \"diagnostic\",\n severity: \"warning\",\n code: \"malformed-emission\",\n message: result.message,\n slotId: e.slotId,\n bar: e.bar,\n });\n return;\n }\n for (let i = queue.plots.length - 1; i >= 0; i -= 1) {\n const existing = queue.plots[i];\n if (existing.slotId === e.slotId && existing.bar === e.bar) {\n queue.plots[i] = e;\n return;\n }\n }\n queue.plots.push(e);\n}\n\n/**\n * Push an `AlertEmission` onto the runner's mutable alert queue. Same\n * validate-then-dedup contract as {@link pushPlot}: a `(slotId, bar)`\n * collision replaces the existing entry; a validation failure pushes\n * a `malformed-emission` diagnostic and drops the alert.\n *\n * @since 0.1\n * @example\n * // import { pushAlert } from \"@invinite-org/chartlang-runtime/emit\";\n * // pushAlert(queue, alertEmission);\n */\nexport function pushAlert(queue: MutableRunnerEmissions, e: AlertEmission): void {\n const result = validateEmission(e);\n if (!result.ok) {\n pushDiagnostic(queue, {\n kind: \"diagnostic\",\n severity: \"warning\",\n code: \"malformed-emission\",\n message: result.message,\n slotId: e.slotId,\n bar: e.bar,\n });\n return;\n }\n for (let i = queue.alerts.length - 1; i >= 0; i -= 1) {\n const existing = queue.alerts[i];\n if (existing.slotId === e.slotId && existing.bar === e.bar) {\n queue.alerts[i] = e;\n return;\n }\n }\n queue.alerts.push(e);\n}\n\n/**\n * Push an `AlertConditionEmission` onto the runner's mutable queue after\n * adapter-kit validation. Unlike `alert`, alert conditions intentionally\n * preserve both `fired: true` and `fired: false` transitions for UI state.\n *\n * @since 0.5\n * @example\n * // import { pushAlertCondition } from \"@invinite-org/chartlang-runtime/emit\";\n * // pushAlertCondition(queue, emission);\n */\nexport function pushAlertCondition(queue: MutableRunnerEmissions, e: AlertConditionEmission): void {\n const result = validateEmission(e);\n if (!result.ok) {\n pushDiagnostic(queue, {\n kind: \"diagnostic\",\n severity: \"warning\",\n code: \"malformed-emission\",\n message: result.message,\n slotId: null,\n bar: e.bar,\n });\n return;\n }\n const target = queue.alertConditions ?? [];\n queue.alertConditions = target;\n target.push(e);\n}\n\n/**\n * Push a `LogEmission` onto the runner's mutable queue after adapter-kit\n * validation. Logs preserve order and are not deduped.\n *\n * @since 0.5\n * @example\n * // import { pushLog } from \"@invinite-org/chartlang-runtime/emit\";\n * // pushLog(queue, emission);\n */\nexport function pushLog(queue: MutableRunnerEmissions, e: LogEmission): void {\n const result = validateEmission(e);\n if (!result.ok) {\n pushDiagnostic(queue, {\n kind: \"diagnostic\",\n severity: \"warning\",\n code: \"malformed-emission\",\n message: result.message,\n slotId: null,\n bar: e.bar,\n });\n return;\n }\n queue.logs.push(e);\n}\n\n/**\n * Append a `RuntimeDiagnostic` to the runner's diagnostic queue. No\n * validation — diagnostics are the failure sink, so recursively\n * validating them would loop. Every other emission path routes\n * through here when something goes wrong.\n *\n * @since 0.1\n * @example\n * // import { pushDiagnostic } from \"@invinite-org/chartlang-runtime/emit\";\n * // pushDiagnostic(queue, { kind: \"diagnostic\", severity: \"warning\",\n * // code: \"unsupported-plot-kind\", message: \"drop\",\n * // slotId: \"x.ts:1:1#0\", bar: 0 });\n */\nexport function pushDiagnostic(queue: MutableRunnerEmissions, d: RuntimeDiagnostic): void {\n queue.diagnostics.push(d);\n}\n"]}
|
package/dist/emit/hash.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hash.js","sourceRoot":"","sources":["../../src/emit/hash.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAE/D,MAAM,mBAAmB,GAAG,UAAU,CAAC;AACvC,MAAM,YAAY,GAAG,UAAU,CAAC;AAEhC;;;;;;;;;;GAUG;AACH,MAAM,UAAU,gBAAgB,CAAC,CAAS;IACtC,IAAI,CAAC,GAAG,mBAAmB,CAAC;IAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QACnC,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACrB,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;IACnC,CAAC;IACD,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACnD,CAAC"}
|
|
1
|
+
{"version":3,"file":"hash.js","sourceRoot":"","sources":["../../src/emit/hash.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAE/D,MAAM,mBAAmB,GAAG,UAAU,CAAC;AACvC,MAAM,YAAY,GAAG,UAAU,CAAC;AAEhC;;;;;;;;;;GAUG;AACH,MAAM,UAAU,gBAAgB,CAAC,CAAS;IACtC,IAAI,CAAC,GAAG,mBAAmB,CAAC;IAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QACnC,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACrB,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;IACnC,CAAC;IACD,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACnD,CAAC","sourcesContent":["// Copyright (c) 2026 Invinite. Licensed under the MIT License.\n// See the LICENSE file in the repo root for full license text.\n\nconst FNV_OFFSET_BASIS_32 = 0x811c9dc5;\nconst FNV_PRIME_32 = 0x01000193;\n\n/**\n * Stable, deterministic FNV-1a 32-bit hash of a UTF-16 code-unit string.\n * Returns the hash as a lowercase 8-character hex string. Same input\n * yields the same output across machines, runs, and Node versions — the\n * property `alert.dedupeKey` relies on for cross-host idempotency.\n *\n * @since 0.1\n * @example\n * // import { hashStringStable } from \"@invinite-org/chartlang-runtime/emit\";\n * // hashStringStable(\"hello\"); // \"4f9f2cab\"\n */\nexport function hashStringStable(s: string): string {\n let h = FNV_OFFSET_BASIS_32;\n for (let i = 0; i < s.length; i += 1) {\n h ^= s.charCodeAt(i);\n h = Math.imul(h, FNV_PRIME_32);\n }\n return (h >>> 0).toString(16).padStart(8, \"0\");\n}\n"]}
|
package/dist/emit/hline.d.ts
CHANGED
|
@@ -9,10 +9,12 @@ import type { HLineOpts } from "@invinite-org/chartlang-core";
|
|
|
9
9
|
* overload). Direct invocation without a slot id throws the sentinel
|
|
10
10
|
* error.
|
|
11
11
|
*
|
|
12
|
-
* `hline`
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
12
|
+
* `hline` follows the same pane router as {@link plot} — see
|
|
13
|
+
* {@link resolvePane}: `opts.pane` defaults to the script's
|
|
14
|
+
* manifest-resolved pane, `"new"` joins the per-script subpane, and a
|
|
15
|
+
* named pane folds to overlay on `subPanes: 0` adapters. The `kind`
|
|
16
|
+
* discriminator is always `"horizontal-line"`; adapters that don't
|
|
17
|
+
* declare the capability drop with `unsupported-plot-kind`.
|
|
16
18
|
*
|
|
17
19
|
* @since 0.1
|
|
18
20
|
* @example
|
package/dist/emit/hline.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hline.d.ts","sourceRoot":"","sources":["../../src/emit/hline.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"hline.d.ts","sourceRoot":"","sources":["../../src/emit/hline.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AA8C9D;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;AAC7D;;;;;;;;;;GAUG;AACH,wBAAgB,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC"}
|
package/dist/emit/hline.js
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
// Copyright (c) 2026 Invinite. Licensed under the MIT License.
|
|
2
2
|
// See the LICENSE file in the repo root for full license text.
|
|
3
3
|
import { ACTIVE_RUNTIME_CONTEXT } from "../runtimeContext.js";
|
|
4
|
+
import { applyPlotOverride } from "./applyPlotOverride.js";
|
|
4
5
|
import { pushDiagnostic, pushPlot } from "./emissionsQueue.js";
|
|
6
|
+
import { resolvePane } from "./paneResolver.js";
|
|
5
7
|
const OUTSIDE_CTX_MESSAGE = "hline called outside an active script step";
|
|
6
8
|
function hlineImpl(ctx, slotId, price, opts) {
|
|
7
9
|
const style = {
|
|
@@ -20,6 +22,7 @@ function hlineImpl(ctx, slotId, price, opts) {
|
|
|
20
22
|
});
|
|
21
23
|
return;
|
|
22
24
|
}
|
|
25
|
+
const pane = resolvePane(opts.pane, ctx, slotId);
|
|
23
26
|
const emission = {
|
|
24
27
|
kind: "plot",
|
|
25
28
|
slotId,
|
|
@@ -30,9 +33,9 @@ function hlineImpl(ctx, slotId, price, opts) {
|
|
|
30
33
|
value: Number.isFinite(price) ? price : null,
|
|
31
34
|
color: opts.color ?? null,
|
|
32
35
|
meta: {},
|
|
33
|
-
pane
|
|
36
|
+
pane,
|
|
34
37
|
};
|
|
35
|
-
pushPlot(ctx.emissions, emission);
|
|
38
|
+
pushPlot(ctx.emissions, applyPlotOverride(emission, ctx.plotOverrides[slotId]));
|
|
36
39
|
}
|
|
37
40
|
/**
|
|
38
41
|
* Implementation signature for {@link hline}. Branches on
|
package/dist/emit/hline.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hline.js","sourceRoot":"","sources":["../../src/emit/hline.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAK/D,OAAO,EAAE,sBAAsB,EAAuB,MAAM,sBAAsB,CAAC;AACnF,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"hline.js","sourceRoot":"","sources":["../../src/emit/hline.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAK/D,OAAO,EAAE,sBAAsB,EAAuB,MAAM,sBAAsB,CAAC;AACnF,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,MAAM,mBAAmB,GAAG,4CAA4C,CAAC;AAEzE,SAAS,SAAS,CAAC,GAAmB,EAAE,MAAc,EAAE,KAAa,EAAE,IAAe;IAClF,MAAM,KAAK,GAAc;QACrB,IAAI,EAAE,iBAAiB;QACvB,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,CAAC;QAC9B,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,OAAO;KACvC,CAAC;IAEF,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE,CAAC;QACjD,cAAc,CAAC,GAAG,CAAC,SAAS,EAAE;YAC1B,IAAI,EAAE,YAAY;YAClB,QAAQ,EAAE,SAAS;YACnB,IAAI,EAAE,uBAAuB;YAC7B,OAAO,EAAE,oDAAoD;YAC7D,MAAM;YACN,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE;SACtB,CAAC,CAAC;QACH,OAAO;IACX,CAAC;IAED,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;IAEjD,MAAM,QAAQ,GAAiB;QAC3B,IAAI,EAAE,MAAM;QACZ,MAAM;QACN,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,EAAE;QACvB,KAAK;QACL,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE;QACnB,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI;QACzB,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI;QAC5C,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,IAAI;QACzB,IAAI,EAAE,EAAE;QACR,IAAI;KACP,CAAC;IAEF,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,iBAAiB,CAAC,QAAQ,EAAE,GAAG,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACpF,CAAC;AA4CD;;;;;;;;;GASG;AACH,MAAM,UAAU,KAAK,CAAC,IAAqB,EAAE,IAAyB,EAAE,IAAgB;IACpF,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACzC,CAAC;IACD,MAAM,GAAG,GAAG,sBAAsB,CAAC,OAAO,CAAC;IAC3C,IAAI,CAAC,GAAG;QAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;IAC/C,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACzC,CAAC;IACD,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;AAC3C,CAAC","sourcesContent":["// Copyright (c) 2026 Invinite. Licensed under the MIT License.\n// See the LICENSE file in the repo root for full license text.\n\nimport type { PlotEmission, PlotStyle } from \"@invinite-org/chartlang-adapter-kit\";\nimport type { HLineOpts } from \"@invinite-org/chartlang-core\";\n\nimport { ACTIVE_RUNTIME_CONTEXT, type RuntimeContext } from \"../runtimeContext.js\";\nimport { applyPlotOverride } from \"./applyPlotOverride.js\";\nimport { pushDiagnostic, pushPlot } from \"./emissionsQueue.js\";\nimport { resolvePane } from \"./paneResolver.js\";\n\nconst OUTSIDE_CTX_MESSAGE = \"hline called outside an active script step\";\n\nfunction hlineImpl(ctx: RuntimeContext, slotId: string, price: number, opts: HLineOpts): void {\n const style: PlotStyle = {\n kind: \"horizontal-line\",\n lineWidth: opts.lineWidth ?? 1,\n lineStyle: opts.lineStyle ?? \"solid\",\n };\n\n if (!ctx.capabilities.plots.has(\"horizontal-line\")) {\n pushDiagnostic(ctx.emissions, {\n kind: \"diagnostic\",\n severity: \"warning\",\n code: \"unsupported-plot-kind\",\n message: 'Adapter cannot render plot kind \"horizontal-line\".',\n slotId,\n bar: ctx.barIndex(),\n });\n return;\n }\n\n const pane = resolvePane(opts.pane, ctx, slotId);\n\n const emission: PlotEmission = {\n kind: \"plot\",\n slotId,\n title: opts.title ?? \"\",\n style,\n bar: ctx.barIndex(),\n time: ctx.stream.bar.time,\n value: Number.isFinite(price) ? price : null,\n color: opts.color ?? null,\n meta: {},\n pane,\n };\n\n pushPlot(ctx.emissions, applyPlotOverride(emission, ctx.plotOverrides[slotId]));\n}\n\n/**\n * Emit a horizontal-line plot pinned at the supplied `price`\n * (script-facing overload).\n *\n * Same dual-signature contract as {@link plot}: scripts call\n * `hline(price, opts?)`; the compiler's callsite-id transformer (Task 2)\n * rewrites every call to `hline(slotId, price, opts?)` (the sibling\n * overload). Direct invocation without a slot id throws the sentinel\n * error.\n *\n * `hline` follows the same pane router as {@link plot} — see\n * {@link resolvePane}: `opts.pane` defaults to the script's\n * manifest-resolved pane, `\"new\"` joins the per-script subpane, and a\n * named pane folds to overlay on `subPanes: 0` adapters. The `kind`\n * discriminator is always `\"horizontal-line\"`; adapters that don't\n * declare the capability drop with `unsupported-plot-kind`.\n *\n * @since 0.1\n * @example\n * import { defineIndicator, hline } from \"@invinite-org/chartlang-core\";\n * export default defineIndicator({\n * name: \"RSI bounds\",\n * apiVersion: 1,\n * compute() {\n * hline(70, { color: \"#ef4444\", title: \"Overbought\" });\n * hline(30, { color: \"#10b981\", title: \"Oversold\" });\n * },\n * });\n */\nexport function hline(price: number, opts?: HLineOpts): void;\n/**\n * Emit a horizontal-line plot for the current bar (compiler-injected\n * overload). Task 2's transformer rewrites script-side `hline(price)`\n * into `hline(slotId, price)`.\n *\n * @since 0.1\n * @example\n * // Internal — the compiler rewrites every script callsite.\n * // const fn: typeof hline = hline;\n * // void fn;\n */\nexport function hline(slotId: string, price: number, opts?: HLineOpts): void;\n/**\n * Implementation signature for {@link hline}. Branches on\n * `typeof arg1 === \"string\"` to dispatch the script-facing vs\n * compiler-injected overload.\n *\n * @since 0.1\n * @example\n * // const fn: typeof hline = hline;\n * // void fn;\n */\nexport function hline(arg1: string | number, arg2?: number | HLineOpts, arg3?: HLineOpts): void {\n if (typeof arg1 !== \"string\") {\n throw new Error(OUTSIDE_CTX_MESSAGE);\n }\n const ctx = ACTIVE_RUNTIME_CONTEXT.current;\n if (!ctx) throw new Error(OUTSIDE_CTX_MESSAGE);\n if (typeof arg2 !== \"number\") {\n throw new Error(OUTSIDE_CTX_MESSAGE);\n }\n hlineImpl(ctx, arg1, arg2, arg3 ?? {});\n}\n"]}
|
package/dist/emit/index.d.ts
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
export { alert } from "./alert.js";
|
|
2
2
|
export { emitAlertCondition } from "./alertConditionEmission.js";
|
|
3
|
+
export { applyPlotOverride } from "./applyPlotOverride.js";
|
|
3
4
|
export { createDrawingHandle, draw, nextSubId, pushDrawing, resetSubIdCounters, } from "./draw/index.js";
|
|
4
5
|
export { pushAlert, pushAlertCondition, pushDiagnostic, pushLog, pushPlot, } from "./emissionsQueue.js";
|
|
5
6
|
export { hashStringStable } from "./hash.js";
|
|
6
7
|
export { hline } from "./hline.js";
|
|
7
8
|
export { buildRuntimeNamespace, emitLog } from "./logEmission.js";
|
|
8
|
-
export { resolvePane } from "./paneResolver.js";
|
|
9
|
+
export { resolveDefaultPane, resolvePane, resolveScriptPane } from "./paneResolver.js";
|
|
9
10
|
export { plot } from "./plot.js";
|
|
10
11
|
export { isRuntimeErrorHalt, makeRuntimeErrorHalt } from "./runtimeError.js";
|
|
11
12
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/emit/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/emit/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EACH,mBAAmB,EACnB,IAAI,EACJ,SAAS,EACT,WAAW,EACX,kBAAkB,GACrB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACH,SAAS,EACT,kBAAkB,EAClB,cAAc,EACd,OAAO,EACP,QAAQ,GACX,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,qBAAqB,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/emit/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EACH,mBAAmB,EACnB,IAAI,EACJ,SAAS,EACT,WAAW,EACX,kBAAkB,GACrB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACH,SAAS,EACT,kBAAkB,EAClB,cAAc,EACd,OAAO,EACP,QAAQ,GACX,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,qBAAqB,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACvF,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC"}
|
package/dist/emit/index.js
CHANGED
|
@@ -2,12 +2,13 @@
|
|
|
2
2
|
// See the LICENSE file in the repo root for full license text.
|
|
3
3
|
export { alert } from "./alert.js";
|
|
4
4
|
export { emitAlertCondition } from "./alertConditionEmission.js";
|
|
5
|
+
export { applyPlotOverride } from "./applyPlotOverride.js";
|
|
5
6
|
export { createDrawingHandle, draw, nextSubId, pushDrawing, resetSubIdCounters, } from "./draw/index.js";
|
|
6
7
|
export { pushAlert, pushAlertCondition, pushDiagnostic, pushLog, pushPlot, } from "./emissionsQueue.js";
|
|
7
8
|
export { hashStringStable } from "./hash.js";
|
|
8
9
|
export { hline } from "./hline.js";
|
|
9
10
|
export { buildRuntimeNamespace, emitLog } from "./logEmission.js";
|
|
10
|
-
export { resolvePane } from "./paneResolver.js";
|
|
11
|
+
export { resolveDefaultPane, resolvePane, resolveScriptPane } from "./paneResolver.js";
|
|
11
12
|
export { plot } from "./plot.js";
|
|
12
13
|
export { isRuntimeErrorHalt, makeRuntimeErrorHalt } from "./runtimeError.js";
|
|
13
14
|
//# sourceMappingURL=index.js.map
|
package/dist/emit/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/emit/index.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAE/D,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EACH,mBAAmB,EACnB,IAAI,EACJ,SAAS,EACT,WAAW,EACX,kBAAkB,GACrB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACH,SAAS,EACT,kBAAkB,EAClB,cAAc,EACd,OAAO,EACP,QAAQ,GACX,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,qBAAqB,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/emit/index.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAE/D,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EACH,mBAAmB,EACnB,IAAI,EACJ,SAAS,EACT,WAAW,EACX,kBAAkB,GACrB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACH,SAAS,EACT,kBAAkB,EAClB,cAAc,EACd,OAAO,EACP,QAAQ,GACX,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,qBAAqB,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACvF,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC","sourcesContent":["// Copyright (c) 2026 Invinite. Licensed under the MIT License.\n// See the LICENSE file in the repo root for full license text.\n\nexport { alert } from \"./alert.js\";\nexport { emitAlertCondition } from \"./alertConditionEmission.js\";\nexport { applyPlotOverride } from \"./applyPlotOverride.js\";\nexport {\n createDrawingHandle,\n draw,\n nextSubId,\n pushDrawing,\n resetSubIdCounters,\n} from \"./draw/index.js\";\nexport {\n pushAlert,\n pushAlertCondition,\n pushDiagnostic,\n pushLog,\n pushPlot,\n} from \"./emissionsQueue.js\";\nexport { hashStringStable } from \"./hash.js\";\nexport { hline } from \"./hline.js\";\nexport { buildRuntimeNamespace, emitLog } from \"./logEmission.js\";\nexport { resolveDefaultPane, resolvePane, resolveScriptPane } from \"./paneResolver.js\";\nexport { plot } from \"./plot.js\";\nexport { isRuntimeErrorHalt, makeRuntimeErrorHalt } from \"./runtimeError.js\";\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logEmission.js","sourceRoot":"","sources":["../../src/emit/logEmission.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"logEmission.js","sourceRoot":"","sources":["../../src/emit/logEmission.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) 2026 Invinite. Licensed under the MIT License.\n// See the LICENSE file in the repo root for full license text.\n\nimport type { JsonValue, LogLevel, RuntimeNamespace } from \"@invinite-org/chartlang-core\";\nimport type { LogEmission } from \"@invinite-org/chartlang-adapter-kit\";\n\nimport type { RuntimeContext } from \"../runtimeContext.js\";\nimport { pushDiagnostic, pushLog } from \"./emissionsQueue.js\";\nimport { makeRuntimeErrorHalt } from \"./runtimeError.js\";\n\nconst MAX_LOGS_PER_STEP = 1000;\n\nfunction isPlainObject(v: unknown): v is Record<string, unknown> {\n if (typeof v !== \"object\" || v === null) return false;\n const proto = Object.getPrototypeOf(v);\n return proto === Object.prototype || proto === null;\n}\n\nfunction isJsonValue(v: unknown): v is JsonValue {\n if (v === null) return true;\n const t = typeof v;\n if (t === \"boolean\" || t === \"string\") return true;\n if (t === \"number\") return Number.isFinite(v);\n if (Array.isArray(v)) return v.every(isJsonValue);\n if (!isPlainObject(v)) return false;\n for (const key of Object.keys(v)) {\n let child: unknown;\n try {\n child = Reflect.get(v, key);\n } catch {\n return false;\n }\n if (!isJsonValue(child)) return false;\n }\n return true;\n}\n\nfunction snapshotJsonValue(value: JsonValue): JsonValue {\n if (Array.isArray(value)) {\n return Object.freeze(value.map((item) => snapshotJsonValue(item)));\n }\n if (isPlainObject(value)) {\n const entries = Object.entries(value).map(([key, item]) => [\n key,\n snapshotJsonValue(item as JsonValue),\n ]);\n return Object.freeze(Object.fromEntries(entries)) as JsonValue;\n }\n return value;\n}\n\nfunction snapshotMeta(\n meta: Readonly<Record<string, JsonValue>>,\n): Readonly<Record<string, JsonValue>> {\n return snapshotJsonValue(meta) as Readonly<Record<string, JsonValue>>;\n}\n\nfunction diagnoseLogBudget(ctx: RuntimeContext): void {\n if (ctx.logBudgetExceededDiagnosed) return;\n ctx.logBudgetExceededDiagnosed = true;\n pushDiagnostic(ctx.emissions, {\n kind: \"diagnostic\",\n severity: \"warning\",\n code: \"runtime-log-budget-exceeded\",\n message:\n \"runtime.log.* emitted more than 1000 messages in one compute step; later logs were dropped.\",\n slotId: null,\n bar: ctx.barIndex(),\n });\n}\n\n/**\n * Emit one `runtime.log.*` message for the active compute step.\n *\n * @since 0.5\n * @stable\n * @example\n * // emitLog(ctx, \"info\", \"ready\");\n * const fn: typeof emitLog = emitLog;\n * void fn;\n */\nexport function emitLog(\n ctx: RuntimeContext,\n level: LogLevel,\n message: string,\n meta?: Readonly<Record<string, JsonValue>>,\n): void {\n if (!ctx.capabilities.logs) return;\n if (ctx.logBudget >= MAX_LOGS_PER_STEP) {\n diagnoseLogBudget(ctx);\n return;\n }\n if (meta !== undefined && !isJsonValue(meta)) {\n pushDiagnostic(ctx.emissions, {\n kind: \"diagnostic\",\n severity: \"warning\",\n code: \"malformed-log-meta\",\n message: \"runtime.log.* meta must be JSON-serialisable.\",\n slotId: null,\n bar: ctx.barIndex(),\n });\n return;\n }\n const emission: LogEmission = {\n kind: \"log\",\n level,\n message,\n ...(meta === undefined ? {} : { meta: snapshotMeta(meta) }),\n bar: ctx.barIndex(),\n time: ctx.stream.bar.time,\n };\n ctx.logBudget += 1;\n pushLog(ctx.emissions, emission);\n}\n\n/**\n * Build the script-facing runtime namespace bound to a runtime context.\n *\n * @since 0.5\n * @stable\n * @example\n * // const ns = buildRuntimeNamespace(ctx);\n * const fn: typeof buildRuntimeNamespace = buildRuntimeNamespace;\n * void fn;\n */\nexport function buildRuntimeNamespace(ctx: RuntimeContext): RuntimeNamespace {\n return Object.freeze({\n log: Object.freeze({\n info: (message: string, meta?: Readonly<Record<string, JsonValue>>) =>\n emitLog(ctx, \"info\", message, meta),\n warn: (message: string, meta?: Readonly<Record<string, JsonValue>>) =>\n emitLog(ctx, \"warn\", message, meta),\n error: (message: string, meta?: Readonly<Record<string, JsonValue>>) =>\n emitLog(ctx, \"error\", message, meta),\n }),\n error: (message) => {\n throw makeRuntimeErrorHalt(message);\n },\n });\n}\n"]}
|
|
@@ -1,19 +1,60 @@
|
|
|
1
|
+
import type { ScriptManifest } from "@invinite-org/chartlang-core";
|
|
1
2
|
import type { RuntimeContext } from "../runtimeContext.js";
|
|
2
3
|
/**
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
* `
|
|
4
|
+
* Derive the stable non-overlay pane key for a script from its
|
|
5
|
+
* manifest name. The name is sanitised (`/[^a-zA-Z0-9_-]/g` → `-`) so
|
|
6
|
+
* it fits the `string` shape on `PlotEmission.pane` and cannot collide
|
|
7
|
+
* with the `script:` prefix structure (e.g. a `:` in the name becomes
|
|
8
|
+
* `-`); an empty name falls back to `"script:default"`. Both the
|
|
9
|
+
* primary runner and every dep / sibling sub-runner key off this so a
|
|
10
|
+
* script's distinct name yields a distinct subpane.
|
|
6
11
|
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
12
|
+
* @since 0.2
|
|
13
|
+
* @stable
|
|
14
|
+
* @example
|
|
15
|
+
* // resolveScriptPane({ name: "RSI Cross", ... }) === "script:RSI-Cross"
|
|
16
|
+
* // resolveScriptPane({ name: "", ... }) === "script:default"
|
|
17
|
+
*/
|
|
18
|
+
export declare function resolveScriptPane(manifest: ScriptManifest): string;
|
|
19
|
+
/**
|
|
20
|
+
* Resolve a script's mount-time default pane from `manifest.overlay`.
|
|
21
|
+
* `overlay` absent / `true` → `"overlay"` (the price pane); `overlay
|
|
22
|
+
* === false` → the script-owned subpane key from
|
|
23
|
+
* {@link resolveScriptPane}. The runner sets `RuntimeContext.defaultPane`
|
|
24
|
+
* to this once at mount; {@link resolvePane} reads it for any `plot()` /
|
|
25
|
+
* `hline()` call with no explicit `pane`.
|
|
26
|
+
*
|
|
27
|
+
* @since 0.2
|
|
28
|
+
* @stable
|
|
29
|
+
* @example
|
|
30
|
+
* // resolveDefaultPane({ name: "x", overlay: false, ... }) === "script:x"
|
|
31
|
+
* // resolveDefaultPane({ name: "x", ... }) === "overlay"
|
|
32
|
+
*/
|
|
33
|
+
export declare function resolveDefaultPane(manifest: ScriptManifest): string;
|
|
34
|
+
/**
|
|
35
|
+
* Resolve the pane a `plot()` / `hline()` call routes to. Four
|
|
36
|
+
* branches:
|
|
37
|
+
* - `"overlay"` → `"overlay"` (the price pane; never folds).
|
|
38
|
+
* - `undefined` → `ctx.defaultPane` (the script's mount-time default
|
|
39
|
+
* from `manifest.overlay`).
|
|
40
|
+
* - `"new"` → `ctx.scriptPane` (one stable subpane per script, so
|
|
41
|
+
* every `"new"` callsite in a script joins the same subpane).
|
|
42
|
+
* - any other string → returned unchanged when
|
|
43
|
+
* `capabilities.subPanes >= 1`; otherwise folded to `"overlay"`
|
|
44
|
+
* with an `unsupported-pane` diagnostic (the bare-bones adapter
|
|
45
|
+
* compat path).
|
|
46
|
+
*
|
|
47
|
+
* The Phase-1 signature returned the literal `"overlay"` and folded every
|
|
48
|
+
* non-overlay request; the four-branch router widens the return type to
|
|
49
|
+
* `string` and the new `undefined` / `"new"` / named-pass-through
|
|
50
|
+
* branches arrive at `@since 0.2`.
|
|
11
51
|
*
|
|
12
|
-
* @since 0.
|
|
52
|
+
* @since 0.2
|
|
53
|
+
* @stable
|
|
13
54
|
* @example
|
|
14
55
|
* // import { resolvePane } from "@invinite-org/chartlang-runtime/emit";
|
|
15
|
-
* // const pane = resolvePane(
|
|
16
|
-
* // pane === "
|
|
56
|
+
* // const pane = resolvePane("rsi", ctx, "demo.ts:1:1#0");
|
|
57
|
+
* // pane === "rsi" // when ctx.capabilities.subPanes >= 1
|
|
17
58
|
*/
|
|
18
|
-
export declare function resolvePane(requested: string | undefined, ctx: RuntimeContext, slotId: string):
|
|
59
|
+
export declare function resolvePane(requested: string | undefined, ctx: RuntimeContext, slotId: string): string;
|
|
19
60
|
//# sourceMappingURL=paneResolver.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paneResolver.d.ts","sourceRoot":"","sources":["../../src/emit/paneResolver.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"paneResolver.d.ts","sourceRoot":"","sources":["../../src/emit/paneResolver.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAEnE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAK3D;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,cAAc,GAAG,MAAM,CAGlE;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,cAAc,GAAG,MAAM,CAEnE;AAeD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,WAAW,CACvB,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,GAAG,EAAE,cAAc,EACnB,MAAM,EAAE,MAAM,GACf,MAAM,CAKR"}
|