@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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"horizontalRay.js","sourceRoot":"","sources":["../../../../src/emit/draw/lines/horizontalRay.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAC/D,EAAE;AACF,oCAAoC;AACpC,6DAA6D;AAC7D,qCAAqC;AACrC,4DAA4D;AAC5D,iBAAiB;AACjB,wEAAwE;AACxE,
|
|
1
|
+
{"version":3,"file":"horizontalRay.js","sourceRoot":"","sources":["../../../../src/emit/draw/lines/horizontalRay.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAC/D,EAAE;AACF,oCAAoC;AACpC,6DAA6D;AAC7D,qCAAqC;AACrC,4DAA4D;AAC5D,iBAAiB;AACjB,wEAAwE;AACxE,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,CAAC,MAAc,EAAE,MAAkB,EAAE,IAAmB;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,GAAuB,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IAClF,OAAO,mBAAmB,CAAC,MAAM,EAAE,KAAK,EAAE,gBAAgB,EAAE,KAAK,CAAC,CAAC;AACvE,CAAC;AAwCD;;;;;;;;;;GAUG;AACH,MAAM,UAAU,aAAa,CACzB,IAAyB,EACzB,IAAiC,EACjC,IAAoB;IAEpB,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,SAAS,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7E,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// (HorizontalRayDrawing), commit\n// 078f41fe2569d659d5aba726da8bcb5d3e2ced02, © Invinite.\n// Behaviour from\n// invinite/src/components/trading-chart/tools/horizontal-ray-tool.ts.\n// Re-licensed MIT for chartlang.\n\nimport type {\n DrawingHandle,\n HorizontalRayState,\n LineDrawStyle,\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.horizontalRay called outside an active script step\";\n\nfunction horizontalRayImpl(slotId: string, anchor: WorldPoint, opts: LineDrawStyle): DrawingHandle {\n const ctx = ACTIVE_RUNTIME_CONTEXT.current;\n if (ctx === null) throw new Error(OUTSIDE_CTX_MESSAGE);\n const subId = nextSubId(ctx, slotId);\n const state: HorizontalRayState = { kind: \"horizontal-ray\", anchor, style: opts };\n return createDrawingHandle(slotId, subId, \"horizontal-ray\", state);\n}\n\n/**\n * Draw a horizontal ray starting at `anchor` and extending to the\n * right edge of the viewport at constant price.\n *\n * @anchors `anchor` — one `WorldPoint`\n * @anchorCount 1\n * @bucket lines\n * @since 0.3\n * @stable\n * @example\n * import { defineIndicator } from \"@invinite-org/chartlang-core\";\n * export default defineIndicator({\n * name: \"draw.horizontalRay demo\",\n * apiVersion: 1,\n * compute({ bar, draw }) {\n * draw.horizontalRay(\n * { time: bar.time, price: bar.close },\n * { color: \"#10b981\" },\n * );\n * },\n * });\n */\nexport function horizontalRay(anchor: WorldPoint, opts?: LineDrawStyle): DrawingHandle;\n/**\n * Compiler-injected overload.\n *\n * @since 0.3\n * @stable\n * @example\n * // Internal — the compiler rewrites every script callsite.\n * // const fn: typeof horizontalRay = horizontalRay;\n * // void fn;\n */\nexport function horizontalRay(\n slotId: string,\n anchor: WorldPoint,\n opts?: LineDrawStyle,\n): DrawingHandle;\n/**\n * Implementation signature for {@link horizontalRay}. 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 horizontalRay = horizontalRay;\n * // void fn;\n */\nexport function horizontalRay(\n arg1: string | WorldPoint,\n arg2?: WorldPoint | LineDrawStyle,\n arg3?: LineDrawStyle,\n): DrawingHandle {\n if (typeof arg1 !== \"string\" || arg2 === undefined || typeof arg2 !== \"object\") {\n throw new Error(OUTSIDE_CTX_MESSAGE);\n }\n return horizontalRayImpl(arg1, arg2 as WorldPoint, arg3 ?? {});\n}\n"]}
|
|
@@ -3,7 +3,7 @@ import type { DrawingHandle, LineDrawStyle, WorldPoint } from "@invinite-org/cha
|
|
|
3
3
|
* Draw a straight line between two world anchors. The invinite `ray`
|
|
4
4
|
* tool collapses into this kind via `style.extendRight: true`; the
|
|
5
5
|
* `extended-line` tool collapses via `extendLeft: true` + `extendRight:
|
|
6
|
-
* true
|
|
6
|
+
* true`. The handle is stable across bars per §10.3 —
|
|
7
7
|
* subsequent in-bar `update(patch)` calls merge into the slot's state
|
|
8
8
|
* and re-emit the full payload under `op: "update"`.
|
|
9
9
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"line.d.ts","sourceRoot":"","sources":["../../../../src/emit/draw/lines/line.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"line.d.ts","sourceRoot":"","sources":["../../../../src/emit/draw/lines/line.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EACR,aAAa,EACb,aAAa,EAEb,UAAU,EACb,MAAM,8BAA8B,CAAC;AAqBtC;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,IAAI,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,aAAa,GAAG,aAAa,CAAC;AACxF;;;;;;;;;;;GAWG;AACH,wBAAgB,IAAI,CAChB,MAAM,EAAE,MAAM,EACd,CAAC,EAAE,UAAU,EACb,CAAC,EAAE,UAAU,EACb,IAAI,CAAC,EAAE,aAAa,GACrB,aAAa,CAAC"}
|
|
@@ -8,9 +8,8 @@
|
|
|
8
8
|
// invinite/src/components/trading-chart/tools/line-tool.ts (base),
|
|
9
9
|
// invinite/src/components/trading-chart/tools/ray-tool.ts (extendRight),
|
|
10
10
|
// invinite/src/components/trading-chart/tools/extended-line-tool.ts
|
|
11
|
-
// (extendLeft + extendRight). Re-licensed MIT for chartlang.
|
|
12
|
-
//
|
|
13
|
-
// collapse into one `line` kind on the wire.
|
|
11
|
+
// (extendLeft + extendRight). Re-licensed MIT for chartlang.
|
|
12
|
+
// The three invinite tools collapse into one `line` kind on the wire.
|
|
14
13
|
import { ACTIVE_RUNTIME_CONTEXT } from "../../../runtimeContext.js";
|
|
15
14
|
import { createDrawingHandle } from "../handle.js";
|
|
16
15
|
import { nextSubId } from "../subIdAllocator.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"line.js","sourceRoot":"","sources":["../../../../src/emit/draw/lines/line.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAC/D,EAAE;AACF,oCAAoC;AACpC,4EAA4E;AAC5E,iEAAiE;AACjE,iBAAiB;AACjB,qEAAqE;AACrE,2EAA2E;AAC3E,sEAAsE;AACtE,
|
|
1
|
+
{"version":3,"file":"line.js","sourceRoot":"","sources":["../../../../src/emit/draw/lines/line.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAC/D,EAAE;AACF,oCAAoC;AACpC,4EAA4E;AAC5E,iEAAiE;AACjE,iBAAiB;AACjB,qEAAqE;AACrE,2EAA2E;AAC3E,sEAAsE;AACtE,iEAAiE;AACjE,sEAAsE;AAStE,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,CACb,MAAc,EACd,CAAa,EACb,CAAa,EACb,IAAmB;IAEnB,MAAM,GAAG,GAAG,sBAAsB,CAAC,OAAO,CAAC;IAC3C,IAAI,GAAG,KAAK,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACvD,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACrC,MAAM,KAAK,GAAc,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IACxE,OAAO,mBAAmB,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;AAC7D,CAAC;AAgDD;;;;;;;;;;GAUG;AACH,MAAM,UAAU,IAAI,CAChB,IAAyB,EACzB,IAAiB,EACjB,IAAiC,EACjC,IAAoB;IAEpB,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,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,IAAkB,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;AAChE,CAAC","sourcesContent":["// Copyright (c) 2026 Invinite. Licensed under the MIT License.\n// See the LICENSE file in the repo root for full license text.\n//\n// Anchors + state shape ported from\n// invinite/shared/trading-chart-collab-yjs/y-doc-bridge.ts (LineDrawing),\n// commit 078f41fe2569d659d5aba726da8bcb5d3e2ced02, © Invinite.\n// Behaviour from\n// invinite/src/components/trading-chart/tools/line-tool.ts (base),\n// invinite/src/components/trading-chart/tools/ray-tool.ts (extendRight),\n// invinite/src/components/trading-chart/tools/extended-line-tool.ts\n// (extendLeft + extendRight). Re-licensed MIT for chartlang.\n// The three invinite tools collapse into one `line` kind on the wire.\n\nimport type {\n DrawingHandle,\n LineDrawStyle,\n LineState,\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.line called outside an active script step\";\n\nfunction lineImpl(\n slotId: string,\n a: WorldPoint,\n b: WorldPoint,\n opts: LineDrawStyle,\n): DrawingHandle {\n const ctx = ACTIVE_RUNTIME_CONTEXT.current;\n if (ctx === null) throw new Error(OUTSIDE_CTX_MESSAGE);\n const subId = nextSubId(ctx, slotId);\n const state: LineState = { kind: \"line\", anchors: [a, b], style: opts };\n return createDrawingHandle(slotId, subId, \"line\", state);\n}\n\n/**\n * Draw a straight line between two world anchors. The invinite `ray`\n * tool collapses into this kind via `style.extendRight: true`; the\n * `extended-line` tool collapses via `extendLeft: true` + `extendRight:\n * true`. The handle is stable across bars per §10.3 —\n * subsequent in-bar `update(patch)` calls merge into the slot's state\n * and re-emit the full payload under `op: \"update\"`.\n *\n * @anchors `a`, `b` — two `WorldPoint`s\n * @anchorCount 2\n * @bucket lines\n * @since 0.3\n * @stable\n * @example\n * import { defineIndicator } from \"@invinite-org/chartlang-core\";\n * export default defineIndicator({\n * name: \"draw.line demo\",\n * apiVersion: 1,\n * compute({ bar, draw }) {\n * draw.line(\n * { time: bar.time, price: bar.high },\n * { time: bar.time, price: bar.low },\n * { color: \"#3b82f6\" },\n * );\n * },\n * });\n */\nexport function line(a: WorldPoint, b: WorldPoint, opts?: LineDrawStyle): DrawingHandle;\n/**\n * Compiler-injected overload — Task 2's callsite-id transformer\n * rewrites every script-side `draw.line(a, b, opts)` into\n * `draw.line(slotId, a, b, opts)`.\n *\n * @since 0.3\n * @stable\n * @example\n * // Internal — the compiler rewrites every script callsite.\n * // const fn: typeof line = line;\n * // void fn;\n */\nexport function line(\n slotId: string,\n a: WorldPoint,\n b: WorldPoint,\n opts?: LineDrawStyle,\n): DrawingHandle;\n/**\n * Implementation signature for {@link line}. 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 line = line;\n * // void fn;\n */\nexport function line(\n arg1: string | WorldPoint,\n arg2?: WorldPoint,\n arg3?: WorldPoint | LineDrawStyle,\n arg4?: LineDrawStyle,\n): DrawingHandle {\n if (typeof arg1 !== \"string\" || arg2 === undefined || arg3 === undefined) {\n throw new Error(OUTSIDE_CTX_MESSAGE);\n }\n return lineImpl(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/trend-angle-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":"trendAngle.js","sourceRoot":"","sources":["../../../../src/emit/draw/lines/trendAngle.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAC/D,EAAE;AACF,oCAAoC;AACpC,6DAA6D;AAC7D,kCAAkC;AAClC,4DAA4D;AAC5D,iBAAiB;AACjB,qEAAqE;AACrE,
|
|
1
|
+
{"version":3,"file":"trendAngle.js","sourceRoot":"","sources":["../../../../src/emit/draw/lines/trendAngle.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAC/D,EAAE;AACF,oCAAoC;AACpC,6DAA6D;AAC7D,kCAAkC;AAClC,4DAA4D;AAC5D,iBAAiB;AACjB,qEAAqE;AACrE,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,sDAAsD,CAAC;AAEnF,SAAS,cAAc,CACnB,MAAc,EACd,CAAa,EACb,CAAa,EACb,IAAmB;IAEnB,MAAM,GAAG,GAAG,sBAAsB,CAAC,OAAO,CAAC;IAC3C,IAAI,GAAG,KAAK,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACvD,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACrC,MAAM,KAAK,GAAoB,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IACrF,OAAO,mBAAmB,CAAC,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC;AACpE,CAAC;AA2CD;;;;;;;;;;GAUG;AACH,MAAM,UAAU,UAAU,CACtB,IAAyB,EACzB,IAAiB,EACjB,IAAiC,EACjC,IAAoB;IAEpB,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,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,IAAkB,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;AACtE,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// (TrendAngleDrawing), commit\n// 078f41fe2569d659d5aba726da8bcb5d3e2ced02, © Invinite.\n// Behaviour from\n// invinite/src/components/trading-chart/tools/trend-angle-tool.ts.\n// Re-licensed MIT for chartlang.\n\nimport type {\n DrawingHandle,\n LineDrawStyle,\n TrendAngleState,\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.trendAngle called outside an active script step\";\n\nfunction trendAngleImpl(\n slotId: string,\n a: WorldPoint,\n b: WorldPoint,\n opts: LineDrawStyle,\n): DrawingHandle {\n const ctx = ACTIVE_RUNTIME_CONTEXT.current;\n if (ctx === null) throw new Error(OUTSIDE_CTX_MESSAGE);\n const subId = nextSubId(ctx, slotId);\n const state: TrendAngleState = { kind: \"trend-angle\", anchors: [a, b], style: opts };\n return createDrawingHandle(slotId, subId, \"trend-angle\", state);\n}\n\n/**\n * Draw a line between two anchors plus a small arc + angle label at\n * the `a` anchor. The angle is the screen-space slope between `a`\n * and `b`, formatted as `${value.toFixed(1)}°`.\n *\n * @anchors `a`, `b` — two `WorldPoint`s\n * @anchorCount 2\n * @bucket lines\n * @since 0.3\n * @stable\n * @example\n * import { defineIndicator } from \"@invinite-org/chartlang-core\";\n * export default defineIndicator({\n * name: \"draw.trendAngle demo\",\n * apiVersion: 1,\n * compute({ bar, draw }) {\n * draw.trendAngle(\n * { time: bar.time, price: bar.low },\n * { time: bar.time, price: bar.high },\n * { color: \"#22c55e\" },\n * );\n * },\n * });\n */\nexport function trendAngle(a: WorldPoint, b: WorldPoint, opts?: LineDrawStyle): DrawingHandle;\n/**\n * Compiler-injected overload.\n *\n * @since 0.3\n * @stable\n * @example\n * // Internal — the compiler rewrites every script callsite.\n * // const fn: typeof trendAngle = trendAngle;\n * // void fn;\n */\nexport function trendAngle(\n slotId: string,\n a: WorldPoint,\n b: WorldPoint,\n opts?: LineDrawStyle,\n): DrawingHandle;\n/**\n * Implementation signature for {@link trendAngle}. 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 trendAngle = trendAngle;\n * // void fn;\n */\nexport function trendAngle(\n arg1: string | WorldPoint,\n arg2?: WorldPoint,\n arg3?: WorldPoint | LineDrawStyle,\n arg4?: LineDrawStyle,\n): DrawingHandle {\n if (typeof arg1 !== \"string\" || arg2 === undefined || arg3 === undefined) {\n throw new Error(OUTSIDE_CTX_MESSAGE);\n }\n return trendAngleImpl(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/vertical-line-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":"verticalLine.js","sourceRoot":"","sources":["../../../../src/emit/draw/lines/verticalLine.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAC/D,EAAE;AACF,oCAAoC;AACpC,6DAA6D;AAC7D,oCAAoC;AACpC,4DAA4D;AAC5D,iBAAiB;AACjB,uEAAuE;AACvE,
|
|
1
|
+
{"version":3,"file":"verticalLine.js","sourceRoot":"","sources":["../../../../src/emit/draw/lines/verticalLine.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAC/D,EAAE;AACF,oCAAoC;AACpC,6DAA6D;AAC7D,oCAAoC;AACpC,4DAA4D;AAC5D,iBAAiB;AACjB,uEAAuE;AACvE,iCAAiC;AASjC,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEjD,MAAM,mBAAmB,GAAG,wDAAwD,CAAC;AAErF,SAAS,gBAAgB,CAAC,MAAc,EAAE,IAAU,EAAE,IAAmB;IACrE,MAAM,GAAG,GAAG,sBAAsB,CAAC,OAAO,CAAC;IAC3C,IAAI,GAAG,KAAK,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACvD,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACrC,MAAM,KAAK,GAAsB,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IAC9E,OAAO,mBAAmB,CAAC,MAAM,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,CAAC,CAAC;AACtE,CAAC;AAiCD;;;;;;;;;;GAUG;AACH,MAAM,UAAU,YAAY,CACxB,IAAmB,EACnB,IAA2B,EAC3B,IAAoB;IAEpB,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QACvD,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACzC,CAAC;IACD,OAAO,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;AACpD,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// (VerticalLineDrawing), commit\n// 078f41fe2569d659d5aba726da8bcb5d3e2ced02, © Invinite.\n// Behaviour from\n// invinite/src/components/trading-chart/tools/vertical-line-tool.ts.\n// Re-licensed MIT for chartlang.\n\nimport type {\n DrawingHandle,\n LineDrawStyle,\n Time,\n VerticalLineState,\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.verticalLine called outside an active script step\";\n\nfunction verticalLineImpl(slotId: string, time: Time, opts: LineDrawStyle): DrawingHandle {\n const ctx = ACTIVE_RUNTIME_CONTEXT.current;\n if (ctx === null) throw new Error(OUTSIDE_CTX_MESSAGE);\n const subId = nextSubId(ctx, slotId);\n const state: VerticalLineState = { kind: \"vertical-line\", time, style: opts };\n return createDrawingHandle(slotId, subId, \"vertical-line\", state);\n}\n\n/**\n * Draw a vertical line at the supplied `time` that spans the full\n * viewport height.\n *\n * @anchors `time` — a single `Time`\n * @anchorCount 1\n * @bucket lines\n * @since 0.3\n * @stable\n * @example\n * import { defineIndicator } from \"@invinite-org/chartlang-core\";\n * export default defineIndicator({\n * name: \"draw.verticalLine demo\",\n * apiVersion: 1,\n * compute({ bar, draw }) {\n * draw.verticalLine(bar.time, { color: \"#f97316\" });\n * },\n * });\n */\nexport function verticalLine(time: Time, opts?: LineDrawStyle): DrawingHandle;\n/**\n * Compiler-injected overload.\n *\n * @since 0.3\n * @stable\n * @example\n * // Internal — the compiler rewrites every script callsite.\n * // const fn: typeof verticalLine = verticalLine;\n * // void fn;\n */\nexport function verticalLine(slotId: string, time: Time, opts?: LineDrawStyle): DrawingHandle;\n/**\n * Implementation signature for {@link verticalLine}. 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 verticalLine = verticalLine;\n * // void fn;\n */\nexport function verticalLine(\n arg1: string | Time,\n arg2?: Time | LineDrawStyle,\n arg3?: LineDrawStyle,\n): DrawingHandle {\n if (typeof arg1 !== \"string\" || typeof arg2 !== \"number\") {\n throw new Error(OUTSIDE_CTX_MESSAGE);\n }\n return verticalLineImpl(arg1, arg2, arg3 ?? {});\n}\n"]}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import type { DrawNamespace } from "@invinite-org/chartlang-core";
|
|
2
2
|
/**
|
|
3
|
-
* Runtime `draw` namespace.
|
|
4
|
-
*
|
|
5
|
-
* Phase 5
|
|
3
|
+
* Runtime `draw` namespace. Every one of the 63 `DrawingKind`s has a
|
|
4
|
+
* real per-kind impl wired into `KIND_IMPLS` (Task 18 brought the count
|
|
5
|
+
* to 61; Phase 5 added the viewport-anchored `table` kind; the
|
|
6
|
+
* fill-between feature added `fill-between`).
|
|
6
7
|
* the Proxy's `else` branch (fall-through to the core throwing-stub
|
|
7
8
|
* Proxy) is dead code at runtime — kept as defence-in-depth for
|
|
8
9
|
* unknown property access (e.g. JS code accessing a property name
|
|
@@ -13,7 +14,7 @@ import type { DrawNamespace } from "@invinite-org/chartlang-core";
|
|
|
13
14
|
* slot-id-prefixed compiler form from the bare script-facing form
|
|
14
15
|
* which always throws. This is the Phase-3 swap seam for the
|
|
15
16
|
* `primitives.ts:draw` re-export, mirroring how `TA_REGISTRY` swaps
|
|
16
|
-
* in Phase 2
|
|
17
|
+
* in Phase 2.
|
|
17
18
|
*
|
|
18
19
|
* @since 0.3
|
|
19
20
|
* @stable
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"namespace.d.ts","sourceRoot":"","sources":["../../../src/emit/draw/namespace.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"namespace.d.ts","sourceRoot":"","sources":["../../../src/emit/draw/namespace.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAuJlE;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,eAAO,MAAM,cAAc,EAAE,aAe3B,CAAC"}
|
|
@@ -8,6 +8,7 @@ import { arrowMarker } from "./annotations/arrowMarker.js";
|
|
|
8
8
|
import { text } from "./annotations/text.js";
|
|
9
9
|
import { circle } from "./boxes/circle.js";
|
|
10
10
|
import { ellipse } from "./boxes/ellipse.js";
|
|
11
|
+
import { fillBetween } from "./boxes/fillBetween.js";
|
|
11
12
|
import { marker } from "./boxes/marker.js";
|
|
12
13
|
import { path } from "./boxes/path.js";
|
|
13
14
|
import { polyline } from "./boxes/polyline.js";
|
|
@@ -80,6 +81,7 @@ const KIND_IMPLS = {
|
|
|
80
81
|
circle,
|
|
81
82
|
ellipse,
|
|
82
83
|
path,
|
|
84
|
+
fillBetween,
|
|
83
85
|
marker,
|
|
84
86
|
// Task 8 — Curves
|
|
85
87
|
arc,
|
|
@@ -145,9 +147,10 @@ const KIND_IMPLS = {
|
|
|
145
147
|
};
|
|
146
148
|
const IMPL_KIND_NAMES = new Set(Object.keys(KIND_IMPLS));
|
|
147
149
|
/**
|
|
148
|
-
* Runtime `draw` namespace.
|
|
149
|
-
*
|
|
150
|
-
* Phase 5
|
|
150
|
+
* Runtime `draw` namespace. Every one of the 63 `DrawingKind`s has a
|
|
151
|
+
* real per-kind impl wired into `KIND_IMPLS` (Task 18 brought the count
|
|
152
|
+
* to 61; Phase 5 added the viewport-anchored `table` kind; the
|
|
153
|
+
* fill-between feature added `fill-between`).
|
|
151
154
|
* the Proxy's `else` branch (fall-through to the core throwing-stub
|
|
152
155
|
* Proxy) is dead code at runtime — kept as defence-in-depth for
|
|
153
156
|
* unknown property access (e.g. JS code accessing a property name
|
|
@@ -158,7 +161,7 @@ const IMPL_KIND_NAMES = new Set(Object.keys(KIND_IMPLS));
|
|
|
158
161
|
* slot-id-prefixed compiler form from the bare script-facing form
|
|
159
162
|
* which always throws. This is the Phase-3 swap seam for the
|
|
160
163
|
* `primitives.ts:draw` re-export, mirroring how `TA_REGISTRY` swaps
|
|
161
|
-
* in Phase 2
|
|
164
|
+
* in Phase 2.
|
|
162
165
|
*
|
|
163
166
|
* @since 0.3
|
|
164
167
|
* @stable
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"namespace.js","sourceRoot":"","sources":["../../../src/emit/draw/namespace.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"namespace.js","sourceRoot":"","sources":["../../../src/emit/draw/namespace.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 { DrawNamespace } from \"@invinite-org/chartlang-core\";\nimport { draw as CORE_DRAW_STUB } from \"@invinite-org/chartlang-core\";\n\nimport { arrow } from \"./annotations/arrow.js\";\nimport { arrowMarkDown } from \"./annotations/arrowMarkDown.js\";\nimport { arrowMarkUp } from \"./annotations/arrowMarkUp.js\";\nimport { arrowMarker } from \"./annotations/arrowMarker.js\";\nimport { text } from \"./annotations/text.js\";\nimport { circle } from \"./boxes/circle.js\";\nimport { ellipse } from \"./boxes/ellipse.js\";\nimport { fillBetween } from \"./boxes/fillBetween.js\";\nimport { marker } from \"./boxes/marker.js\";\nimport { path } from \"./boxes/path.js\";\nimport { polyline } from \"./boxes/polyline.js\";\nimport { rectangle } from \"./boxes/rectangle.js\";\nimport { rotatedRectangle } from \"./boxes/rotatedRectangle.js\";\nimport { triangle } from \"./boxes/triangle.js\";\nimport { disjointChannel } from \"./channels/disjointChannel.js\";\nimport { flatTopBottom } from \"./channels/flatTopBottom.js\";\nimport { regressionTrend } from \"./channels/regressionTrend.js\";\nimport { trendChannel } from \"./channels/trendChannel.js\";\nimport { frame } from \"./containers/frame.js\";\nimport { group } from \"./containers/group.js\";\nimport { arc } from \"./curves/arc.js\";\nimport { brush } from \"./curves/brush.js\";\nimport { curve } from \"./curves/curve.js\";\nimport { doubleCurve } from \"./curves/doubleCurve.js\";\nimport { highlighter } from \"./curves/highlighter.js\";\nimport { pen } from \"./curves/pen.js\";\nimport { cyclicLines } from \"./cycles/cyclicLines.js\";\nimport { sineLine } from \"./cycles/sineLine.js\";\nimport { timeCycles } from \"./cycles/timeCycles.js\";\nimport { elliottCorrectionWave } from \"./elliott/elliottCorrectionWave.js\";\nimport { elliottDoubleCombo } from \"./elliott/elliottDoubleCombo.js\";\nimport { elliottImpulseWave } from \"./elliott/elliottImpulseWave.js\";\nimport { elliottTriangleWave } from \"./elliott/elliottTriangleWave.js\";\nimport { elliottTripleCombo } from \"./elliott/elliottTripleCombo.js\";\nimport { fibChannel } from \"./fibA/fibChannel.js\";\nimport { fibRetracement } from \"./fibA/fibRetracement.js\";\nimport { fibTimeZone } from \"./fibA/fibTimeZone.js\";\nimport { fibTrendExtension } from \"./fibA/fibTrendExtension.js\";\nimport { fibWedge } from \"./fibA/fibWedge.js\";\nimport { fibCircles } from \"./fibB/fibCircles.js\";\nimport { fibSpeedArcs } from \"./fibB/fibSpeedArcs.js\";\nimport { fibSpeedFan } from \"./fibB/fibSpeedFan.js\";\nimport { fibSpiral } from \"./fibB/fibSpiral.js\";\nimport { fibTrendTime } from \"./fibB/fibTrendTime.js\";\nimport { gannBox } from \"./gann/gannBox.js\";\nimport { gannFan } from \"./gann/gannFan.js\";\nimport { gannSquare } from \"./gann/gannSquare.js\";\nimport { gannSquareFixed } from \"./gann/gannSquareFixed.js\";\nimport { crossLine } from \"./lines/crossLine.js\";\nimport { horizontalLine } from \"./lines/horizontalLine.js\";\nimport { horizontalRay } from \"./lines/horizontalRay.js\";\nimport { line } from \"./lines/line.js\";\nimport { trendAngle } from \"./lines/trendAngle.js\";\nimport { verticalLine } from \"./lines/verticalLine.js\";\nimport { abcdPattern } from \"./patterns/abcdPattern.js\";\nimport { cypherPattern } from \"./patterns/cypherPattern.js\";\nimport { headAndShoulders } from \"./patterns/headAndShoulders.js\";\nimport { threeDrivesPattern } from \"./patterns/threeDrivesPattern.js\";\nimport { trianglePattern } from \"./patterns/trianglePattern.js\";\nimport { xabcdPattern } from \"./patterns/xabcdPattern.js\";\nimport { pitchfan } from \"./pitchforks/pitchfan.js\";\nimport { pitchfork } from \"./pitchforks/pitchfork.js\";\nimport { table } from \"./table/table.js\";\n\nconst KIND_IMPLS = {\n // Task 5 — Lines/Rays\n line,\n horizontalLine,\n horizontalRay,\n verticalLine,\n crossLine,\n trendAngle,\n // Task 6 — Boxes A\n rectangle,\n rotatedRectangle,\n triangle,\n polyline,\n // Task 7 — Boxes B\n circle,\n ellipse,\n path,\n fillBetween,\n marker,\n // Task 8 — Curves\n arc,\n curve,\n doubleCurve,\n // Task 8 — Freehand\n pen,\n highlighter,\n brush,\n // Task 9 — Annotations\n text,\n arrow,\n arrowMarker,\n arrowMarkUp,\n arrowMarkDown,\n // Task 10 — Channels\n trendChannel,\n flatTopBottom,\n disjointChannel,\n regressionTrend,\n // Task 11 — Fibonacci A\n fibRetracement,\n fibTrendExtension,\n fibChannel,\n fibTimeZone,\n fibWedge,\n // Task 12 — Fibonacci B\n fibSpeedFan,\n fibSpeedArcs,\n fibSpiral,\n fibCircles,\n fibTrendTime,\n // Task 13 — Gann\n gannBox,\n gannSquareFixed,\n gannSquare,\n gannFan,\n // Task 14 — Pitchforks\n pitchfork,\n pitchfan,\n // Task 15 — Harmonic Patterns\n xabcdPattern,\n cypherPattern,\n headAndShoulders,\n abcdPattern,\n trianglePattern,\n threeDrivesPattern,\n // Task 16 — Elliott Waves\n elliottImpulseWave,\n elliottCorrectionWave,\n elliottTriangleWave,\n elliottDoubleCombo,\n elliottTripleCombo,\n // Task 17 — Cycles\n cyclicLines,\n timeCycles,\n sineLine,\n // Task 18 — Containers\n group,\n frame,\n // Phase 5 — Viewport overlays\n table,\n} as const;\n\nconst IMPL_KIND_NAMES: ReadonlySet<string> = new Set(Object.keys(KIND_IMPLS));\n\n/**\n * Runtime `draw` namespace. Every one of the 63 `DrawingKind`s has a\n * real per-kind impl wired into `KIND_IMPLS` (Task 18 brought the count\n * to 61; Phase 5 added the viewport-anchored `table` kind; the\n * fill-between feature added `fill-between`).\n * the Proxy's `else` branch (fall-through to the core throwing-stub\n * Proxy) is dead code at runtime — kept as defence-in-depth for\n * unknown property access (e.g. JS code accessing a property name\n * outside the `DrawNamespace` type surface).\n *\n * Each per-kind impl is the compiler-injected overload — the\n * dispatch branches on `typeof arg1 === \"string\"` to discriminate the\n * slot-id-prefixed compiler form from the bare script-facing form\n * which always throws. This is the Phase-3 swap seam for the\n * `primitives.ts:draw` re-export, mirroring how `TA_REGISTRY` swaps\n * in Phase 2.\n *\n * @since 0.3\n * @stable\n * @example\n * import { draw } from \"@invinite-org/chartlang-runtime\";\n * // type S = typeof draw;\n * void draw;\n */\nexport const DRAW_NAMESPACE: DrawNamespace = new Proxy(KIND_IMPLS as unknown as DrawNamespace, {\n get(target, property): unknown {\n const name = String(property);\n if (IMPL_KIND_NAMES.has(name)) {\n return Reflect.get(target, property);\n }\n // After Task 18 every `DrawingKind` has a real impl in\n // `KIND_IMPLS` so this branch is unreachable through the\n // `DrawNamespace` type surface — it stays as defence-in-depth\n // for non-kind property access (e.g. JS code that reads\n // `draw[\"foo\"]` through a typed-erased view). Falling through\n // to core's throwing-stub keeps the failure mode consistent\n // with the pre-Task-18 behaviour.\n return Reflect.get(CORE_DRAW_STUB, property);\n },\n});\n"]}
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
// 078f41fe2569d659d5aba726da8bcb5d3e2ced02, © Invinite.
|
|
8
8
|
// Behaviour from
|
|
9
9
|
// invinite/src/components/trading-chart/tools/abcd-pattern-tool.ts.
|
|
10
|
-
// Re-licensed MIT for chartlang.
|
|
10
|
+
// Re-licensed MIT for chartlang.
|
|
11
11
|
import { ACTIVE_RUNTIME_CONTEXT } from "../../../runtimeContext.js";
|
|
12
12
|
import { createDrawingHandle } from "../handle.js";
|
|
13
13
|
import { nextSubId } from "../subIdAllocator.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"abcdPattern.js","sourceRoot":"","sources":["../../../../src/emit/draw/patterns/abcdPattern.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":"abcdPattern.js","sourceRoot":"","sources":["../../../../src/emit/draw/patterns/abcdPattern.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,OAAmB,EAAE,IAAmB;IAC7E,MAAM,GAAG,GAAG,sBAAsB,CAAC,OAAO,CAAC;IAC3C,IAAI,GAAG,KAAK,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACvD,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACrC,MAAM,KAAK,GAAqB,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IAC/E,OAAO,mBAAmB,CAAC,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,CAAC,CAAC;AACrE,CAAC;AA4CD;;;;;;;;;;GAUG;AACH,MAAM,UAAU,WAAW,CACvB,IAAyB,EACzB,IAAiC,EACjC,IAAoB;IAEpB,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACzE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACzC,CAAC;IACD,OAAO,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// (AbcdPatternDrawing), commit\n// 078f41fe2569d659d5aba726da8bcb5d3e2ced02, © Invinite.\n// Behaviour from\n// invinite/src/components/trading-chart/tools/abcd-pattern-tool.ts.\n// Re-licensed MIT for chartlang.\n\nimport type {\n AbcdPatternState,\n AnchorQuad,\n DrawingHandle,\n LineDrawStyle,\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.abcdPattern called outside an active script step\";\n\nfunction abcdPatternImpl(slotId: string, anchors: AnchorQuad, opts: LineDrawStyle): DrawingHandle {\n const ctx = ACTIVE_RUNTIME_CONTEXT.current;\n if (ctx === null) throw new Error(OUTSIDE_CTX_MESSAGE);\n const subId = nextSubId(ctx, slotId);\n const state: AbcdPatternState = { kind: \"abcd-pattern\", anchors, style: opts };\n return createDrawingHandle(slotId, subId, \"abcd-pattern\", state);\n}\n\n/**\n * Draw an ABCD measured-move pattern through 4 world anchors `[A, B,\n * C, D]`. The renderer strokes the connecting legs (A-B, B-C, C-D)\n * and labels each pivot. Mirrors invinite's `abcd-pattern-tool.ts`\n * shape.\n *\n * @anchors `anchors` — `[A, B, C, D]` quad of world points\n * @anchorCount 4\n * @bucket polylines\n * @since 0.3\n * @stable\n * @example\n * import { defineIndicator } from \"@invinite-org/chartlang-core\";\n * export default defineIndicator({\n * name: \"draw.abcdPattern demo\",\n * apiVersion: 1,\n * compute({ bar, draw }) {\n * draw.abcdPattern([\n * { time: bar.time, price: bar.low },\n * { time: bar.time + 20_000, price: bar.high },\n * { time: bar.time + 40_000, price: bar.close },\n * { time: bar.time + 60_000, price: bar.high + 1 },\n * ]);\n * },\n * });\n */\nexport function abcdPattern(anchors: AnchorQuad, opts?: LineDrawStyle): DrawingHandle;\n/**\n * Compiler-injected overload.\n *\n * @since 0.3\n * @stable\n * @example\n * // Internal — the compiler rewrites every script callsite.\n * // const fn: typeof abcdPattern = abcdPattern;\n * // void fn;\n */\nexport function abcdPattern(\n slotId: string,\n anchors: AnchorQuad,\n opts?: LineDrawStyle,\n): DrawingHandle;\n/**\n * Implementation signature for {@link abcdPattern}. 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 abcdPattern = abcdPattern;\n * // void fn;\n */\nexport function abcdPattern(\n arg1: string | AnchorQuad,\n arg2?: AnchorQuad | LineDrawStyle,\n arg3?: LineDrawStyle,\n): DrawingHandle {\n if (typeof arg1 !== \"string\" || arg2 === undefined || !Array.isArray(arg2)) {\n throw new Error(OUTSIDE_CTX_MESSAGE);\n }\n return abcdPatternImpl(arg1, arg2 as AnchorQuad, arg3 ?? {});\n}\n"]}
|
|
@@ -4,8 +4,7 @@ import type { AnchorQuint, DrawingHandle, LineDrawStyle } from "@invinite-org/ch
|
|
|
4
4
|
* D]`. The renderer strokes the connecting legs (X-A, A-B, B-C, C-D)
|
|
5
5
|
* and labels each pivot. Mirrors invinite's `CypherPatternDrawing`
|
|
6
6
|
* schema — `cypher-pattern` has no standalone tool in invinite, only
|
|
7
|
-
* the y-doc-bridge type; the UI surface lives in `defineDrawing
|
|
8
|
-
* (Task 20).
|
|
7
|
+
* the y-doc-bridge type; the UI surface lives in `defineDrawing`.
|
|
9
8
|
*
|
|
10
9
|
* @anchors `anchors` — `[X, A, B, C, D]` quint of world points
|
|
11
10
|
* @anchorCount 5
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cypherPattern.d.ts","sourceRoot":"","sources":["../../../../src/emit/draw/patterns/cypherPattern.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EACR,WAAW,EAEX,aAAa,EACb,aAAa,EAChB,MAAM,8BAA8B,CAAC;AAoBtC
|
|
1
|
+
{"version":3,"file":"cypherPattern.d.ts","sourceRoot":"","sources":["../../../../src/emit/draw/patterns/cypherPattern.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EACR,WAAW,EAEX,aAAa,EACb,aAAa,EAChB,MAAM,8BAA8B,CAAC;AAoBtC;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,aAAa,GAAG,aAAa,CAAC;AACzF;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CACzB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,WAAW,EACpB,IAAI,CAAC,EAAE,aAAa,GACrB,aAAa,CAAC"}
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
// 078f41fe2569d659d5aba726da8bcb5d3e2ced02, © Invinite.
|
|
8
8
|
// `cypher-pattern` has no standalone invinite tool — the UI surface
|
|
9
9
|
// lives in `defineDrawing` (Task 20) only. Hence the provenance
|
|
10
|
-
// header cites only y-doc-bridge.ts
|
|
10
|
+
// header cites only y-doc-bridge.ts.
|
|
11
11
|
// Re-licensed MIT for chartlang.
|
|
12
12
|
import { ACTIVE_RUNTIME_CONTEXT } from "../../../runtimeContext.js";
|
|
13
13
|
import { createDrawingHandle } from "../handle.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cypherPattern.js","sourceRoot":"","sources":["../../../../src/emit/draw/patterns/cypherPattern.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAC/D,EAAE;AACF,oCAAoC;AACpC,6DAA6D;AAC7D,qCAAqC;AACrC,4DAA4D;AAC5D,oEAAoE;AACpE,gEAAgE;AAChE,
|
|
1
|
+
{"version":3,"file":"cypherPattern.js","sourceRoot":"","sources":["../../../../src/emit/draw/patterns/cypherPattern.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAC/D,EAAE;AACF,oCAAoC;AACpC,6DAA6D;AAC7D,qCAAqC;AACrC,4DAA4D;AAC5D,oEAAoE;AACpE,gEAAgE;AAChE,qCAAqC;AACrC,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,OAAoB,EACpB,IAAmB;IAEnB,MAAM,GAAG,GAAG,sBAAsB,CAAC,OAAO,CAAC;IAC3C,IAAI,GAAG,KAAK,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACvD,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACrC,MAAM,KAAK,GAAuB,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IACnF,OAAO,mBAAmB,CAAC,MAAM,EAAE,KAAK,EAAE,gBAAgB,EAAE,KAAK,CAAC,CAAC;AACvE,CAAC;AA8CD;;;;;;;;;;GAUG;AACH,MAAM,UAAU,aAAa,CACzB,IAA0B,EAC1B,IAAkC,EAClC,IAAoB;IAEpB,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACzE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACzC,CAAC;IACD,OAAO,iBAAiB,CAAC,IAAI,EAAE,IAAmB,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;AACpE,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// (CypherPatternDrawing), commit\n// 078f41fe2569d659d5aba726da8bcb5d3e2ced02, © Invinite.\n// `cypher-pattern` has no standalone invinite tool — the UI surface\n// lives in `defineDrawing` (Task 20) only. Hence the provenance\n// header cites only y-doc-bridge.ts.\n// Re-licensed MIT for chartlang.\n\nimport type {\n AnchorQuint,\n CypherPatternState,\n DrawingHandle,\n LineDrawStyle,\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.cypherPattern called outside an active script step\";\n\nfunction cypherPatternImpl(\n slotId: string,\n anchors: AnchorQuint,\n opts: LineDrawStyle,\n): DrawingHandle {\n const ctx = ACTIVE_RUNTIME_CONTEXT.current;\n if (ctx === null) throw new Error(OUTSIDE_CTX_MESSAGE);\n const subId = nextSubId(ctx, slotId);\n const state: CypherPatternState = { kind: \"cypher-pattern\", anchors, style: opts };\n return createDrawingHandle(slotId, subId, \"cypher-pattern\", state);\n}\n\n/**\n * Draw a Cypher harmonic pattern through 5 world anchors `[X, A, B, C,\n * D]`. The renderer strokes the connecting legs (X-A, A-B, B-C, C-D)\n * and labels each pivot. Mirrors invinite's `CypherPatternDrawing`\n * schema — `cypher-pattern` has no standalone tool in invinite, only\n * the y-doc-bridge type; the UI surface lives in `defineDrawing`.\n *\n * @anchors `anchors` — `[X, A, B, C, D]` quint of world points\n * @anchorCount 5\n * @bucket polylines\n * @since 0.3\n * @stable\n * @example\n * import { defineIndicator } from \"@invinite-org/chartlang-core\";\n * export default defineIndicator({\n * name: \"draw.cypherPattern demo\",\n * apiVersion: 1,\n * compute({ bar, draw }) {\n * draw.cypherPattern([\n * { time: bar.time, price: bar.low },\n * { time: bar.time + 15_000, price: bar.high },\n * { time: bar.time + 30_000, price: bar.close },\n * { time: bar.time + 45_000, price: bar.high - 1 },\n * { time: bar.time + 60_000, price: bar.low + 1 },\n * ]);\n * },\n * });\n */\nexport function cypherPattern(anchors: AnchorQuint, opts?: LineDrawStyle): DrawingHandle;\n/**\n * Compiler-injected overload.\n *\n * @since 0.3\n * @stable\n * @example\n * // Internal — the compiler rewrites every script callsite.\n * // const fn: typeof cypherPattern = cypherPattern;\n * // void fn;\n */\nexport function cypherPattern(\n slotId: string,\n anchors: AnchorQuint,\n opts?: LineDrawStyle,\n): DrawingHandle;\n/**\n * Implementation signature for {@link cypherPattern}. 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 cypherPattern = cypherPattern;\n * // void fn;\n */\nexport function cypherPattern(\n arg1: string | AnchorQuint,\n arg2?: AnchorQuint | LineDrawStyle,\n arg3?: LineDrawStyle,\n): DrawingHandle {\n if (typeof arg1 !== \"string\" || arg2 === undefined || !Array.isArray(arg2)) {\n throw new Error(OUTSIDE_CTX_MESSAGE);\n }\n return cypherPatternImpl(arg1, arg2 as AnchorQuint, arg3 ?? {});\n}\n"]}
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
// `HeadAndShouldersState.anchors: AnchorQuint` is a 5-anchor shell
|
|
13
13
|
// (leftShoulder, leftLow, head, rightLow, rightShoulder) — start/end
|
|
14
14
|
// projection is flagged as a Task-1 reshape follow-up.
|
|
15
|
-
// Re-licensed MIT for chartlang.
|
|
15
|
+
// Re-licensed MIT for chartlang.
|
|
16
16
|
import { ACTIVE_RUNTIME_CONTEXT } from "../../../runtimeContext.js";
|
|
17
17
|
import { createDrawingHandle } from "../handle.js";
|
|
18
18
|
import { nextSubId } from "../subIdAllocator.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"headAndShoulders.js","sourceRoot":"","sources":["../../../../src/emit/draw/patterns/headAndShoulders.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAC/D,EAAE;AACF,oCAAoC;AACpC,6DAA6D;AAC7D,wCAAwC;AACxC,4DAA4D;AAC5D,iBAAiB;AACjB,4EAA4E;AAC5E,uEAAuE;AACvE,wEAAwE;AACxE,mEAAmE;AACnE,qEAAqE;AACrE,uDAAuD;AACvD,
|
|
1
|
+
{"version":3,"file":"headAndShoulders.js","sourceRoot":"","sources":["../../../../src/emit/draw/patterns/headAndShoulders.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAC/D,EAAE;AACF,oCAAoC;AACpC,6DAA6D;AAC7D,wCAAwC;AACxC,4DAA4D;AAC5D,iBAAiB;AACjB,4EAA4E;AAC5E,uEAAuE;AACvE,wEAAwE;AACxE,mEAAmE;AACnE,qEAAqE;AACrE,uDAAuD;AACvD,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,4DAA4D,CAAC;AAEzF,SAAS,oBAAoB,CACzB,MAAc,EACd,OAAoB,EACpB,IAAmB;IAEnB,MAAM,GAAG,GAAG,sBAAsB,CAAC,OAAO,CAAC;IAC3C,IAAI,GAAG,KAAK,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACvD,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACrC,MAAM,KAAK,GAA0B;QACjC,IAAI,EAAE,oBAAoB;QAC1B,OAAO;QACP,KAAK,EAAE,IAAI;KACd,CAAC;IACF,OAAO,mBAAmB,CAAC,MAAM,EAAE,KAAK,EAAE,oBAAoB,EAAE,KAAK,CAAC,CAAC;AAC3E,CAAC;AA8CD;;;;;;;;;;GAUG;AACH,MAAM,UAAU,gBAAgB,CAC5B,IAA0B,EAC1B,IAAkC,EAClC,IAAoB;IAEpB,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACzE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACzC,CAAC;IACD,OAAO,oBAAoB,CAAC,IAAI,EAAE,IAAmB,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;AACvE,CAAC","sourcesContent":["// Copyright (c) 2026 Invinite. Licensed under the MIT License.\n// See the LICENSE file in the repo root for full license text.\n//\n// Anchors + state shape ported from\n// invinite/shared/trading-chart-collab-yjs/y-doc-bridge.ts\n// (HeadAndShouldersDrawing), commit\n// 078f41fe2569d659d5aba726da8bcb5d3e2ced02, © Invinite.\n// Behaviour from\n// invinite/src/components/trading-chart/tools/head-and-shoulders-tool.ts.\n// Note: invinite's full schema carries 7 anchors (start, leftShoulder,\n// leftTrough, head, rightTrough, rightShoulder, end). The landed Task-1\n// `HeadAndShouldersState.anchors: AnchorQuint` is a 5-anchor shell\n// (leftShoulder, leftLow, head, rightLow, rightShoulder) — start/end\n// projection is flagged as a Task-1 reshape follow-up.\n// Re-licensed MIT for chartlang.\n\nimport type {\n AnchorQuint,\n DrawingHandle,\n HeadAndShouldersState,\n LineDrawStyle,\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.headAndShoulders called outside an active script step\";\n\nfunction headAndShouldersImpl(\n slotId: string,\n anchors: AnchorQuint,\n opts: LineDrawStyle,\n): DrawingHandle {\n const ctx = ACTIVE_RUNTIME_CONTEXT.current;\n if (ctx === null) throw new Error(OUTSIDE_CTX_MESSAGE);\n const subId = nextSubId(ctx, slotId);\n const state: HeadAndShouldersState = {\n kind: \"head-and-shoulders\",\n anchors,\n style: opts,\n };\n return createDrawingHandle(slotId, subId, \"head-and-shoulders\", state);\n}\n\n/**\n * Draw a head-and-shoulders reversal pattern through 5 world anchors\n * `[leftShoulder, leftLow, head, rightLow, rightShoulder]`. The\n * renderer strokes the connecting polyline plus the neckline between\n * the two trough anchors. Mirrors invinite's\n * `head-and-shoulders-tool.ts` shape.\n *\n * @anchors `anchors` — `[leftShoulder, leftLow, head, rightLow, rightShoulder]`\n * @anchorCount 5\n * @bucket polylines\n * @since 0.3\n * @stable\n * @example\n * import { defineIndicator } from \"@invinite-org/chartlang-core\";\n * export default defineIndicator({\n * name: \"draw.headAndShoulders demo\",\n * apiVersion: 1,\n * compute({ bar, draw }) {\n * draw.headAndShoulders([\n * { time: bar.time, price: bar.high },\n * { time: bar.time + 15_000, price: bar.low },\n * { time: bar.time + 30_000, price: bar.high + 1 },\n * { time: bar.time + 45_000, price: bar.low },\n * { time: bar.time + 60_000, price: bar.high },\n * ]);\n * },\n * });\n */\nexport function headAndShoulders(anchors: AnchorQuint, opts?: LineDrawStyle): DrawingHandle;\n/**\n * Compiler-injected overload.\n *\n * @since 0.3\n * @stable\n * @example\n * // Internal — the compiler rewrites every script callsite.\n * // const fn: typeof headAndShoulders = headAndShoulders;\n * // void fn;\n */\nexport function headAndShoulders(\n slotId: string,\n anchors: AnchorQuint,\n opts?: LineDrawStyle,\n): DrawingHandle;\n/**\n * Implementation signature for {@link headAndShoulders}. 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 headAndShoulders = headAndShoulders;\n * // void fn;\n */\nexport function headAndShoulders(\n arg1: string | AnchorQuint,\n arg2?: AnchorQuint | LineDrawStyle,\n arg3?: LineDrawStyle,\n): DrawingHandle {\n if (typeof arg1 !== \"string\" || arg2 === undefined || !Array.isArray(arg2)) {\n throw new Error(OUTSIDE_CTX_MESSAGE);\n }\n return headAndShouldersImpl(arg1, arg2 as AnchorQuint, arg3 ?? {});\n}\n"]}
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
// 078f41fe2569d659d5aba726da8bcb5d3e2ced02, © Invinite.
|
|
8
8
|
// Behaviour from
|
|
9
9
|
// invinite/src/components/trading-chart/tools/three-drives-pattern-tool.ts.
|
|
10
|
-
// Re-licensed MIT for chartlang.
|
|
10
|
+
// Re-licensed MIT for chartlang.
|
|
11
11
|
import { ACTIVE_RUNTIME_CONTEXT } from "../../../runtimeContext.js";
|
|
12
12
|
import { createDrawingHandle } from "../handle.js";
|
|
13
13
|
import { nextSubId } from "../subIdAllocator.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"threeDrivesPattern.js","sourceRoot":"","sources":["../../../../src/emit/draw/patterns/threeDrivesPattern.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAC/D,EAAE;AACF,oCAAoC;AACpC,6DAA6D;AAC7D,0CAA0C;AAC1C,4DAA4D;AAC5D,iBAAiB;AACjB,8EAA8E;AAC9E,
|
|
1
|
+
{"version":3,"file":"threeDrivesPattern.js","sourceRoot":"","sources":["../../../../src/emit/draw/patterns/threeDrivesPattern.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAC/D,EAAE;AACF,oCAAoC;AACpC,6DAA6D;AAC7D,0CAA0C;AAC1C,4DAA4D;AAC5D,iBAAiB;AACjB,8EAA8E;AAC9E,iCAAiC;AASjC,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEjD,MAAM,mBAAmB,GAAG,8DAA8D,CAAC;AAE3F,SAAS,sBAAsB,CAC3B,MAAc,EACd,OAAmB,EACnB,IAAmB;IAEnB,MAAM,GAAG,GAAG,sBAAsB,CAAC,OAAO,CAAC;IAC3C,IAAI,GAAG,KAAK,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACvD,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACrC,MAAM,KAAK,GAA4B;QACnC,IAAI,EAAE,sBAAsB;QAC5B,OAAO;QACP,KAAK,EAAE,IAAI;KACd,CAAC;IACF,OAAO,mBAAmB,CAAC,MAAM,EAAE,KAAK,EAAE,sBAAsB,EAAE,KAAK,CAAC,CAAC;AAC7E,CAAC;AA+CD;;;;;;;;;;GAUG;AACH,MAAM,UAAU,kBAAkB,CAC9B,IAAyB,EACzB,IAAiC,EACjC,IAAoB;IAEpB,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACzE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACzC,CAAC;IACD,OAAO,sBAAsB,CAAC,IAAI,EAAE,IAAkB,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;AACxE,CAAC","sourcesContent":["// Copyright (c) 2026 Invinite. Licensed under the MIT License.\n// See the LICENSE file in the repo root for full license text.\n//\n// Anchors + state shape ported from\n// invinite/shared/trading-chart-collab-yjs/y-doc-bridge.ts\n// (ThreeDrivesPatternDrawing), commit\n// 078f41fe2569d659d5aba726da8bcb5d3e2ced02, © Invinite.\n// Behaviour from\n// invinite/src/components/trading-chart/tools/three-drives-pattern-tool.ts.\n// Re-licensed MIT for chartlang.\n\nimport type {\n AnchorHept,\n DrawingHandle,\n LineDrawStyle,\n ThreeDrivesPatternState,\n} from \"@invinite-org/chartlang-core\";\n\nimport { ACTIVE_RUNTIME_CONTEXT } from \"../../../runtimeContext.js\";\nimport { createDrawingHandle } from \"../handle.js\";\nimport { nextSubId } from \"../subIdAllocator.js\";\n\nconst OUTSIDE_CTX_MESSAGE = \"draw.threeDrivesPattern called outside an active script step\";\n\nfunction threeDrivesPatternImpl(\n slotId: string,\n anchors: AnchorHept,\n opts: LineDrawStyle,\n): DrawingHandle {\n const ctx = ACTIVE_RUNTIME_CONTEXT.current;\n if (ctx === null) throw new Error(OUTSIDE_CTX_MESSAGE);\n const subId = nextSubId(ctx, slotId);\n const state: ThreeDrivesPatternState = {\n kind: \"three-drives-pattern\",\n anchors,\n style: opts,\n };\n return createDrawingHandle(slotId, subId, \"three-drives-pattern\", state);\n}\n\n/**\n * Draw a three-drives reversal pattern through 7 world anchors\n * `[start, drive1, retr1, drive2, retr2, drive3, end]`. The renderer\n * strokes the 6-leg open polyline and labels each pivot. Mirrors\n * invinite's `three-drives-pattern-tool.ts` shape.\n *\n * @anchors `anchors` — `[start, drive1, retr1, drive2, retr2, drive3, end]`\n * @anchorCount 7\n * @bucket polylines\n * @since 0.3\n * @stable\n * @example\n * import { defineIndicator } from \"@invinite-org/chartlang-core\";\n * export default defineIndicator({\n * name: \"draw.threeDrivesPattern demo\",\n * apiVersion: 1,\n * compute({ bar, draw }) {\n * draw.threeDrivesPattern([\n * { time: bar.time, price: bar.low },\n * { time: bar.time + 10_000, price: bar.high },\n * { time: bar.time + 20_000, price: bar.close },\n * { time: bar.time + 30_000, price: bar.high + 1 },\n * { time: bar.time + 40_000, price: bar.close + 0.5 },\n * { time: bar.time + 50_000, price: bar.high + 2 },\n * { time: bar.time + 60_000, price: bar.close + 1 },\n * ]);\n * },\n * });\n */\nexport function threeDrivesPattern(anchors: AnchorHept, opts?: LineDrawStyle): DrawingHandle;\n/**\n * Compiler-injected overload.\n *\n * @since 0.3\n * @stable\n * @example\n * // Internal — the compiler rewrites every script callsite.\n * // const fn: typeof threeDrivesPattern = threeDrivesPattern;\n * // void fn;\n */\nexport function threeDrivesPattern(\n slotId: string,\n anchors: AnchorHept,\n opts?: LineDrawStyle,\n): DrawingHandle;\n/**\n * Implementation signature for {@link threeDrivesPattern}. Branches on\n * `typeof arg1 === \"string\"` to dispatch the script-facing vs\n * compiler-injected overload.\n *\n * @since 0.3\n * @stable\n * @example\n * // const fn: typeof threeDrivesPattern = threeDrivesPattern;\n * // void fn;\n */\nexport function threeDrivesPattern(\n arg1: string | AnchorHept,\n arg2?: AnchorHept | LineDrawStyle,\n arg3?: LineDrawStyle,\n): DrawingHandle {\n if (typeof arg1 !== \"string\" || arg2 === undefined || !Array.isArray(arg2)) {\n throw new Error(OUTSIDE_CTX_MESSAGE);\n }\n return threeDrivesPatternImpl(arg1, arg2 as AnchorHept, arg3 ?? {});\n}\n"]}
|
|
@@ -3,7 +3,7 @@ import type { AnchorTriple, DrawingHandle, LineDrawStyle } from "@invinite-org/c
|
|
|
3
3
|
* Draw a triangle pattern (ascending / descending / symmetrical)
|
|
4
4
|
* through 3 world anchors `[apex, baseHigh, baseLow]`. The renderer
|
|
5
5
|
* strokes the 3-vertex closed polygon and labels each pivot.
|
|
6
|
-
* **Distinct from `draw.triangle`** (
|
|
6
|
+
* **Distinct from `draw.triangle`** (a solid-shape primitive
|
|
7
7
|
* with ShapeStyle); this is the harmonic-pattern outline with
|
|
8
8
|
* LineDrawStyle. Mirrors invinite's `triangle-pattern-tool.ts` shape.
|
|
9
9
|
*
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
// flagged as a Task-1 reshape follow-up. The kind is distinct from
|
|
14
14
|
// `draw.triangle` (Task 6), a 3-anchor solid-shape primitive — this
|
|
15
15
|
// is the 3-anchor harmonic-pattern outline.
|
|
16
|
-
// Re-licensed MIT for chartlang.
|
|
16
|
+
// Re-licensed MIT for chartlang.
|
|
17
17
|
import { ACTIVE_RUNTIME_CONTEXT } from "../../../runtimeContext.js";
|
|
18
18
|
import { createDrawingHandle } from "../handle.js";
|
|
19
19
|
import { nextSubId } from "../subIdAllocator.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trianglePattern.js","sourceRoot":"","sources":["../../../../src/emit/draw/patterns/trianglePattern.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAC/D,EAAE;AACF,oCAAoC;AACpC,6DAA6D;AAC7D,uCAAuC;AACvC,4DAA4D;AAC5D,iBAAiB;AACjB,0EAA0E;AAC1E,mEAAmE;AACnE,kEAAkE;AAClE,iEAAiE;AACjE,mEAAmE;AACnE,oEAAoE;AACpE,4CAA4C;AAC5C,
|
|
1
|
+
{"version":3,"file":"trianglePattern.js","sourceRoot":"","sources":["../../../../src/emit/draw/patterns/trianglePattern.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAC/D,EAAE;AACF,oCAAoC;AACpC,6DAA6D;AAC7D,uCAAuC;AACvC,4DAA4D;AAC5D,iBAAiB;AACjB,0EAA0E;AAC1E,mEAAmE;AACnE,kEAAkE;AAClE,iEAAiE;AACjE,mEAAmE;AACnE,oEAAoE;AACpE,4CAA4C;AAC5C,iCAAiC;AASjC,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEjD,MAAM,mBAAmB,GAAG,2DAA2D,CAAC;AAExF,SAAS,mBAAmB,CACxB,MAAc,EACd,OAAqB,EACrB,IAAmB;IAEnB,MAAM,GAAG,GAAG,sBAAsB,CAAC,OAAO,CAAC;IAC3C,IAAI,GAAG,KAAK,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACvD,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACrC,MAAM,KAAK,GAAyB;QAChC,IAAI,EAAE,kBAAkB;QACxB,OAAO;QACP,KAAK,EAAE,IAAI;KACd,CAAC;IACF,OAAO,mBAAmB,CAAC,MAAM,EAAE,KAAK,EAAE,kBAAkB,EAAE,KAAK,CAAC,CAAC;AACzE,CAAC;AA6CD;;;;;;;;;;GAUG;AACH,MAAM,UAAU,eAAe,CAC3B,IAA2B,EAC3B,IAAmC,EACnC,IAAoB;IAEpB,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACzE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACzC,CAAC;IACD,OAAO,mBAAmB,CAAC,IAAI,EAAE,IAAoB,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;AACvE,CAAC","sourcesContent":["// Copyright (c) 2026 Invinite. Licensed under the MIT License.\n// See the LICENSE file in the repo root for full license text.\n//\n// Anchors + state shape ported from\n// invinite/shared/trading-chart-collab-yjs/y-doc-bridge.ts\n// (TrianglePatternDrawing), commit\n// 078f41fe2569d659d5aba726da8bcb5d3e2ced02, © Invinite.\n// Behaviour from\n// invinite/src/components/trading-chart/tools/triangle-pattern-tool.ts.\n// Note: invinite's full schema carries 4 anchors (a, b, c, d). The\n// landed Task-1 `TrianglePatternState.anchors: AnchorTriple` is a\n// 3-anchor shell `[apex, baseHigh, baseLow]` — the 4th anchor is\n// flagged as a Task-1 reshape follow-up. The kind is distinct from\n// `draw.triangle` (Task 6), a 3-anchor solid-shape primitive — this\n// is the 3-anchor harmonic-pattern outline.\n// Re-licensed MIT for chartlang.\n\nimport type {\n AnchorTriple,\n DrawingHandle,\n LineDrawStyle,\n TrianglePatternState,\n} from \"@invinite-org/chartlang-core\";\n\nimport { ACTIVE_RUNTIME_CONTEXT } from \"../../../runtimeContext.js\";\nimport { createDrawingHandle } from \"../handle.js\";\nimport { nextSubId } from \"../subIdAllocator.js\";\n\nconst OUTSIDE_CTX_MESSAGE = \"draw.trianglePattern called outside an active script step\";\n\nfunction trianglePatternImpl(\n slotId: string,\n anchors: AnchorTriple,\n opts: LineDrawStyle,\n): DrawingHandle {\n const ctx = ACTIVE_RUNTIME_CONTEXT.current;\n if (ctx === null) throw new Error(OUTSIDE_CTX_MESSAGE);\n const subId = nextSubId(ctx, slotId);\n const state: TrianglePatternState = {\n kind: \"triangle-pattern\",\n anchors,\n style: opts,\n };\n return createDrawingHandle(slotId, subId, \"triangle-pattern\", state);\n}\n\n/**\n * Draw a triangle pattern (ascending / descending / symmetrical)\n * through 3 world anchors `[apex, baseHigh, baseLow]`. The renderer\n * strokes the 3-vertex closed polygon and labels each pivot.\n * **Distinct from `draw.triangle`** (a solid-shape primitive\n * with ShapeStyle); this is the harmonic-pattern outline with\n * LineDrawStyle. Mirrors invinite's `triangle-pattern-tool.ts` shape.\n *\n * @anchors `anchors` — `[apex, baseHigh, baseLow]` triple\n * @anchorCount 3\n * @bucket polylines\n * @since 0.3\n * @stable\n * @example\n * import { defineIndicator } from \"@invinite-org/chartlang-core\";\n * export default defineIndicator({\n * name: \"draw.trianglePattern demo\",\n * apiVersion: 1,\n * compute({ bar, draw }) {\n * draw.trianglePattern([\n * { time: bar.time + 60_000, price: bar.close },\n * { time: bar.time, price: bar.high },\n * { time: bar.time, price: bar.low },\n * ]);\n * },\n * });\n */\nexport function trianglePattern(anchors: AnchorTriple, opts?: LineDrawStyle): DrawingHandle;\n/**\n * Compiler-injected overload.\n *\n * @since 0.3\n * @stable\n * @example\n * // Internal — the compiler rewrites every script callsite.\n * // const fn: typeof trianglePattern = trianglePattern;\n * // void fn;\n */\nexport function trianglePattern(\n slotId: string,\n anchors: AnchorTriple,\n opts?: LineDrawStyle,\n): DrawingHandle;\n/**\n * Implementation signature for {@link trianglePattern}. Branches on\n * `typeof arg1 === \"string\"` to dispatch the script-facing vs\n * compiler-injected overload.\n *\n * @since 0.3\n * @stable\n * @example\n * // const fn: typeof trianglePattern = trianglePattern;\n * // void fn;\n */\nexport function trianglePattern(\n arg1: string | AnchorTriple,\n arg2?: AnchorTriple | LineDrawStyle,\n arg3?: LineDrawStyle,\n): DrawingHandle {\n if (typeof arg1 !== \"string\" || arg2 === undefined || !Array.isArray(arg2)) {\n throw new Error(OUTSIDE_CTX_MESSAGE);\n }\n return trianglePatternImpl(arg1, arg2 as AnchorTriple, arg3 ?? {});\n}\n"]}
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
// 078f41fe2569d659d5aba726da8bcb5d3e2ced02, © Invinite.
|
|
8
8
|
// Behaviour from
|
|
9
9
|
// invinite/src/components/trading-chart/tools/xabcd-pattern-tool.ts.
|
|
10
|
-
// Re-licensed MIT for chartlang.
|
|
10
|
+
// Re-licensed MIT for chartlang.
|
|
11
11
|
import { ACTIVE_RUNTIME_CONTEXT } from "../../../runtimeContext.js";
|
|
12
12
|
import { createDrawingHandle } from "../handle.js";
|
|
13
13
|
import { nextSubId } from "../subIdAllocator.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"xabcdPattern.js","sourceRoot":"","sources":["../../../../src/emit/draw/patterns/xabcdPattern.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAC/D,EAAE;AACF,oCAAoC;AACpC,6DAA6D;AAC7D,oCAAoC;AACpC,4DAA4D;AAC5D,iBAAiB;AACjB,uEAAuE;AACvE,
|
|
1
|
+
{"version":3,"file":"xabcdPattern.js","sourceRoot":"","sources":["../../../../src/emit/draw/patterns/xabcdPattern.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAC/D,EAAE;AACF,oCAAoC;AACpC,6DAA6D;AAC7D,oCAAoC;AACpC,4DAA4D;AAC5D,iBAAiB;AACjB,uEAAuE;AACvE,iCAAiC;AASjC,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEjD,MAAM,mBAAmB,GAAG,wDAAwD,CAAC;AAErF,SAAS,gBAAgB,CACrB,MAAc,EACd,OAAoB,EACpB,IAAmB;IAEnB,MAAM,GAAG,GAAG,sBAAsB,CAAC,OAAO,CAAC;IAC3C,IAAI,GAAG,KAAK,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACvD,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACrC,MAAM,KAAK,GAAsB,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IACjF,OAAO,mBAAmB,CAAC,MAAM,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,CAAC,CAAC;AACtE,CAAC;AA6CD;;;;;;;;;;GAUG;AACH,MAAM,UAAU,YAAY,CACxB,IAA0B,EAC1B,IAAkC,EAClC,IAAoB;IAEpB,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACzE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACzC,CAAC;IACD,OAAO,gBAAgB,CAAC,IAAI,EAAE,IAAmB,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;AACnE,CAAC","sourcesContent":["// Copyright (c) 2026 Invinite. Licensed under the MIT License.\n// See the LICENSE file in the repo root for full license text.\n//\n// Anchors + state shape ported from\n// invinite/shared/trading-chart-collab-yjs/y-doc-bridge.ts\n// (XabcdPatternDrawing), commit\n// 078f41fe2569d659d5aba726da8bcb5d3e2ced02, © Invinite.\n// Behaviour from\n// invinite/src/components/trading-chart/tools/xabcd-pattern-tool.ts.\n// Re-licensed MIT for chartlang.\n\nimport type {\n AnchorQuint,\n DrawingHandle,\n LineDrawStyle,\n XabcdPatternState,\n} from \"@invinite-org/chartlang-core\";\n\nimport { ACTIVE_RUNTIME_CONTEXT } from \"../../../runtimeContext.js\";\nimport { createDrawingHandle } from \"../handle.js\";\nimport { nextSubId } from \"../subIdAllocator.js\";\n\nconst OUTSIDE_CTX_MESSAGE = \"draw.xabcdPattern called outside an active script step\";\n\nfunction xabcdPatternImpl(\n slotId: string,\n anchors: AnchorQuint,\n opts: LineDrawStyle,\n): DrawingHandle {\n const ctx = ACTIVE_RUNTIME_CONTEXT.current;\n if (ctx === null) throw new Error(OUTSIDE_CTX_MESSAGE);\n const subId = nextSubId(ctx, slotId);\n const state: XabcdPatternState = { kind: \"xabcd-pattern\", anchors, style: opts };\n return createDrawingHandle(slotId, subId, \"xabcd-pattern\", state);\n}\n\n/**\n * Draw an XABCD harmonic pattern through 5 world anchors `[X, A, B, C,\n * D]`. The renderer strokes the connecting legs (X-A, A-B, B-C, C-D)\n * and labels each pivot. Mirrors invinite's `xabcd-pattern-tool.ts`\n * shape.\n *\n * @anchors `anchors` — `[X, A, B, C, D]` quint of world points\n * @anchorCount 5\n * @bucket polylines\n * @since 0.3\n * @stable\n * @example\n * import { defineIndicator } from \"@invinite-org/chartlang-core\";\n * export default defineIndicator({\n * name: \"draw.xabcdPattern demo\",\n * apiVersion: 1,\n * compute({ bar, draw }) {\n * draw.xabcdPattern([\n * { time: bar.time, price: bar.low },\n * { time: bar.time + 15_000, price: bar.high },\n * { time: bar.time + 30_000, price: bar.close },\n * { time: bar.time + 45_000, price: bar.high - 1 },\n * { time: bar.time + 60_000, price: bar.low + 1 },\n * ]);\n * },\n * });\n */\nexport function xabcdPattern(anchors: AnchorQuint, opts?: LineDrawStyle): DrawingHandle;\n/**\n * Compiler-injected overload.\n *\n * @since 0.3\n * @stable\n * @example\n * // Internal — the compiler rewrites every script callsite.\n * // const fn: typeof xabcdPattern = xabcdPattern;\n * // void fn;\n */\nexport function xabcdPattern(\n slotId: string,\n anchors: AnchorQuint,\n opts?: LineDrawStyle,\n): DrawingHandle;\n/**\n * Implementation signature for {@link xabcdPattern}. Branches on\n * `typeof arg1 === \"string\"` to dispatch the script-facing vs\n * compiler-injected overload.\n *\n * @since 0.3\n * @stable\n * @example\n * // const fn: typeof xabcdPattern = xabcdPattern;\n * // void fn;\n */\nexport function xabcdPattern(\n arg1: string | AnchorQuint,\n arg2?: AnchorQuint | LineDrawStyle,\n arg3?: LineDrawStyle,\n): DrawingHandle {\n if (typeof arg1 !== \"string\" || arg2 === undefined || !Array.isArray(arg2)) {\n throw new Error(OUTSIDE_CTX_MESSAGE);\n }\n return xabcdPatternImpl(arg1, arg2 as AnchorQuint, arg3 ?? {});\n}\n"]}
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
// 078f41fe2569d659d5aba726da8bcb5d3e2ced02, © Invinite.
|
|
8
8
|
// Behaviour from
|
|
9
9
|
// invinite/src/components/trading-chart/tools/pitchfan-tool.ts.
|
|
10
|
-
// Re-licensed MIT for chartlang.
|
|
10
|
+
// Re-licensed MIT for chartlang.
|
|
11
11
|
import { ACTIVE_RUNTIME_CONTEXT } from "../../../runtimeContext.js";
|
|
12
12
|
import { createDrawingHandle } from "../handle.js";
|
|
13
13
|
import { nextSubId } from "../subIdAllocator.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pitchfan.js","sourceRoot":"","sources":["../../../../src/emit/draw/pitchforks/pitchfan.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAC/D,EAAE;AACF,oCAAoC;AACpC,6DAA6D;AAC7D,gCAAgC;AAChC,4DAA4D;AAC5D,iBAAiB;AACjB,kEAAkE;AAClE,
|
|
1
|
+
{"version":3,"file":"pitchfan.js","sourceRoot":"","sources":["../../../../src/emit/draw/pitchforks/pitchfan.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAC/D,EAAE;AACF,oCAAoC;AACpC,6DAA6D;AAC7D,gCAAgC;AAChC,4DAA4D;AAC5D,iBAAiB;AACjB,kEAAkE;AAClE,iCAAiC;AASjC,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEjD,MAAM,mBAAmB,GAAG,oDAAoD,CAAC;AAEjF,SAAS,YAAY,CAAC,MAAc,EAAE,OAAqB,EAAE,IAAmB;IAC5E,MAAM,GAAG,GAAG,sBAAsB,CAAC,OAAO,CAAC;IAC3C,IAAI,GAAG,KAAK,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACvD,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACrC,MAAM,KAAK,GAAkB,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IACxE,OAAO,mBAAmB,CAAC,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;AACjE,CAAC;AA2CD;;;;;;;;;;GAUG;AACH,MAAM,UAAU,QAAQ,CACpB,IAA2B,EAC3B,IAAmC,EACnC,IAAoB;IAEpB,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACzE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACzC,CAAC;IACD,OAAO,YAAY,CAAC,IAAI,EAAE,IAAoB,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;AAChE,CAAC","sourcesContent":["// Copyright (c) 2026 Invinite. Licensed under the MIT License.\n// See the LICENSE file in the repo root for full license text.\n//\n// Anchors + state shape ported from\n// invinite/shared/trading-chart-collab-yjs/y-doc-bridge.ts\n// (PitchfanDrawing), commit\n// 078f41fe2569d659d5aba726da8bcb5d3e2ced02, © Invinite.\n// Behaviour from\n// invinite/src/components/trading-chart/tools/pitchfan-tool.ts.\n// Re-licensed MIT for chartlang.\n\nimport type {\n AnchorTriple,\n DrawingHandle,\n LineDrawStyle,\n PitchfanState,\n} from \"@invinite-org/chartlang-core\";\n\nimport { ACTIVE_RUNTIME_CONTEXT } from \"../../../runtimeContext.js\";\nimport { createDrawingHandle } from \"../handle.js\";\nimport { nextSubId } from \"../subIdAllocator.js\";\n\nconst OUTSIDE_CTX_MESSAGE = \"draw.pitchfan called outside an active script step\";\n\nfunction pitchfanImpl(slotId: string, anchors: AnchorTriple, opts: LineDrawStyle): DrawingHandle {\n const ctx = ACTIVE_RUNTIME_CONTEXT.current;\n if (ctx === null) throw new Error(OUTSIDE_CTX_MESSAGE);\n const subId = nextSubId(ctx, slotId);\n const state: PitchfanState = { kind: \"pitchfan\", anchors, style: opts };\n return createDrawingHandle(slotId, subId, \"pitchfan\", state);\n}\n\n/**\n * Draw a pitchfan — three rays from `anchors[0]` through `anchors[1]`,\n * `midpoint(anchors[1], anchors[2])`, and `anchors[2]`. Unlike a\n * pitchfork the rays diverge from a single pivot rather than forming\n * parallel rails. Mirrors invinite's `pitchfan-tool.ts` shape.\n *\n * @anchors `anchors` — `[pivot, high, low]` triple\n * @anchorCount 3\n * @bucket polylines\n * @since 0.3\n * @stable\n * @example\n * import { defineIndicator } from \"@invinite-org/chartlang-core\";\n * export default defineIndicator({\n * name: \"draw.pitchfan demo\",\n * apiVersion: 1,\n * compute({ bar, draw }) {\n * draw.pitchfan([\n * { time: bar.time, price: bar.low },\n * { time: bar.time + 30_000, price: bar.high },\n * { time: bar.time + 60_000, price: bar.close },\n * ]);\n * },\n * });\n */\nexport function pitchfan(anchors: AnchorTriple, opts?: LineDrawStyle): DrawingHandle;\n/**\n * Compiler-injected overload.\n *\n * @since 0.3\n * @stable\n * @example\n * // Internal — the compiler rewrites every script callsite.\n * // const fn: typeof pitchfan = pitchfan;\n * // void fn;\n */\nexport function pitchfan(\n slotId: string,\n anchors: AnchorTriple,\n opts?: LineDrawStyle,\n): DrawingHandle;\n/**\n * Implementation signature for {@link pitchfan}. Branches on\n * `typeof arg1 === \"string\"` to dispatch the script-facing vs\n * compiler-injected overload.\n *\n * @since 0.3\n * @stable\n * @example\n * // const fn: typeof pitchfan = pitchfan;\n * // void fn;\n */\nexport function pitchfan(\n arg1: string | AnchorTriple,\n arg2?: AnchorTriple | LineDrawStyle,\n arg3?: LineDrawStyle,\n): DrawingHandle {\n if (typeof arg1 !== \"string\" || arg2 === undefined || !Array.isArray(arg2)) {\n throw new Error(OUTSIDE_CTX_MESSAGE);\n }\n return pitchfanImpl(arg1, arg2 as AnchorTriple, arg3 ?? {});\n}\n"]}
|
|
@@ -11,7 +11,7 @@ type PitchforkOpts = LineDrawStyle & {
|
|
|
11
11
|
* `"modifiedSchiff"` (median origin at `mid(a, b)`); `"inside"`
|
|
12
12
|
* (median origin at `mid(b, c)` with the `(a → mid(a, b))` direction).
|
|
13
13
|
* Default variant: `"standard"`. Mirrors invinite's four pitchfork
|
|
14
|
-
* tools collapsed into one kind
|
|
14
|
+
* tools collapsed into one kind.
|
|
15
15
|
*
|
|
16
16
|
* @anchors `anchors` — `[pivot, high, low]` triple
|
|
17
17
|
* @anchorCount 3
|
|
@@ -10,8 +10,8 @@
|
|
|
10
10
|
// invinite/src/components/trading-chart/tools/schiff-pitchfork-tool.ts +
|
|
11
11
|
// invinite/src/components/trading-chart/tools/modified-schiff-pitchfork-tool.ts +
|
|
12
12
|
// invinite/src/components/trading-chart/tools/inside-pitchfork-tool.ts
|
|
13
|
-
// (4 tools collapsed into one kind
|
|
14
|
-
// Re-licensed MIT for chartlang.
|
|
13
|
+
// (4 tools collapsed into one kind).
|
|
14
|
+
// Re-licensed MIT for chartlang.
|
|
15
15
|
import { ACTIVE_RUNTIME_CONTEXT } from "../../../runtimeContext.js";
|
|
16
16
|
import { createDrawingHandle } from "../handle.js";
|
|
17
17
|
import { nextSubId } from "../subIdAllocator.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pitchfork.js","sourceRoot":"","sources":["../../../../src/emit/draw/pitchforks/pitchfork.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAC/D,EAAE;AACF,oCAAoC;AACpC,6DAA6D;AAC7D,oDAAoD;AACpD,4DAA4D;AAC5D,iBAAiB;AACjB,oEAAoE;AACpE,2EAA2E;AAC3E,oFAAoF;AACpF,yEAAyE;AACzE,
|
|
1
|
+
{"version":3,"file":"pitchfork.js","sourceRoot":"","sources":["../../../../src/emit/draw/pitchforks/pitchfork.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAC/D,EAAE;AACF,oCAAoC;AACpC,6DAA6D;AAC7D,oDAAoD;AACpD,4DAA4D;AAC5D,iBAAiB;AACjB,oEAAoE;AACpE,2EAA2E;AAC3E,oFAAoF;AACpF,yEAAyE;AACzE,uCAAuC;AACvC,iCAAiC;AASjC,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEjD,MAAM,mBAAmB,GAAG,qDAAqD,CAAC;AAMlF,SAAS,aAAa,CAAC,MAAc,EAAE,OAAqB,EAAE,IAAmB;IAC7E,MAAM,GAAG,GAAG,sBAAsB,CAAC,OAAO,CAAC;IAC3C,IAAI,GAAG,KAAK,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACvD,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACrC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,KAAK,EAAE,GAAG,IAAI,CAAC;IAC/C,MAAM,KAAK,GAAmB;QAC1B,IAAI,EAAE,WAAW;QACjB,OAAO;QACP,OAAO,EAAE,UAAU,IAAI,UAAU;QACjC,KAAK;KACR,CAAC;IACF,OAAO,mBAAmB,CAAC,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;AAClE,CAAC;AAkDD;;;;;;;;;;GAUG;AACH,MAAM,UAAU,SAAS,CACrB,IAA2B,EAC3B,IAAmC,EACnC,IAAoB;IAEpB,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACzE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACzC,CAAC;IACD,OAAO,aAAa,CAAC,IAAI,EAAE,IAAoB,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;AACjE,CAAC","sourcesContent":["// Copyright (c) 2026 Invinite. Licensed under the MIT License.\n// See the LICENSE file in the repo root for full license text.\n//\n// Anchors + state shape ported from\n// invinite/shared/trading-chart-collab-yjs/y-doc-bridge.ts\n// (PitchforkDrawing + PitchforkVariant), commit\n// 078f41fe2569d659d5aba726da8bcb5d3e2ced02, © Invinite.\n// Behaviour from\n// invinite/src/components/trading-chart/tools/pitchfork-tool.ts +\n// invinite/src/components/trading-chart/tools/schiff-pitchfork-tool.ts +\n// invinite/src/components/trading-chart/tools/modified-schiff-pitchfork-tool.ts +\n// invinite/src/components/trading-chart/tools/inside-pitchfork-tool.ts\n// (4 tools collapsed into one kind).\n// Re-licensed MIT for chartlang.\n\nimport type {\n AnchorTriple,\n DrawingHandle,\n LineDrawStyle,\n PitchforkState,\n} from \"@invinite-org/chartlang-core\";\n\nimport { ACTIVE_RUNTIME_CONTEXT } from \"../../../runtimeContext.js\";\nimport { createDrawingHandle } from \"../handle.js\";\nimport { nextSubId } from \"../subIdAllocator.js\";\n\nconst OUTSIDE_CTX_MESSAGE = \"draw.pitchfork called outside an active script step\";\n\ntype PitchforkVariant = PitchforkState[\"variant\"];\n\ntype PitchforkOpts = LineDrawStyle & { readonly variant?: PitchforkVariant };\n\nfunction pitchforkImpl(slotId: string, anchors: AnchorTriple, opts: PitchforkOpts): DrawingHandle {\n const ctx = ACTIVE_RUNTIME_CONTEXT.current;\n if (ctx === null) throw new Error(OUTSIDE_CTX_MESSAGE);\n const subId = nextSubId(ctx, slotId);\n const { variant: variantOpt, ...style } = opts;\n const state: PitchforkState = {\n kind: \"pitchfork\",\n anchors,\n variant: variantOpt ?? \"standard\",\n style,\n };\n return createDrawingHandle(slotId, subId, \"pitchfork\", state);\n}\n\n/**\n * Draw an Andrews pitchfork from three world anchors `[a, b, c]`. The\n * `variant` opt selects one of four median-origin formulas:\n * `\"standard\"` (median from `a` to `mid(b, c)`); `\"schiff\"` (median\n * origin at `(a.time, mid(a.price, mid(b, c).price))`);\n * `\"modifiedSchiff\"` (median origin at `mid(a, b)`); `\"inside\"`\n * (median origin at `mid(b, c)` with the `(a → mid(a, b))` direction).\n * Default variant: `\"standard\"`. Mirrors invinite's four pitchfork\n * tools collapsed into one kind.\n *\n * @anchors `anchors` — `[pivot, high, low]` triple\n * @anchorCount 3\n * @bucket polylines\n * @since 0.3\n * @stable\n * @example\n * import { defineIndicator } from \"@invinite-org/chartlang-core\";\n * export default defineIndicator({\n * name: \"draw.pitchfork demo\",\n * apiVersion: 1,\n * compute({ bar, draw }) {\n * draw.pitchfork(\n * [\n * { time: bar.time, price: bar.low },\n * { time: bar.time + 30_000, price: bar.high },\n * { time: bar.time + 60_000, price: bar.close },\n * ],\n * { variant: \"modifiedSchiff\" },\n * );\n * },\n * });\n */\nexport function pitchfork(anchors: AnchorTriple, opts?: PitchforkOpts): DrawingHandle;\n/**\n * Compiler-injected overload.\n *\n * @since 0.3\n * @stable\n * @example\n * // Internal — the compiler rewrites every script callsite.\n * // const fn: typeof pitchfork = pitchfork;\n * // void fn;\n */\nexport function pitchfork(\n slotId: string,\n anchors: AnchorTriple,\n opts?: PitchforkOpts,\n): DrawingHandle;\n/**\n * Implementation signature for {@link pitchfork}. Branches on\n * `typeof arg1 === \"string\"` to dispatch the script-facing vs\n * compiler-injected overload.\n *\n * @since 0.3\n * @stable\n * @example\n * // const fn: typeof pitchfork = pitchfork;\n * // void fn;\n */\nexport function pitchfork(\n arg1: string | AnchorTriple,\n arg2?: AnchorTriple | PitchforkOpts,\n arg3?: PitchforkOpts,\n): DrawingHandle {\n if (typeof arg1 !== \"string\" || arg2 === undefined || !Array.isArray(arg2)) {\n throw new Error(OUTSIDE_CTX_MESSAGE);\n }\n return pitchforkImpl(arg1, arg2 as AnchorTriple, arg3 ?? {});\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pushDrawing.js","sourceRoot":"","sources":["../../../src/emit/draw/pushDrawing.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pushDrawing.js","sourceRoot":"","sources":["../../../src/emit/draw/pushDrawing.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) 2026 Invinite. Licensed under the MIT License.\n// See the LICENSE file in the repo root for full license text.\n\nimport type { DrawingEmission } from \"@invinite-org/chartlang-adapter-kit\";\nimport { validateEmission } from \"@invinite-org/chartlang-adapter-kit\";\nimport { bucketFor, type DrawingBucket } from \"@invinite-org/chartlang-core\";\n\nimport type { RuntimeContext } from \"../../runtimeContext.js\";\nimport { pushDiagnostic } from \"../emissionsQueue.js\";\n\nfunction effectiveBudget(ctx: RuntimeContext, bucket: DrawingBucket): number {\n const adapterCap = ctx.capabilities.maxDrawingsPerScript[bucket];\n const scriptCap = ctx.scriptMaxDrawings?.[bucket] ?? Number.POSITIVE_INFINITY;\n return Math.min(adapterCap, scriptCap);\n}\n\n/**\n * Push a {@link DrawingEmission} through the §10/§7.4 enforcement\n * pipeline:\n *\n * 1. **Capability gate** — drop with `unsupported-drawing-kind` if\n * `ctx.capabilities.drawings` does not include `e.drawingKind`.\n * 2. **Wire-shape validation** — drop with `malformed-emission`\n * (or `unsupported-drawing-kind` for unknown kinds) if\n * `validateEmission` rejects the payload. Adapter-kit ships\n * per-kind validators (Task 2 + per-port tasks 5–18); unknown\n * kinds fail at step 1 before reaching here.\n * 3. **Bucket budget** — on `op: \"create\"`, drop with\n * `drawing-budget-exceeded` if the bucket counter has reached\n * its effective cap (`min(scriptMaxDrawings, adapter cap)`).\n * On success, increment the counter. On `op: \"remove\"`,\n * decrement (clamped at zero). `op: \"update\"` is free.\n * 4. **Per-bar `(handleId, bar)` dedup** — replace any prior\n * in-bar emission for the same handle (last-write-wins).\n *\n * On any drop path, the original emission does not reach\n * `ctx.emissions.drawings`; a diagnostic with the appropriate code\n * lands on `ctx.emissions.diagnostics` instead.\n *\n * @since 0.3\n * @stable\n * @example\n * // import { pushDrawing } from \"@invinite-org/chartlang-runtime\";\n * // pushDrawing(ctx, {\n * // kind: \"drawing\",\n * // handleId: \"x.chart.ts:1:1#0\",\n * // drawingKind: \"line\",\n * // op: \"create\",\n * // state: {\n * // kind: \"line\",\n * // anchors: [{ time: 0, price: 0 }, { time: 1, price: 1 }],\n * // style: {},\n * // },\n * // bar: 0,\n * // time: 0,\n * // });\n */\nexport function pushDrawing(ctx: RuntimeContext, e: DrawingEmission): void {\n if (!ctx.capabilities.drawings.has(e.drawingKind)) {\n pushDiagnostic(ctx.emissions, {\n kind: \"diagnostic\",\n severity: \"warning\",\n code: \"unsupported-drawing-kind\",\n message: `Adapter cannot render drawing kind \"${e.drawingKind}\".`,\n slotId: e.handleId,\n bar: e.bar,\n });\n return;\n }\n\n const validation = validateEmission(e);\n if (!validation.ok) {\n pushDiagnostic(ctx.emissions, {\n kind: \"diagnostic\",\n severity: \"warning\",\n code: validation.code,\n message: validation.message,\n slotId: e.handleId,\n bar: e.bar,\n });\n return;\n }\n\n const bucket = bucketFor(e.drawingKind);\n if (e.op === \"create\") {\n const used = ctx.drawingBucketCounters[bucket];\n const cap = effectiveBudget(ctx, bucket);\n if (used >= cap) {\n pushDiagnostic(ctx.emissions, {\n kind: \"diagnostic\",\n severity: \"warning\",\n code: \"drawing-budget-exceeded\",\n message: `Bucket '${bucket}' budget (${cap}) exhausted; drawing dropped.`,\n slotId: e.handleId,\n bar: e.bar,\n });\n return;\n }\n ctx.drawingBucketCounters[bucket] = used + 1;\n } else if (e.op === \"remove\") {\n const used = ctx.drawingBucketCounters[bucket];\n ctx.drawingBucketCounters[bucket] = Math.max(0, used - 1);\n }\n\n const drawings = ctx.emissions.drawings;\n for (let i = drawings.length - 1; i >= 0; i -= 1) {\n const existing = drawings[i];\n if (existing.handleId === e.handleId && existing.bar === e.bar) {\n drawings[i] = e;\n return;\n }\n }\n drawings.push(e);\n}\n"]}
|
|
@@ -9,7 +9,7 @@ import type { RuntimeContext } from "../../runtimeContext.js";
|
|
|
9
9
|
* {@link resetSubIdCounters} clears every counter at the top of every
|
|
10
10
|
* `onBarClose` / `onBarTick`, so iteration `i` across bars at the same
|
|
11
11
|
* callsite yields the same sub-id — that's the cross-bar handle
|
|
12
|
-
* stability contract
|
|
12
|
+
* stability contract.
|
|
13
13
|
*
|
|
14
14
|
* @since 0.3
|
|
15
15
|
* @stable
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
* {@link resetSubIdCounters} clears every counter at the top of every
|
|
11
11
|
* `onBarClose` / `onBarTick`, so iteration `i` across bars at the same
|
|
12
12
|
* callsite yields the same sub-id — that's the cross-bar handle
|
|
13
|
-
* stability contract
|
|
13
|
+
* stability contract.
|
|
14
14
|
*
|
|
15
15
|
* @since 0.3
|
|
16
16
|
* @stable
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subIdAllocator.js","sourceRoot":"","sources":["../../../src/emit/draw/subIdAllocator.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAI/D;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,SAAS,CAAC,GAAmB,EAAE,MAAc;IACzD,MAAM,QAAQ,GAAG,GAAG,CAAC,oBAAoB,CAAC;IAC1C,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC1C,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,GAAG,CAAC,CAAC,CAAC;IAClC,OAAO,OAAO,CAAC;AACnB,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,kBAAkB,CAAC,GAAmB;IAClD,GAAG,CAAC,oBAAoB,CAAC,KAAK,EAAE,CAAC;AACrC,CAAC"}
|
|
1
|
+
{"version":3,"file":"subIdAllocator.js","sourceRoot":"","sources":["../../../src/emit/draw/subIdAllocator.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAI/D;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,SAAS,CAAC,GAAmB,EAAE,MAAc;IACzD,MAAM,QAAQ,GAAG,GAAG,CAAC,oBAAoB,CAAC;IAC1C,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC1C,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,GAAG,CAAC,CAAC,CAAC;IAClC,OAAO,OAAO,CAAC;AACnB,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,kBAAkB,CAAC,GAAmB;IAClD,GAAG,CAAC,oBAAoB,CAAC,KAAK,EAAE,CAAC;AACrC,CAAC","sourcesContent":["// Copyright (c) 2026 Invinite. Licensed under the MIT License.\n// See the LICENSE file in the repo root for full license text.\n\nimport type { RuntimeContext } from \"../../runtimeContext.js\";\n\n/**\n * Return the next sub-id for a given compiler-injected `slotId` within\n * the current bar, then increment the counter. The first call inside a\n * bar yields `0`; the N-th call at the same callsite yields `N-1`.\n *\n * A script's `for (let i = 0; i < N; i++) draw.text(...)` loop produces\n * N stable handles keyed `<slotId>#0` ... `<slotId>#N-1`.\n * {@link resetSubIdCounters} clears every counter at the top of every\n * `onBarClose` / `onBarTick`, so iteration `i` across bars at the same\n * callsite yields the same sub-id — that's the cross-bar handle\n * stability contract.\n *\n * @since 0.3\n * @stable\n * @example\n * // import { nextSubId } from \"@invinite-org/chartlang-runtime\";\n * // const subId = nextSubId(ctx, \"demo.chart.ts:5:13#0\");\n */\nexport function nextSubId(ctx: RuntimeContext, slotId: string): number {\n const counters = ctx.drawingSubIdCounters;\n const current = counters.get(slotId) ?? 0;\n counters.set(slotId, current + 1);\n return current;\n}\n\n/**\n * Clear every sub-id counter on the context. Called by the execution\n * loop at the top of `onBarClose` and `onBarTick` so callsite iteration\n * order is identical across bars — handles allocated by iteration `i`\n * in bar `N` and bar `N+1` share the same `slotId#i`.\n *\n * @since 0.3\n * @stable\n * @example\n * // import { resetSubIdCounters } from \"@invinite-org/chartlang-runtime\";\n * // resetSubIdCounters(ctx);\n */\nexport function resetSubIdCounters(ctx: RuntimeContext): void {\n ctx.drawingSubIdCounters.clear();\n}\n"]}
|
|
@@ -2,7 +2,7 @@ import type { DrawingHandle, TableOpts } from "@invinite-org/chartlang-core";
|
|
|
2
2
|
/**
|
|
3
3
|
* Draw a CSS-pixel viewport-anchored table. Unlike world-space
|
|
4
4
|
* drawings, `draw.table` carries no `WorldPoint` anchor; adapters
|
|
5
|
-
* resolve `position` against the visible viewport
|
|
5
|
+
* resolve `position` against the visible viewport.
|
|
6
6
|
*
|
|
7
7
|
* @anchors `position` — CSS viewport anchor; `cells` — 2D grid payload
|
|
8
8
|
* @anchorCount 0 (viewport anchored)
|