oakscriptjs 0.8.2 → 0.9.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +1 -1
- package/README.md +31 -9
- package/dist/cjs/array/index.d.ts +701 -0
- package/dist/cjs/array/index.d.ts.map +1 -0
- package/dist/cjs/array/index.js +393 -0
- package/dist/cjs/array/index.js.map +7 -0
- package/dist/cjs/box/index.d.ts +444 -0
- package/dist/cjs/box/index.d.ts.map +1 -0
- package/dist/cjs/box/index.js +246 -0
- package/dist/cjs/box/index.js.map +7 -0
- package/dist/cjs/callsite/index.d.ts +88 -0
- package/dist/cjs/callsite/index.d.ts.map +1 -0
- package/dist/cjs/callsite/index.js +112 -0
- package/dist/cjs/callsite/index.js.map +7 -0
- package/dist/cjs/chartpoint/index.d.ts +90 -0
- package/dist/cjs/chartpoint/index.d.ts.map +1 -0
- package/dist/cjs/chartpoint/index.js +56 -0
- package/dist/cjs/chartpoint/index.js.map +7 -0
- package/dist/cjs/color/index.d.ts +286 -0
- package/dist/cjs/color/index.d.ts.map +1 -0
- package/dist/cjs/color/index.js +122 -0
- package/dist/cjs/color/index.js.map +7 -0
- package/dist/cjs/color/parse.d.ts +29 -0
- package/dist/cjs/color/parse.d.ts.map +1 -0
- package/dist/cjs/color/parse.js +57 -0
- package/dist/cjs/color/parse.js.map +7 -0
- package/dist/cjs/compare/index.d.ts +26 -0
- package/dist/cjs/compare/index.d.ts.map +1 -0
- package/dist/cjs/compare/index.js +50 -0
- package/dist/cjs/compare/index.js.map +7 -0
- package/dist/cjs/drawing/registry.d.ts +42 -0
- package/dist/cjs/drawing/registry.d.ts.map +1 -0
- package/dist/cjs/drawing/registry.js +87 -0
- package/dist/cjs/drawing/registry.js.map +7 -0
- package/dist/cjs/index.d.ts +85 -0
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/index.js +184 -0
- package/dist/cjs/index.js.map +7 -0
- package/dist/cjs/indicator.d.ts +117 -0
- package/dist/cjs/indicator.d.ts.map +1 -0
- package/dist/cjs/indicator.js +74 -0
- package/dist/cjs/indicator.js.map +7 -0
- package/dist/cjs/input.d.ts +196 -0
- package/dist/cjs/input.d.ts.map +1 -0
- package/dist/cjs/input.js +197 -0
- package/dist/cjs/input.js.map +7 -0
- package/dist/cjs/label/index.d.ts +303 -0
- package/dist/cjs/label/index.d.ts.map +1 -0
- package/dist/cjs/label/index.js +190 -0
- package/dist/cjs/label/index.js.map +7 -0
- package/dist/cjs/lib/index.d.ts +8 -0
- package/dist/cjs/lib/index.d.ts.map +1 -0
- package/dist/cjs/lib/index.js +19 -0
- package/dist/cjs/lib/index.js.map +7 -0
- package/dist/{lib → cjs/lib}/zigzag/index.d.ts +4 -1
- package/dist/cjs/lib/zigzag/index.d.ts.map +1 -0
- package/dist/cjs/lib/zigzag/index.js +27 -0
- package/dist/cjs/lib/zigzag/index.js.map +7 -0
- package/dist/cjs/lib/zigzag/zigzag.d.ts +100 -0
- package/dist/cjs/lib/zigzag/zigzag.d.ts.map +1 -0
- package/dist/cjs/lib/zigzag/zigzag.js +207 -0
- package/dist/cjs/lib/zigzag/zigzag.js.map +7 -0
- package/dist/cjs/line/index.d.ts +342 -0
- package/dist/cjs/line/index.d.ts.map +1 -0
- package/dist/cjs/line/index.js +193 -0
- package/dist/cjs/line/index.js.map +7 -0
- package/dist/cjs/linefill/index.d.ts +124 -0
- package/dist/cjs/linefill/index.d.ts.map +1 -0
- package/dist/cjs/linefill/index.js +56 -0
- package/dist/cjs/linefill/index.js.map +7 -0
- package/dist/cjs/map/index.d.ts +69 -0
- package/dist/cjs/map/index.d.ts.map +1 -0
- package/dist/cjs/map/index.js +80 -0
- package/dist/cjs/map/index.js.map +7 -0
- package/dist/cjs/math/index.d.ts +560 -0
- package/dist/cjs/math/index.d.ts.map +1 -0
- package/dist/cjs/math/index.js +441 -0
- package/dist/cjs/math/index.js.map +7 -0
- package/dist/cjs/matrix/index.d.ts +1231 -0
- package/dist/cjs/matrix/index.d.ts.map +1 -0
- package/dist/cjs/matrix/index.js +1200 -0
- package/dist/cjs/matrix/index.js.map +7 -0
- package/dist/cjs/package.json +1 -0
- package/dist/cjs/plot.d.ts +76 -0
- package/dist/cjs/plot.d.ts.map +1 -0
- package/dist/cjs/plot.js +51 -0
- package/dist/cjs/plot.js.map +7 -0
- package/dist/cjs/polyline/index.d.ts +115 -0
- package/dist/cjs/polyline/index.d.ts.map +1 -0
- package/dist/cjs/polyline/index.js +76 -0
- package/dist/cjs/polyline/index.js.map +7 -0
- package/dist/cjs/runtime/adapters/LightweightChartsAdapter.d.ts +86 -0
- package/dist/cjs/runtime/adapters/LightweightChartsAdapter.d.ts.map +1 -0
- package/dist/cjs/runtime/adapters/LightweightChartsAdapter.js +141 -0
- package/dist/cjs/runtime/adapters/LightweightChartsAdapter.js.map +7 -0
- package/dist/cjs/runtime/adapters/SimpleInputAdapter.d.ts +59 -0
- package/dist/cjs/runtime/adapters/SimpleInputAdapter.d.ts.map +1 -0
- package/dist/cjs/runtime/adapters/SimpleInputAdapter.js +117 -0
- package/dist/cjs/runtime/adapters/SimpleInputAdapter.js.map +7 -0
- package/dist/{runtime → cjs/runtime}/index.d.ts +12 -5
- package/dist/cjs/runtime/index.d.ts.map +1 -0
- package/dist/cjs/runtime/index.js +49 -0
- package/dist/cjs/runtime/index.js.map +7 -0
- package/dist/cjs/runtime/inputs.d.ts +91 -0
- package/dist/cjs/runtime/inputs.d.ts.map +1 -0
- package/dist/cjs/runtime/inputs.js +262 -0
- package/dist/cjs/runtime/inputs.js.map +7 -0
- package/dist/cjs/runtime/runtime.d.ts +70 -0
- package/dist/cjs/runtime/runtime.d.ts.map +1 -0
- package/dist/cjs/runtime/runtime.js +148 -0
- package/dist/cjs/runtime/runtime.js.map +7 -0
- package/dist/cjs/runtime/series.d.ts +362 -0
- package/dist/cjs/runtime/series.d.ts.map +1 -0
- package/dist/cjs/runtime/series.js +560 -0
- package/dist/cjs/runtime/series.js.map +7 -0
- package/dist/cjs/runtime/types.d.ts +282 -0
- package/dist/cjs/runtime/types.d.ts.map +1 -0
- package/dist/cjs/runtime/types.js +17 -0
- package/dist/cjs/runtime/types.js.map +7 -0
- package/dist/cjs/script/index.d.ts +991 -0
- package/dist/cjs/script/index.d.ts.map +1 -0
- package/dist/cjs/script/index.js +1174 -0
- package/dist/cjs/script/index.js.map +7 -0
- package/dist/cjs/security/resample.d.ts +63 -0
- package/dist/cjs/security/resample.d.ts.map +1 -0
- package/dist/cjs/security/resample.js +84 -0
- package/dist/cjs/security/resample.js.map +7 -0
- package/dist/cjs/session/bars.d.ts +80 -0
- package/dist/cjs/session/bars.d.ts.map +1 -0
- package/dist/cjs/session/bars.js +219 -0
- package/dist/cjs/session/bars.js.map +7 -0
- package/dist/cjs/session/calendar.d.ts +70 -0
- package/dist/cjs/session/calendar.d.ts.map +1 -0
- package/dist/cjs/session/calendar.js +164 -0
- package/dist/cjs/session/calendar.js.map +7 -0
- package/dist/cjs/str/dateformat.d.ts +15 -0
- package/dist/cjs/str/dateformat.d.ts.map +1 -0
- package/dist/cjs/str/dateformat.js +149 -0
- package/dist/cjs/str/dateformat.js.map +7 -0
- package/dist/cjs/str/index.d.ts +459 -0
- package/dist/cjs/str/index.d.ts.map +1 -0
- package/dist/cjs/str/index.js +143 -0
- package/dist/cjs/str/index.js.map +7 -0
- package/dist/cjs/str/messageformat.d.ts +14 -0
- package/dist/cjs/str/messageformat.d.ts.map +1 -0
- package/dist/cjs/str/messageformat.js +114 -0
- package/dist/cjs/str/messageformat.js.map +7 -0
- package/dist/cjs/str/numberformat.d.ts +19 -0
- package/dist/cjs/str/numberformat.d.ts.map +1 -0
- package/dist/cjs/str/numberformat.js +170 -0
- package/dist/cjs/str/numberformat.js.map +7 -0
- package/dist/{strategy → cjs/strategy}/index.d.ts +50 -0
- package/dist/cjs/strategy/index.d.ts.map +1 -0
- package/dist/cjs/strategy/index.js +92 -0
- package/dist/cjs/strategy/index.js.map +7 -0
- package/dist/cjs/ta/index.d.ts +1400 -0
- package/dist/cjs/ta/index.d.ts.map +1 -0
- package/dist/cjs/ta/index.js +1719 -0
- package/dist/cjs/ta/index.js.map +7 -0
- package/dist/cjs/ta/running-sum.d.ts +30 -0
- package/dist/cjs/ta/running-sum.d.ts.map +1 -0
- package/dist/cjs/ta/running-sum.js +99 -0
- package/dist/cjs/ta/running-sum.js.map +7 -0
- package/dist/cjs/ta-series.d.ts +558 -0
- package/dist/cjs/ta-series.d.ts.map +1 -0
- package/dist/cjs/ta-series.js +606 -0
- package/dist/cjs/ta-series.js.map +7 -0
- package/dist/cjs/text/index.d.ts +14 -0
- package/dist/cjs/text/index.d.ts.map +1 -0
- package/dist/cjs/text/index.js +29 -0
- package/dist/cjs/text/index.js.map +7 -0
- package/dist/cjs/time/datestring.d.ts +23 -0
- package/dist/cjs/time/datestring.d.ts.map +1 -0
- package/dist/cjs/time/datestring.js +106 -0
- package/dist/cjs/time/datestring.js.map +7 -0
- package/dist/cjs/time/index.d.ts +89 -0
- package/dist/cjs/time/index.d.ts.map +1 -0
- package/dist/cjs/time/index.js +85 -0
- package/dist/cjs/time/index.js.map +7 -0
- package/dist/cjs/time/session.d.ts +17 -0
- package/dist/cjs/time/session.d.ts.map +1 -0
- package/dist/cjs/time/session.js +65 -0
- package/dist/cjs/time/session.js.map +7 -0
- package/dist/cjs/time/timezone.d.ts +40 -0
- package/dist/cjs/time/timezone.d.ts.map +1 -0
- package/dist/cjs/time/timezone.js +125 -0
- package/dist/cjs/time/timezone.js.map +7 -0
- package/dist/cjs/timeframe/index.d.ts +73 -0
- package/dist/cjs/timeframe/index.d.ts.map +1 -0
- package/dist/cjs/timeframe/index.js +85 -0
- package/dist/cjs/timeframe/index.js.map +7 -0
- package/dist/cjs/types/index.d.ts +343 -0
- package/dist/cjs/types/index.d.ts.map +1 -0
- package/dist/cjs/types/index.js +32 -0
- package/dist/cjs/types/index.js.map +7 -0
- package/dist/cjs/types/metadata.d.ts +300 -0
- package/dist/cjs/types/metadata.d.ts.map +1 -0
- package/dist/cjs/types/metadata.js +17 -0
- package/dist/cjs/types/metadata.js.map +7 -0
- package/dist/cjs/utils/index.d.ts +167 -0
- package/dist/cjs/utils/index.d.ts.map +1 -0
- package/dist/cjs/utils/index.js +209 -0
- package/dist/cjs/utils/index.js.map +7 -0
- package/dist/esm/array/index.d.ts +701 -0
- package/dist/esm/array/index.d.ts.map +1 -0
- package/dist/esm/array/index.js +984 -0
- package/dist/esm/array/index.js.map +1 -0
- package/dist/esm/box/index.d.ts +444 -0
- package/dist/esm/box/index.d.ts.map +1 -0
- package/dist/esm/box/index.js +602 -0
- package/dist/esm/box/index.js.map +1 -0
- package/dist/esm/callsite/index.d.ts +88 -0
- package/dist/esm/callsite/index.d.ts.map +1 -0
- package/dist/esm/callsite/index.js +176 -0
- package/dist/esm/callsite/index.js.map +1 -0
- package/dist/esm/chartpoint/index.d.ts +90 -0
- package/dist/esm/chartpoint/index.d.ts.map +1 -0
- package/dist/esm/chartpoint/index.js +113 -0
- package/dist/esm/chartpoint/index.js.map +1 -0
- package/dist/esm/color/index.d.ts +286 -0
- package/dist/esm/color/index.d.ts.map +1 -0
- package/dist/esm/color/index.js +350 -0
- package/dist/esm/color/index.js.map +1 -0
- package/dist/esm/color/parse.d.ts +29 -0
- package/dist/esm/color/parse.d.ts.map +1 -0
- package/dist/esm/color/parse.js +55 -0
- package/dist/esm/color/parse.js.map +1 -0
- package/dist/esm/compare/index.d.ts +26 -0
- package/dist/esm/compare/index.d.ts.map +1 -0
- package/dist/esm/compare/index.js +39 -0
- package/dist/esm/compare/index.js.map +1 -0
- package/dist/esm/drawing/registry.d.ts +42 -0
- package/dist/esm/drawing/registry.d.ts.map +1 -0
- package/dist/esm/drawing/registry.js +89 -0
- package/dist/esm/drawing/registry.js.map +1 -0
- package/dist/esm/index.d.ts +85 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +96 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/indicator.d.ts +117 -0
- package/dist/esm/indicator.d.ts.map +1 -0
- package/dist/esm/indicator.js +84 -0
- package/dist/esm/indicator.js.map +1 -0
- package/dist/esm/input.d.ts +196 -0
- package/dist/esm/input.d.ts.map +1 -0
- package/dist/esm/input.js +183 -0
- package/dist/esm/input.js.map +1 -0
- package/dist/esm/label/index.d.ts +303 -0
- package/dist/esm/label/index.d.ts.map +1 -0
- package/dist/esm/label/index.js +417 -0
- package/dist/esm/label/index.js.map +1 -0
- package/dist/esm/lib/index.d.ts +8 -0
- package/dist/esm/lib/index.d.ts.map +1 -0
- package/dist/esm/lib/index.js +8 -0
- package/dist/esm/lib/index.js.map +1 -0
- package/dist/esm/lib/zigzag/index.d.ts +5 -0
- package/dist/esm/lib/zigzag/index.d.ts.map +1 -0
- package/dist/esm/lib/zigzag/index.js +5 -0
- package/dist/esm/lib/zigzag/index.js.map +1 -0
- package/dist/esm/lib/zigzag/zigzag.d.ts +100 -0
- package/dist/esm/lib/zigzag/zigzag.d.ts.map +1 -0
- package/dist/esm/lib/zigzag/zigzag.js +229 -0
- package/dist/esm/lib/zigzag/zigzag.js.map +1 -0
- package/dist/esm/line/index.d.ts +342 -0
- package/dist/esm/line/index.d.ts.map +1 -0
- package/dist/esm/line/index.js +470 -0
- package/dist/esm/line/index.js.map +1 -0
- package/dist/esm/linefill/index.d.ts +124 -0
- package/dist/esm/linefill/index.d.ts.map +1 -0
- package/dist/esm/linefill/index.js +144 -0
- package/dist/esm/linefill/index.js.map +1 -0
- package/dist/esm/map/index.d.ts +69 -0
- package/dist/esm/map/index.d.ts.map +1 -0
- package/dist/esm/map/index.js +106 -0
- package/dist/esm/map/index.js.map +1 -0
- package/dist/esm/math/index.d.ts +560 -0
- package/dist/esm/math/index.d.ts.map +1 -0
- package/dist/esm/math/index.js +495 -0
- package/dist/esm/math/index.js.map +1 -0
- package/dist/esm/matrix/index.d.ts +1231 -0
- package/dist/esm/matrix/index.d.ts.map +1 -0
- package/dist/esm/matrix/index.js +2450 -0
- package/dist/esm/matrix/index.js.map +1 -0
- package/dist/esm/plot.d.ts +76 -0
- package/dist/esm/plot.d.ts.map +1 -0
- package/dist/esm/plot.js +63 -0
- package/dist/esm/plot.js.map +1 -0
- package/dist/esm/polyline/index.d.ts +115 -0
- package/dist/esm/polyline/index.d.ts.map +1 -0
- package/dist/esm/polyline/index.js +157 -0
- package/dist/esm/polyline/index.js.map +1 -0
- package/dist/esm/runtime/adapters/LightweightChartsAdapter.d.ts +86 -0
- package/dist/esm/runtime/adapters/LightweightChartsAdapter.d.ts.map +1 -0
- package/dist/esm/runtime/adapters/LightweightChartsAdapter.js +140 -0
- package/dist/esm/runtime/adapters/LightweightChartsAdapter.js.map +1 -0
- package/dist/esm/runtime/adapters/SimpleInputAdapter.d.ts +59 -0
- package/dist/esm/runtime/adapters/SimpleInputAdapter.d.ts.map +1 -0
- package/dist/esm/runtime/adapters/SimpleInputAdapter.js +115 -0
- package/dist/esm/runtime/adapters/SimpleInputAdapter.js.map +1 -0
- package/dist/esm/runtime/index.d.ts +13 -0
- package/dist/esm/runtime/index.d.ts.map +1 -0
- package/dist/esm/runtime/index.js +14 -0
- package/dist/esm/runtime/index.js.map +1 -0
- package/dist/esm/runtime/inputs.d.ts +91 -0
- package/dist/esm/runtime/inputs.d.ts.map +1 -0
- package/dist/esm/runtime/inputs.js +334 -0
- package/dist/esm/runtime/inputs.js.map +1 -0
- package/dist/esm/runtime/runtime.d.ts +70 -0
- package/dist/esm/runtime/runtime.d.ts.map +1 -0
- package/dist/esm/runtime/runtime.js +193 -0
- package/dist/esm/runtime/runtime.js.map +1 -0
- package/dist/esm/runtime/series.d.ts +362 -0
- package/dist/esm/runtime/series.d.ts.map +1 -0
- package/dist/esm/runtime/series.js +583 -0
- package/dist/esm/runtime/series.js.map +1 -0
- package/dist/esm/runtime/types.d.ts +282 -0
- package/dist/esm/runtime/types.d.ts.map +1 -0
- package/dist/esm/runtime/types.js +7 -0
- package/dist/esm/runtime/types.js.map +1 -0
- package/dist/esm/script/index.d.ts +991 -0
- package/dist/esm/script/index.d.ts.map +1 -0
- package/dist/esm/script/index.js +1294 -0
- package/dist/esm/script/index.js.map +1 -0
- package/dist/esm/security/resample.d.ts +63 -0
- package/dist/esm/security/resample.d.ts.map +1 -0
- package/dist/esm/security/resample.js +110 -0
- package/dist/esm/security/resample.js.map +1 -0
- package/dist/esm/session/bars.d.ts +80 -0
- package/dist/esm/session/bars.d.ts.map +1 -0
- package/dist/esm/session/bars.js +232 -0
- package/dist/esm/session/bars.js.map +1 -0
- package/dist/esm/session/calendar.d.ts +70 -0
- package/dist/esm/session/calendar.d.ts.map +1 -0
- package/dist/esm/session/calendar.js +172 -0
- package/dist/esm/session/calendar.js.map +1 -0
- package/dist/esm/str/dateformat.d.ts +15 -0
- package/dist/esm/str/dateformat.d.ts.map +1 -0
- package/dist/esm/str/dateformat.js +136 -0
- package/dist/esm/str/dateformat.js.map +1 -0
- package/dist/esm/str/index.d.ts +459 -0
- package/dist/esm/str/index.d.ts.map +1 -0
- package/dist/esm/str/index.js +540 -0
- package/dist/esm/str/index.js.map +1 -0
- package/dist/esm/str/messageformat.d.ts +14 -0
- package/dist/esm/str/messageformat.d.ts.map +1 -0
- package/dist/esm/str/messageformat.js +111 -0
- package/dist/esm/str/messageformat.js.map +1 -0
- package/dist/esm/str/numberformat.d.ts +19 -0
- package/dist/esm/str/numberformat.d.ts.map +1 -0
- package/dist/esm/str/numberformat.js +189 -0
- package/dist/esm/str/numberformat.js.map +1 -0
- package/dist/esm/strategy/index.d.ts +245 -0
- package/dist/esm/strategy/index.d.ts.map +1 -0
- package/dist/esm/strategy/index.js +84 -0
- package/dist/esm/strategy/index.js.map +1 -0
- package/dist/esm/ta/index.d.ts +1400 -0
- package/dist/esm/ta/index.d.ts.map +1 -0
- package/dist/esm/ta/index.js +3236 -0
- package/dist/esm/ta/index.js.map +1 -0
- package/dist/esm/ta/running-sum.d.ts +30 -0
- package/dist/esm/ta/running-sum.d.ts.map +1 -0
- package/dist/esm/ta/running-sum.js +113 -0
- package/dist/esm/ta/running-sum.js.map +1 -0
- package/dist/esm/ta-series.d.ts +558 -0
- package/dist/esm/ta-series.d.ts.map +1 -0
- package/dist/esm/ta-series.js +910 -0
- package/dist/esm/ta-series.js.map +1 -0
- package/dist/esm/text/index.d.ts +14 -0
- package/dist/esm/text/index.d.ts.map +1 -0
- package/dist/esm/text/index.js +14 -0
- package/dist/esm/text/index.js.map +1 -0
- package/dist/esm/time/datestring.d.ts +23 -0
- package/dist/esm/time/datestring.d.ts.map +1 -0
- package/dist/esm/time/datestring.js +94 -0
- package/dist/esm/time/datestring.js.map +1 -0
- package/dist/esm/time/index.d.ts +89 -0
- package/dist/esm/time/index.d.ts.map +1 -0
- package/dist/esm/time/index.js +108 -0
- package/dist/esm/time/index.js.map +1 -0
- package/dist/esm/time/session.d.ts +17 -0
- package/dist/esm/time/session.d.ts.map +1 -0
- package/dist/esm/time/session.js +69 -0
- package/dist/esm/time/session.js.map +1 -0
- package/dist/esm/time/timezone.d.ts +40 -0
- package/dist/esm/time/timezone.d.ts.map +1 -0
- package/dist/esm/time/timezone.js +144 -0
- package/dist/esm/time/timezone.js.map +1 -0
- package/dist/esm/timeframe/index.d.ts +73 -0
- package/dist/esm/timeframe/index.d.ts.map +1 -0
- package/dist/esm/timeframe/index.js +131 -0
- package/dist/esm/timeframe/index.js.map +1 -0
- package/dist/esm/types/index.d.ts +343 -0
- package/dist/esm/types/index.d.ts.map +1 -0
- package/dist/esm/types/index.js +17 -0
- package/dist/esm/types/index.js.map +1 -0
- package/dist/esm/types/metadata.d.ts +300 -0
- package/dist/esm/types/metadata.d.ts.map +1 -0
- package/dist/esm/types/metadata.js +7 -0
- package/dist/esm/types/metadata.js.map +1 -0
- package/dist/esm/utils/index.d.ts +167 -0
- package/dist/esm/utils/index.d.ts.map +1 -0
- package/dist/esm/utils/index.js +295 -0
- package/dist/esm/utils/index.js.map +1 -0
- package/package.json +53 -23
- package/src/array/index.ts +1057 -0
- package/src/box/index.ts +680 -0
- package/src/callsite/index.ts +178 -0
- package/src/chartpoint/index.ts +126 -0
- package/src/color/index.ts +389 -0
- package/src/color/parse.ts +56 -0
- package/src/compare/index.ts +46 -0
- package/src/drawing/registry.ts +106 -0
- package/src/index.ts +201 -0
- package/src/indicator.ts +185 -0
- package/src/input.ts +280 -0
- package/src/label/index.ts +490 -0
- package/src/lib/index.ts +8 -0
- package/src/lib/zigzag/index.ts +13 -0
- package/src/lib/zigzag/zigzag.ts +318 -0
- package/src/line/index.ts +530 -0
- package/src/linefill/index.ts +152 -0
- package/src/map/index.ts +115 -0
- package/src/math/index.ts +1071 -0
- package/src/matrix/index.ts +2697 -0
- package/src/plot.ts +121 -0
- package/src/polyline/index.ts +184 -0
- package/src/runtime/adapters/LightweightChartsAdapter.ts +201 -0
- package/src/runtime/adapters/SimpleInputAdapter.ts +132 -0
- package/src/runtime/index.ts +52 -0
- package/src/runtime/inputs.ts +377 -0
- package/src/runtime/runtime.ts +241 -0
- package/src/runtime/series.ts +644 -0
- package/src/runtime/types.ts +292 -0
- package/src/script/index.ts +1870 -0
- package/src/security/resample.ts +119 -0
- package/src/session/bars.ts +262 -0
- package/src/session/calendar.ts +199 -0
- package/src/str/dateformat.ts +104 -0
- package/src/str/index.ts +557 -0
- package/src/str/messageformat.ts +109 -0
- package/src/str/numberformat.ts +197 -0
- package/src/strategy/index.ts +281 -0
- package/src/ta/index.ts +3587 -0
- package/src/ta/running-sum.ts +117 -0
- package/src/ta-series.ts +1036 -0
- package/src/text/index.ts +14 -0
- package/src/time/datestring.ts +96 -0
- package/src/time/index.ts +161 -0
- package/src/time/session.ts +79 -0
- package/src/time/timezone.ts +180 -0
- package/src/timeframe/index.ts +144 -0
- package/src/types/index.ts +398 -0
- package/src/types/metadata.ts +334 -0
- package/src/utils/index.ts +334 -0
- package/dist/array/index.d.ts +0 -57
- package/dist/array/index.d.ts.map +0 -1
- package/dist/box/index.d.ts +0 -37
- package/dist/box/index.d.ts.map +0 -1
- package/dist/callsite/index.d.ts +0 -7
- package/dist/callsite/index.d.ts.map +0 -1
- package/dist/chartpoint/index.d.ts +0 -8
- package/dist/chartpoint/index.d.ts.map +0 -1
- package/dist/color/index.d.ts +0 -28
- package/dist/color/index.d.ts.map +0 -1
- package/dist/compare/index.d.ts +0 -8
- package/dist/compare/index.d.ts.map +0 -1
- package/dist/drawing/registry.d.ts +0 -19
- package/dist/drawing/registry.d.ts.map +0 -1
- package/dist/index.cjs +0 -7981
- package/dist/index.d.ts +0 -64
- package/dist/index.d.ts.map +0 -1
- package/dist/index.mjs +0 -7964
- package/dist/indicator.d.ts +0 -42
- package/dist/indicator.d.ts.map +0 -1
- package/dist/input.d.ts +0 -47
- package/dist/input.d.ts.map +0 -1
- package/dist/label/index.d.ts +0 -30
- package/dist/label/index.d.ts.map +0 -1
- package/dist/lib/index.d.ts +0 -2
- package/dist/lib/index.d.ts.map +0 -1
- package/dist/lib/zigzag/index.d.ts.map +0 -1
- package/dist/lib/zigzag/zigzag.d.ts +0 -47
- package/dist/lib/zigzag/zigzag.d.ts.map +0 -1
- package/dist/line/index.d.ts +0 -30
- package/dist/line/index.d.ts.map +0 -1
- package/dist/linefill/index.d.ts +0 -10
- package/dist/linefill/index.d.ts.map +0 -1
- package/dist/map/index.d.ts +0 -14
- package/dist/map/index.d.ts.map +0 -1
- package/dist/math/index.d.ts +0 -53
- package/dist/math/index.d.ts.map +0 -1
- package/dist/matrix/index.d.ts +0 -52
- package/dist/matrix/index.d.ts.map +0 -1
- package/dist/plot.d.ts +0 -20
- package/dist/plot.d.ts.map +0 -1
- package/dist/polyline/index.d.ts +0 -11
- package/dist/polyline/index.d.ts.map +0 -1
- package/dist/runtime/adapters/LightweightChartsAdapter.d.ts +0 -15
- package/dist/runtime/adapters/LightweightChartsAdapter.d.ts.map +0 -1
- package/dist/runtime/adapters/SimpleInputAdapter.d.ts +0 -16
- package/dist/runtime/adapters/SimpleInputAdapter.d.ts.map +0 -1
- package/dist/runtime/index.cjs +0 -600
- package/dist/runtime/index.d.ts.map +0 -1
- package/dist/runtime/index.mjs +0 -577
- package/dist/runtime/inputs.d.ts +0 -13
- package/dist/runtime/inputs.d.ts.map +0 -1
- package/dist/runtime/runtime.d.ts +0 -16
- package/dist/runtime/runtime.d.ts.map +0 -1
- package/dist/runtime/series.d.ts +0 -60
- package/dist/runtime/series.d.ts.map +0 -1
- package/dist/runtime/types.d.ts +0 -126
- package/dist/runtime/types.d.ts.map +0 -1
- package/dist/script/index.cjs +0 -6377
- package/dist/script/index.d.ts +0 -713
- package/dist/script/index.d.ts.map +0 -1
- package/dist/script/index.mjs +0 -6360
- package/dist/security/resample.d.ts +0 -13
- package/dist/security/resample.d.ts.map +0 -1
- package/dist/session/bars.d.ts +0 -34
- package/dist/session/bars.d.ts.map +0 -1
- package/dist/session/calendar.d.ts +0 -31
- package/dist/session/calendar.d.ts.map +0 -1
- package/dist/str/dateformat.d.ts +0 -2
- package/dist/str/dateformat.d.ts.map +0 -1
- package/dist/str/index.d.ts +0 -24
- package/dist/str/index.d.ts.map +0 -1
- package/dist/str/messageformat.d.ts +0 -2
- package/dist/str/messageformat.d.ts.map +0 -1
- package/dist/str/numberformat.d.ts +0 -3
- package/dist/str/numberformat.d.ts.map +0 -1
- package/dist/strategy/index.d.ts.map +0 -1
- package/dist/ta/index.d.ts +0 -72
- package/dist/ta/index.d.ts.map +0 -1
- package/dist/ta/running-sum.d.ts +0 -3
- package/dist/ta/running-sum.d.ts.map +0 -1
- package/dist/ta-series.d.ts +0 -143
- package/dist/ta-series.d.ts.map +0 -1
- package/dist/text/index.d.ts +0 -4
- package/dist/text/index.d.ts.map +0 -1
- package/dist/time/datestring.d.ts +0 -2
- package/dist/time/datestring.d.ts.map +0 -1
- package/dist/time/index.d.ts +0 -15
- package/dist/time/index.d.ts.map +0 -1
- package/dist/time/session.d.ts +0 -2
- package/dist/time/session.d.ts.map +0 -1
- package/dist/time/timezone.d.ts +0 -13
- package/dist/time/timezone.d.ts.map +0 -1
- package/dist/timeframe/index.d.ts +0 -17
- package/dist/timeframe/index.d.ts.map +0 -1
- package/dist/types/index.d.ts +0 -181
- package/dist/types/index.d.ts.map +0 -1
- package/dist/types/metadata.d.ts +0 -132
- package/dist/types/metadata.d.ts.map +0 -1
- package/dist/utils/index.d.ts +0 -26
- package/dist/utils/index.d.ts.map +0 -1
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Registry of the live drawing objects (lines, labels, boxes, polylines, linefills), as PineScript
|
|
3
|
+
* keeps them. PineScript rules:
|
|
4
|
+
*
|
|
5
|
+
* - `line.all`, `label.all`, ... list the live objects in creation order (a copy of the list)
|
|
6
|
+
* - `delete` removes an object; the object becomes `na`: its getters return NaN and its setters
|
|
7
|
+
* do nothing. Deleting a line with `line.delete` also deletes the linefills that use it
|
|
8
|
+
* - when a creation brings the count above `max_*_count + 5`, the oldest objects are deleted until
|
|
9
|
+
* `max_*_count` remain (default 50). Copies count as creations. Linefills follow the same rule with
|
|
10
|
+
* `max_lines_count`; lines deleted by this rule do not delete their linefills
|
|
11
|
+
*
|
|
12
|
+
* The script API (`executeScript`) resets the registry at the start of every run and applies the
|
|
13
|
+
* `max_*_count` values of `indicator()`. Outside a script run the registry is global to the module.
|
|
14
|
+
*
|
|
15
|
+
* @module drawing/registry
|
|
16
|
+
*/
|
|
17
|
+
import type { Box, Label, Line, Linefill, Polyline } from '../types/index.js';
|
|
18
|
+
export type DrawingKind = 'line' | 'label' | 'box' | 'polyline' | 'linefill';
|
|
19
|
+
interface DrawingTypes {
|
|
20
|
+
line: Line;
|
|
21
|
+
label: Label;
|
|
22
|
+
box: Box;
|
|
23
|
+
polyline: Polyline;
|
|
24
|
+
linefill: Linefill;
|
|
25
|
+
}
|
|
26
|
+
/** Default `max_lines_count`, `max_labels_count`, `max_boxes_count`, `max_polylines_count`. */
|
|
27
|
+
export declare const DEFAULT_MAX_COUNT = 50;
|
|
28
|
+
export type DrawingLimits = Partial<Record<Exclude<DrawingKind, 'linefill'>, number>>;
|
|
29
|
+
/** Records a new object and deletes the oldest objects of its kind when the count is too high. */
|
|
30
|
+
export declare function register<K extends DrawingKind>(kind: K, obj: DrawingTypes[K]): DrawingTypes[K];
|
|
31
|
+
/** Deletes an object (no effect when it is already deleted). */
|
|
32
|
+
export declare function remove<K extends DrawingKind>(kind: K, obj: DrawingTypes[K]): void;
|
|
33
|
+
/** True when the object was deleted (by `delete` or by the maximum count). */
|
|
34
|
+
export declare function isDeleted(obj: unknown): boolean;
|
|
35
|
+
/** The live objects of a kind, in creation order (a new array). */
|
|
36
|
+
export declare function all<K extends DrawingKind>(kind: K): Array<DrawingTypes[K]>;
|
|
37
|
+
/** Forgets all objects (without deleting them) and sets the maximum counts (default 50). */
|
|
38
|
+
export declare function resetDrawings(newLimits?: DrawingLimits): void;
|
|
39
|
+
/** Changes the maximum counts without forgetting the objects (PineScript `indicator(max_*_count)`). */
|
|
40
|
+
export declare function setDrawingLimits(newLimits: DrawingLimits): void;
|
|
41
|
+
export {};
|
|
42
|
+
//# sourceMappingURL=registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/drawing/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE9E,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,UAAU,GAAG,UAAU,CAAC;AAE7E,UAAU,YAAY;IACpB,IAAI,EAAE,IAAI,CAAC;IACX,KAAK,EAAE,KAAK,CAAC;IACb,GAAG,EAAE,GAAG,CAAC;IACT,QAAQ,EAAE,QAAQ,CAAC;IACnB,QAAQ,EAAE,QAAQ,CAAC;CACpB;AAED,+FAA+F;AAC/F,eAAO,MAAM,iBAAiB,KAAK,CAAC;AAIpC,MAAM,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;AA4BtF,kGAAkG;AAClG,wBAAgB,QAAQ,CAAC,CAAC,SAAS,WAAW,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAQ9F;AAED,gEAAgE;AAChE,wBAAgB,MAAM,CAAC,CAAC,SAAS,WAAW,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,IAAI,CAKjF;AAED,8EAA8E;AAC9E,wBAAgB,SAAS,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAE/C;AAED,mEAAmE;AACnE,wBAAgB,GAAG,CAAC,CAAC,SAAS,WAAW,EAAE,IAAI,EAAE,CAAC,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAE1E;AAED,4FAA4F;AAC5F,wBAAgB,aAAa,CAAC,SAAS,GAAE,aAAkB,GAAG,IAAI,CAQjE;AAED,uGAAuG;AACvG,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,aAAa,GAAG,IAAI,CAE/D"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all2) => {
|
|
7
|
+
for (var name in all2)
|
|
8
|
+
__defProp(target, name, { get: all2[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var registry_exports = {};
|
|
20
|
+
__export(registry_exports, {
|
|
21
|
+
DEFAULT_MAX_COUNT: () => DEFAULT_MAX_COUNT,
|
|
22
|
+
all: () => all,
|
|
23
|
+
isDeleted: () => isDeleted,
|
|
24
|
+
register: () => register,
|
|
25
|
+
remove: () => remove,
|
|
26
|
+
resetDrawings: () => resetDrawings,
|
|
27
|
+
setDrawingLimits: () => setDrawingLimits
|
|
28
|
+
});
|
|
29
|
+
module.exports = __toCommonJS(registry_exports);
|
|
30
|
+
const DEFAULT_MAX_COUNT = 50;
|
|
31
|
+
const SLACK = 5;
|
|
32
|
+
const live = { line: [], label: [], box: [], polyline: [], linefill: [] };
|
|
33
|
+
let limits = {
|
|
34
|
+
line: DEFAULT_MAX_COUNT,
|
|
35
|
+
label: DEFAULT_MAX_COUNT,
|
|
36
|
+
box: DEFAULT_MAX_COUNT,
|
|
37
|
+
polyline: DEFAULT_MAX_COUNT
|
|
38
|
+
};
|
|
39
|
+
const deleted = /* @__PURE__ */ new WeakSet();
|
|
40
|
+
const COORDINATES = {
|
|
41
|
+
line: ["x1", "y1", "x2", "y2"],
|
|
42
|
+
label: ["x", "y"],
|
|
43
|
+
box: ["left", "top", "right", "bottom"],
|
|
44
|
+
polyline: [],
|
|
45
|
+
linefill: []
|
|
46
|
+
};
|
|
47
|
+
function markDeleted(kind, obj, explicit) {
|
|
48
|
+
deleted.add(obj);
|
|
49
|
+
for (const field of COORDINATES[kind]) obj[field] = NaN;
|
|
50
|
+
if (kind === "line" && explicit) {
|
|
51
|
+
for (const fill of live.linefill.filter((f) => f.line1 === obj || f.line2 === obj)) remove("linefill", fill);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
function register(kind, obj) {
|
|
55
|
+
const list = live[kind];
|
|
56
|
+
list.push(obj);
|
|
57
|
+
const max = limits[kind === "linefill" ? "line" : kind];
|
|
58
|
+
if (list.length > max + SLACK) {
|
|
59
|
+
for (const old of list.splice(0, list.length - max)) markDeleted(kind, old, false);
|
|
60
|
+
}
|
|
61
|
+
return obj;
|
|
62
|
+
}
|
|
63
|
+
function remove(kind, obj) {
|
|
64
|
+
const list = live[kind];
|
|
65
|
+
const index = list.indexOf(obj);
|
|
66
|
+
if (index !== -1) list.splice(index, 1);
|
|
67
|
+
if (!deleted.has(obj)) markDeleted(kind, obj, true);
|
|
68
|
+
}
|
|
69
|
+
function isDeleted(obj) {
|
|
70
|
+
return typeof obj === "object" && obj !== null && deleted.has(obj);
|
|
71
|
+
}
|
|
72
|
+
function all(kind) {
|
|
73
|
+
return [...live[kind]];
|
|
74
|
+
}
|
|
75
|
+
function resetDrawings(newLimits = {}) {
|
|
76
|
+
for (const kind of Object.keys(live)) live[kind].length = 0;
|
|
77
|
+
limits = {
|
|
78
|
+
line: newLimits.line ?? DEFAULT_MAX_COUNT,
|
|
79
|
+
label: newLimits.label ?? DEFAULT_MAX_COUNT,
|
|
80
|
+
box: newLimits.box ?? DEFAULT_MAX_COUNT,
|
|
81
|
+
polyline: newLimits.polyline ?? DEFAULT_MAX_COUNT
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
function setDrawingLimits(newLimits) {
|
|
85
|
+
limits = { ...limits, ...Object.fromEntries(Object.entries(newLimits).filter(([, v]) => v !== void 0)) };
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=registry.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/drawing/registry.ts"],
|
|
4
|
+
"sourcesContent": ["/**\n * Registry of the live drawing objects (lines, labels, boxes, polylines, linefills), as PineScript\n * keeps them. PineScript rules:\n *\n * - `line.all`, `label.all`, ... list the live objects in creation order (a copy of the list)\n * - `delete` removes an object; the object becomes `na`: its getters return NaN and its setters\n * do nothing. Deleting a line with `line.delete` also deletes the linefills that use it\n * - when a creation brings the count above `max_*_count + 5`, the oldest objects are deleted until\n * `max_*_count` remain (default 50). Copies count as creations. Linefills follow the same rule with\n * `max_lines_count`; lines deleted by this rule do not delete their linefills\n *\n * The script API (`executeScript`) resets the registry at the start of every run and applies the\n * `max_*_count` values of `indicator()`. Outside a script run the registry is global to the module.\n *\n * @module drawing/registry\n */\n\nimport type { Box, Label, Line, Linefill, Polyline } from '../types/index.js';\n\nexport type DrawingKind = 'line' | 'label' | 'box' | 'polyline' | 'linefill';\n\ninterface DrawingTypes {\n line: Line;\n label: Label;\n box: Box;\n polyline: Polyline;\n linefill: Linefill;\n}\n\n/** Default `max_lines_count`, `max_labels_count`, `max_boxes_count`, `max_polylines_count`. */\nexport const DEFAULT_MAX_COUNT = 50;\n/** Objects above the maximum that PineScript keeps before it deletes the oldest ones. */\nconst SLACK = 5;\n\nexport type DrawingLimits = Partial<Record<Exclude<DrawingKind, 'linefill'>, number>>;\n\nconst live: { [K in DrawingKind]: Array<DrawingTypes[K]> } = { line: [], label: [], box: [], polyline: [], linefill: [] };\nlet limits: Required<DrawingLimits> = {\n line: DEFAULT_MAX_COUNT,\n label: DEFAULT_MAX_COUNT,\n box: DEFAULT_MAX_COUNT,\n polyline: DEFAULT_MAX_COUNT,\n};\nconst deleted = new WeakSet<object>();\n\n/** Numeric fields that become NaN when an object is deleted, so that its getters return `na`. */\nconst COORDINATES: { [K in DrawingKind]: Array<keyof DrawingTypes[K]> } = {\n line: ['x1', 'y1', 'x2', 'y2'],\n label: ['x', 'y'],\n box: ['left', 'top', 'right', 'bottom'],\n polyline: [],\n linefill: [],\n};\n\nfunction markDeleted<K extends DrawingKind>(kind: K, obj: DrawingTypes[K], explicit: boolean): void {\n deleted.add(obj);\n for (const field of COORDINATES[kind]) (obj as unknown as Record<string, unknown>)[field as string] = NaN;\n if (kind === 'line' && explicit) {\n for (const fill of live.linefill.filter((f) => f.line1 === obj || f.line2 === obj)) remove('linefill', fill);\n }\n}\n\n/** Records a new object and deletes the oldest objects of its kind when the count is too high. */\nexport function register<K extends DrawingKind>(kind: K, obj: DrawingTypes[K]): DrawingTypes[K] {\n const list = live[kind];\n list.push(obj);\n const max = limits[kind === 'linefill' ? 'line' : (kind as Exclude<DrawingKind, 'linefill'>)];\n if (list.length > max + SLACK) {\n for (const old of list.splice(0, list.length - max)) markDeleted(kind, old, false);\n }\n return obj;\n}\n\n/** Deletes an object (no effect when it is already deleted). */\nexport function remove<K extends DrawingKind>(kind: K, obj: DrawingTypes[K]): void {\n const list = live[kind];\n const index = list.indexOf(obj);\n if (index !== -1) list.splice(index, 1);\n if (!deleted.has(obj)) markDeleted(kind, obj, true);\n}\n\n/** True when the object was deleted (by `delete` or by the maximum count). */\nexport function isDeleted(obj: unknown): boolean {\n return typeof obj === 'object' && obj !== null && deleted.has(obj);\n}\n\n/** The live objects of a kind, in creation order (a new array). */\nexport function all<K extends DrawingKind>(kind: K): Array<DrawingTypes[K]> {\n return [...live[kind]] as Array<DrawingTypes[K]>;\n}\n\n/** Forgets all objects (without deleting them) and sets the maximum counts (default 50). */\nexport function resetDrawings(newLimits: DrawingLimits = {}): void {\n for (const kind of Object.keys(live) as DrawingKind[]) live[kind].length = 0;\n limits = {\n line: newLimits.line ?? DEFAULT_MAX_COUNT,\n label: newLimits.label ?? DEFAULT_MAX_COUNT,\n box: newLimits.box ?? DEFAULT_MAX_COUNT,\n polyline: newLimits.polyline ?? DEFAULT_MAX_COUNT,\n };\n}\n\n/** Changes the maximum counts without forgetting the objects (PineScript `indicator(max_*_count)`). */\nexport function setDrawingLimits(newLimits: DrawingLimits): void {\n limits = { ...limits, ...Object.fromEntries(Object.entries(newLimits).filter(([, v]) => v !== undefined)) };\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA8BO,MAAM,oBAAoB;AAEjC,MAAM,QAAQ;AAId,MAAM,OAAuD,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,KAAK,CAAC,GAAG,UAAU,CAAC,GAAG,UAAU,CAAC,EAAE;AACxH,IAAI,SAAkC;AAAA,EACpC,MAAM;AAAA,EACN,OAAO;AAAA,EACP,KAAK;AAAA,EACL,UAAU;AACZ;AACA,MAAM,UAAU,oBAAI,QAAgB;AAGpC,MAAM,cAAoE;AAAA,EACxE,MAAM,CAAC,MAAM,MAAM,MAAM,IAAI;AAAA,EAC7B,OAAO,CAAC,KAAK,GAAG;AAAA,EAChB,KAAK,CAAC,QAAQ,OAAO,SAAS,QAAQ;AAAA,EACtC,UAAU,CAAC;AAAA,EACX,UAAU,CAAC;AACb;AAEA,SAAS,YAAmC,MAAS,KAAsB,UAAyB;AAClG,UAAQ,IAAI,GAAG;AACf,aAAW,SAAS,YAAY,IAAI,EAAG,CAAC,IAA2C,KAAe,IAAI;AACtG,MAAI,SAAS,UAAU,UAAU;AAC/B,eAAW,QAAQ,KAAK,SAAS,OAAO,CAAC,MAAM,EAAE,UAAU,OAAO,EAAE,UAAU,GAAG,EAAG,QAAO,YAAY,IAAI;AAAA,EAC7G;AACF;AAGO,SAAS,SAAgC,MAAS,KAAuC;AAC9F,QAAM,OAAO,KAAK,IAAI;AACtB,OAAK,KAAK,GAAG;AACb,QAAM,MAAM,OAAO,SAAS,aAAa,SAAU,IAAyC;AAC5F,MAAI,KAAK,SAAS,MAAM,OAAO;AAC7B,eAAW,OAAO,KAAK,OAAO,GAAG,KAAK,SAAS,GAAG,EAAG,aAAY,MAAM,KAAK,KAAK;AAAA,EACnF;AACA,SAAO;AACT;AAGO,SAAS,OAA8B,MAAS,KAA4B;AACjF,QAAM,OAAO,KAAK,IAAI;AACtB,QAAM,QAAQ,KAAK,QAAQ,GAAG;AAC9B,MAAI,UAAU,GAAI,MAAK,OAAO,OAAO,CAAC;AACtC,MAAI,CAAC,QAAQ,IAAI,GAAG,EAAG,aAAY,MAAM,KAAK,IAAI;AACpD;AAGO,SAAS,UAAU,KAAuB;AAC/C,SAAO,OAAO,QAAQ,YAAY,QAAQ,QAAQ,QAAQ,IAAI,GAAG;AACnE;AAGO,SAAS,IAA2B,MAAiC;AAC1E,SAAO,CAAC,GAAG,KAAK,IAAI,CAAC;AACvB;AAGO,SAAS,cAAc,YAA2B,CAAC,GAAS;AACjE,aAAW,QAAQ,OAAO,KAAK,IAAI,EAAoB,MAAK,IAAI,EAAE,SAAS;AAC3E,WAAS;AAAA,IACP,MAAM,UAAU,QAAQ;AAAA,IACxB,OAAO,UAAU,SAAS;AAAA,IAC1B,KAAK,UAAU,OAAO;AAAA,IACtB,UAAU,UAAU,YAAY;AAAA,EAClC;AACF;AAGO,SAAS,iBAAiB,WAAgC;AAC/D,WAAS,EAAE,GAAG,QAAQ,GAAG,OAAO,YAAY,OAAO,QAAQ,SAAS,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,MAAM,MAAM,MAAS,CAAC,EAAE;AAC5G;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OakScriptJS - Simplified PineScript-like library for JavaScript
|
|
3
|
+
*
|
|
4
|
+
* This library provides Series-based lazy evaluation and technical analysis functions
|
|
5
|
+
* for building trading indicators. The PineScript-style script API is in `oakscriptjs/script`.
|
|
6
|
+
*
|
|
7
|
+
* Key features:
|
|
8
|
+
* - Series class for lazy evaluation and method chaining
|
|
9
|
+
* - Core TA functions (array-based)
|
|
10
|
+
* - TA-Series wrappers (Series-based)
|
|
11
|
+
*
|
|
12
|
+
* @packageDocumentation
|
|
13
|
+
*/
|
|
14
|
+
export * from './types/index.js';
|
|
15
|
+
export * from './types/metadata.js';
|
|
16
|
+
import * as taCore from './ta/index.js';
|
|
17
|
+
import * as math from './math/index.js';
|
|
18
|
+
import * as array from './array/index.js';
|
|
19
|
+
import * as map from './map/index.js';
|
|
20
|
+
import * as str from './str/index.js';
|
|
21
|
+
import * as color from './color/index.js';
|
|
22
|
+
import * as time from './time/index.js';
|
|
23
|
+
import * as timeframe from './timeframe/index.js';
|
|
24
|
+
import * as matrix from './matrix/index.js';
|
|
25
|
+
import * as line from './line/index.js';
|
|
26
|
+
import * as box from './box/index.js';
|
|
27
|
+
import * as label from './label/index.js';
|
|
28
|
+
import * as linefill from './linefill/index.js';
|
|
29
|
+
import * as chartPoint from './chartpoint/index.js';
|
|
30
|
+
import * as polyline from './polyline/index.js';
|
|
31
|
+
import * as text from './text/index.js';
|
|
32
|
+
import * as compare from './compare/index.js';
|
|
33
|
+
import * as callsite from './callsite/index.js';
|
|
34
|
+
export { taCore, math, array, map, str, color, time, timeframe, matrix, line, box, label, linefill, chartPoint, polyline, text, compare, callsite };
|
|
35
|
+
export { Series, BarData } from './runtime/series.js';
|
|
36
|
+
export type { SeriesExtractor } from './runtime/series.js';
|
|
37
|
+
import * as ta from './ta-series.js';
|
|
38
|
+
export { ta };
|
|
39
|
+
export type { PlotOptions, HLineOptions, FillOptions, InputMetadata, PlotMetadata, IndicatorMetadata, TimeValue, PlotData, HLineData, FillData, FillGradient, IndicatorResult, IndicatorFactory, PlotStyle, LineStyle, PlotDisplay, InputType } from './types/metadata.js';
|
|
40
|
+
export { sma, ema, rsi, macd, bb, stdev, crossover, crossunder, change, tr, atr, cum, vwap } from './ta-series.js';
|
|
41
|
+
export { abs, ceil, floor, round, max, min, avg, sum, sqrt, pow, exp, log, sin, cos, tan } from './math/index.js';
|
|
42
|
+
export { rgb, from_hex as color_from_hex, new_color } from './color/index.js';
|
|
43
|
+
export { ohlcFromBars, getClose, getHigh, getLow, getOpen, getSource, getSourceSeries, at, div } from './utils/index.js';
|
|
44
|
+
export * from './lib/index.js';
|
|
45
|
+
export { isNA as na, nz, fixnan } from './utils/index.js';
|
|
46
|
+
export { indicator, type IndicatorMetadataConfig, type InputDefinition, type IndicatorContext, type IndicatorInstance, type IndicatorConstructor, } from './indicator.js';
|
|
47
|
+
export { input, type InputValue, type IntInputOptions, type FloatInputOptions, type SourceInputOptions, type BoolInputOptions, type StringInputOptions, type TimeInputOptions, type SourceType, } from './input.js';
|
|
48
|
+
export { plot as plotHelper, createPlot, type Time, type TimeValuePair, type PlotOptions as PlotHelperOptions, type PlotResult, } from './plot.js';
|
|
49
|
+
export { setContext, clearContext, getContext, registerCalculate, recalculate, plot, hline, clearPlots, } from './runtime/runtime.js';
|
|
50
|
+
export { input_int, input_float, input_bool, input_string, input_source, input_timeframe, input_session, input_time, } from './runtime/inputs.js';
|
|
51
|
+
export type { OakScriptContext, ChartAdapter, InputAdapter, SeriesHandle, SeriesOptions, InputConfig, InputOptions, OhlcvData, PlotConfig, HLineConfig, FillConfig, ArrowConfig, } from './runtime/types.js';
|
|
52
|
+
export { STRATEGY_CONSTANTS, STRATEGY_DEFAULTS, STRATEGY_NUMBER_VARIABLES, STRATEGY_TEXT_VARIABLES, } from './strategy/index.js';
|
|
53
|
+
export type * from './strategy/index.js';
|
|
54
|
+
export { LightweightChartsAdapter } from './runtime/adapters/LightweightChartsAdapter.js';
|
|
55
|
+
export type { LightweightSeriesDefinitions } from './runtime/adapters/LightweightChartsAdapter.js';
|
|
56
|
+
export { SimpleInputAdapter } from './runtime/adapters/SimpleInputAdapter.js';
|
|
57
|
+
export declare const VERSION = "0.9.1";
|
|
58
|
+
/**
|
|
59
|
+
* Library information
|
|
60
|
+
*/
|
|
61
|
+
export declare const info: {
|
|
62
|
+
name: string;
|
|
63
|
+
version: string;
|
|
64
|
+
description: string;
|
|
65
|
+
features: {
|
|
66
|
+
series: string;
|
|
67
|
+
ta: string;
|
|
68
|
+
script: string;
|
|
69
|
+
runtime: string;
|
|
70
|
+
indicator: string;
|
|
71
|
+
};
|
|
72
|
+
namespaces: {
|
|
73
|
+
core: string[];
|
|
74
|
+
drawing: string[];
|
|
75
|
+
runtime: string[];
|
|
76
|
+
indicator: string[];
|
|
77
|
+
};
|
|
78
|
+
};
|
|
79
|
+
/**
|
|
80
|
+
* alertcondition() - Stub for PineScript alert configuration
|
|
81
|
+
* In PineScript, this registers an alert condition. In oakscriptjs, it's a no-op
|
|
82
|
+
* since alert configuration is handled by the host application.
|
|
83
|
+
*/
|
|
84
|
+
export declare function alertcondition(_condition: unknown, _title?: string, _message?: string): void;
|
|
85
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
|
|
21
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
22
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
23
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
24
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
25
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
26
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
27
|
+
mod
|
|
28
|
+
));
|
|
29
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
30
|
+
var index_exports = {};
|
|
31
|
+
__export(index_exports, {
|
|
32
|
+
BarData: () => import_series.BarData,
|
|
33
|
+
LightweightChartsAdapter: () => import_LightweightChartsAdapter.LightweightChartsAdapter,
|
|
34
|
+
STRATEGY_CONSTANTS: () => import_strategy.STRATEGY_CONSTANTS,
|
|
35
|
+
STRATEGY_DEFAULTS: () => import_strategy.STRATEGY_DEFAULTS,
|
|
36
|
+
STRATEGY_NUMBER_VARIABLES: () => import_strategy.STRATEGY_NUMBER_VARIABLES,
|
|
37
|
+
STRATEGY_TEXT_VARIABLES: () => import_strategy.STRATEGY_TEXT_VARIABLES,
|
|
38
|
+
Series: () => import_series.Series,
|
|
39
|
+
SimpleInputAdapter: () => import_SimpleInputAdapter.SimpleInputAdapter,
|
|
40
|
+
VERSION: () => VERSION,
|
|
41
|
+
abs: () => import_math.abs,
|
|
42
|
+
alertcondition: () => alertcondition,
|
|
43
|
+
array: () => array,
|
|
44
|
+
at: () => import_utils.at,
|
|
45
|
+
atr: () => import_ta_series.atr,
|
|
46
|
+
avg: () => import_math.avg,
|
|
47
|
+
bb: () => import_ta_series.bb,
|
|
48
|
+
box: () => box,
|
|
49
|
+
callsite: () => callsite,
|
|
50
|
+
ceil: () => import_math.ceil,
|
|
51
|
+
change: () => import_ta_series.change,
|
|
52
|
+
chartPoint: () => chartPoint,
|
|
53
|
+
clearContext: () => import_runtime.clearContext,
|
|
54
|
+
clearPlots: () => import_runtime.clearPlots,
|
|
55
|
+
color: () => color,
|
|
56
|
+
color_from_hex: () => import_color.from_hex,
|
|
57
|
+
compare: () => compare,
|
|
58
|
+
cos: () => import_math.cos,
|
|
59
|
+
createPlot: () => import_plot.createPlot,
|
|
60
|
+
crossover: () => import_ta_series.crossover,
|
|
61
|
+
crossunder: () => import_ta_series.crossunder,
|
|
62
|
+
cum: () => import_ta_series.cum,
|
|
63
|
+
div: () => import_utils.div,
|
|
64
|
+
ema: () => import_ta_series.ema,
|
|
65
|
+
exp: () => import_math.exp,
|
|
66
|
+
fixnan: () => import_utils2.fixnan,
|
|
67
|
+
floor: () => import_math.floor,
|
|
68
|
+
getClose: () => import_utils.getClose,
|
|
69
|
+
getContext: () => import_runtime.getContext,
|
|
70
|
+
getHigh: () => import_utils.getHigh,
|
|
71
|
+
getLow: () => import_utils.getLow,
|
|
72
|
+
getOpen: () => import_utils.getOpen,
|
|
73
|
+
getSource: () => import_utils.getSource,
|
|
74
|
+
getSourceSeries: () => import_utils.getSourceSeries,
|
|
75
|
+
hline: () => import_runtime.hline,
|
|
76
|
+
indicator: () => import_indicator.indicator,
|
|
77
|
+
info: () => info,
|
|
78
|
+
input: () => import_input.input,
|
|
79
|
+
input_bool: () => import_inputs.input_bool,
|
|
80
|
+
input_float: () => import_inputs.input_float,
|
|
81
|
+
input_int: () => import_inputs.input_int,
|
|
82
|
+
input_session: () => import_inputs.input_session,
|
|
83
|
+
input_source: () => import_inputs.input_source,
|
|
84
|
+
input_string: () => import_inputs.input_string,
|
|
85
|
+
input_time: () => import_inputs.input_time,
|
|
86
|
+
input_timeframe: () => import_inputs.input_timeframe,
|
|
87
|
+
label: () => label,
|
|
88
|
+
line: () => line,
|
|
89
|
+
linefill: () => linefill,
|
|
90
|
+
log: () => import_math.log,
|
|
91
|
+
macd: () => import_ta_series.macd,
|
|
92
|
+
map: () => map,
|
|
93
|
+
math: () => math,
|
|
94
|
+
matrix: () => matrix,
|
|
95
|
+
max: () => import_math.max,
|
|
96
|
+
min: () => import_math.min,
|
|
97
|
+
na: () => import_utils2.isNA,
|
|
98
|
+
new_color: () => import_color.new_color,
|
|
99
|
+
nz: () => import_utils2.nz,
|
|
100
|
+
ohlcFromBars: () => import_utils.ohlcFromBars,
|
|
101
|
+
plot: () => import_runtime.plot,
|
|
102
|
+
plotHelper: () => import_plot.plot,
|
|
103
|
+
polyline: () => polyline,
|
|
104
|
+
pow: () => import_math.pow,
|
|
105
|
+
recalculate: () => import_runtime.recalculate,
|
|
106
|
+
registerCalculate: () => import_runtime.registerCalculate,
|
|
107
|
+
rgb: () => import_color.rgb,
|
|
108
|
+
round: () => import_math.round,
|
|
109
|
+
rsi: () => import_ta_series.rsi,
|
|
110
|
+
setContext: () => import_runtime.setContext,
|
|
111
|
+
sin: () => import_math.sin,
|
|
112
|
+
sma: () => import_ta_series.sma,
|
|
113
|
+
sqrt: () => import_math.sqrt,
|
|
114
|
+
stdev: () => import_ta_series.stdev,
|
|
115
|
+
str: () => str,
|
|
116
|
+
sum: () => import_math.sum,
|
|
117
|
+
ta: () => ta,
|
|
118
|
+
taCore: () => taCore,
|
|
119
|
+
tan: () => import_math.tan,
|
|
120
|
+
text: () => text,
|
|
121
|
+
time: () => time,
|
|
122
|
+
timeframe: () => timeframe,
|
|
123
|
+
tr: () => import_ta_series.tr,
|
|
124
|
+
vwap: () => import_ta_series.vwap
|
|
125
|
+
});
|
|
126
|
+
module.exports = __toCommonJS(index_exports);
|
|
127
|
+
__reExport(index_exports, require("./types/index.js"), module.exports);
|
|
128
|
+
__reExport(index_exports, require("./types/metadata.js"), module.exports);
|
|
129
|
+
var taCore = __toESM(require("./ta/index.js"), 1);
|
|
130
|
+
var math = __toESM(require("./math/index.js"), 1);
|
|
131
|
+
var array = __toESM(require("./array/index.js"), 1);
|
|
132
|
+
var map = __toESM(require("./map/index.js"), 1);
|
|
133
|
+
var str = __toESM(require("./str/index.js"), 1);
|
|
134
|
+
var color = __toESM(require("./color/index.js"), 1);
|
|
135
|
+
var time = __toESM(require("./time/index.js"), 1);
|
|
136
|
+
var timeframe = __toESM(require("./timeframe/index.js"), 1);
|
|
137
|
+
var matrix = __toESM(require("./matrix/index.js"), 1);
|
|
138
|
+
var line = __toESM(require("./line/index.js"), 1);
|
|
139
|
+
var box = __toESM(require("./box/index.js"), 1);
|
|
140
|
+
var label = __toESM(require("./label/index.js"), 1);
|
|
141
|
+
var linefill = __toESM(require("./linefill/index.js"), 1);
|
|
142
|
+
var chartPoint = __toESM(require("./chartpoint/index.js"), 1);
|
|
143
|
+
var polyline = __toESM(require("./polyline/index.js"), 1);
|
|
144
|
+
var text = __toESM(require("./text/index.js"), 1);
|
|
145
|
+
var compare = __toESM(require("./compare/index.js"), 1);
|
|
146
|
+
var callsite = __toESM(require("./callsite/index.js"), 1);
|
|
147
|
+
var import_series = require("./runtime/series.js");
|
|
148
|
+
var ta = __toESM(require("./ta-series.js"), 1);
|
|
149
|
+
var import_ta_series = require("./ta-series.js");
|
|
150
|
+
var import_math = require("./math/index.js");
|
|
151
|
+
var import_color = require("./color/index.js");
|
|
152
|
+
var import_utils = require("./utils/index.js");
|
|
153
|
+
__reExport(index_exports, require("./lib/index.js"), module.exports);
|
|
154
|
+
var import_utils2 = require("./utils/index.js");
|
|
155
|
+
var import_indicator = require("./indicator.js");
|
|
156
|
+
var import_input = require("./input.js");
|
|
157
|
+
var import_plot = require("./plot.js");
|
|
158
|
+
var import_runtime = require("./runtime/runtime.js");
|
|
159
|
+
var import_inputs = require("./runtime/inputs.js");
|
|
160
|
+
var import_strategy = require("./strategy/index.js");
|
|
161
|
+
var import_LightweightChartsAdapter = require("./runtime/adapters/LightweightChartsAdapter.js");
|
|
162
|
+
var import_SimpleInputAdapter = require("./runtime/adapters/SimpleInputAdapter.js");
|
|
163
|
+
const VERSION = "0.9.1";
|
|
164
|
+
const info = {
|
|
165
|
+
name: "OakScriptJS",
|
|
166
|
+
version: VERSION,
|
|
167
|
+
description: "Simplified PineScript-like library - Series + TA functions",
|
|
168
|
+
features: {
|
|
169
|
+
series: "Lazy evaluation with Series class",
|
|
170
|
+
ta: "Technical analysis functions (Series and array-based)",
|
|
171
|
+
script: "PineScript-style script API (oakscriptjs/script): indicator, strategy, inputs, plots, request.security",
|
|
172
|
+
runtime: "Global context runtime drawing through a ChartAdapter",
|
|
173
|
+
indicator: "Indicator function with automatic pane management"
|
|
174
|
+
},
|
|
175
|
+
namespaces: {
|
|
176
|
+
core: ["ta", "math", "array", "map", "str", "color", "time", "timeframe", "matrix"],
|
|
177
|
+
drawing: ["line", "box", "label", "linefill", "chartPoint", "polyline", "text"],
|
|
178
|
+
runtime: ["setContext", "plot", "hline", "input_*"],
|
|
179
|
+
indicator: ["indicator", "input", "plotHelper", "createPlot"]
|
|
180
|
+
}
|
|
181
|
+
};
|
|
182
|
+
function alertcondition(_condition, _title, _message) {
|
|
183
|
+
}
|
|
184
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/index.ts"],
|
|
4
|
+
"sourcesContent": ["/**\n * OakScriptJS - Simplified PineScript-like library for JavaScript\n *\n * This library provides Series-based lazy evaluation and technical analysis functions\n * for building trading indicators. The PineScript-style script API is in `oakscriptjs/script`.\n *\n * Key features:\n * - Series class for lazy evaluation and method chaining\n * - Core TA functions (array-based)\n * - TA-Series wrappers (Series-based)\n *\n * @packageDocumentation\n */\n\n// Export all types\nexport * from './types/index.js';\nexport * from './types/metadata.js';\n\n// Export core namespaces (array-based functions)\nimport * as taCore from './ta/index.js';\nimport * as math from './math/index.js';\nimport * as array from './array/index.js';\nimport * as map from './map/index.js';\nimport * as str from './str/index.js';\nimport * as color from './color/index.js';\nimport * as time from './time/index.js';\nimport * as timeframe from './timeframe/index.js';\nimport * as matrix from './matrix/index.js';\nimport * as line from './line/index.js';\nimport * as box from './box/index.js';\nimport * as label from './label/index.js';\nimport * as linefill from './linefill/index.js';\nimport * as chartPoint from './chartpoint/index.js';\nimport * as polyline from './polyline/index.js';\nimport * as text from './text/index.js';\nimport * as compare from './compare/index.js';\nimport * as callsite from './callsite/index.js';\n\nexport { taCore, math, array, map, str, color, time, timeframe, matrix, line, box, label, linefill, chartPoint, polyline, text, compare, callsite };\n\n// Export Series class (self-contained, no context)\nexport { Series, BarData } from './runtime/series.js';\nexport type { SeriesExtractor } from './runtime/series.js';\n\n// Export TA-Series namespace (Series-based wrappers)\nimport * as ta from './ta-series.js';\nexport { ta };\n\n// Export metadata types for indicator return values\nexport type {\n PlotOptions,\n HLineOptions,\n FillOptions,\n InputMetadata,\n PlotMetadata,\n IndicatorMetadata,\n TimeValue,\n PlotData,\n HLineData,\n FillData,\n FillGradient,\n IndicatorResult,\n IndicatorFactory,\n PlotStyle,\n LineStyle,\n PlotDisplay,\n InputType\n} from './types/metadata.js';\n\n// Re-export commonly used functions for convenience\nexport { sma, ema, rsi, macd, bb, stdev, crossover, crossunder, change, tr, atr, cum, vwap } from './ta-series.js';\nexport { abs, ceil, floor, round, max, min, avg, sum, sqrt, pow, exp, log, sin, cos, tan } from './math/index.js';\nexport { rgb, from_hex as color_from_hex, new_color } from './color/index.js';\n\n// Export chart data utilities\nexport { ohlcFromBars, getClose, getHigh, getLow, getOpen, getSource, getSourceSeries, at, div } from './utils/index.js';\n\n// Export libraries (ZigZag, etc.)\nexport * from './lib/index.js';\n\n// Export helper functions for generated indicators (PineScript compatibility)\nexport {isNA as na, nz, fixnan} from './utils/index.js';\n\n// Export indicator infrastructure\nexport {\n indicator,\n type IndicatorMetadataConfig,\n type InputDefinition,\n type IndicatorContext,\n type IndicatorInstance,\n type IndicatorConstructor,\n} from './indicator.js';\n\nexport {\n input,\n type InputValue,\n type IntInputOptions,\n type FloatInputOptions,\n type SourceInputOptions,\n type BoolInputOptions,\n type StringInputOptions,\n type TimeInputOptions,\n type SourceType,\n} from './input.js';\n\nexport {\n plot as plotHelper,\n createPlot,\n type Time,\n type TimeValuePair,\n type PlotOptions as PlotHelperOptions,\n type PlotResult,\n} from './plot.js';\n\n// Runtime exports - global context runtime (setContext, plot, hline) drawing through a ChartAdapter\nexport {\n setContext,\n clearContext,\n getContext,\n registerCalculate,\n recalculate,\n plot,\n hline,\n clearPlots,\n} from './runtime/runtime.js';\n\nexport {\n input_int,\n input_float,\n input_bool,\n input_string,\n input_source,\n input_timeframe,\n input_session,\n input_time,\n} from './runtime/inputs.js';\n\nexport type {\n OakScriptContext,\n ChartAdapter,\n InputAdapter,\n SeriesHandle,\n SeriesOptions,\n InputConfig,\n InputOptions,\n OhlcvData,\n PlotConfig,\n HLineConfig,\n FillConfig,\n ArrowConfig,\n} from './runtime/types.js';\n\n// Strategy types and constants (the script API forwards strategy.* calls to a host engine)\nexport {\n STRATEGY_CONSTANTS,\n STRATEGY_DEFAULTS,\n STRATEGY_NUMBER_VARIABLES,\n STRATEGY_TEXT_VARIABLES,\n} from './strategy/index.js';\nexport type * from './strategy/index.js';\n\nexport { LightweightChartsAdapter } from './runtime/adapters/LightweightChartsAdapter.js';\nexport type { LightweightSeriesDefinitions } from './runtime/adapters/LightweightChartsAdapter.js';\nexport { SimpleInputAdapter } from './runtime/adapters/SimpleInputAdapter.js';\n\n// Version\nexport const VERSION = '0.9.1';\n\n/**\n * Library information\n */\nexport const info = {\n name: 'OakScriptJS',\n version: VERSION,\n description: 'Simplified PineScript-like library - Series + TA functions',\n features: {\n series: 'Lazy evaluation with Series class',\n ta: 'Technical analysis functions (Series and array-based)',\n script: 'PineScript-style script API (oakscriptjs/script): indicator, strategy, inputs, plots, request.security',\n runtime: 'Global context runtime drawing through a ChartAdapter',\n indicator: 'Indicator function with automatic pane management'\n },\n namespaces: {\n core: ['ta', 'math', 'array', 'map', 'str', 'color', 'time', 'timeframe', 'matrix'],\n drawing: ['line', 'box', 'label', 'linefill', 'chartPoint', 'polyline', 'text'],\n runtime: ['setContext', 'plot', 'hline', 'input_*'],\n indicator: ['indicator', 'input', 'plotHelper', 'createPlot']\n }\n};\n\n// PineScript compatibility stubs - functions that have no runtime effect\n// These are no-ops so that PineScript-style code runs without modification\n\n/**\n * alertcondition() - Stub for PineScript alert configuration\n * In PineScript, this registers an alert condition. In oakscriptjs, it's a no-op\n * since alert configuration is handled by the host application.\n */\nexport function alertcondition(_condition: unknown, _title?: string, _message?: string): void {\n // No-op: Alert conditions are handled by the host application\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAeA,0BAAc,6BAfd;AAgBA,0BAAc,gCAhBd;AAmBA,aAAwB;AACxB,WAAsB;AACtB,YAAuB;AACvB,UAAqB;AACrB,UAAqB;AACrB,YAAuB;AACvB,WAAsB;AACtB,gBAA2B;AAC3B,aAAwB;AACxB,WAAsB;AACtB,UAAqB;AACrB,YAAuB;AACvB,eAA0B;AAC1B,iBAA4B;AAC5B,eAA0B;AAC1B,WAAsB;AACtB,cAAyB;AACzB,eAA0B;AAK1B,oBAAgC;AAIhC,SAAoB;AAyBpB,uBAAkG;AAClG,kBAAgG;AAChG,mBAA2D;AAG3D,mBAAsG;AAGtG,0BAAc,2BA9Ed;AAiFA,IAAAA,gBAAqC;AAGrC,uBAOO;AAEP,mBAUO;AAEP,kBAOO;AAGP,qBASO;AAEP,oBASO;AAkBP,sBAKO;AAGP,sCAAyC;AAEzC,gCAAmC;AAG5B,MAAM,UAAU;AAKhB,MAAM,OAAO;AAAA,EAClB,MAAM;AAAA,EACN,SAAS;AAAA,EACT,aAAa;AAAA,EACb,UAAU;AAAA,IACR,QAAQ;AAAA,IACR,IAAI;AAAA,IACJ,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,WAAW;AAAA,EACb;AAAA,EACA,YAAY;AAAA,IACV,MAAM,CAAC,MAAM,QAAQ,SAAS,OAAO,OAAO,SAAS,QAAQ,aAAa,QAAQ;AAAA,IAClF,SAAS,CAAC,QAAQ,OAAO,SAAS,YAAY,cAAc,YAAY,MAAM;AAAA,IAC9E,SAAS,CAAC,cAAc,QAAQ,SAAS,SAAS;AAAA,IAClD,WAAW,CAAC,aAAa,SAAS,cAAc,YAAY;AAAA,EAC9D;AACF;AAUO,SAAS,eAAe,YAAqB,QAAiB,UAAyB;AAE9F;",
|
|
6
|
+
"names": ["import_utils"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Indicator function for creating reusable technical indicators
|
|
3
|
+
* This module provides the `indicator()` function that handles pane management
|
|
4
|
+
* automatically based on the overlay metadata.
|
|
5
|
+
* @module indicator
|
|
6
|
+
*/
|
|
7
|
+
import type { Bar } from './types/index.js';
|
|
8
|
+
/**
|
|
9
|
+
* Indicator metadata that defines how the indicator should be displayed
|
|
10
|
+
*/
|
|
11
|
+
export interface IndicatorMetadataConfig {
|
|
12
|
+
/** Full title of the indicator */
|
|
13
|
+
title: string;
|
|
14
|
+
/** Short title (for compact display) */
|
|
15
|
+
shortTitle?: string;
|
|
16
|
+
/** If true, overlay on price chart; if false, create separate pane (default: false) */
|
|
17
|
+
overlay?: boolean;
|
|
18
|
+
/** Number format for values */
|
|
19
|
+
format?: 'price' | 'percent' | 'volume';
|
|
20
|
+
/** Decimal precision for displayed values */
|
|
21
|
+
precision?: number;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Input definition for indicator parameters
|
|
25
|
+
*/
|
|
26
|
+
export interface InputDefinition {
|
|
27
|
+
/** Unique identifier for the input */
|
|
28
|
+
name: string;
|
|
29
|
+
/** Input type */
|
|
30
|
+
type: 'int' | 'float' | 'source' | 'bool' | 'string';
|
|
31
|
+
/** Display title */
|
|
32
|
+
title: string;
|
|
33
|
+
/** Default value */
|
|
34
|
+
defaultValue: number | string | boolean;
|
|
35
|
+
/** Minimum value (for numeric inputs) */
|
|
36
|
+
min?: number;
|
|
37
|
+
/** Maximum value (for numeric inputs) */
|
|
38
|
+
max?: number;
|
|
39
|
+
/** Step size (for numeric inputs) */
|
|
40
|
+
step?: number;
|
|
41
|
+
/** Available options (for source/string types) */
|
|
42
|
+
options?: string[];
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Context provided to indicator setup/compute functions
|
|
46
|
+
*/
|
|
47
|
+
export interface IndicatorContext {
|
|
48
|
+
/** Bar data for calculation */
|
|
49
|
+
readonly data: Bar[];
|
|
50
|
+
/** Open prices array */
|
|
51
|
+
readonly open: number[];
|
|
52
|
+
/** High prices array */
|
|
53
|
+
readonly high: number[];
|
|
54
|
+
/** Low prices array */
|
|
55
|
+
readonly low: number[];
|
|
56
|
+
/** Close prices array */
|
|
57
|
+
readonly close: number[];
|
|
58
|
+
/** Volume array */
|
|
59
|
+
readonly volume: number[];
|
|
60
|
+
/** Time values array */
|
|
61
|
+
readonly time: number[];
|
|
62
|
+
/** Pane index (0 for overlay, higher for separate panes) */
|
|
63
|
+
readonly paneIndex: number;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Instance of a created indicator
|
|
67
|
+
*/
|
|
68
|
+
export interface IndicatorInstance {
|
|
69
|
+
/** Indicator metadata */
|
|
70
|
+
readonly metadata: IndicatorMetadataConfig;
|
|
71
|
+
/** Get the pane index for this indicator */
|
|
72
|
+
getPaneIndex(): number;
|
|
73
|
+
/** Check if this is an overlay indicator */
|
|
74
|
+
isOverlay(): boolean;
|
|
75
|
+
/** Get input definitions */
|
|
76
|
+
getInputs(): InputDefinition[];
|
|
77
|
+
/** Update input values */
|
|
78
|
+
updateInputs(inputs: Record<string, number | string | boolean>): void;
|
|
79
|
+
/** Get current input values */
|
|
80
|
+
getInputValues(): Record<string, number | string | boolean>;
|
|
81
|
+
/** Calculate indicator with given bar data */
|
|
82
|
+
calculate(data: Bar[]): void;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Indicator class constructor type
|
|
86
|
+
*/
|
|
87
|
+
export interface IndicatorConstructor {
|
|
88
|
+
new (): IndicatorInstance;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Creates an indicator class that handles pane management automatically.
|
|
92
|
+
*
|
|
93
|
+
* When `overlay: false` (default), the indicator will be displayed in a separate pane.
|
|
94
|
+
* When `overlay: true`, the indicator will be overlaid on the main price chart.
|
|
95
|
+
*
|
|
96
|
+
* @param metadata - Indicator metadata (title, overlay setting, etc.)
|
|
97
|
+
* @param setup - Setup function that receives the indicator context and defines calculations
|
|
98
|
+
* @returns A class constructor for creating indicator instances
|
|
99
|
+
*
|
|
100
|
+
* @example
|
|
101
|
+
* ```typescript
|
|
102
|
+
* const SMAIndicator = indicator({
|
|
103
|
+
* title: 'Simple Moving Average',
|
|
104
|
+
* shortTitle: 'SMA',
|
|
105
|
+
* overlay: true, // Display on price chart
|
|
106
|
+
* }, (ctx) => {
|
|
107
|
+
* const length = 9;
|
|
108
|
+
* const sma = ta.sma(ctx.close, length);
|
|
109
|
+
* // Plot or return data...
|
|
110
|
+
* });
|
|
111
|
+
*
|
|
112
|
+
* const instance = new SMAIndicator();
|
|
113
|
+
* instance.calculate(barData);
|
|
114
|
+
* ```
|
|
115
|
+
*/
|
|
116
|
+
export declare function indicator(metadata: IndicatorMetadataConfig, setup: (ctx: IndicatorContext) => void): IndicatorConstructor;
|
|
117
|
+
//# sourceMappingURL=indicator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"indicator.d.ts","sourceRoot":"","sources":["../../src/indicator.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAE5C;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,kCAAkC;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,wCAAwC;IACxC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,uFAAuF;IACvF,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,+BAA+B;IAC/B,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,QAAQ,CAAC;IACxC,6CAA6C;IAC7C,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,sCAAsC;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,iBAAiB;IACjB,IAAI,EAAE,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,CAAC;IACrD,oBAAoB;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,oBAAoB;IACpB,YAAY,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IACxC,yCAAyC;IACzC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,yCAAyC;IACzC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,qCAAqC;IACrC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,kDAAkD;IAClD,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,+BAA+B;IAC/B,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC;IACrB,wBAAwB;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC;IACxB,wBAAwB;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC;IACxB,uBAAuB;IACvB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC;IACvB,yBAAyB;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC;IACzB,mBAAmB;IACnB,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;IAC1B,wBAAwB;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC;IACxB,4DAA4D;IAC5D,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,yBAAyB;IACzB,QAAQ,CAAC,QAAQ,EAAE,uBAAuB,CAAC;IAC3C,4CAA4C;IAC5C,YAAY,IAAI,MAAM,CAAC;IACvB,4CAA4C;IAC5C,SAAS,IAAI,OAAO,CAAC;IACrB,4BAA4B;IAC5B,SAAS,IAAI,eAAe,EAAE,CAAC;IAC/B,0BAA0B;IAC1B,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,GAAG,IAAI,CAAC;IACtE,+BAA+B;IAC/B,cAAc,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;IAC5D,8CAA8C;IAC9C,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,QAAQ,iBAAiB,CAAC;CAC3B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,SAAS,CACvB,QAAQ,EAAE,uBAAuB,EACjC,KAAK,EAAE,CAAC,GAAG,EAAE,gBAAgB,KAAK,IAAI,GACrC,oBAAoB,CA2DtB"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var indicator_exports = {};
|
|
20
|
+
__export(indicator_exports, {
|
|
21
|
+
indicator: () => indicator
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(indicator_exports);
|
|
24
|
+
function indicator(metadata, setup) {
|
|
25
|
+
const normalizedMetadata = {
|
|
26
|
+
title: metadata.title,
|
|
27
|
+
shortTitle: metadata.shortTitle ?? metadata.title,
|
|
28
|
+
overlay: metadata.overlay ?? false,
|
|
29
|
+
// Default to separate pane
|
|
30
|
+
format: metadata.format ?? "price",
|
|
31
|
+
precision: metadata.precision ?? 2
|
|
32
|
+
};
|
|
33
|
+
return class {
|
|
34
|
+
metadata = normalizedMetadata;
|
|
35
|
+
inputDefinitions = [];
|
|
36
|
+
inputValues = {};
|
|
37
|
+
paneIndex = 0;
|
|
38
|
+
constructor() {
|
|
39
|
+
this.paneIndex = normalizedMetadata.overlay ? 0 : 1;
|
|
40
|
+
}
|
|
41
|
+
getPaneIndex() {
|
|
42
|
+
return this.paneIndex;
|
|
43
|
+
}
|
|
44
|
+
isOverlay() {
|
|
45
|
+
return normalizedMetadata.overlay ?? false;
|
|
46
|
+
}
|
|
47
|
+
getInputs() {
|
|
48
|
+
return [...this.inputDefinitions];
|
|
49
|
+
}
|
|
50
|
+
updateInputs(inputs) {
|
|
51
|
+
this.inputValues = { ...this.inputValues, ...inputs };
|
|
52
|
+
}
|
|
53
|
+
getInputValues() {
|
|
54
|
+
return { ...this.inputValues };
|
|
55
|
+
}
|
|
56
|
+
calculate(data) {
|
|
57
|
+
const ctx = this.createContext(data);
|
|
58
|
+
setup(ctx);
|
|
59
|
+
}
|
|
60
|
+
createContext(data) {
|
|
61
|
+
return {
|
|
62
|
+
data,
|
|
63
|
+
open: data.map((d) => d.open),
|
|
64
|
+
high: data.map((d) => d.high),
|
|
65
|
+
low: data.map((d) => d.low),
|
|
66
|
+
close: data.map((d) => d.close),
|
|
67
|
+
volume: data.map((d) => d.volume ?? 0),
|
|
68
|
+
time: data.map((d) => d.time),
|
|
69
|
+
paneIndex: this.paneIndex
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=indicator.js.map
|