@invinite-org/chartlang-runtime 1.1.0 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +245 -0
- package/README.md +1 -2
- package/dist/barPoint.d.ts +20 -0
- package/dist/barPoint.d.ts.map +1 -0
- package/dist/barPoint.js +72 -0
- package/dist/barPoint.js.map +1 -0
- package/dist/bufferSnapshot.d.ts +102 -0
- package/dist/bufferSnapshot.d.ts.map +1 -0
- package/dist/bufferSnapshot.js +119 -0
- package/dist/bufferSnapshot.js.map +1 -0
- package/dist/buildComputeContext.js.map +1 -1
- package/dist/createScriptRunner.d.ts +6 -3
- package/dist/createScriptRunner.d.ts.map +1 -1
- package/dist/createScriptRunner.js +29 -5
- package/dist/createScriptRunner.js.map +1 -1
- package/dist/dep/DepOutputStore.js.map +1 -1
- package/dist/dep/DepRunner.d.ts.map +1 -1
- package/dist/dep/DepRunner.js +1 -0
- package/dist/dep/DepRunner.js.map +1 -1
- package/dist/dep/depOutput.js.map +1 -1
- package/dist/dep/emissionFilter.js.map +1 -1
- package/dist/dep/index.js.map +1 -1
- package/dist/emit/alert.js.map +1 -1
- package/dist/emit/alertConditionEmission.js.map +1 -1
- package/dist/emit/applyPlotOverride.js.map +1 -1
- 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/fillBetween.d.ts +45 -0
- package/dist/emit/draw/boxes/fillBetween.d.ts.map +1 -0
- package/dist/emit/draw/boxes/fillBetween.js +36 -0
- package/dist/emit/draw/boxes/fillBetween.js.map +1 -0
- 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 +11 -2
- package/dist/emit/draw/handle.d.ts.map +1 -1
- package/dist/emit/draw/handle.js +67 -12
- 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 +5 -4
- package/dist/emit/draw/namespace.d.ts.map +1 -1
- package/dist/emit/draw/namespace.js +7 -4
- 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.js.map +1 -1
- package/dist/emit/index.js.map +1 -1
- package/dist/emit/logEmission.js.map +1 -1
- package/dist/emit/paneResolver.js.map +1 -1
- package/dist/emit/plot.d.ts +7 -0
- package/dist/emit/plot.d.ts.map +1 -1
- package/dist/emit/plot.js +13 -0
- 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 +16 -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.js.map +1 -1
- package/dist/execution/onBarTick.js.map +1 -1
- package/dist/execution/onHistory.js.map +1 -1
- package/dist/execution/runComputeStep.d.ts.map +1 -1
- package/dist/execution/runComputeStep.js +10 -1
- package/dist/execution/runComputeStep.js.map +1 -1
- package/dist/execution/secondaryStream.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -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.js.map +1 -1
- package/dist/persistentStateStore.js.map +1 -1
- package/dist/persistentStateStore.runtime.d.ts.map +1 -1
- package/dist/persistentStateStore.runtime.js +21 -7
- package/dist/persistentStateStore.runtime.js.map +1 -1
- 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.d.ts +2 -1
- package/dist/request/index.d.ts.map +1 -1
- package/dist/request/index.js +2 -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.d.ts.map +1 -1
- package/dist/request/requestNamespace.js +16 -3
- package/dist/request/requestNamespace.js.map +1 -1
- package/dist/request/security.d.ts +20 -1
- package/dist/request/security.d.ts.map +1 -1
- package/dist/request/security.js +62 -23
- package/dist/request/security.js.map +1 -1
- package/dist/request/securityExprRunner.d.ts +133 -0
- package/dist/request/securityExprRunner.d.ts.map +1 -0
- package/dist/request/securityExprRunner.js +235 -0
- package/dist/request/securityExprRunner.js.map +1 -0
- package/dist/request/streamBars.d.ts +14 -1
- package/dist/request/streamBars.d.ts.map +1 -1
- package/dist/request/streamBars.js +39 -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 +51 -3
- package/dist/runtimeContext.d.ts.map +1 -1
- package/dist/runtimeContext.js.map +1 -1
- package/dist/seriesView.d.ts +43 -18
- package/dist/seriesView.d.ts.map +1 -1
- package/dist/seriesView.js +66 -43
- package/dist/seriesView.js.map +1 -1
- package/dist/state/index.d.ts +2 -1
- package/dist/state/index.d.ts.map +1 -1
- package/dist/state/index.js +2 -1
- package/dist/state/index.js.map +1 -1
- package/dist/state/lifecycle.d.ts +40 -0
- package/dist/state/lifecycle.d.ts.map +1 -1
- package/dist/state/lifecycle.js +53 -0
- package/dist/state/lifecycle.js.map +1 -1
- package/dist/state/seriesPersistence.d.ts +48 -0
- package/dist/state/seriesPersistence.d.ts.map +1 -0
- package/dist/state/seriesPersistence.js +87 -0
- package/dist/state/seriesPersistence.js.map +1 -0
- package/dist/state/seriesSlot.d.ts +105 -0
- package/dist/state/seriesSlot.d.ts.map +1 -0
- package/dist/state/seriesSlot.js +123 -0
- package/dist/state/seriesSlot.js.map +1 -0
- package/dist/state/stateNamespace.d.ts.map +1 -1
- package/dist/state/stateNamespace.js +28 -0
- package/dist/state/stateNamespace.js.map +1 -1
- package/dist/state/stateSlot.js.map +1 -1
- package/dist/stateStore.d.ts +2 -2
- package/dist/stateStore.js.map +1 -1
- package/dist/streamState.d.ts +26 -20
- package/dist/streamState.d.ts.map +1 -1
- package/dist/streamState.js +41 -67
- 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 +3 -2
- package/dist/ta/adx.d.ts.map +1 -1
- package/dist/ta/adx.js +5 -4
- package/dist/ta/adx.js.map +1 -1
- package/dist/ta/alma.d.ts +6 -4
- package/dist/ta/alma.d.ts.map +1 -1
- package/dist/ta/alma.js +21 -8
- 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 +3 -2
- package/dist/ta/atr.d.ts.map +1 -1
- package/dist/ta/atr.js +5 -4
- 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 +3 -2
- package/dist/ta/bb.d.ts.map +1 -1
- package/dist/ta/bb.js +5 -4
- 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 +3 -2
- package/dist/ta/chaikinOsc.d.ts.map +1 -1
- package/dist/ta/chaikinOsc.js +5 -4
- 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 +3 -2
- package/dist/ta/crossover.d.ts.map +1 -1
- package/dist/ta/crossover.js +4 -3
- package/dist/ta/crossover.js.map +1 -1
- package/dist/ta/crossunder.d.ts +3 -2
- package/dist/ta/crossunder.d.ts.map +1 -1
- package/dist/ta/crossunder.js +4 -3
- 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 +4 -3
- package/dist/ta/dmi.d.ts.map +1 -1
- package/dist/ta/dmi.js +6 -5
- 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 +3 -2
- package/dist/ta/ema.d.ts.map +1 -1
- package/dist/ta/ema.js +5 -4
- 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 +3 -1
- package/dist/ta/eom.d.ts.map +1 -1
- package/dist/ta/eom.js +5 -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/highestbars.d.ts +25 -0
- package/dist/ta/highestbars.d.ts.map +1 -0
- package/dist/ta/highestbars.js +106 -0
- package/dist/ta/highestbars.js.map +1 -0
- package/dist/ta/historicalVolatility.d.ts +3 -2
- package/dist/ta/historicalVolatility.d.ts.map +1 -1
- package/dist/ta/historicalVolatility.js +5 -4
- 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 +3 -1
- package/dist/ta/ichimoku.d.ts.map +1 -1
- package/dist/ta/ichimoku.js +5 -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/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/lowestbars.d.ts +25 -0
- package/dist/ta/lowestbars.d.ts.map +1 -0
- package/dist/ta/lowestbars.js +102 -0
- package/dist/ta/lowestbars.js.map +1 -0
- 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 +3 -2
- package/dist/ta/macd.d.ts.map +1 -1
- package/dist/ta/macd.js +6 -5
- package/dist/ta/macd.js.map +1 -1
- package/dist/ta/massIndex.d.ts +3 -2
- package/dist/ta/massIndex.d.ts.map +1 -1
- package/dist/ta/massIndex.js +5 -4
- 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 +3 -1
- package/dist/ta/mfi.d.ts.map +1 -1
- package/dist/ta/mfi.js +5 -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 +3 -1
- package/dist/ta/netVolume.d.ts.map +1 -1
- package/dist/ta/netVolume.js +5 -3
- package/dist/ta/netVolume.js.map +1 -1
- package/dist/ta/nvi.d.ts +3 -1
- package/dist/ta/nvi.d.ts.map +1 -1
- package/dist/ta/nvi.js +5 -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.d.ts.map +1 -1
- package/dist/ta/persistence.js +1 -40
- 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 +3 -2
- package/dist/ta/ppo.d.ts.map +1 -1
- package/dist/ta/ppo.js +5 -4
- 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 +3 -1
- package/dist/ta/pvi.d.ts.map +1 -1
- package/dist/ta/pvi.js +5 -3
- package/dist/ta/pvi.js.map +1 -1
- package/dist/ta/pvo.d.ts +3 -1
- package/dist/ta/pvo.d.ts.map +1 -1
- package/dist/ta/pvo.js +5 -3
- package/dist/ta/pvo.js.map +1 -1
- package/dist/ta/pvt.d.ts +3 -1
- package/dist/ta/pvt.d.ts.map +1 -1
- package/dist/ta/pvt.js +5 -3
- package/dist/ta/pvt.js.map +1 -1
- package/dist/ta/registry.d.ts +7 -1
- package/dist/ta/registry.d.ts.map +1 -1
- package/dist/ta/registry.js +4 -0
- 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 +3 -2
- package/dist/ta/rsi.d.ts.map +1 -1
- package/dist/ta/rsi.js +5 -4
- 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 +3 -2
- package/dist/ta/rvi.d.ts.map +1 -1
- package/dist/ta/rvi.js +5 -4
- package/dist/ta/rvi.js.map +1 -1
- package/dist/ta/sessionVolumeProfile.js.map +1 -1
- package/dist/ta/sma.d.ts +6 -3
- package/dist/ta/sma.d.ts.map +1 -1
- package/dist/ta/sma.js +8 -5
- 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 +3 -2
- package/dist/ta/stdev.d.ts.map +1 -1
- package/dist/ta/stdev.js +5 -4
- 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 +4 -3
- package/dist/ta/trendStrengthIndex.d.ts.map +1 -1
- package/dist/ta/trendStrengthIndex.js +6 -5
- package/dist/ta/trendStrengthIndex.js.map +1 -1
- package/dist/ta/trix.d.ts +4 -3
- package/dist/ta/trix.d.ts.map +1 -1
- package/dist/ta/trix.js +6 -5
- 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 +3 -2
- package/dist/ta/vortex.d.ts.map +1 -1
- package/dist/ta/vortex.js +5 -4
- 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 +3 -3
- package/dist/ta/lib/applyOffset.d.ts +0 -19
- package/dist/ta/lib/applyOffset.d.ts.map +0 -1
- package/dist/ta/lib/applyOffset.js +0 -38
- package/dist/ta/lib/applyOffset.js.map +0 -1
|
@@ -8,13 +8,20 @@ import { appendSecondaryBar, appendSecondaryHistory, replaceSecondaryHead, } fro
|
|
|
8
8
|
import { resolveInputs } from "./inputs/index.js";
|
|
9
9
|
import { PERSISTENCE_INTERVAL_MS, maybeSaveStateSnapshot, restoreStateSnapshot, saveStateSnapshot, } from "./persistentStateStore.runtime.js";
|
|
10
10
|
import { validateSnapshot } from "./persistentStateStore.validate.js";
|
|
11
|
+
import { buildSecurityExprRunners, driveSecurityExpressions, } from "./request/securityExprRunner.js";
|
|
11
12
|
import { inMemoryStateStore } from "./stateStore.js";
|
|
12
13
|
import { createStreamState } from "./streamState.js";
|
|
13
14
|
import { createRuntimeViews, makeSymInfoView } from "./views/index.js";
|
|
14
15
|
function resolveCapacity(manifest) {
|
|
15
|
-
const
|
|
16
|
+
const { ohlcv, dynamicFallback } = manifest.seriesCapacities;
|
|
16
17
|
const fallback = manifest.maxLookback + 1;
|
|
17
|
-
|
|
18
|
+
// `dynamicFallback` is the compiler's §6.6 safety net: a non-literal
|
|
19
|
+
// series index (e.g. `trend[LOOKBACK]` with `const LOOKBACK = 20`)
|
|
20
|
+
// cannot be sized statically, so `extractMaxLookback` emits a 5000-slot
|
|
21
|
+
// request instead of bumping `maxLookback`. Honour it here — otherwise
|
|
22
|
+
// the buffer collapses to `maxLookback + 1` and every dynamic-index read
|
|
23
|
+
// past slot 0 returns NaN (the "forecast line never drawn" bug).
|
|
24
|
+
return Math.max(1, ohlcv ?? fallback, dynamicFallback ?? 0);
|
|
18
25
|
}
|
|
19
26
|
function createSecondaryStreams(manifest, capacity) {
|
|
20
27
|
const streams = new Map();
|
|
@@ -55,15 +62,24 @@ function pushSecondaryEvent(state, streamKey, event) {
|
|
|
55
62
|
pushUnknownSecondaryDiagnostic(state, streamKey);
|
|
56
63
|
return;
|
|
57
64
|
}
|
|
65
|
+
const ctx = state.runtimeContext;
|
|
58
66
|
switch (event.kind) {
|
|
59
67
|
case "history":
|
|
68
|
+
// History bars are finalised HTF closes: fill the buffer, then
|
|
69
|
+
// drive every registered runner once per bar in source order (a
|
|
70
|
+
// no-op until the main compute captures the callback).
|
|
60
71
|
appendSecondaryHistory(stream, event.bars);
|
|
72
|
+
for (const bar of event.bars) {
|
|
73
|
+
driveSecurityExpressions(ctx, streamKey, "close", bar);
|
|
74
|
+
}
|
|
61
75
|
return;
|
|
62
76
|
case "close":
|
|
63
77
|
appendSecondaryBar(stream, event.bar);
|
|
78
|
+
driveSecurityExpressions(ctx, streamKey, "close", event.bar);
|
|
64
79
|
return;
|
|
65
80
|
case "tick":
|
|
66
81
|
replaceSecondaryHead(stream, event.bar);
|
|
82
|
+
driveSecurityExpressions(ctx, streamKey, "tick", event.bar);
|
|
67
83
|
return;
|
|
68
84
|
}
|
|
69
85
|
}
|
|
@@ -120,6 +136,7 @@ function buildPrimaryState(args, primary) {
|
|
|
120
136
|
},
|
|
121
137
|
scriptMaxDrawings: primary.manifest.maxDrawings ?? null,
|
|
122
138
|
stateSlots: new Map(),
|
|
139
|
+
seriesSlots: new Map(),
|
|
123
140
|
secondaryStreams,
|
|
124
141
|
requestSecurityBars: new Map(),
|
|
125
142
|
requestSecurityAlignments: new Map(),
|
|
@@ -150,6 +167,10 @@ function buildPrimaryState(args, primary) {
|
|
|
150
167
|
args.plotOverrides ??
|
|
151
168
|
args.resolvePlotOverrides?.(primary.manifest.name) ??
|
|
152
169
|
Object.freeze({});
|
|
170
|
+
const exprRunners = buildSecurityExprRunners(primary.manifest, state.runtimeContext, capacity);
|
|
171
|
+
state.runtimeContext.securityExprRunners = exprRunners.bySlot;
|
|
172
|
+
state.runtimeContext.securityExprRunnersByInterval = exprRunners.byInterval;
|
|
173
|
+
state.runtimeContext.requestSecurityExprSeries = new Map();
|
|
153
174
|
return state;
|
|
154
175
|
}
|
|
155
176
|
function attachBundle(primary, bundle, capabilities, now) {
|
|
@@ -205,10 +226,13 @@ function attachBundle(primary, bundle, capabilities, now) {
|
|
|
205
226
|
* `ACTIVE_RUNTIME_CONTEXT`. Phase 1 ships a single-stream model; the
|
|
206
227
|
* `requestedIntervals` field on the manifest is always empty.
|
|
207
228
|
*
|
|
208
|
-
* Capacity sizing follows PLAN §6.6:
|
|
229
|
+
* Capacity sizing follows PLAN §6.6: take the max of
|
|
209
230
|
* `manifest.seriesCapacities.ohlcv` (compiler-emitted per-series
|
|
210
|
-
* lookback)
|
|
211
|
-
*
|
|
231
|
+
* lookback) or the `manifest.maxLookback + 1` floor, and
|
|
232
|
+
* `manifest.seriesCapacities.dynamicFallback` (the 5000-slot safety net the
|
|
233
|
+
* compiler emits when a series is read at a non-literal index it cannot size
|
|
234
|
+
* statically), clamped to a minimum of 1 so an empty-history script still has
|
|
235
|
+
* a valid head slot.
|
|
212
236
|
*
|
|
213
237
|
* @since 0.1 — widened to accept `CompiledScriptBundle` in 0.7.
|
|
214
238
|
* @example
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createScriptRunner.js","sourceRoot":"","sources":["../src/createScriptRunner.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAe/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAEtE,OAAO,EAIH,oBAAoB,EACpB,eAAe,EACf,mBAAmB,EACnB,sBAAsB,GACzB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACxF,OAAO,EACH,OAAO,IAAI,WAAW,EACtB,KAAK,IAAI,SAAS,EAClB,UAAU,IAAI,cAAc,EAC5B,SAAS,IAAI,aAAa,EAC1B,SAAS,IAAI,aAAa,GAC7B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACH,kBAAkB,EAClB,sBAAsB,EACtB,oBAAoB,GACvB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElD,OAAO,EACH,uBAAuB,EACvB,sBAAsB,EACtB,oBAAoB,EACpB,iBAAiB,GACpB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAEtE,OAAO,EAAmB,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACtE,OAAO,EAAoB,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACvE,OAAO,EAAuB,kBAAkB,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAyI5F,SAAS,eAAe,CAAC,QAAwB;IAC7C,MAAM,SAAS,GAAG,QAAQ,CAAC,gBAAgB,CAAC,KAAK,CAAC;IAClD,MAAM,QAAQ,GAAG,QAAQ,CAAC,WAAW,GAAG,CAAC,CAAC;IAC1C,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,IAAI,QAAQ,CAAC,CAAC;AAC9C,CAAC;AAED,SAAS,sBAAsB,CAC3B,QAAwB,EACxB,QAAgB;IAEhB,MAAM,OAAO,GAAG,IAAI,GAAG,EAAuB,CAAC;IAC/C,KAAK,MAAM,QAAQ,IAAI,QAAQ,CAAC,kBAAkB,EAAE,CAAC;QACjD,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;YAAE,SAAS;QACpC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,iBAAiB,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IACjF,CAAC;IACD,OAAO,OAAO,CAAC;AACnB,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,KAAkB,EAAE,KAAkB;IAC/D,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACjB,KAAK,SAAS;YACV,MAAM,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YACvC,OAAO;QACX,KAAK,OAAO;YACR,MAAM,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;YACvC,MAAM,sBAAsB,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,qBAAqB,CAAC,CAAC;YAC9E,OAAO;QACX,KAAK,MAAM;YACP,MAAM,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;YACtC,OAAO;IACf,CAAC;AACL,CAAC;AAED,SAAS,8BAA8B,CAAC,KAAkB,EAAE,SAAiB;IACzE,cAAc,CAAC,KAAK,CAAC,SAAS,EAAE;QAC5B,IAAI,EAAE,YAAY;QAClB,QAAQ,EAAE,SAAS;QACnB,IAAI,EAAE,0BAA0B;QAChC,OAAO,EAAE,qBAAqB,SAAS,6CAA6C;QACpF,MAAM,EAAE,IAAI;QACZ,GAAG,EAAE,KAAK,CAAC,QAAQ;KACtB,CAAC,CAAC;AACP,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAkB,EAAE,SAAiB,EAAE,KAAkB;IACjF,MAAM,MAAM,GAAG,KAAK,CAAC,cAAc,CAAC,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACpE,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACvB,8BAA8B,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QACjD,OAAO;IACX,CAAC;IACD,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACjB,KAAK,SAAS;YACV,sBAAsB,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YAC3C,OAAO;QACX,KAAK,OAAO;YACR,kBAAkB,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;YACtC,OAAO;QACX,KAAK,MAAM;YACP,oBAAoB,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;YACxC,OAAO;IACf,CAAC;AACL,CAAC;AAED,SAAS,SAAS,CAAC,QAAqD;IACpE,OAAO,sBAAsB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC;AAC1E,CAAC;AAED,SAAS,iBAAiB,CACtB,IAA4B,EAC5B,OAA6B;IAE7B,MAAM,QAAQ,GAAG,eAAe,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACnD,MAAM,UAAU,GAAG,iBAAiB,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;IAC7E,MAAM,gBAAgB,GAAG,sBAAsB,CAAC,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC5E,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,kBAAkB,EAAE,CAAC;IAC3D,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC;IACjC,MAAM,KAAK,GAAG,kBAAkB,CAAC;QAC7B,OAAO,EAAE,eAAe,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,EAAE,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC;KAChF,CAAC,CAAC;IACH,MAAM,SAAS,GAA2B;QACtC,KAAK,EAAE,EAAE;QACT,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,EAAE;QACV,eAAe,EAAE,EAAE;QACnB,IAAI,EAAE,EAAE;QACR,WAAW,EAAE,EAAE;QACf,OAAO,EAAE,CAAC;QACV,KAAK,EAAE,CAAC;KACX,CAAC;IACF,MAAM,eAAe,GAAG,IAAI,GAAG,CAC3B,CAAC,OAAO,CAAC,QAAQ,CAAC,eAAe,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC,CACzF,CAAC;IAEF,MAAM,KAAK,GAAgB;QACvB,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,YAAY,EAAE,IAAI,CAAC,YAAY;QAC/B,UAAU;QACV,qBAAqB,EAAE,IAAI,CAAC,qBAAqB,IAAI,uBAAuB;QAC5E,GAAG;QACH,UAAU;QACV,cAAc,EAAE;YACZ,MAAM,EAAE,UAAU;YAClB,UAAU;YACV,GAAG,CAAC,IAAI,CAAC,oBAAoB,KAAK,SAAS;gBACvC,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,EAAE,oBAAoB,EAAE,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC1D,eAAe,EAAE,CAAC;YAClB,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,SAAS;YACT,QAAQ,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,QAAQ;YAC9B,MAAM,EAAE,KAAK;YACb,YAAY,EAAE,IAAI,GAAG,EAAE;YACvB,oBAAoB,EAAE,IAAI,GAAG,EAAE;YAC/B,qBAAqB,EAAE;gBACnB,KAAK,EAAE,CAAC;gBACR,MAAM,EAAE,CAAC;gBACT,KAAK,EAAE,CAAC;gBACR,SAAS,EAAE,CAAC;gBACZ,KAAK,EAAE,CAAC;aACX;YACD,iBAAiB,EAAE,OAAO,CAAC,QAAQ,CAAC,WAAW,IAAI,IAAI;YACvD,UAAU,EAAE,IAAI,GAAG,EAAE;YACrB,gBAAgB;YAChB,mBAAmB,EAAE,IAAI,GAAG,EAAE;YAC9B,yBAAyB,EAAE,IAAI,GAAG,EAAE;YACpC,4BAA4B,EAAE,IAAI,GAAG,EAAE;YACvC,mBAAmB,EAAE,IAAI,GAAG,EAAE;YAC9B,oBAAoB,EAAE,IAAI,GAAG,EAAE;YAC/B,eAAe;YACf,2BAA2B,EAAE,IAAI,GAAG,EAAE;YACtC,SAAS,EAAE,CAAC;YACZ,0BAA0B,EAAE,KAAK;YACjC,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YACjC,WAAW,EAAE,kBAAkB,CAAC,OAAO,CAAC,QAAQ,CAAC;YACjD,UAAU,EAAE,iBAAiB,CAAC,OAAO,CAAC,QAAQ,CAAC;YAC/C,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YAChC,kBAAkB,EAAE,IAAI,GAAG,EAAE;YAC7B,KAAK;SACR;QACD,SAAS;QACT,UAAU,EAAE,EAAE;QACd,cAAc,EAAE,EAAE;QAClB,cAAc,EAAE,IAAI;QACpB,iBAAiB,EAAE,KAAK;QACxB,QAAQ,EAAE,CAAC;KACd,CAAC;IACF,MAAM,SAAS,GACX,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC5F,KAAK,CAAC,cAAc,CAAC,cAAc,GAAG,aAAa,CAC/C,OAAO,CAAC,QAAQ,EAChB,SAAS,EACT,KAAK,CAAC,cAAc,CACvB,CAAC;IACF,KAAK,CAAC,cAAc,CAAC,aAAa;QAC9B,IAAI,CAAC,aAAa;YAClB,IAAI,CAAC,oBAAoB,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;YAClD,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACtB,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,SAAS,YAAY,CACjB,OAAoB,EACpB,MAA4B,EAC5B,YAA0B,EAC1B,GAAiB;IAEjB,MAAM,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAC7B,OAAO,CAAC,QAAQ,CAAC,WAAW,EAC5B,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,CACjE,CAAC;IACF,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,gBAAgB,GAAG,CAAC,CAAC,CAAC;IACxD,MAAM,SAAS,GAAG;QACd,GAAG,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC/B,UAAU,EAAE,CAAC,CAAC,OAAO;YACrB,OAAO,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACrD,KAAK,EAAE,CAAC,CAAC,KAAK;aACjB,CAAC,CAAC;SACN,CAAC,CAAC;QACH,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC3B,UAAU,EAAE,CAAC,CAAC,UAAU;YACxB,OAAO,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACrD,KAAK,EAAE,CAAC,CAAC,KAAK;aACjB,CAAC,CAAC;SACN,CAAC,CAAC;KACN,CAAC;IACF,MAAM,KAAK,GAAG,oBAAoB,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC,CAAC;IAC3E,MAAM,UAAU,GAAgB,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAC9D,eAAe,CAAC;QACZ,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,kBAAkB,EAAE,YAAY;QAChC,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,gBAAgB,EAAE,OAAO,CAAC,cAAc,CAAC,gBAAgB;QACzD,cAAc,EAAE,KAAK;QACrB,cAAc,EAAE,KAAK,CAAC,cAAc,IAAI,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QACzD,GAAG;KACN,CAAC,CACL,CAAC;IACF,MAAM,cAAc,GAAoB,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAClE,mBAAmB,CAAC;QAChB,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,kBAAkB,EAAE,YAAY;QAChC,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,gBAAgB,EAAE,OAAO,CAAC,cAAc,CAAC,gBAAgB;QACzD,cAAc,EAAE,KAAK;QACrB,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QACjC,GAAG;KACN,CAAC,CACL,CAAC;IACF,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE;QACnB,UAAU;QACV,cAAc;QACd,cAAc,EAAE,KAAK;KACxB,CAAC,CAAC;IACH,OAAO,CAAC,cAAc,CAAC,cAAc,GAAG,KAAK,CAAC;IAC9C,sBAAsB,EAAE,CAAC;AAC7B,CAAC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAA4B;IAC3D,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACzC,MAAM,KAAK,GAAG,iBAAiB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC/C,IAAI,sBAAsB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QACxC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;IACrE,CAAC;IAED,OAAO,MAAM,CAAC,MAAM,CAAC;QACjB,KAAK,CAAC,SAAS,CAAC,IAAI;YAChB,MAAM,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACrC,CAAC;QACD,KAAK,CAAC,UAAU,CAAC,GAAG;YAChB,MAAM,cAAc,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YACjC,MAAM,sBAAsB,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,qBAAqB,CAAC,CAAC;QAClF,CAAC;QACD,KAAK,CAAC,SAAS,CAAC,GAAG;YACf,MAAM,aAAa,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QACpC,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,KAAK;YACZ,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;gBAChC,MAAM,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;gBAClC,OAAO;YACX,CAAC;YACD,kBAAkB,CAAC,KAAK,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QACtD,CAAC;QACD,KAAK,CAAC,SAAS,CAAC,kBAAkB;YAC9B,MAAM,KAAK,GAAG,KAAK,CAAC,cAAc,CAAC,oBAAoB,CAAC;YACxD,IAAI,KAAK,KAAK,SAAS;gBAAE,OAAO;YAChC,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;YAChC,IAAI,IAAI,KAAK,IAAI;gBAAE,OAAO;YAC1B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC;gBAAE,OAAO;YACpC,IAAI,IAAI,CAAC,WAAW,IAAI,kBAAkB,EAAE,CAAC;gBACzC,cAAc,CAAC,KAAK,CAAC,SAAS,EAAE;oBAC5B,IAAI,EAAE,YAAY;oBAClB,QAAQ,EAAE,SAAS;oBACnB,IAAI,EAAE,6BAA6B;oBACnC,OAAO,EAAE,8DAA8D;oBACvE,MAAM,EAAE,IAAI;oBACZ,GAAG,EAAE,KAAK,CAAC,QAAQ;iBACtB,CAAC,CAAC;gBACH,IAAI,CAAC;oBACD,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC;gBACxB,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACX,cAAc,CAAC,KAAK,CAAC,SAAS,EAAE;wBAC5B,IAAI,EAAE,YAAY;wBAClB,QAAQ,EAAE,SAAS;wBACnB,IAAI,EAAE,4BAA4B;wBAClC,OAAO,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;wBACzD,MAAM,EAAE,IAAI;wBACZ,GAAG,EAAE,KAAK,CAAC,QAAQ;qBACtB,CAAC,CAAC;gBACP,CAAC;gBACD,OAAO;YACX,CAAC;YACD,oBAAoB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAClC,KAAK,CAAC,cAAc,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC;YACpD,cAAc,CAAC,KAAK,CAAC,SAAS,EAAE;gBAC5B,IAAI,EAAE,YAAY;gBAClB,QAAQ,EAAE,MAAM;gBAChB,IAAI,EAAE,yBAAyB;gBAC/B,OAAO,EAAE,kDAAkD,IAAI,CAAC,WAAW,EAAE;gBAC7E,MAAM,EAAE,IAAI;gBACZ,GAAG,EAAE,KAAK,CAAC,QAAQ;aACtB,CAAC,CAAC;QACP,CAAC;QACD,KAAK;YACD,OAAO,SAAS,CAAC,KAAK,CAAC,CAAC;QAC5B,CAAC;QACD,gBAAgB,CAAC,IAAI;YACjB,KAAK,CAAC,cAAc,CAAC,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;QACpE,CAAC;QACD,KAAK,CAAC,OAAO;YACT,MAAM,SAAS,GAAG,iBAAiB,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;YACxD,WAAW,CAAC,KAAK,CAAC,CAAC;YACnB,MAAM,SAAS,CAAC;QACpB,CAAC;KACJ,CAAC,CAAC;AACP,CAAC"}
|
|
1
|
+
{"version":3,"file":"createScriptRunner.js","sourceRoot":"","sources":["../src/createScriptRunner.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 {\n CandleEvent,\n Capabilities,\n PlotOverride,\n RunnerEmissions,\n} from \"@invinite-org/chartlang-adapter-kit\";\nimport type {\n Bar,\n CompiledScriptBundle,\n CompiledScriptObject,\n ComputeFn,\n ScriptManifest,\n} from \"@invinite-org/chartlang-core\";\nimport { isCompiledScriptBundle } from \"@invinite-org/chartlang-core\";\n\nimport {\n type DepOutputStore,\n type DepRunner,\n type SiblingRunner,\n createDepOutputStore,\n createDepRunner,\n createSiblingRunner,\n installDepOutputGlobal,\n} from \"./dep/index.js\";\nimport { pushDiagnostic, resolveDefaultPane, resolveScriptPane } from \"./emit/index.js\";\nimport {\n dispose as disposeImpl,\n drain as drainImpl,\n onBarClose as onBarCloseImpl,\n onBarTick as onBarTickImpl,\n onHistory as onHistoryImpl,\n} from \"./execution/index.js\";\nimport {\n appendSecondaryBar,\n appendSecondaryHistory,\n replaceSecondaryHead,\n} from \"./execution/secondaryStream.js\";\nimport { resolveInputs } from \"./inputs/index.js\";\nimport type { PersistentStateStore } from \"./persistentStateStore.js\";\nimport {\n PERSISTENCE_INTERVAL_MS,\n maybeSaveStateSnapshot,\n restoreStateSnapshot,\n saveStateSnapshot,\n} from \"./persistentStateStore.runtime.js\";\nimport { validateSnapshot } from \"./persistentStateStore.validate.js\";\nimport {\n buildSecurityExprRunners,\n driveSecurityExpressions,\n} from \"./request/securityExprRunner.js\";\nimport type { MutableRunnerEmissions, RuntimeContext } from \"./runtimeContext.js\";\nimport { type StateStore, inMemoryStateStore } from \"./stateStore.js\";\nimport { type StreamState, createStreamState } from \"./streamState.js\";\nimport { type AdapterSymInfo, createRuntimeViews, makeSymInfoView } from \"./views/index.js\";\n\n/**\n * Internal handle the execution functions read and mutate per step. Lives\n * inside `createScriptRunner`'s closure; never exposed on the public\n * barrel. `barIndex` is the only mutable field — `onBarClose` increments\n * it; `onBarTick` does not.\n *\n * @since 0.1\n * @example\n * // RunnerState is internal — execution functions accept it as\n * // their first argument:\n * // await onBarClose(state, rawBar);\n */\nexport type RunnerState = {\n readonly manifest: ScriptManifest;\n readonly compute: ComputeFn;\n readonly capabilities: Capabilities;\n readonly stateStore: StateStore;\n readonly persistenceIntervalMs: number;\n readonly now: () => number;\n readonly mainStream: StreamState;\n readonly runtimeContext: RuntimeContext;\n readonly emissions: MutableRunnerEmissions;\n /**\n * Sub-runners for every private dep entry of a\n * `CompiledScriptBundle`. Empty array for single-script callers.\n * Walked in declaration order before the primary's compute each\n * bar. @since 0.7\n */\n readonly depRunners: ReadonlyArray<DepRunner>;\n /**\n * Sub-runners for every drawn named-export entry of a\n * `CompiledScriptBundle`. Empty for single-script callers.\n * Walked in declaration order after deps, before the primary's\n * compute. @since 0.7\n */\n readonly siblingRunners: ReadonlyArray<SiblingRunner>;\n /**\n * Shared titled-output buffer for the bundle. `null` for\n * single-script callers (no deps to read from). @since 0.7\n */\n readonly depOutputStore: DepOutputStore | null;\n /**\n * Per-bar flag set by `runDepStep` when any dep halts. Read by\n * `onBarClose` / `onBarTick` after the primary's compute returns,\n * clearing the primary's plot/drawing/alert queues. Reset at the\n * top of every bar. @since 0.7\n */\n depErroredThisBar: boolean;\n barIndex: number;\n};\n\n/**\n * The user-facing handle `createScriptRunner` returns. Hosts (Worker,\n * QuickJS, conformance harness) drive a `ScriptRunner` through the\n * standard lifecycle: `load → onHistory → onBarClose × N → onBarTick × M\n * → drain → dispose`. PLAN §6.1 fixes this shape; consumer-repo hosts\n * pin against it.\n *\n * `onHistory` / `onBarClose` / `onBarTick` return `Promise<void>` — the\n * runtime allows compute bodies to `await` (Phase 1 doesn't, but the\n * surface is forward-compatible with Phase-5 `request.security` warmup).\n *\n * @since 0.1\n * @example\n * // import { createScriptRunner }\n * // from \"@invinite-org/chartlang-runtime\";\n * // const runner = createScriptRunner({ compiled, capabilities });\n * // await runner.onHistory(historicalBars);\n * // const emissions = runner.drain();\n * // runner.dispose();\n */\nexport type ScriptRunner = {\n onHistory(bars: ReadonlyArray<Bar>): Promise<void>;\n onBarClose(bar: Bar): Promise<void>;\n onBarTick(bar: Bar): Promise<void>;\n push(event: CandleEvent): Promise<void>;\n warmStart(currentMainBarTime: number): Promise<void>;\n drain(): RunnerEmissions;\n /**\n * Replace the per-slot presentation override map live. Cheap and\n * recompute-free — the swap takes effect on the NEXT push's\n * `compute`; the just-pushed bar's drain returns the pre-swap\n * emissions (already baked during that bar's `compute`). Entries\n * are frozen on assignment; overrides are presentation-only and\n * never feed `compute`.\n *\n * @since 0.8\n * @stable\n * @example\n * // runner.setPlotOverrides({ \"ema.chart.ts:12:5#0\": { visible: false } });\n */\n setPlotOverrides(next: Readonly<Record<string, PlotOverride>>): void;\n dispose(): Promise<void>;\n};\n\n/**\n * Constructor arguments for {@link createScriptRunner}. `stateStore`\n * defaults to {@link inMemoryStateStore} so callers without persistence\n * needs can omit it. `symInfo` defaults to empty sentinels and is gated\n * by `capabilities.symInfoFields` at mount. `resolveInputs` is called\n * once at mount with `manifest.name`; worker-backed callers can pass an\n * already structured-cloned `inputOverrides` record instead.\n * `persistentStateStore` is the PLAN §6.9 cross-mount snapshot store;\n * `persistenceIntervalMs` defaults to 60 seconds.\n *\n * @since 0.1\n * @example\n * // const args: CreateScriptRunnerArgs = {\n * // compiled,\n * // capabilities,\n * // stateStore: inMemoryStateStore(),\n * // };\n */\nexport type CreateScriptRunnerArgs = {\n /**\n * Either a single `CompiledScriptObject` (Phase-1 contract — preserved\n * byte-identically) or a `CompiledScriptBundle` whose primary script\n * is mounted alongside one `DepRunner` per private dep entry and one\n * `SiblingRunner` per drawn named export.\n *\n * @since 0.1 — widened to bundle in 0.7\n */\n readonly compiled: CompiledScriptObject | CompiledScriptBundle;\n readonly capabilities: Capabilities;\n readonly stateStore?: StateStore;\n readonly persistentStateStore?: PersistentStateStore;\n readonly persistenceIntervalMs?: number;\n readonly now?: () => number;\n readonly symInfo?: AdapterSymInfo;\n readonly resolveInputs?: (scriptId: string) => Readonly<Record<string, unknown>>;\n readonly inputOverrides?: Readonly<Record<string, unknown>>;\n readonly resolvePlotOverrides?: (scriptId: string) => Readonly<Record<string, PlotOverride>>;\n readonly plotOverrides?: Readonly<Record<string, PlotOverride>>;\n};\n\nfunction resolveCapacity(manifest: ScriptManifest): number {\n const { ohlcv, dynamicFallback } = manifest.seriesCapacities;\n const fallback = manifest.maxLookback + 1;\n // `dynamicFallback` is the compiler's §6.6 safety net: a non-literal\n // series index (e.g. `trend[LOOKBACK]` with `const LOOKBACK = 20`)\n // cannot be sized statically, so `extractMaxLookback` emits a 5000-slot\n // request instead of bumping `maxLookback`. Honour it here — otherwise\n // the buffer collapses to `maxLookback + 1` and every dynamic-index read\n // past slot 0 returns NaN (the \"forecast line never drawn\" bug).\n return Math.max(1, ohlcv ?? fallback, dynamicFallback ?? 0);\n}\n\nfunction createSecondaryStreams(\n manifest: ScriptManifest,\n capacity: number,\n): Map<string, StreamState> {\n const streams = new Map<string, StreamState>();\n for (const interval of manifest.requestedIntervals) {\n if (streams.has(interval)) continue;\n streams.set(interval, createStreamState({ interval, capacity, symbol: \"\" }));\n }\n return streams;\n}\n\nasync function pushMainEvent(state: RunnerState, event: CandleEvent): Promise<void> {\n switch (event.kind) {\n case \"history\":\n await onHistoryImpl(state, event.bars);\n return;\n case \"close\":\n await onBarCloseImpl(state, event.bar);\n await maybeSaveStateSnapshot(state, state.now(), state.persistenceIntervalMs);\n return;\n case \"tick\":\n await onBarTickImpl(state, event.bar);\n return;\n }\n}\n\nfunction pushUnknownSecondaryDiagnostic(state: RunnerState, streamKey: string): void {\n pushDiagnostic(state.emissions, {\n kind: \"diagnostic\",\n severity: \"warning\",\n code: \"unknown-secondary-stream\",\n message: `Secondary stream \"${streamKey}\" was not registered by the script manifest`,\n slotId: null,\n bar: state.barIndex,\n });\n}\n\nfunction pushSecondaryEvent(state: RunnerState, streamKey: string, event: CandleEvent): void {\n const stream = state.runtimeContext.secondaryStreams.get(streamKey);\n if (stream === undefined) {\n pushUnknownSecondaryDiagnostic(state, streamKey);\n return;\n }\n const ctx = state.runtimeContext;\n switch (event.kind) {\n case \"history\":\n // History bars are finalised HTF closes: fill the buffer, then\n // drive every registered runner once per bar in source order (a\n // no-op until the main compute captures the callback).\n appendSecondaryHistory(stream, event.bars);\n for (const bar of event.bars) {\n driveSecurityExpressions(ctx, streamKey, \"close\", bar);\n }\n return;\n case \"close\":\n appendSecondaryBar(stream, event.bar);\n driveSecurityExpressions(ctx, streamKey, \"close\", event.bar);\n return;\n case \"tick\":\n replaceSecondaryHead(stream, event.bar);\n driveSecurityExpressions(ctx, streamKey, \"tick\", event.bar);\n return;\n }\n}\n\nfunction primaryOf(compiled: CompiledScriptObject | CompiledScriptBundle): CompiledScriptObject {\n return isCompiledScriptBundle(compiled) ? compiled.primary : compiled;\n}\n\nfunction buildPrimaryState(\n args: CreateScriptRunnerArgs,\n primary: CompiledScriptObject,\n): RunnerState {\n const capacity = resolveCapacity(primary.manifest);\n const mainStream = createStreamState({ interval: \"\", capacity, symbol: \"\" });\n const secondaryStreams = createSecondaryStreams(primary.manifest, capacity);\n const stateStore = args.stateStore ?? inMemoryStateStore();\n const now = args.now ?? Date.now;\n const views = createRuntimeViews({\n syminfo: makeSymInfoView(args.symInfo ?? {}, args.capabilities.symInfoFields),\n });\n const emissions: MutableRunnerEmissions = {\n plots: [],\n drawings: [],\n alerts: [],\n alertConditions: [],\n logs: [],\n diagnostics: [],\n fromBar: 0,\n toBar: 0,\n };\n const alertConditions = new Map(\n (primary.manifest.alertConditions ?? []).map((condition) => [condition.id, condition]),\n );\n\n const state: RunnerState = {\n manifest: primary.manifest,\n compute: primary.compute,\n capabilities: args.capabilities,\n stateStore,\n persistenceIntervalMs: args.persistenceIntervalMs ?? PERSISTENCE_INTERVAL_MS,\n now,\n mainStream,\n runtimeContext: {\n stream: mainStream,\n stateStore,\n ...(args.persistentStateStore === undefined\n ? {}\n : { persistentStateStore: args.persistentStateStore }),\n lastPersistTime: 0,\n capabilities: args.capabilities,\n emissions,\n barIndex: () => state.barIndex,\n isTick: false,\n drawingSlots: new Map(),\n drawingSubIdCounters: new Map(),\n drawingBucketCounters: {\n lines: 0,\n labels: 0,\n boxes: 0,\n polylines: 0,\n other: 0,\n },\n scriptMaxDrawings: primary.manifest.maxDrawings ?? null,\n stateSlots: new Map(),\n seriesSlots: new Map(),\n secondaryStreams,\n requestSecurityBars: new Map(),\n requestSecurityAlignments: new Map(),\n requestSecurityAscendingBars: new Map(),\n requestLowerTfViews: new Map(),\n diagnosedRequestKeys: new Set(),\n alertConditions,\n diagnosedAlertConditionKeys: new Set(),\n logBudget: 0,\n logBudgetExceededDiagnosed: false,\n resolvedInputs: Object.freeze({}),\n defaultPane: resolveDefaultPane(primary.manifest),\n scriptPane: resolveScriptPane(primary.manifest),\n plotOverrides: Object.freeze({}),\n diagnosedInputKeys: new Set(),\n views,\n },\n emissions,\n depRunners: [],\n siblingRunners: [],\n depOutputStore: null,\n depErroredThisBar: false,\n barIndex: 0,\n };\n const overrides =\n args.inputOverrides ?? args.resolveInputs?.(primary.manifest.name) ?? Object.freeze({});\n state.runtimeContext.resolvedInputs = resolveInputs(\n primary.manifest,\n overrides,\n state.runtimeContext,\n );\n state.runtimeContext.plotOverrides =\n args.plotOverrides ??\n args.resolvePlotOverrides?.(primary.manifest.name) ??\n Object.freeze({});\n const exprRunners = buildSecurityExprRunners(primary.manifest, state.runtimeContext, capacity);\n state.runtimeContext.securityExprRunners = exprRunners.bySlot;\n state.runtimeContext.securityExprRunnersByInterval = exprRunners.byInterval;\n state.runtimeContext.requestSecurityExprSeries = new Map();\n return state;\n}\n\nfunction attachBundle(\n primary: RunnerState,\n bundle: CompiledScriptBundle,\n capabilities: Capabilities,\n now: () => number,\n): void {\n const consumerLookback = Math.max(\n primary.manifest.maxLookback,\n ...bundle.siblings.map((s) => s.compiled.manifest.maxLookback),\n );\n const storeCapacity = Math.max(1, consumerLookback + 1);\n const producers = [\n ...bundle.dependencies.map((d) => ({\n producerId: d.localId,\n outputs: (d.compiled.manifest.outputs ?? []).map((o) => ({\n title: o.title,\n })),\n })),\n ...bundle.siblings.map((s) => ({\n producerId: s.exportName,\n outputs: (s.compiled.manifest.outputs ?? []).map((o) => ({\n title: o.title,\n })),\n })),\n ];\n const store = createDepOutputStore({ producers, capacity: storeCapacity });\n const depRunners: DepRunner[] = bundle.dependencies.map((entry) =>\n createDepRunner({\n compiled: entry.compiled,\n localId: entry.localId,\n parentCapabilities: capabilities,\n mainStream: primary.mainStream,\n secondaryStreams: primary.runtimeContext.secondaryStreams,\n depOutputStore: store,\n inputOverrides: entry.inputOverrides ?? Object.freeze({}),\n now,\n }),\n );\n const siblingRunners: SiblingRunner[] = bundle.siblings.map((entry) =>\n createSiblingRunner({\n compiled: entry.compiled,\n exportName: entry.exportName,\n parentCapabilities: capabilities,\n mainStream: primary.mainStream,\n secondaryStreams: primary.runtimeContext.secondaryStreams,\n depOutputStore: store,\n inputOverrides: Object.freeze({}),\n now,\n }),\n );\n Object.assign(primary, {\n depRunners,\n siblingRunners,\n depOutputStore: store,\n });\n primary.runtimeContext.depOutputStore = store;\n installDepOutputGlobal();\n}\n\n/**\n * Build a `ScriptRunner` for a compiled chartlang script. The runner\n * owns one `StreamState`, one `MutableRunnerEmissions` queue set, and\n * the `RuntimeContext` Task 7-8 primitives read through\n * `ACTIVE_RUNTIME_CONTEXT`. Phase 1 ships a single-stream model; the\n * `requestedIntervals` field on the manifest is always empty.\n *\n * Capacity sizing follows PLAN §6.6: take the max of\n * `manifest.seriesCapacities.ohlcv` (compiler-emitted per-series\n * lookback) or the `manifest.maxLookback + 1` floor, and\n * `manifest.seriesCapacities.dynamicFallback` (the 5000-slot safety net the\n * compiler emits when a series is read at a non-literal index it cannot size\n * statically), clamped to a minimum of 1 so an empty-history script still has\n * a valid head slot.\n *\n * @since 0.1 — widened to accept `CompiledScriptBundle` in 0.7.\n * @example\n * // import { createScriptRunner } from \"@invinite-org/chartlang-runtime\";\n * // const runner = createScriptRunner({ compiled, capabilities });\n * // await runner.onHistory([]);\n * // runner.drain();\n * // runner.dispose();\n */\nexport function createScriptRunner(args: CreateScriptRunnerArgs): ScriptRunner {\n const primary = primaryOf(args.compiled);\n const state = buildPrimaryState(args, primary);\n if (isCompiledScriptBundle(args.compiled)) {\n attachBundle(state, args.compiled, args.capabilities, state.now);\n }\n\n return Object.freeze({\n async onHistory(bars) {\n await onHistoryImpl(state, bars);\n },\n async onBarClose(bar) {\n await onBarCloseImpl(state, bar);\n await maybeSaveStateSnapshot(state, state.now(), state.persistenceIntervalMs);\n },\n async onBarTick(bar) {\n await onBarTickImpl(state, bar);\n },\n async push(event) {\n if (event.streamKey === undefined) {\n await pushMainEvent(state, event);\n return;\n }\n pushSecondaryEvent(state, event.streamKey, event);\n },\n async warmStart(currentMainBarTime) {\n const store = state.runtimeContext.persistentStateStore;\n if (store === undefined) return;\n const snap = await store.load();\n if (snap === null) return;\n if (!validateSnapshot(snap)) return;\n if (snap.lastBarTime >= currentMainBarTime) {\n pushDiagnostic(state.emissions, {\n kind: \"diagnostic\",\n severity: \"warning\",\n code: \"state-snapshot-future-dated\",\n message: \"persistent state snapshot is ahead of the current bar cursor\",\n slotId: null,\n bar: state.barIndex,\n });\n try {\n await store.clear();\n } catch (err) {\n pushDiagnostic(state.emissions, {\n kind: \"diagnostic\",\n severity: \"warning\",\n code: \"state-snapshot-save-failed\",\n message: err instanceof Error ? err.message : String(err),\n slotId: null,\n bar: state.barIndex,\n });\n }\n return;\n }\n restoreStateSnapshot(state, snap);\n state.runtimeContext.lastPersistTime = snap.savedAt;\n pushDiagnostic(state.emissions, {\n kind: \"diagnostic\",\n severity: \"info\",\n code: \"state-snapshot-restored\",\n message: `persistent state snapshot restored through bar ${snap.lastBarTime}`,\n slotId: null,\n bar: state.barIndex,\n });\n },\n drain() {\n return drainImpl(state);\n },\n setPlotOverrides(next) {\n state.runtimeContext.plotOverrides = Object.freeze({ ...next });\n },\n async dispose() {\n const finalSave = saveStateSnapshot(state, state.now());\n disposeImpl(state);\n await finalSave;\n },\n });\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DepOutputStore.js","sourceRoot":"","sources":["../../src/dep/DepOutputStore.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAI/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAsElD,MAAM,aAAa,GAAG,GAAG,CAAC;AAE1B,SAAS,QAAQ,CAAC,UAAkB,EAAE,KAAa;IAC/C,OAAO,GAAG,UAAU,GAAG,aAAa,GAAG,KAAK,EAAE,CAAC;AACnD,CAAC;AAOD;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,oBAAoB,CAAC,IAGpC;IACG,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC5C,MAAM,OAAO,GAAG,IAAI,GAAG,EAAsB,CAAC;IAC9C,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QACpC,KAAK,MAAM,MAAM,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;YACpC,MAAM,GAAG,GAAG,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;YACxD,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;gBAAE,SAAS;YAC/B,MAAM,MAAM,GAAG,IAAI,iBAAiB,CAAC,QAAQ,CAAC,CAAC;YAC/C,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,CAAS,MAAM,CAAC,EAAE,CAAC,CAAC;QACvE,CAAC;IACL,CAAC;IAED,SAAS,MAAM,CAAC,UAAkB,EAAE,KAAa;QAC7C,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC;QACvD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,eAAe,UAAU,IAAI,KAAK,mBAAmB,CAAC,CAAC;QAC3E,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,OAAO,MAAM,CAAC,MAAM,CAAC;QACjB,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK;YACzB,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACnD,CAAC;QACD,IAAI,CAAC,UAAU,EAAE,KAAK;YAClB,OAAO,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC;QAC1C,CAAC;QACD,QAAQ;YACJ,+DAA+D;QACnE,CAAC;QACD,OAAO;YACH,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;gBACnC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YACzB,CAAC;YACD,OAAO,CAAC,KAAK,EAAE,CAAC;QACpB,CAAC;KACJ,CAAC,CAAC;AACP,CAAC"}
|
|
1
|
+
{"version":3,"file":"DepOutputStore.js","sourceRoot":"","sources":["../../src/dep/DepOutputStore.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAI/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAsElD,MAAM,aAAa,GAAG,GAAG,CAAC;AAE1B,SAAS,QAAQ,CAAC,UAAkB,EAAE,KAAa;IAC/C,OAAO,GAAG,UAAU,GAAG,aAAa,GAAG,KAAK,EAAE,CAAC;AACnD,CAAC;AAOD;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,oBAAoB,CAAC,IAGpC;IACG,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC5C,MAAM,OAAO,GAAG,IAAI,GAAG,EAAsB,CAAC;IAC9C,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QACpC,KAAK,MAAM,MAAM,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;YACpC,MAAM,GAAG,GAAG,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;YACxD,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;gBAAE,SAAS;YAC/B,MAAM,MAAM,GAAG,IAAI,iBAAiB,CAAC,QAAQ,CAAC,CAAC;YAC/C,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,CAAS,MAAM,CAAC,EAAE,CAAC,CAAC;QACvE,CAAC;IACL,CAAC;IAED,SAAS,MAAM,CAAC,UAAkB,EAAE,KAAa;QAC7C,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC;QACvD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,eAAe,UAAU,IAAI,KAAK,mBAAmB,CAAC,CAAC;QAC3E,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,OAAO,MAAM,CAAC,MAAM,CAAC;QACjB,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK;YACzB,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACnD,CAAC;QACD,IAAI,CAAC,UAAU,EAAE,KAAK;YAClB,OAAO,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC;QAC1C,CAAC;QACD,QAAQ;YACJ,+DAA+D;QACnE,CAAC;QACD,OAAO;YACH,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;gBACnC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YACzB,CAAC;YACD,OAAO,CAAC,KAAK,EAAE,CAAC;QACpB,CAAC;KACJ,CAAC,CAAC;AACP,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 { Series } from \"@invinite-org/chartlang-core\";\n\nimport { Float64RingBuffer } from \"../ringBuffer.js\";\nimport { makeSeriesView } from \"../seriesView.js\";\n\n/**\n * One producer's contribution to a {@link DepOutputStore}. `producerId`\n * is the dep's `localId` (private dep) or the sibling's `exportName`\n * (drawn export). `outputs` mirrors the producer manifest's titled\n * `plot(value, { title })` declarations.\n *\n * @since 0.7\n * @stable\n * @example\n * const decl: DepOutputDeclaration = {\n * producerId: \"fastTrend\",\n * outputs: [{ title: \"line\" }],\n * };\n * void decl;\n */\nexport type DepOutputDeclaration = Readonly<{\n readonly producerId: string;\n readonly outputs: ReadonlyArray<{ readonly title: string }>;\n}>;\n\n/**\n * Per-bar titled-output buffer shared by the primary script and every\n * sibling drawn export within a `CompiledScriptBundle`. Each\n * `(producerId, title)` pair owns a `Float64RingBuffer`; the runtime\n * appends to it once per bar via {@link applyDepEmissionPolicy}, and\n * consumers read it through `__chartlang_depOutput`.\n *\n * The store pre-allocates a buffer for every declared output of every\n * dep + sibling at mount time. Buffer capacity is sized for the\n * consumer's `manifest.maxLookback + 1`, so `series[n]` lookback works\n * up to the script's declared horizon.\n *\n * @since 0.7\n * @stable\n * @example\n * // import { createDepOutputStore } from \"@invinite-org/chartlang-runtime\";\n * // const store = createDepOutputStore({\n * // producers: [{ producerId: \"fast\", outputs: [{ title: \"line\" }] }],\n * // capacity: 32,\n * // });\n */\nexport type DepOutputStore = Readonly<{\n /**\n * Append `value` to the producer's titled buffer for the current\n * bar. Throws when `(producerId, title)` is not declared. Called by\n * {@link applyDepEmissionPolicy} after each dep/sibling's compute.\n */\n push(producerId: string, title: string, value: number): void;\n /**\n * Return the producer's stable `Series<number>` view for `title`.\n * Throws when `(producerId, title)` is not declared. Called by the\n * compiler-emitted `__chartlang_depOutput` helper during the\n * consumer's compute.\n */\n read(producerId: string, title: string): Series<number>;\n /**\n * Called by the executor before any dep/sibling/primary compute on\n * a new bar. Reserved for per-bar reset state; the current\n * implementation has no per-bar bookkeeping but the hook stays\n * stable so Task 5 can extend it.\n */\n beginBar(): void;\n /**\n * Drop every entry. Called by `dispose`.\n */\n dispose(): void;\n}>;\n\nconst ENTRY_KEY_SEP = \"\u0000\";\n\nfunction entryKey(producerId: string, title: string): string {\n return `${producerId}${ENTRY_KEY_SEP}${title}`;\n}\n\ntype StoreEntry = Readonly<{\n readonly buffer: Float64RingBuffer;\n readonly view: Series<number>;\n}>;\n\n/**\n * Construct a fresh {@link DepOutputStore}. Pre-allocates one buffer +\n * one `Series<number>` Proxy per declared `(producerId, title)`. The\n * proxy identity is stable for the store's lifetime so a\n * `const fast = baseTrend.output(\"line\")` at the top of the consumer's\n * compute keeps seeing the live values.\n *\n * @since 0.7\n * @stable\n * @example\n * // const store = createDepOutputStore({\n * // producers: [{ producerId: \"fast\", outputs: [{ title: \"line\" }] }],\n * // capacity: 100,\n * // });\n * // store.beginBar();\n * // store.push(\"fast\", \"line\", 42);\n * // store.read(\"fast\", \"line\").current; // 42\n */\nexport function createDepOutputStore(args: {\n readonly producers: ReadonlyArray<DepOutputDeclaration>;\n readonly capacity: number;\n}): DepOutputStore {\n const capacity = Math.max(1, args.capacity);\n const entries = new Map<string, StoreEntry>();\n for (const producer of args.producers) {\n for (const output of producer.outputs) {\n const key = entryKey(producer.producerId, output.title);\n if (entries.has(key)) continue;\n const buffer = new Float64RingBuffer(capacity);\n entries.set(key, { buffer, view: makeSeriesView<number>(buffer) });\n }\n }\n\n function lookup(producerId: string, title: string): StoreEntry {\n const entry = entries.get(entryKey(producerId, title));\n if (entry === undefined) {\n throw new Error(`dep output \"${producerId}.${title}\" is not declared`);\n }\n return entry;\n }\n\n return Object.freeze({\n push(producerId, title, value): void {\n lookup(producerId, title).buffer.append(value);\n },\n read(producerId, title): Series<number> {\n return lookup(producerId, title).view;\n },\n beginBar(): void {\n // Reserved hook — Task 5 will use it for snapshot bookkeeping.\n },\n dispose(): void {\n for (const entry of entries.values()) {\n entry.buffer.reset();\n }\n entries.clear();\n },\n });\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DepRunner.d.ts","sourceRoot":"","sources":["../../src/dep/DepRunner.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AACxE,OAAO,KAAK,EAAE,GAAG,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAE9E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAO5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAO1D;;;;;;;;;;;;;;;GAeG;AACH,MAAM,MAAM,SAAS,GAAG,QAAQ,CAAC;IAC7B,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IACrB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,eAAe,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAChD,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;CAC/B,CAAC,CAAC;AAEH;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,aAAa,GAAG,QAAQ,CAAC;IACjC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,eAAe,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAChD,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;CAC/B,CAAC,CAAC;AAEH;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,MAAM,mBAAmB,GAAG,QAAQ,CAAC;IACvC,QAAQ,CAAC,QAAQ,EAAE,oBAAoB,CAAC;IACxC,QAAQ,CAAC,kBAAkB,EAAE,YAAY,CAAC;IAC1C,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAC;IACjC,QAAQ,CAAC,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACpD,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IACxC,QAAQ,CAAC,cAAc,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAC3D,QAAQ,CAAC,GAAG,EAAE,MAAM,MAAM,CAAC;CAC9B,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"DepRunner.d.ts","sourceRoot":"","sources":["../../src/dep/DepRunner.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AACxE,OAAO,KAAK,EAAE,GAAG,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAE9E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAO5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAO1D;;;;;;;;;;;;;;;GAeG;AACH,MAAM,MAAM,SAAS,GAAG,QAAQ,CAAC;IAC7B,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IACrB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,eAAe,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAChD,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;CAC/B,CAAC,CAAC;AAEH;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,aAAa,GAAG,QAAQ,CAAC;IACjC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,eAAe,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAChD,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;CAC/B,CAAC,CAAC;AAEH;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,MAAM,mBAAmB,GAAG,QAAQ,CAAC;IACvC,QAAQ,CAAC,QAAQ,EAAE,oBAAoB,CAAC;IACxC,QAAQ,CAAC,kBAAkB,EAAE,YAAY,CAAC;IAC1C,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAC;IACjC,QAAQ,CAAC,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACpD,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IACxC,QAAQ,CAAC,cAAc,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAC3D,QAAQ,CAAC,GAAG,EAAE,MAAM,MAAM,CAAC;CAC9B,CAAC,CAAC;AA8FH;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,eAAe,CAC3B,IAAI,EAAE,mBAAmB,GAAG;IAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACzD,SAAS,CASX;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,mBAAmB,CAC/B,IAAI,EAAE,mBAAmB,GAAG;IAAE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GAC5D,aAAa,CASf;AAuCD;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,UAAU,CAC5B,GAAG,EAAE,SAAS,EACd,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,GAAG,EACX,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,OAAO,GAChB,OAAO,CAAC,IAAI,CAAC,CAwBf;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,cAAc,CAChC,OAAO,EAAE,aAAa,EACtB,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,GAAG,EACX,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,OAAO,GAChB,OAAO,CAAC,IAAI,CAAC,CAyBf"}
|
package/dist/dep/DepRunner.js
CHANGED
|
@@ -50,6 +50,7 @@ function buildSubRunnerState(args, slotIdPrefix, isDep) {
|
|
|
50
50
|
},
|
|
51
51
|
scriptMaxDrawings: args.compiled.manifest.maxDrawings ?? null,
|
|
52
52
|
stateSlots: new Map(),
|
|
53
|
+
seriesSlots: new Map(),
|
|
53
54
|
secondaryStreams: args.secondaryStreams,
|
|
54
55
|
requestSecurityBars: new Map(),
|
|
55
56
|
requestSecurityAlignments: new Map(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DepRunner.js","sourceRoot":"","sources":["../../src/dep/DepRunner.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DepRunner.js","sourceRoot":"","sources":["../../src/dep/DepRunner.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 { Capabilities } from \"@invinite-org/chartlang-adapter-kit\";\nimport type { Bar, CompiledScriptObject } from \"@invinite-org/chartlang-core\";\n\nimport type { RunnerState } from \"../createScriptRunner.js\";\nimport { pushDiagnostic } from \"../emit/emissionsQueue.js\";\nimport { resolveDefaultPane, resolveScriptPane } from \"../emit/paneResolver.js\";\nimport { resetBarEmissions, runComputeBody } from \"../execution/runComputeStep.js\";\nimport { resolveInputs } from \"../inputs/resolveInputs.js\";\nimport type { MutableRunnerEmissions } from \"../runtimeContext.js\";\nimport { inMemoryStateStore } from \"../stateStore.js\";\nimport type { StreamState } from \"../streamState.js\";\nimport { createRuntimeViews } from \"../views/index.js\";\nimport type { EventKind } from \"../views/index.js\";\nimport type { DepOutputStore } from \"./DepOutputStore.js\";\nimport {\n type DepRunnerLike,\n type SiblingRunnerLike,\n applyDepEmissionPolicy,\n} from \"./emissionFilter.js\";\n\n/**\n * One mounted private dep — a `const X = defineIndicator(...)` binding\n * that another script in the same compiled bundle references via\n * `X.output(\"title\")`. Owns its own `RunnerState`; shares the parent's\n * `mainStream` + `secondaryStreams`. Plot emissions are dropped from\n * the parent's queue and captured into the shared\n * {@link DepOutputStore}.\n *\n * @since 0.7\n * @stable\n * @example\n * // const dep = createDepRunner({ compiled, localId: \"fast\", ... });\n * // await runDepStep(dep, parent, rawBar, \"close\", false);\n * const x: number = 1;\n * void x;\n */\nexport type DepRunner = Readonly<{\n readonly kind: \"dep\";\n readonly localId: string;\n readonly slotIdPrefix: string;\n readonly declaredOutputs: ReadonlyArray<string>;\n readonly state: RunnerState;\n}>;\n\n/**\n * One mounted drawn sibling — a `export const X = defineIndicator(...)`\n * binding whose emissions ARE forwarded to the parent's queue, with\n * slot ids prefixed by `export:<exportName>/`. Siblings can also expose\n * outputs consumed by the primary or by other siblings.\n *\n * @since 0.7\n * @stable\n * @example\n * // const sib = createSiblingRunner({ compiled, exportName: \"slow\", ... });\n * // await runSiblingStep(sib, parent, rawBar, \"close\", false);\n * const x: number = 1;\n * void x;\n */\nexport type SiblingRunner = Readonly<{\n readonly kind: \"sibling\";\n readonly exportName: string;\n readonly slotIdPrefix: string;\n readonly declaredOutputs: ReadonlyArray<string>;\n readonly state: RunnerState;\n}>;\n\n/**\n * Constructor arguments for {@link createDepRunner} /\n * {@link createSiblingRunner}.\n *\n * `mainStream` + `secondaryStreams` are SHARED with the parent runner\n * (same OHLCV history); `depOutputStore` is also shared so every\n * sibling + dep + primary read from the same store. `inputOverrides`\n * is the merged effective-inputs record the compiler attached to the\n * dep's `DependencyDeclaration`.\n *\n * @since 0.7\n * @stable\n * @example\n * // const args: CreateDepRunnerArgs = {\n * // compiled, localId: \"x\",\n * // parentCapabilities, mainStream, secondaryStreams,\n * // depOutputStore, inputOverrides: {}, now: Date.now,\n * // };\n * const x: number = 1;\n * void x;\n */\nexport type CreateDepRunnerArgs = Readonly<{\n readonly compiled: CompiledScriptObject;\n readonly parentCapabilities: Capabilities;\n readonly mainStream: StreamState;\n readonly secondaryStreams: Map<string, StreamState>;\n readonly depOutputStore: DepOutputStore;\n readonly inputOverrides: Readonly<Record<string, unknown>>;\n readonly now: () => number;\n}>;\n\nfunction freshEmissions(barIndex: number): MutableRunnerEmissions {\n return {\n plots: [],\n drawings: [],\n alerts: [],\n alertConditions: [],\n logs: [],\n diagnostics: [],\n fromBar: barIndex,\n toBar: barIndex,\n };\n}\n\nfunction buildSubRunnerState(\n args: CreateDepRunnerArgs,\n slotIdPrefix: string,\n isDep: boolean,\n): RunnerState {\n const stateStore = inMemoryStateStore();\n const emissions = freshEmissions(0);\n const alertConditions = new Map(\n (args.compiled.manifest.alertConditions ?? []).map((c) => [c.id, c]),\n );\n const state: RunnerState = {\n manifest: args.compiled.manifest,\n compute: args.compiled.compute,\n capabilities: args.parentCapabilities,\n stateStore,\n persistenceIntervalMs: Number.POSITIVE_INFINITY,\n now: args.now,\n mainStream: args.mainStream,\n runtimeContext: {\n stream: args.mainStream,\n stateStore,\n lastPersistTime: 0,\n capabilities: args.parentCapabilities,\n emissions,\n barIndex: () => state.barIndex,\n isTick: false,\n drawingSlots: new Map(),\n drawingSubIdCounters: new Map(),\n drawingBucketCounters: {\n lines: 0,\n labels: 0,\n boxes: 0,\n polylines: 0,\n other: 0,\n },\n scriptMaxDrawings: args.compiled.manifest.maxDrawings ?? null,\n stateSlots: new Map(),\n seriesSlots: new Map(),\n secondaryStreams: args.secondaryStreams,\n requestSecurityBars: new Map(),\n requestSecurityAlignments: new Map(),\n requestSecurityAscendingBars: new Map(),\n requestLowerTfViews: new Map(),\n diagnosedRequestKeys: new Set(),\n alertConditions,\n diagnosedAlertConditionKeys: new Set(),\n logBudget: 0,\n logBudgetExceededDiagnosed: false,\n resolvedInputs: Object.freeze({}),\n defaultPane: resolveDefaultPane(args.compiled.manifest),\n scriptPane: resolveScriptPane(args.compiled.manifest),\n // Overrides target the primary script's slots only in v1;\n // dep-output plots are not host-overridable.\n plotOverrides: Object.freeze({}),\n diagnosedInputKeys: new Set(),\n views: createRuntimeViews(),\n slotIdPrefix,\n isDep,\n depOutputStore: args.depOutputStore,\n },\n emissions,\n depRunners: [],\n siblingRunners: [],\n depOutputStore: args.depOutputStore,\n depErroredThisBar: false,\n barIndex: 0,\n };\n state.runtimeContext.resolvedInputs = resolveInputs(\n args.compiled.manifest,\n args.inputOverrides,\n state.runtimeContext,\n );\n return state;\n}\n\nfunction declaredOutputTitles(compiled: CompiledScriptObject): ReadonlyArray<string> {\n return (compiled.manifest.outputs ?? []).map((o) => o.title);\n}\n\n/**\n * Construct a {@link DepRunner} for one private dep entry of a\n * `CompiledScriptBundle`. The runner shares the parent's `mainStream`\n * + `secondaryStreams`, owns a fresh `inMemoryStateStore`, and feeds\n * its plot emissions into the shared `DepOutputStore`.\n *\n * @since 0.7\n * @stable\n * @example\n * // const dep = createDepRunner({ compiled, localId: \"fast\",\n * // parentCapabilities, mainStream, secondaryStreams,\n * // depOutputStore, inputOverrides: { length: 20 }, now: Date.now });\n * const x: number = 1;\n * void x;\n */\nexport function createDepRunner(\n args: CreateDepRunnerArgs & { readonly localId: string },\n): DepRunner {\n const slotIdPrefix = `dep:${args.localId}/`;\n return Object.freeze({\n kind: \"dep\" as const,\n localId: args.localId,\n slotIdPrefix,\n declaredOutputs: declaredOutputTitles(args.compiled),\n state: buildSubRunnerState(args, slotIdPrefix, true),\n });\n}\n\n/**\n * Construct a {@link SiblingRunner} for one drawn named-export entry of\n * a `CompiledScriptBundle`. Shares streams + store with the parent;\n * emissions forward to the parent with `export:<exportName>/` slot-id\n * prefixes.\n *\n * @since 0.7\n * @stable\n * @example\n * // const sib = createSiblingRunner({ compiled, exportName: \"slow\", ... });\n * const x: number = 1;\n * void x;\n */\nexport function createSiblingRunner(\n args: CreateDepRunnerArgs & { readonly exportName: string },\n): SiblingRunner {\n const slotIdPrefix = `export:${args.exportName}/`;\n return Object.freeze({\n kind: \"sibling\" as const,\n exportName: args.exportName,\n slotIdPrefix,\n declaredOutputs: declaredOutputTitles(args.compiled),\n state: buildSubRunnerState(args, slotIdPrefix, false),\n });\n}\n\nfunction depRunnerLike(dep: DepRunner): DepRunnerLike {\n return {\n kind: \"dep\",\n localId: dep.localId,\n slotIdPrefix: dep.slotIdPrefix,\n declaredOutputs: dep.declaredOutputs,\n emissions: dep.state.emissions,\n };\n}\n\nfunction siblingRunnerLike(sib: SiblingRunner): SiblingRunnerLike {\n return {\n kind: \"sibling\",\n exportName: sib.exportName,\n slotIdPrefix: sib.slotIdPrefix,\n declaredOutputs: sib.declaredOutputs,\n emissions: sib.state.emissions,\n };\n}\n\nasync function executeSubStep(\n state: RunnerState,\n eventKind: EventKind,\n isTick: boolean,\n): Promise<{ readonly halted: boolean; readonly message: string }> {\n resetBarEmissions(state);\n try {\n const outcome = await runComputeBody({ state, eventKind, isTick });\n return outcome.kind === \"halt\"\n ? { halted: true, message: outcome.message }\n : { halted: false, message: \"\" };\n } catch (err) {\n const message = err instanceof Error ? err.message : String(err);\n return { halted: true, message };\n }\n}\n\n/**\n * Drive one bar of execution for a {@link DepRunner}. Runs the dep's\n * `compute`, captures its titled-plot output into the shared\n * `DepOutputStore` via {@link applyDepEmissionPolicy}, namespaces\n * diagnostics with `dep:<localId>/`, and on halt sets\n * `parentState.depErroredThisBar = true` so the parent's primary\n * step drops its emissions for the bar (per task spec §6).\n *\n * @since 0.7\n * @stable\n * @example\n * // await runDepStep(dep, parent, rawBar, \"close\", false);\n * const x: number = 1;\n * void x;\n */\nexport async function runDepStep(\n dep: DepRunner,\n parentState: RunnerState,\n rawBar: Bar,\n eventKind: EventKind,\n isTick: boolean,\n): Promise<void> {\n if (parentState.depOutputStore === null) {\n throw new Error(\"runDepStep called on a runner with no dep output store\");\n }\n void rawBar;\n const result = await executeSubStep(dep.state, eventKind, isTick);\n if (result.halted) {\n // Use an empty slot id so the filter's prefix call produces the\n // runner's slotIdPrefix (`dep:<localId>/`) — preserves the\n // distinguished slotId in the parent's diagnostic queue.\n pushDiagnostic(dep.state.emissions, {\n kind: \"diagnostic\",\n severity: \"error\",\n code: \"dep-error\",\n message: result.message,\n slotId: \"\",\n bar: dep.state.barIndex,\n });\n parentState.depErroredThisBar = true;\n }\n if (!isTick) {\n dep.state.barIndex += 1;\n }\n applyDepEmissionPolicy(depRunnerLike(dep), parentState.emissions, parentState.depOutputStore);\n}\n\n/**\n * Drive one bar of execution for a {@link SiblingRunner}. Same shape\n * as {@link runDepStep} but the sibling's emissions are forwarded to\n * the parent with `export:<exportName>/` slot-id prefixes, and a\n * sibling halt does NOT clear the primary's emissions — only the\n * sibling's own bar emissions are lost.\n *\n * @since 0.7\n * @stable\n * @example\n * // await runSiblingStep(sibling, parent, rawBar, \"close\", false);\n * const x: number = 1;\n * void x;\n */\nexport async function runSiblingStep(\n sibling: SiblingRunner,\n parentState: RunnerState,\n rawBar: Bar,\n eventKind: EventKind,\n isTick: boolean,\n): Promise<void> {\n if (parentState.depOutputStore === null) {\n throw new Error(\"runSiblingStep called on a runner with no dep output store\");\n }\n void rawBar;\n const result = await executeSubStep(sibling.state, eventKind, isTick);\n if (result.halted) {\n pushDiagnostic(sibling.state.emissions, {\n kind: \"diagnostic\",\n severity: \"error\",\n code: \"dep-error\",\n message: result.message,\n slotId: \"\",\n bar: sibling.state.barIndex,\n });\n // sibling halt does NOT set parentState.depErroredThisBar.\n }\n if (!isTick) {\n sibling.state.barIndex += 1;\n }\n applyDepEmissionPolicy(\n siblingRunnerLike(sibling),\n parentState.emissions,\n parentState.depOutputStore,\n );\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"depOutput.js","sourceRoot":"","sources":["../../src/dep/depOutput.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAI/D,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,uBAAgC,CAAC;AAEtE,MAAM,mBAAmB,GAAG,4DAA4D,CAAC;AACzF,MAAM,gBAAgB,GAAG,mEAAmE,CAAC;AAE7F;;;;;GAKG;AACH,MAAM,UAAU,GAAmB,cAAc,CAAS,IAAI,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;AAEpF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,qBAAqB,CACjC,MAAc,EACd,OAAe,EACf,KAAa;IAEb,MAAM,GAAG,GAAG,sBAAsB,CAAC,OAAO,CAAC;IAC3C,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACzC,CAAC;IACD,MAAM,KAAK,GAAG,GAAG,CAAC,cAAc,CAAC;IACjC,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;IACtC,CAAC;IACD,IAAI,CAAC;QACD,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACtC,CAAC;IAAC,MAAM,CAAC;QACL,cAAc,CAAC,GAAG,CAAC,SAAS,EAAE;YAC1B,IAAI,EAAE,YAAY;YAClB,QAAQ,EAAE,OAAO;YACjB,IAAI,EAAE,oBAAoB;YAC1B,OAAO,EAAE,QAAQ,OAAO,6BAA6B,KAAK,GAAG;YAC7D,MAAM;YACN,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE;SACtB,CAAC,CAAC;QACH,OAAO,UAAU,CAAC;IACtB,CAAC;AACL,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,sBAAsB;IAClC,MAAM,MAAM,GAAG,UAAqC,CAAC;IACrD,IAAI,MAAM,CAAC,qBAAqB,CAAC,KAAK,SAAS,EAAE,CAAC;QAC9C,MAAM,CAAC,qBAAqB,CAAC,GAAG,qBAAqB,CAAC;IAC1D,CAAC;AACL,CAAC"}
|
|
1
|
+
{"version":3,"file":"depOutput.js","sourceRoot":"","sources":["../../src/dep/depOutput.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAI/D,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,uBAAgC,CAAC;AAEtE,MAAM,mBAAmB,GAAG,4DAA4D,CAAC;AACzF,MAAM,gBAAgB,GAAG,mEAAmE,CAAC;AAE7F;;;;;GAKG;AACH,MAAM,UAAU,GAAmB,cAAc,CAAS,IAAI,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;AAEpF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,qBAAqB,CACjC,MAAc,EACd,OAAe,EACf,KAAa;IAEb,MAAM,GAAG,GAAG,sBAAsB,CAAC,OAAO,CAAC;IAC3C,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACzC,CAAC;IACD,MAAM,KAAK,GAAG,GAAG,CAAC,cAAc,CAAC;IACjC,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;IACtC,CAAC;IACD,IAAI,CAAC;QACD,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACtC,CAAC;IAAC,MAAM,CAAC;QACL,cAAc,CAAC,GAAG,CAAC,SAAS,EAAE;YAC1B,IAAI,EAAE,YAAY;YAClB,QAAQ,EAAE,OAAO;YACjB,IAAI,EAAE,oBAAoB;YAC1B,OAAO,EAAE,QAAQ,OAAO,6BAA6B,KAAK,GAAG;YAC7D,MAAM;YACN,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE;SACtB,CAAC,CAAC;QACH,OAAO,UAAU,CAAC;IACtB,CAAC;AACL,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,sBAAsB;IAClC,MAAM,MAAM,GAAG,UAAqC,CAAC;IACrD,IAAI,MAAM,CAAC,qBAAqB,CAAC,KAAK,SAAS,EAAE,CAAC;QAC9C,MAAM,CAAC,qBAAqB,CAAC,GAAG,qBAAqB,CAAC;IAC1D,CAAC;AACL,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 { Series } from \"@invinite-org/chartlang-core\";\n\nimport { pushDiagnostic } from \"../emit/emissionsQueue.js\";\nimport { Float64RingBuffer } from \"../ringBuffer.js\";\nimport { ACTIVE_RUNTIME_CONTEXT } from \"../runtimeContext.js\";\nimport { makeSeriesView } from \"../seriesView.js\";\n\n/**\n * The well-known property on `globalThis` the compiler-emitted bundle's\n * inline shim looks for. Set once by {@link installDepOutputGlobal}.\n *\n * @since 0.7\n * @stable\n * @example\n * // import { DEP_OUTPUT_GLOBAL_KEY } from \"@invinite-org/chartlang-runtime/internal\";\n * // const fn = (globalThis as Record<string, unknown>)[DEP_OUTPUT_GLOBAL_KEY];\n * // void fn;\n */\nexport const DEP_OUTPUT_GLOBAL_KEY = \"__chartlang_depOutput\" as const;\n\nconst OUTSIDE_CTX_MESSAGE = \"__chartlang_depOutput called outside an active script step\";\nconst NO_STORE_MESSAGE = \"__chartlang_depOutput called on a runner with no dep output store\";\n\n/**\n * Sentinel `Series<number>` whose every read returns `NaN`. Returned by\n * the helper when the consumer asks for an output that the producer\n * never declared (compile-time error from Task 2; runtime sanity\n * fallback). The buffer never receives a write, so all reads stay NaN.\n */\nconst NAN_SERIES: Series<number> = makeSeriesView<number>(new Float64RingBuffer(1));\n\n/**\n * Runtime helper invoked by the compiler-emitted bundle in place of\n * every consumer-side `<binding>.output(\"title\")` call. Tasks 2 + 3\n * rewrite each call site to\n * `__chartlang_depOutput(slotId, localId, title)`; the runtime returns\n * the producer's stable `Series<number>` view from the active runner's\n * `DepOutputStore`.\n *\n * The helper is exposed via the `@invinite-org/chartlang-runtime/internal`\n * subpath only — user scripts can't import it. {@link installDepOutputGlobal}\n * also assigns it to `globalThis.__chartlang_depOutput` so the bundle's\n * inline shim picks it up automatically.\n *\n * @since 0.7\n * @stable\n * @example\n * // import { __chartlang_depOutput } from \"@invinite-org/chartlang-runtime/internal\";\n * // const line = __chartlang_depOutput(\"demo.chart.ts:5:13#0\", \"fast\", \"line\");\n * // void line;\n */\nexport function __chartlang_depOutput(\n slotId: string,\n localId: string,\n title: string,\n): Series<number> {\n const ctx = ACTIVE_RUNTIME_CONTEXT.current;\n if (ctx === null) {\n throw new Error(OUTSIDE_CTX_MESSAGE);\n }\n const store = ctx.depOutputStore;\n if (store === undefined || store === null) {\n throw new Error(NO_STORE_MESSAGE);\n }\n try {\n return store.read(localId, title);\n } catch {\n pushDiagnostic(ctx.emissions, {\n kind: \"diagnostic\",\n severity: \"error\",\n code: \"dep-unknown-output\",\n message: `dep \"${localId}\" did not declare output \"${title}\"`,\n slotId,\n bar: ctx.barIndex(),\n });\n return NAN_SERIES;\n }\n}\n\n/**\n * Install {@link __chartlang_depOutput} on `globalThis` under the\n * {@link DEP_OUTPUT_GLOBAL_KEY} property. Compiler-emitted bundles\n * reference the global via an inline shim; the runtime calls\n * `installDepOutputGlobal` from `createScriptRunner` when mounting a\n * `CompiledScriptBundle`. The assignment is idempotent — subsequent\n * calls leave the existing value untouched.\n *\n * @since 0.7\n * @stable\n * @example\n * // import { installDepOutputGlobal } from \"@invinite-org/chartlang-runtime/internal\";\n * // installDepOutputGlobal();\n */\nexport function installDepOutputGlobal(): void {\n const holder = globalThis as Record<string, unknown>;\n if (holder[DEP_OUTPUT_GLOBAL_KEY] === undefined) {\n holder[DEP_OUTPUT_GLOBAL_KEY] = __chartlang_depOutput;\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"emissionFilter.js","sourceRoot":"","sources":["../../src/dep/emissionFilter.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"emissionFilter.js","sourceRoot":"","sources":["../../src/dep/emissionFilter.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 { RuntimeDiagnostic } from \"@invinite-org/chartlang-adapter-kit\";\n\nimport type { MutableRunnerEmissions } from \"../runtimeContext.js\";\nimport type { DepOutputStore } from \"./DepOutputStore.js\";\n\n/**\n * View of a `DepRunner` the emission filter reads. Carries the\n * dep-specific slot-id prefix, the declared output titles (for NaN\n * padding), and the runner's own emission queue.\n *\n * @since 0.7\n * @stable\n * @example\n * const v: DepRunnerLike = {\n * kind: \"dep\",\n * localId: \"fastTrend\",\n * slotIdPrefix: \"dep:fastTrend/\",\n * declaredOutputs: [\"line\"],\n * emissions: { plots: [], drawings: [], alerts: [], alertConditions: [], logs: [], diagnostics: [], fromBar: 0, toBar: 0 },\n * };\n * void v;\n */\nexport type DepRunnerLike = Readonly<{\n readonly kind: \"dep\";\n readonly localId: string;\n readonly slotIdPrefix: string;\n readonly declaredOutputs: ReadonlyArray<string>;\n readonly emissions: MutableRunnerEmissions;\n}>;\n\n/**\n * View of a `SiblingRunner` the emission filter reads. Same shape as\n * `DepRunnerLike` but keyed by the sibling's exported binding name and\n * with a different slot-id prefix.\n *\n * @since 0.7\n * @stable\n * @example\n * const v: SiblingRunnerLike = {\n * kind: \"sibling\",\n * exportName: \"slowTrend\",\n * slotIdPrefix: \"export:slowTrend/\",\n * declaredOutputs: [\"line\"],\n * emissions: { plots: [], drawings: [], alerts: [], alertConditions: [], logs: [], diagnostics: [], fromBar: 0, toBar: 0 },\n * };\n * void v;\n */\nexport type SiblingRunnerLike = Readonly<{\n readonly kind: \"sibling\";\n readonly exportName: string;\n readonly slotIdPrefix: string;\n readonly declaredOutputs: ReadonlyArray<string>;\n readonly emissions: MutableRunnerEmissions;\n}>;\n\nfunction prefixSlotId(slotId: string, prefix: string): string {\n return `${prefix}${slotId}`;\n}\n\nfunction prefixNullableSlotId(slotId: string | null, prefix: string): string | null {\n return slotId === null ? null : prefixSlotId(slotId, prefix);\n}\n\nfunction resetEmissions(emissions: MutableRunnerEmissions): void {\n emissions.plots = [];\n emissions.drawings = [];\n emissions.alerts = [];\n emissions.alertConditions = [];\n emissions.logs = [];\n emissions.diagnostics = [];\n}\n\nfunction producerIdOf(runner: DepRunnerLike | SiblingRunnerLike): string {\n return runner.kind === \"dep\" ? runner.localId : runner.exportName;\n}\n\n/**\n * Apply the dep / sibling emission policy. Captures titled plots into\n * the shared {@link DepOutputStore}, drops private-dep visuals, prefixes\n * sibling emissions with `export:<exportName>/`, and namespaces every\n * diagnostic with the runner's slot-id prefix. Always resets the\n * runner's queue at the end so the next bar starts clean.\n *\n * Per-bar NaN padding: for every declared output that the runner did\n * NOT call `plot(value, { title: \"<output>\" })` on this bar, the\n * filter appends a NaN to the store so the consumer's series stays\n * continuous (NaN gaps where the producer skipped).\n *\n * @since 0.7\n * @stable\n * @example\n * // import { applyDepEmissionPolicy } from \"@invinite-org/chartlang-runtime\";\n * // applyDepEmissionPolicy(dep, parentEmissions, depOutputStore);\n */\nexport function applyDepEmissionPolicy(\n runner: DepRunnerLike | SiblingRunnerLike,\n parentEmissions: MutableRunnerEmissions,\n depOutputStore: DepOutputStore,\n): void {\n const producerId = producerIdOf(runner);\n const declared = new Set(runner.declaredOutputs);\n const pushedTitles = new Set<string>();\n\n for (const plot of runner.emissions.plots) {\n const title = plot.title;\n if (declared.has(title)) {\n depOutputStore.push(producerId, title, plot.value ?? Number.NaN);\n pushedTitles.add(title);\n } else if (runner.kind === \"dep\") {\n // Untitled / unknown-title plot in a private dep — surface as\n // a diagnostic; the visual is still dropped.\n const diag: RuntimeDiagnostic = {\n kind: \"diagnostic\",\n severity: \"warning\",\n code: \"dep-output-not-titled\",\n message:\n title === \"\"\n ? `dep \"${runner.localId}\" emitted an untitled plot`\n : `dep \"${runner.localId}\" emitted plot with undeclared title \"${title}\"`,\n slotId: prefixSlotId(plot.slotId, runner.slotIdPrefix),\n bar: plot.bar,\n };\n parentEmissions.diagnostics.push(diag);\n }\n\n if (runner.kind === \"sibling\") {\n parentEmissions.plots.push({\n ...plot,\n slotId: prefixSlotId(plot.slotId, runner.slotIdPrefix),\n });\n }\n }\n\n if (runner.kind === \"sibling\") {\n for (const drawing of runner.emissions.drawings) {\n parentEmissions.drawings.push(drawing);\n }\n for (const alert of runner.emissions.alerts) {\n parentEmissions.alerts.push({\n ...alert,\n slotId: prefixSlotId(alert.slotId, runner.slotIdPrefix),\n });\n }\n const siblingConditions = runner.emissions.alertConditions ?? [];\n if (siblingConditions.length > 0) {\n const target = parentEmissions.alertConditions ?? [];\n parentEmissions.alertConditions = target;\n for (const condition of siblingConditions) {\n target.push(condition);\n }\n }\n for (const log of runner.emissions.logs) {\n parentEmissions.logs.push(log);\n }\n }\n\n for (const diag of runner.emissions.diagnostics) {\n parentEmissions.diagnostics.push({\n ...diag,\n slotId: prefixNullableSlotId(diag.slotId, runner.slotIdPrefix),\n });\n }\n\n for (const title of declared) {\n if (!pushedTitles.has(title)) {\n depOutputStore.push(producerId, title, Number.NaN);\n }\n }\n\n resetEmissions(runner.emissions);\n}\n"]}
|
package/dist/dep/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/dep/index.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAG/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAM3D,OAAO,EACH,eAAe,EACf,mBAAmB,EACnB,UAAU,EACV,cAAc,GACjB,MAAM,gBAAgB,CAAC;AAKxB,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EACH,qBAAqB,EACrB,qBAAqB,EACrB,sBAAsB,GACzB,MAAM,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/dep/index.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAG/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAM3D,OAAO,EACH,eAAe,EACf,mBAAmB,EACnB,UAAU,EACV,cAAc,GACjB,MAAM,gBAAgB,CAAC;AAKxB,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EACH,qBAAqB,EACrB,qBAAqB,EACrB,sBAAsB,GACzB,MAAM,gBAAgB,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 type { DepOutputDeclaration, DepOutputStore } from \"./DepOutputStore.js\";\nexport { createDepOutputStore } from \"./DepOutputStore.js\";\nexport type {\n CreateDepRunnerArgs,\n DepRunner,\n SiblingRunner,\n} from \"./DepRunner.js\";\nexport {\n createDepRunner,\n createSiblingRunner,\n runDepStep,\n runSiblingStep,\n} from \"./DepRunner.js\";\nexport type {\n DepRunnerLike,\n SiblingRunnerLike,\n} from \"./emissionFilter.js\";\nexport { applyDepEmissionPolicy } from \"./emissionFilter.js\";\nexport {\n DEP_OUTPUT_GLOBAL_KEY,\n __chartlang_depOutput,\n installDepOutputGlobal,\n} from \"./depOutput.js\";\n"]}
|
package/dist/emit/alert.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"alert.js","sourceRoot":"","sources":["../../src/emit/alert.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"alert.js","sourceRoot":"","sources":["../../src/emit/alert.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 { AlertOpts, JsonValue } from \"@invinite-org/chartlang-core\";\nimport type { AlertChannel, AlertEmission } from \"@invinite-org/chartlang-adapter-kit\";\n\nimport { ACTIVE_RUNTIME_CONTEXT, type RuntimeContext } from \"../runtimeContext.js\";\nimport { pushAlert, pushDiagnostic } from \"./emissionsQueue.js\";\nimport { hashStringStable } from \"./hash.js\";\n\nconst OUTSIDE_CTX_MESSAGE = \"alert called outside an active script step\";\n\nfunction computeDedupeKey(\n slotId: string,\n bar: number,\n message: string,\n meta: Readonly<Record<string, JsonValue>>,\n): string {\n return `${slotId}::${bar}::${hashStringStable(message + JSON.stringify(meta))}`;\n}\n\nfunction snapshotUnknown(value: unknown): unknown {\n if (Array.isArray(value)) {\n return value.map((item) => snapshotUnknown(item));\n }\n if (typeof value === \"object\" && value !== null) {\n return Object.fromEntries(\n Object.entries(value).map(([key, item]) => [key, snapshotUnknown(item)]),\n );\n }\n return value;\n}\n\nfunction snapshotMeta(\n meta: Readonly<Record<string, JsonValue>>,\n): Readonly<Record<string, JsonValue>> {\n return snapshotUnknown(meta) as Readonly<Record<string, JsonValue>>;\n}\n\nfunction alertImpl(ctx: RuntimeContext, slotId: string, message: string, opts: AlertOpts): void {\n if (ctx.capabilities.alerts.size === 0) {\n pushDiagnostic(ctx.emissions, {\n kind: \"diagnostic\",\n severity: \"warning\",\n code: \"unsupported-alert-channel\",\n message: \"Adapter declares no alert channels; alert dropped.\",\n slotId,\n bar: ctx.barIndex(),\n });\n return;\n }\n\n const channels: AlertChannel[] = Array.from(ctx.capabilities.alerts);\n const bar = ctx.barIndex();\n const meta = snapshotMeta(opts.meta ?? {});\n\n const emission: AlertEmission = {\n kind: \"alert\",\n slotId,\n severity: opts.severity ?? \"info\",\n message,\n bar,\n time: ctx.stream.bar.time,\n meta,\n channels: Object.freeze(channels.slice()),\n dedupeKey: computeDedupeKey(slotId, bar, message, meta),\n };\n\n pushAlert(ctx.emissions, emission);\n}\n\n/**\n * Emit an `AlertEmission` for the current bar (script-facing overload).\n *\n * Same dual-signature contract as {@link plot}: scripts call\n * `alert(message, opts?)`; the compiler injects the slot id as the\n * leading argument (see the sibling `alert(slotId, message, opts?)`\n * overload). Direct invocation without a slot id throws the sentinel\n * error.\n *\n * `dedupeKey` is computed as\n * `${slotId}::${bar}::FNV1a(message + JSON.stringify(meta))` and is\n * stable across machines — adapters that dispatch via async channels\n * use it for idempotency. `channels` is a snapshot of\n * `capabilities.alerts` at emission time; adapters that gate on\n * specific channels filter downstream.\n *\n * @since 0.1\n * @example\n * import { defineIndicator, alert, ta } from \"@invinite-org/chartlang-core\";\n * export default defineIndicator({\n * name: \"EMA cross\",\n * apiVersion: 1,\n * compute({ bar }) {\n * const fast = ta.ema(bar.close, 12);\n * const slow = ta.ema(bar.close, 26);\n * if (ta.crossover(fast, slow).current) {\n * alert(\"Fast EMA crossed above slow EMA\", { severity: \"info\" });\n * }\n * },\n * });\n */\nexport function alert(message: string, opts?: AlertOpts): void;\n/**\n * Emit an `AlertEmission` (compiler-injected overload). Task 2's\n * transformer rewrites script-side `alert(msg)` into\n * `alert(slotId, msg)`.\n *\n * @since 0.1\n * @example\n * // Internal — the compiler rewrites every script callsite.\n * // const fn: typeof alert = alert;\n * // void fn;\n */\nexport function alert(slotId: string, message: string, opts?: AlertOpts): void;\n/**\n * Implementation signature for {@link alert}. Branches on\n * `typeof arg2 === \"string\"` to dispatch the script-facing vs\n * compiler-injected overload.\n *\n * @since 0.1\n * @example\n * // const fn: typeof alert = alert;\n * // void fn;\n */\nexport function alert(arg1: string, arg2?: string | AlertOpts, arg3?: AlertOpts): void {\n if (typeof arg2 !== \"string\") {\n // No slot id present — direct script-author invocation or\n // missing compiler injection. Surface the sentinel.\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 alertImpl(ctx, arg1, arg2, arg3 ?? {});\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"alertConditionEmission.js","sourceRoot":"","sources":["../../src/emit/alertConditionEmission.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAK/D,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAEzE,SAAS,YAAY,CACjB,GAAmB,EACnB,IAAkE,EAClE,WAAmB,EACnB,OAAe;IAEf,MAAM,GAAG,GAAG,GAAG,IAAI,IAAI,WAAW,EAAE,CAAC;IACrC,MAAM,SAAS,GAAG,GAAG,CAAC,2BAA2B,CAAC;IAClD,IAAI,SAAS,EAAE,GAAG,CAAC,GAAG,CAAC;QAAE,OAAO;IAChC,SAAS,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;IACpB,cAAc,CAAC,GAAG,CAAC,SAAS,EAAE;QAC1B,IAAI,EAAE,YAAY;QAClB,QAAQ,EAAE,SAAS;QACnB,IAAI;QACJ,OAAO;QACP,MAAM,EAAE,IAAI;QACZ,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE;KACtB,CAAC,CAAC;AACP,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,kBAAkB,CAAC,GAAmB,EAAE,WAAmB,EAAE,KAAc;IACvF,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,eAAe,EAAE,CAAC;QACpC,YAAY,CACR,GAAG,EACH,gCAAgC,EAChC,WAAW,EACX,4DAA4D,CAC/D,CAAC;QACF,OAAO;IACX,CAAC;IACD,MAAM,SAAS,GAAG,GAAG,CAAC,eAAe,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC;IACxD,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC1B,YAAY,CACR,GAAG,EACH,yBAAyB,EACzB,WAAW,EACX,oBAAoB,WAAW,2CAA2C,CAC7E,CAAC;QACF,OAAO;IACX,CAAC;IACD,MAAM,QAAQ,GAA2B;QACrC,IAAI,EAAE,iBAAiB;QACvB,WAAW;QACX,KAAK,EAAE,SAAS,CAAC,KAAK;QACtB,WAAW,EAAE,SAAS,CAAC,WAAW;QAClC,cAAc,EAAE,SAAS,CAAC,cAAc;QACxC,KAAK;QACL,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE;QACnB,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI;KAC5B,CAAC;IACF,kBAAkB,CAAC,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;AAChD,CAAC"}
|
|
1
|
+
{"version":3,"file":"alertConditionEmission.js","sourceRoot":"","sources":["../../src/emit/alertConditionEmission.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAK/D,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAEzE,SAAS,YAAY,CACjB,GAAmB,EACnB,IAAkE,EAClE,WAAmB,EACnB,OAAe;IAEf,MAAM,GAAG,GAAG,GAAG,IAAI,IAAI,WAAW,EAAE,CAAC;IACrC,MAAM,SAAS,GAAG,GAAG,CAAC,2BAA2B,CAAC;IAClD,IAAI,SAAS,EAAE,GAAG,CAAC,GAAG,CAAC;QAAE,OAAO;IAChC,SAAS,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;IACpB,cAAc,CAAC,GAAG,CAAC,SAAS,EAAE;QAC1B,IAAI,EAAE,YAAY;QAClB,QAAQ,EAAE,SAAS;QACnB,IAAI;QACJ,OAAO;QACP,MAAM,EAAE,IAAI;QACZ,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE;KACtB,CAAC,CAAC;AACP,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,kBAAkB,CAAC,GAAmB,EAAE,WAAmB,EAAE,KAAc;IACvF,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,eAAe,EAAE,CAAC;QACpC,YAAY,CACR,GAAG,EACH,gCAAgC,EAChC,WAAW,EACX,4DAA4D,CAC/D,CAAC;QACF,OAAO;IACX,CAAC;IACD,MAAM,SAAS,GAAG,GAAG,CAAC,eAAe,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC;IACxD,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC1B,YAAY,CACR,GAAG,EACH,yBAAyB,EACzB,WAAW,EACX,oBAAoB,WAAW,2CAA2C,CAC7E,CAAC;QACF,OAAO;IACX,CAAC;IACD,MAAM,QAAQ,GAA2B;QACrC,IAAI,EAAE,iBAAiB;QACvB,WAAW;QACX,KAAK,EAAE,SAAS,CAAC,KAAK;QACtB,WAAW,EAAE,SAAS,CAAC,WAAW;QAClC,cAAc,EAAE,SAAS,CAAC,cAAc;QACxC,KAAK;QACL,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE;QACnB,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI;KAC5B,CAAC;IACF,kBAAkB,CAAC,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;AAChD,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 { AlertConditionEmission } from \"@invinite-org/chartlang-adapter-kit\";\n\nimport type { RuntimeContext } from \"../runtimeContext.js\";\nimport { pushAlertCondition, pushDiagnostic } from \"./emissionsQueue.js\";\n\nfunction diagnoseOnce(\n ctx: RuntimeContext,\n code: \"alert-conditions-not-supported\" | \"unknown-alert-condition\",\n conditionId: string,\n message: string,\n): void {\n const key = `${code}|${conditionId}`;\n const diagnosed = ctx.diagnosedAlertConditionKeys;\n if (diagnosed?.has(key)) return;\n diagnosed?.add(key);\n pushDiagnostic(ctx.emissions, {\n kind: \"diagnostic\",\n severity: \"warning\",\n code,\n message,\n slotId: null,\n bar: ctx.barIndex(),\n });\n}\n\n/**\n * Emit one alert-condition state transition for the current bar.\n * `fired: false` is emitted deliberately so adapters can render falling\n * edges and \"currently inactive\" state without remembering prior bars.\n *\n * @since 0.5\n * @stable\n * @example\n * // emitAlertCondition(ctx, \"up\", true);\n * const fn: typeof emitAlertCondition = emitAlertCondition;\n * void fn;\n */\nexport function emitAlertCondition(ctx: RuntimeContext, conditionId: string, fired: boolean): void {\n if (!ctx.capabilities.alertConditions) {\n diagnoseOnce(\n ctx,\n \"alert-conditions-not-supported\",\n conditionId,\n \"Adapter does not support alert conditions; signal dropped.\",\n );\n return;\n }\n const condition = ctx.alertConditions?.get(conditionId);\n if (condition === undefined) {\n diagnoseOnce(\n ctx,\n \"unknown-alert-condition\",\n conditionId,\n `Alert condition \"${conditionId}\" is not declared in the script manifest.`,\n );\n return;\n }\n const emission: AlertConditionEmission = {\n kind: \"alert-condition\",\n conditionId,\n title: condition.title,\n description: condition.description,\n defaultMessage: condition.defaultMessage,\n fired,\n bar: ctx.barIndex(),\n time: ctx.stream.bar.time,\n };\n pushAlertCondition(ctx.emissions, emission);\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"applyPlotOverride.js","sourceRoot":"","sources":["../../src/emit/applyPlotOverride.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAI/D,SAAS,YAAY,CACjB,IAAmC;IAEnC,OAAO,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,WAAW,IAAI,IAAI,KAAK,iBAAiB,IAAI,IAAI,KAAK,MAAM,CAAC;AACpG,CAAC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,UAAU,iBAAiB,CAC7B,QAAsB,EACtB,QAAkC;IAElC,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,QAAQ,CAAC;IAC5C,IAAI,IAAI,GAAG,QAAQ,CAAC;IACpB,IAAI,QAAQ,CAAC,OAAO,KAAK,KAAK;QAAE,IAAI,GAAG,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IACnE,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS;QAAE,IAAI,GAAG,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC;IAC5E,IACI,CAAC,QAAQ,CAAC,SAAS,KAAK,SAAS,IAAI,QAAQ,CAAC,SAAS,KAAK,SAAS,CAAC;QACtE,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAC/B,CAAC;QACC,IAAI,GAAG;YACH,GAAG,IAAI;YACP,KAAK,EAAE;gBACH,GAAG,IAAI,CAAC,KAAK;gBACb,GAAG,CAAC,QAAQ,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC9E,GAAG,CAAC,QAAQ,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACjF;SACJ,CAAC;IACN,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC"}
|
|
1
|
+
{"version":3,"file":"applyPlotOverride.js","sourceRoot":"","sources":["../../src/emit/applyPlotOverride.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAI/D,SAAS,YAAY,CACjB,IAAmC;IAEnC,OAAO,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,WAAW,IAAI,IAAI,KAAK,iBAAiB,IAAI,IAAI,KAAK,MAAM,CAAC;AACpG,CAAC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,UAAU,iBAAiB,CAC7B,QAAsB,EACtB,QAAkC;IAElC,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,QAAQ,CAAC;IAC5C,IAAI,IAAI,GAAG,QAAQ,CAAC;IACpB,IAAI,QAAQ,CAAC,OAAO,KAAK,KAAK;QAAE,IAAI,GAAG,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IACnE,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS;QAAE,IAAI,GAAG,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC;IAC5E,IACI,CAAC,QAAQ,CAAC,SAAS,KAAK,SAAS,IAAI,QAAQ,CAAC,SAAS,KAAK,SAAS,CAAC;QACtE,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAC/B,CAAC;QACC,IAAI,GAAG;YACH,GAAG,IAAI;YACP,KAAK,EAAE;gBACH,GAAG,IAAI,CAAC,KAAK;gBACb,GAAG,CAAC,QAAQ,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC9E,GAAG,CAAC,QAAQ,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACjF;SACJ,CAAC;IACN,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,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, PlotOverride } from \"@invinite-org/chartlang-adapter-kit\";\n\nfunction isLineFamily(\n kind: PlotEmission[\"style\"][\"kind\"],\n): kind is \"line\" | \"step-line\" | \"horizontal-line\" | \"area\" {\n return kind === \"line\" || kind === \"step-line\" || kind === \"horizontal-line\" || kind === \"area\";\n}\n\n/**\n * Apply a `PlotOverride` to a built `PlotEmission`. Pure / immutable —\n * returns the input unchanged when `override` is `undefined`, sets\n * `visible: false` only when `override.visible === false`, overwrites\n * `color`, and merges `lineWidth` / `lineStyle` into `style` only\n * when the emission's `style.kind` is line-family\n * (`line | step-line | horizontal-line | area`). Non-line kinds\n * ignore width/style silently (no diagnostic). `visible` is only ever\n * written as `false` (never `true`), so no-override and visible-override\n * emissions stay byte-identical to today.\n *\n * @since 0.8\n * @stable\n * @example\n * const emission: PlotEmission = {\n * kind: \"plot\", slotId: \"s\", title: \"\", style: { kind: \"line\", lineWidth: 1, lineStyle: \"solid\" },\n * bar: 0, time: 0, value: 1, color: null, meta: {}, pane: \"overlay\",\n * };\n * const next = applyPlotOverride(emission, { color: \"#f00\" });\n * void next;\n */\nexport function applyPlotOverride(\n emission: PlotEmission,\n override: PlotOverride | undefined,\n): PlotEmission {\n if (override === undefined) return emission;\n let next = emission;\n if (override.visible === false) next = { ...next, visible: false };\n if (override.color !== undefined) next = { ...next, color: override.color };\n if (\n (override.lineWidth !== undefined || override.lineStyle !== undefined) &&\n isLineFamily(next.style.kind)\n ) {\n next = {\n ...next,\n style: {\n ...next.style,\n ...(override.lineWidth !== undefined ? { lineWidth: override.lineWidth } : {}),\n ...(override.lineStyle !== undefined ? { lineStyle: override.lineStyle } : {}),\n },\n };\n }\n return next;\n}\n"]}
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
// 078f41fe2569d659d5aba726da8bcb5d3e2ced02, © Invinite.
|
|
8
8
|
// Behaviour from
|
|
9
9
|
// invinite/src/components/trading-chart/tools/arrow-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":"arrow.js","sourceRoot":"","sources":["../../../../src/emit/draw/annotations/arrow.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAC/D,EAAE;AACF,oCAAoC;AACpC,6DAA6D;AAC7D,6BAA6B;AAC7B,4DAA4D;AAC5D,iBAAiB;AACjB,+DAA+D;AAC/D,
|
|
1
|
+
{"version":3,"file":"arrow.js","sourceRoot":"","sources":["../../../../src/emit/draw/annotations/arrow.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAC/D,EAAE;AACF,oCAAoC;AACpC,6DAA6D;AAC7D,6BAA6B;AAC7B,4DAA4D;AAC5D,iBAAiB;AACjB,+DAA+D;AAC/D,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,iDAAiD,CAAC;AAE9E,SAAS,SAAS,CAAC,MAAc,EAAE,CAAa,EAAE,CAAa,EAAE,IAAe;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,GAAe,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IAC1E,OAAO,mBAAmB,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;AAC9D,CAAC;AA+CD;;;;;;;;;;GAUG;AACH,MAAM,UAAU,KAAK,CACjB,IAAyB,EACzB,IAAiB,EACjB,IAA6B,EAC7B,IAAgB;IAEhB,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACzC,CAAC;IACD,OAAO,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,IAAkB,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// (ArrowDrawing), commit\n// 078f41fe2569d659d5aba726da8bcb5d3e2ced02, © Invinite.\n// Behaviour from\n// invinite/src/components/trading-chart/tools/arrow-tool.ts.\n// Re-licensed MIT for chartlang.\n\nimport type {\n ArrowOpts,\n ArrowState,\n DrawingHandle,\n WorldPoint,\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.arrow called outside an active script step\";\n\nfunction arrowImpl(slotId: string, a: WorldPoint, b: WorldPoint, opts: ArrowOpts): 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: ArrowState = { kind: \"arrow\", anchors: [a, b], style: opts };\n return createDrawingHandle(slotId, subId, \"arrow\", state);\n}\n\n/**\n * Draw a directional arrow from `a` (tail) to `b` (head) with an\n * optional axis-aligned label centred near the shaft midpoint. The\n * arrowhead at `b` points along the shaft direction. Inherits every\n * {@link import(\"@invinite-org/chartlang-core\").LineDrawStyle} field\n * (color, lineWidth, lineStyle, extendLeft, extendRight) plus the\n * arrow-specific `label?: string`. Mirrors invinite's `arrow-tool.ts`\n * shape.\n *\n * @anchors `a`, `b` — tail and head `WorldPoint`s\n * @anchorCount 2\n * @bucket labels\n * @since 0.3\n * @stable\n * @example\n * import { defineIndicator } from \"@invinite-org/chartlang-core\";\n * export default defineIndicator({\n * name: \"draw.arrow demo\",\n * apiVersion: 1,\n * compute({ bar, draw }) {\n * draw.arrow(\n * { time: bar.time, price: bar.low },\n * { time: bar.time, price: bar.high },\n * { color: \"#dc2626\", lineWidth: 2, label: \"Sell\" },\n * );\n * },\n * });\n */\nexport function arrow(a: WorldPoint, b: WorldPoint, opts?: ArrowOpts): 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 arrow = arrow;\n * // void fn;\n */\nexport function arrow(\n slotId: string,\n a: WorldPoint,\n b: WorldPoint,\n opts?: ArrowOpts,\n): DrawingHandle;\n/**\n * Implementation signature for {@link arrow}. 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 arrow = arrow;\n * // void fn;\n */\nexport function arrow(\n arg1: string | WorldPoint,\n arg2?: WorldPoint,\n arg3?: WorldPoint | ArrowOpts,\n arg4?: ArrowOpts,\n): DrawingHandle {\n if (typeof arg1 !== \"string\" || arg2 === undefined || arg3 === undefined) {\n throw new Error(OUTSIDE_CTX_MESSAGE);\n }\n return arrowImpl(arg1, arg2, arg3 as WorldPoint, arg4 ?? {});\n}\n"]}
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
// 078f41fe2569d659d5aba726da8bcb5d3e2ced02, © Invinite.
|
|
8
8
|
// Behaviour from
|
|
9
9
|
// invinite/src/components/trading-chart/tools/arrow-mark-down-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":"arrowMarkDown.js","sourceRoot":"","sources":["../../../../src/emit/draw/annotations/arrowMarkDown.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAC/D,EAAE;AACF,oCAAoC;AACpC,6DAA6D;AAC7D,qCAAqC;AACrC,4DAA4D;AAC5D,iBAAiB;AACjB,yEAAyE;AACzE,
|
|
1
|
+
{"version":3,"file":"arrowMarkDown.js","sourceRoot":"","sources":["../../../../src/emit/draw/annotations/arrowMarkDown.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAC/D,EAAE;AACF,oCAAoC;AACpC,6DAA6D;AAC7D,qCAAqC;AACrC,4DAA4D;AAC5D,iBAAiB;AACjB,yEAAyE;AACzE,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,yDAAyD,CAAC;AAEtF,SAAS,iBAAiB,CACtB,MAAc,EACd,MAAkB,EAClB,IAAqB;IAErB,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,GAAuB,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IACnF,OAAO,mBAAmB,CAAC,MAAM,EAAE,KAAK,EAAE,iBAAiB,EAAE,KAAK,CAAC,CAAC;AACxE,CAAC;AAwCD;;;;;;;;;;GAUG;AACH,MAAM,UAAU,aAAa,CACzB,IAAyB,EACzB,IAAmC,EACnC,IAAsB;IAEtB,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACjD,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACzC,CAAC;IACD,OAAO,iBAAiB,CAAC,IAAI,EAAE,IAAkB,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// (ArrowMarkDownDrawing), commit\n// 078f41fe2569d659d5aba726da8bcb5d3e2ced02, © Invinite.\n// Behaviour from\n// invinite/src/components/trading-chart/tools/arrow-mark-down-tool.ts.\n// Re-licensed MIT for chartlang.\n\nimport type {\n ArrowMarkDownState,\n ArrowMarkerOpts,\n DrawingHandle,\n WorldPoint,\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.arrowMarkDown called outside an active script step\";\n\nfunction arrowMarkDownImpl(\n slotId: string,\n anchor: WorldPoint,\n opts: ArrowMarkerOpts,\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: ArrowMarkDownState = { kind: \"arrow-mark-down\", anchor, style: opts };\n return createDrawingHandle(slotId, subId, \"arrow-mark-down\", state);\n}\n\n/**\n * Draw a bearish down-chevron glyph at a single world anchor. The\n * canvas2d renderer paints a filled triangle pointing down; the default\n * fill colour is `\"#ef4444\"` (red) when `style.color` is omitted. Pine\n * equivalent: `plotshape(condition, style=shape.triangledown)`. Mirrors\n * invinite's `arrow-mark-down-tool.ts` shape.\n *\n * @anchors `anchor` — single `WorldPoint`\n * @anchorCount 1\n * @bucket labels\n * @since 0.3\n * @stable\n * @example\n * import { defineIndicator } from \"@invinite-org/chartlang-core\";\n * export default defineIndicator({\n * name: \"draw.arrowMarkDown demo\",\n * apiVersion: 1,\n * compute({ bar, draw }) {\n * draw.arrowMarkDown({ time: bar.time, price: bar.high });\n * },\n * });\n */\nexport function arrowMarkDown(anchor: WorldPoint, opts?: ArrowMarkerOpts): 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 arrowMarkDown = arrowMarkDown;\n * // void fn;\n */\nexport function arrowMarkDown(\n slotId: string,\n anchor: WorldPoint,\n opts?: ArrowMarkerOpts,\n): DrawingHandle;\n/**\n * Implementation signature for {@link arrowMarkDown}. 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 arrowMarkDown = arrowMarkDown;\n * // void fn;\n */\nexport function arrowMarkDown(\n arg1: string | WorldPoint,\n arg2?: WorldPoint | ArrowMarkerOpts,\n arg3?: ArrowMarkerOpts,\n): DrawingHandle {\n if (typeof arg1 !== \"string\" || arg2 === undefined) {\n throw new Error(OUTSIDE_CTX_MESSAGE);\n }\n return arrowMarkDownImpl(arg1, arg2 as WorldPoint, arg3 ?? {});\n}\n"]}
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
// 078f41fe2569d659d5aba726da8bcb5d3e2ced02, © Invinite.
|
|
8
8
|
// Behaviour from
|
|
9
9
|
// invinite/src/components/trading-chart/tools/arrow-mark-up-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":"arrowMarkUp.js","sourceRoot":"","sources":["../../../../src/emit/draw/annotations/arrowMarkUp.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAC/D,EAAE;AACF,oCAAoC;AACpC,6DAA6D;AAC7D,mCAAmC;AACnC,4DAA4D;AAC5D,iBAAiB;AACjB,uEAAuE;AACvE,
|
|
1
|
+
{"version":3,"file":"arrowMarkUp.js","sourceRoot":"","sources":["../../../../src/emit/draw/annotations/arrowMarkUp.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAC/D,EAAE;AACF,oCAAoC;AACpC,6DAA6D;AAC7D,mCAAmC;AACnC,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,uDAAuD,CAAC;AAEpF,SAAS,eAAe,CAAC,MAAc,EAAE,MAAkB,EAAE,IAAqB;IAC9E,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,GAAqB,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IAC/E,OAAO,mBAAmB,CAAC,MAAM,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,CAAC,CAAC;AACtE,CAAC;AAwCD;;;;;;;;;;GAUG;AACH,MAAM,UAAU,WAAW,CACvB,IAAyB,EACzB,IAAmC,EACnC,IAAsB;IAEtB,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACjD,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACzC,CAAC;IACD,OAAO,eAAe,CAAC,IAAI,EAAE,IAAkB,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// (ArrowMarkUpDrawing), commit\n// 078f41fe2569d659d5aba726da8bcb5d3e2ced02, © Invinite.\n// Behaviour from\n// invinite/src/components/trading-chart/tools/arrow-mark-up-tool.ts.\n// Re-licensed MIT for chartlang.\n\nimport type {\n ArrowMarkUpState,\n ArrowMarkerOpts,\n DrawingHandle,\n WorldPoint,\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.arrowMarkUp called outside an active script step\";\n\nfunction arrowMarkUpImpl(slotId: string, anchor: WorldPoint, opts: ArrowMarkerOpts): 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: ArrowMarkUpState = { kind: \"arrow-mark-up\", anchor, style: opts };\n return createDrawingHandle(slotId, subId, \"arrow-mark-up\", state);\n}\n\n/**\n * Draw a bullish up-chevron glyph at a single world anchor. The\n * canvas2d renderer paints a filled triangle pointing up; the default\n * fill colour is `\"#22c55e\"` (green) when `style.color` is omitted.\n * Pine equivalent: `plotshape(condition, style=shape.triangleup)`.\n * Mirrors invinite's `arrow-mark-up-tool.ts` shape.\n *\n * @anchors `anchor` — single `WorldPoint`\n * @anchorCount 1\n * @bucket labels\n * @since 0.3\n * @stable\n * @example\n * import { defineIndicator } from \"@invinite-org/chartlang-core\";\n * export default defineIndicator({\n * name: \"draw.arrowMarkUp demo\",\n * apiVersion: 1,\n * compute({ bar, draw }) {\n * draw.arrowMarkUp({ time: bar.time, price: bar.low });\n * },\n * });\n */\nexport function arrowMarkUp(anchor: WorldPoint, opts?: ArrowMarkerOpts): 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 arrowMarkUp = arrowMarkUp;\n * // void fn;\n */\nexport function arrowMarkUp(\n slotId: string,\n anchor: WorldPoint,\n opts?: ArrowMarkerOpts,\n): DrawingHandle;\n/**\n * Implementation signature for {@link arrowMarkUp}. 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 arrowMarkUp = arrowMarkUp;\n * // void fn;\n */\nexport function arrowMarkUp(\n arg1: string | WorldPoint,\n arg2?: WorldPoint | ArrowMarkerOpts,\n arg3?: ArrowMarkerOpts,\n): DrawingHandle {\n if (typeof arg1 !== \"string\" || arg2 === undefined) {\n throw new Error(OUTSIDE_CTX_MESSAGE);\n }\n return arrowMarkUpImpl(arg1, arg2 as WorldPoint, arg3 ?? {});\n}\n"]}
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
// 078f41fe2569d659d5aba726da8bcb5d3e2ced02, © Invinite.
|
|
8
8
|
// Behaviour from
|
|
9
9
|
// invinite/src/components/trading-chart/tools/arrow-marker-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":"arrowMarker.js","sourceRoot":"","sources":["../../../../src/emit/draw/annotations/arrowMarker.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAC/D,EAAE;AACF,oCAAoC;AACpC,6DAA6D;AAC7D,mCAAmC;AACnC,4DAA4D;AAC5D,iBAAiB;AACjB,sEAAsE;AACtE,
|
|
1
|
+
{"version":3,"file":"arrowMarker.js","sourceRoot":"","sources":["../../../../src/emit/draw/annotations/arrowMarker.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAC/D,EAAE;AACF,oCAAoC;AACpC,6DAA6D;AAC7D,mCAAmC;AACnC,4DAA4D;AAC5D,iBAAiB;AACjB,sEAAsE;AACtE,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,uDAAuD,CAAC;AAEpF,SAAS,eAAe,CAAC,MAAc,EAAE,MAAkB,EAAE,IAAqB;IAC9E,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,GAAqB,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IAC9E,OAAO,mBAAmB,CAAC,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,CAAC,CAAC;AACrE,CAAC;AA4CD;;;;;;;;;;GAUG;AACH,MAAM,UAAU,WAAW,CACvB,IAAyB,EACzB,IAAmC,EACnC,IAAsB;IAEtB,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACjD,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACzC,CAAC;IACD,OAAO,eAAe,CAAC,IAAI,EAAE,IAAkB,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// (ArrowMarkerDrawing), commit\n// 078f41fe2569d659d5aba726da8bcb5d3e2ced02, © Invinite.\n// Behaviour from\n// invinite/src/components/trading-chart/tools/arrow-marker-tool.ts.\n// Re-licensed MIT for chartlang.\n\nimport type {\n ArrowMarkerOpts,\n ArrowMarkerState,\n DrawingHandle,\n WorldPoint,\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.arrowMarker called outside an active script step\";\n\nfunction arrowMarkerImpl(slotId: string, anchor: WorldPoint, opts: ArrowMarkerOpts): 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: ArrowMarkerState = { kind: \"arrow-marker\", anchor, style: opts };\n return createDrawingHandle(slotId, subId, \"arrow-marker\", state);\n}\n\n/**\n * Draw a compact arrow-marker glyph at a single world anchor. The\n * canvas2d renderer paints a small filled dot at the anchor, a short\n * stub line, and an arrowhead — a self-contained \"annotation lives\n * here\" marker. Optional `style.text` paints next to the dot. Default\n * color is `\"#3b82f6\"` (invinite toolbar blue). Mirrors invinite's\n * `arrow-marker-tool.ts` shape.\n *\n * @anchors `anchor` — single `WorldPoint`\n * @anchorCount 1\n * @bucket labels\n * @since 0.3\n * @stable\n * @example\n * import { defineIndicator } from \"@invinite-org/chartlang-core\";\n * export default defineIndicator({\n * name: \"draw.arrowMarker demo\",\n * apiVersion: 1,\n * compute({ bar, draw }) {\n * draw.arrowMarker(\n * { time: bar.time, price: bar.close },\n * { color: \"#10b981\", text: \"Long\" },\n * );\n * },\n * });\n */\nexport function arrowMarker(anchor: WorldPoint, opts?: ArrowMarkerOpts): 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 arrowMarker = arrowMarker;\n * // void fn;\n */\nexport function arrowMarker(\n slotId: string,\n anchor: WorldPoint,\n opts?: ArrowMarkerOpts,\n): DrawingHandle;\n/**\n * Implementation signature for {@link arrowMarker}. 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 arrowMarker = arrowMarker;\n * // void fn;\n */\nexport function arrowMarker(\n arg1: string | WorldPoint,\n arg2?: WorldPoint | ArrowMarkerOpts,\n arg3?: ArrowMarkerOpts,\n): DrawingHandle {\n if (typeof arg1 !== \"string\" || arg2 === undefined) {\n throw new Error(OUTSIDE_CTX_MESSAGE);\n }\n return arrowMarkerImpl(arg1, arg2 as WorldPoint, arg3 ?? {});\n}\n"]}
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
// 078f41fe2569d659d5aba726da8bcb5d3e2ced02, © Invinite.
|
|
8
8
|
// Behaviour from
|
|
9
9
|
// invinite/src/components/trading-chart/tools/text-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":"text.js","sourceRoot":"","sources":["../../../../src/emit/draw/annotations/text.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAC/D,EAAE;AACF,oCAAoC;AACpC,6DAA6D;AAC7D,4BAA4B;AAC5B,4DAA4D;AAC5D,iBAAiB;AACjB,8DAA8D;AAC9D,
|
|
1
|
+
{"version":3,"file":"text.js","sourceRoot":"","sources":["../../../../src/emit/draw/annotations/text.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAC/D,EAAE;AACF,oCAAoC;AACpC,6DAA6D;AAC7D,4BAA4B;AAC5B,4DAA4D;AAC5D,iBAAiB;AACjB,8DAA8D;AAC9D,iCAAiC;AAIjC,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,gDAAgD,CAAC;AAE7E,SAAS,QAAQ,CAAC,MAAc,EAAE,MAAkB,EAAE,IAAY,EAAE,IAAc;IAC9E,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,GAAc,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IACrE,OAAO,mBAAmB,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;AAC7D,CAAC;AA8CD;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,IAAI,CAChB,IAAyB,EACzB,IAA0B,EAC1B,IAAwB,EACxB,IAAe;IAEf,IACI,OAAO,IAAI,KAAK,QAAQ;QACxB,IAAI,KAAK,SAAS;QAClB,OAAO,IAAI,KAAK,QAAQ;QACxB,OAAO,IAAI,KAAK,QAAQ,EAC1B,CAAC;QACC,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACzC,CAAC;IACD,OAAO,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;AAClD,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// (TextDrawing), commit\n// 078f41fe2569d659d5aba726da8bcb5d3e2ced02, © Invinite.\n// Behaviour from\n// invinite/src/components/trading-chart/tools/text-tool.ts.\n// Re-licensed MIT for chartlang.\n\nimport type { DrawingHandle, TextOpts, TextState, WorldPoint } 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.text called outside an active script step\";\n\nfunction textImpl(slotId: string, anchor: WorldPoint, body: string, opts: TextOpts): 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: TextState = { kind: \"text\", anchor, body, style: opts };\n return createDrawingHandle(slotId, subId, \"text\", state);\n}\n\n/**\n * Draw a freeform text annotation anchored at a single world point.\n * The `body` string surfaces in the rendered glyph; the validator pins\n * it as a non-empty string of length ≤ 256 (longer than the 128 cap on\n * plot labels — annotation strings carry short rationales like\n * \"Inverse Head and Shoulders Confirmed\"). Mirrors invinite's\n * `text-tool.ts` shape.\n *\n * @anchors `anchor` — single `WorldPoint`\n * @anchorCount 1\n * @bucket labels\n * @since 0.3\n * @stable\n * @example\n * import { defineIndicator } from \"@invinite-org/chartlang-core\";\n * export default defineIndicator({\n * name: \"draw.text demo\",\n * apiVersion: 1,\n * compute({ bar, draw }) {\n * draw.text(\n * { time: bar.time, price: bar.high },\n * \"Peak\",\n * { color: \"#1e293b\", size: \"normal\" },\n * );\n * },\n * });\n */\nexport function text(anchor: WorldPoint, body: string, opts?: TextOpts): 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 text = text;\n * // void fn;\n */\nexport function text(\n slotId: string,\n anchor: WorldPoint,\n body: string,\n opts?: TextOpts,\n): DrawingHandle;\n/**\n * Implementation signature for {@link text}. Branches on\n * `typeof arg1 === \"string\"` to dispatch the script-facing vs\n * compiler-injected overload. Unique among Task-9 emit fns in that it\n * carries four arguments (slot id + anchor + body + opts).\n *\n * @since 0.3\n * @stable\n * @example\n * // const fn: typeof text = text;\n * // void fn;\n */\nexport function text(\n arg1: string | WorldPoint,\n arg2?: WorldPoint | string,\n arg3?: string | TextOpts,\n arg4?: TextOpts,\n): DrawingHandle {\n if (\n typeof arg1 !== \"string\" ||\n arg2 === undefined ||\n typeof arg2 === \"string\" ||\n typeof arg3 !== \"string\"\n ) {\n throw new Error(OUTSIDE_CTX_MESSAGE);\n }\n return textImpl(arg1, arg2, arg3, arg4 ?? {});\n}\n"]}
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
// 078f41fe2569d659d5aba726da8bcb5d3e2ced02, © Invinite.
|
|
8
8
|
// Behaviour from
|
|
9
9
|
// invinite/src/components/trading-chart/tools/circle-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":"circle.js","sourceRoot":"","sources":["../../../../src/emit/draw/boxes/circle.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAC/D,EAAE;AACF,oCAAoC;AACpC,6DAA6D;AAC7D,8BAA8B;AAC9B,4DAA4D;AAC5D,iBAAiB;AACjB,gEAAgE;AAChE,
|
|
1
|
+
{"version":3,"file":"circle.js","sourceRoot":"","sources":["../../../../src/emit/draw/boxes/circle.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAC/D,EAAE;AACF,oCAAoC;AACpC,6DAA6D;AAC7D,8BAA8B;AAC9B,4DAA4D;AAC5D,iBAAiB;AACjB,gEAAgE;AAChE,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,kDAAkD,CAAC;AAE/E,SAAS,UAAU,CACf,MAAc,EACd,MAAkB,EAClB,YAAwB,EACxB,IAAgB;IAEhB,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,GAAgB;QACvB,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,CAAC,MAAM,EAAE,YAAY,CAAC;QAC/B,KAAK,EAAE,IAAI;KACd,CAAC;IACF,OAAO,mBAAmB,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;AAC/D,CAAC;AAmDD;;;;;;;;;;GAUG;AACH,MAAM,UAAU,MAAM,CAClB,IAAyB,EACzB,IAAiB,EACjB,IAA8B,EAC9B,IAAiB;IAEjB,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACzC,CAAC;IACD,OAAO,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,IAAkB,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;AAClE,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// (CircleDrawing), commit\n// 078f41fe2569d659d5aba726da8bcb5d3e2ced02, © Invinite.\n// Behaviour from\n// invinite/src/components/trading-chart/tools/circle-tool.ts.\n// Re-licensed MIT for chartlang.\n\nimport type {\n CircleState,\n DrawingHandle,\n ShapeStyle,\n WorldPoint,\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.circle called outside an active script step\";\n\nfunction circleImpl(\n slotId: string,\n centre: WorldPoint,\n radiusAnchor: WorldPoint,\n opts: ShapeStyle,\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: CircleState = {\n kind: \"circle\",\n anchors: [centre, radiusAnchor],\n style: opts,\n };\n return createDrawingHandle(slotId, subId, \"circle\", state);\n}\n\n/**\n * Draw a circle defined by a centre + an edge anchor. The radius is\n * derived in canvas-pixel space at render time from the projected\n * distance between the two anchors (`|edge - centre|`) — persisting\n * two world points keeps round-trip fidelity across zoom changes\n * (matches invinite's `circle-tool.ts`).\n *\n * @anchors `centre`, `radiusAnchor` — two `WorldPoint`s\n * @anchorCount 2\n * @bucket boxes\n * @since 0.3\n * @stable\n * @example\n * import { defineIndicator } from \"@invinite-org/chartlang-core\";\n * export default defineIndicator({\n * name: \"draw.circle demo\",\n * apiVersion: 1,\n * compute({ bar, draw }) {\n * draw.circle(\n * { time: bar.time, price: bar.close },\n * { time: bar.time, price: bar.high },\n * { stroke: \"#3b82f6\", fill: \"#dbeafe\", fillAlpha: 0.3 },\n * );\n * },\n * });\n */\nexport function circle(\n centre: WorldPoint,\n radiusAnchor: WorldPoint,\n opts?: ShapeStyle,\n): DrawingHandle;\n/**\n * Compiler-injected overload — the callsite-id transformer rewrites\n * every script-side `draw.circle(centre, radiusAnchor, opts)` into\n * `draw.circle(slotId, centre, radiusAnchor, opts)`.\n *\n * @since 0.3\n * @stable\n * @example\n * // Internal — the compiler rewrites every script callsite.\n * // const fn: typeof circle = circle;\n * // void fn;\n */\nexport function circle(\n slotId: string,\n centre: WorldPoint,\n radiusAnchor: WorldPoint,\n opts?: ShapeStyle,\n): DrawingHandle;\n/**\n * Implementation signature for {@link circle}. 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 circle = circle;\n * // void fn;\n */\nexport function circle(\n arg1: string | WorldPoint,\n arg2?: WorldPoint,\n arg3?: WorldPoint | ShapeStyle,\n arg4?: ShapeStyle,\n): DrawingHandle {\n if (typeof arg1 !== \"string\" || arg2 === undefined || arg3 === undefined) {\n throw new Error(OUTSIDE_CTX_MESSAGE);\n }\n return circleImpl(arg1, arg2, arg3 as WorldPoint, arg4 ?? {});\n}\n"]}
|