oakscriptjs 0.8.1 → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +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 +392 -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 +61 -0
- package/dist/cjs/callsite/index.d.ts.map +1 -0
- package/dist/cjs/callsite/index.js +65 -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 +285 -0
- package/dist/cjs/color/index.d.ts.map +1 -0
- package/dist/cjs/color/index.js +143 -0
- package/dist/cjs/color/index.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 +987 -0
- package/dist/cjs/script/index.d.ts.map +1 -0
- package/dist/cjs/script/index.js +1169 -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 +1397 -0
- package/dist/cjs/ta/index.d.ts.map +1 -0
- package/dist/cjs/ta/index.js +1715 -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 +983 -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 +61 -0
- package/dist/esm/callsite/index.d.ts.map +1 -0
- package/dist/esm/callsite/index.js +97 -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 +285 -0
- package/dist/esm/color/index.d.ts.map +1 -0
- package/dist/esm/color/index.js +373 -0
- package/dist/esm/color/index.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 +987 -0
- package/dist/esm/script/index.d.ts.map +1 -0
- package/dist/esm/script/index.js +1289 -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 +1397 -0
- package/dist/esm/ta/index.d.ts.map +1 -0
- package/dist/esm/ta/index.js +3227 -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 +1056 -0
- package/src/box/index.ts +680 -0
- package/src/callsite/index.ts +104 -0
- package/src/chartpoint/index.ts +126 -0
- package/src/color/index.ts +411 -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 +1865 -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 +3580 -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 -7979
- package/dist/index.d.ts +0 -64
- package/dist/index.d.ts.map +0 -1
- package/dist/index.mjs +0 -7962
- 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 -122
- package/dist/runtime/types.d.ts.map +0 -1
- package/dist/script/index.cjs +0 -6372
- package/dist/script/index.d.ts +0 -709
- package/dist/script/index.d.ts.map +0 -1
- package/dist/script/index.mjs +0 -6355
- 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-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 -131
- 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,149 @@
|
|
|
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 dateformat_exports = {};
|
|
20
|
+
__export(dateformat_exports, {
|
|
21
|
+
formatDate: () => formatDate
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(dateformat_exports);
|
|
24
|
+
var import_timezone = require("../time/timezone.js");
|
|
25
|
+
const MONTHS = [
|
|
26
|
+
"January",
|
|
27
|
+
"February",
|
|
28
|
+
"March",
|
|
29
|
+
"April",
|
|
30
|
+
"May",
|
|
31
|
+
"June",
|
|
32
|
+
"July",
|
|
33
|
+
"August",
|
|
34
|
+
"September",
|
|
35
|
+
"October",
|
|
36
|
+
"November",
|
|
37
|
+
"December"
|
|
38
|
+
];
|
|
39
|
+
const DAYS = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"];
|
|
40
|
+
const pad = (n, width) => String(n).padStart(width, "0");
|
|
41
|
+
function zoneName(time, timezone, offsetMs) {
|
|
42
|
+
if (timezone === "Etc/UTC") return "UTC";
|
|
43
|
+
if (/^(UTC|GMT)/.test(timezone)) {
|
|
44
|
+
if (offsetMs === 0) return "GMT";
|
|
45
|
+
const minutes = Math.abs(offsetMs) / 6e4;
|
|
46
|
+
return `GMT${offsetMs < 0 ? "-" : "+"}${pad(Math.floor(minutes / 60), 2)}:${pad(minutes % 60, 2)}`;
|
|
47
|
+
}
|
|
48
|
+
const part = new Intl.DateTimeFormat("en-US", { timeZone: timezone, timeZoneName: "short" }).formatToParts(time).find((p) => p.type === "timeZoneName");
|
|
49
|
+
return part?.value ?? timezone;
|
|
50
|
+
}
|
|
51
|
+
function weekOfYear(year, month, day) {
|
|
52
|
+
const date = Date.UTC(year, month - 1, day);
|
|
53
|
+
const dow = new Date(date).getUTCDay();
|
|
54
|
+
const weekStart = date - dow * 864e5;
|
|
55
|
+
if (weekStart + 6 * 864e5 >= Date.UTC(year + 1, 0, 1)) return 1;
|
|
56
|
+
const jan1 = Date.UTC(year, 0, 1);
|
|
57
|
+
const jan1Dow = new Date(jan1).getUTCDay();
|
|
58
|
+
return Math.floor((date - jan1 + jan1Dow * 864e5) / (7 * 864e5)) + 1;
|
|
59
|
+
}
|
|
60
|
+
function formatDate(time, pattern, timezone) {
|
|
61
|
+
if (Number.isNaN(time)) return "NaN";
|
|
62
|
+
const f = (0, import_timezone.zonedFields)(time, timezone);
|
|
63
|
+
const offset = (0, import_timezone.zoneOffset)(time, timezone);
|
|
64
|
+
const ms = (time % 1e3 + 1e3) % 1e3;
|
|
65
|
+
const dayOfYear = (Date.UTC(f.year, f.month - 1, f.day) - Date.UTC(f.year, 0, 1)) / 864e5 + 1;
|
|
66
|
+
let out = "";
|
|
67
|
+
for (let i = 0; i < pattern.length; ) {
|
|
68
|
+
const ch = pattern[i];
|
|
69
|
+
if (ch === "'") {
|
|
70
|
+
const end = pattern.indexOf("'", i + 1);
|
|
71
|
+
if (end === i + 1) {
|
|
72
|
+
out += "'";
|
|
73
|
+
i += 2;
|
|
74
|
+
} else {
|
|
75
|
+
out += pattern.slice(i + 1, end === -1 ? void 0 : end);
|
|
76
|
+
i = end === -1 ? pattern.length : end + 1;
|
|
77
|
+
}
|
|
78
|
+
continue;
|
|
79
|
+
}
|
|
80
|
+
if (!/[A-Za-z]/.test(ch)) {
|
|
81
|
+
out += ch;
|
|
82
|
+
i++;
|
|
83
|
+
continue;
|
|
84
|
+
}
|
|
85
|
+
let n = 1;
|
|
86
|
+
while (pattern[i + n] === ch) n++;
|
|
87
|
+
i += n;
|
|
88
|
+
const hour12 = f.hour % 12;
|
|
89
|
+
switch (ch) {
|
|
90
|
+
case "y":
|
|
91
|
+
out += n === 2 ? pad(f.year % 100, 2) : pad(f.year, n);
|
|
92
|
+
break;
|
|
93
|
+
case "M":
|
|
94
|
+
out += n >= 4 ? MONTHS[f.month - 1] : n === 3 ? MONTHS[f.month - 1].slice(0, 3) : pad(f.month, n);
|
|
95
|
+
break;
|
|
96
|
+
case "d":
|
|
97
|
+
out += pad(f.day, n);
|
|
98
|
+
break;
|
|
99
|
+
case "E":
|
|
100
|
+
out += n >= 4 ? DAYS[f.dayOfWeek - 1] : DAYS[f.dayOfWeek - 1].slice(0, 3);
|
|
101
|
+
break;
|
|
102
|
+
case "u":
|
|
103
|
+
out += pad(f.dayOfWeek === 1 ? 7 : f.dayOfWeek - 1, n);
|
|
104
|
+
break;
|
|
105
|
+
case "D":
|
|
106
|
+
out += pad(dayOfYear, n);
|
|
107
|
+
break;
|
|
108
|
+
case "w":
|
|
109
|
+
out += pad(weekOfYear(f.year, f.month, f.day), n);
|
|
110
|
+
break;
|
|
111
|
+
case "H":
|
|
112
|
+
out += pad(f.hour, n);
|
|
113
|
+
break;
|
|
114
|
+
case "k":
|
|
115
|
+
out += pad(f.hour === 0 ? 24 : f.hour, n);
|
|
116
|
+
break;
|
|
117
|
+
case "K":
|
|
118
|
+
out += pad(hour12, n);
|
|
119
|
+
break;
|
|
120
|
+
case "h":
|
|
121
|
+
out += pad(hour12 === 0 ? 12 : hour12, n);
|
|
122
|
+
break;
|
|
123
|
+
case "a":
|
|
124
|
+
out += f.hour < 12 ? "AM" : "PM";
|
|
125
|
+
break;
|
|
126
|
+
case "m":
|
|
127
|
+
out += pad(f.minute, n);
|
|
128
|
+
break;
|
|
129
|
+
case "s":
|
|
130
|
+
out += pad(f.second, n);
|
|
131
|
+
break;
|
|
132
|
+
case "S":
|
|
133
|
+
out += pad(ms, n);
|
|
134
|
+
break;
|
|
135
|
+
case "Z": {
|
|
136
|
+
const minutes = Math.abs(offset) / 6e4;
|
|
137
|
+
out += (offset < 0 ? "-" : "+") + pad(Math.floor(minutes / 60), 2) + pad(minutes % 60, 2);
|
|
138
|
+
break;
|
|
139
|
+
}
|
|
140
|
+
case "z":
|
|
141
|
+
out += zoneName(time, timezone, offset);
|
|
142
|
+
break;
|
|
143
|
+
default:
|
|
144
|
+
throw new SyntaxError(`Unsupported date pattern letter "${ch}" in "${pattern}"`);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
return out;
|
|
148
|
+
}
|
|
149
|
+
//# sourceMappingURL=dateformat.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/str/dateformat.ts"],
|
|
4
|
+
"sourcesContent": ["/**\n * Date patterns of `str.format_time` and `str.format(\"{0,date,...}\")`, as PineScript formats them\n * (Java SimpleDateFormat letters, English names):\n *\n * y year, M month (M, MM, MMM, MMMM), d day, E weekday (EEE, EEEE), u weekday number (1 = Monday),\n * D day of year, w week of year (weeks start on Sunday, week 1 contains 1 January), H hour 0-23,\n * k hour 1-24, K hour 0-11, h hour 1-12, a AM/PM, m minute, s second, S millisecond,\n * Z offset (+0530), z time zone name, 'text' literal text ('' is a quote).\n *\n * `z` gives \"UTC\" for Etc/UTC, \"GMT\" for \"UTC\"/\"GMT\", \"GMT+05:00\" for other offsets, and the\n * host's short English name for IANA zones (PineScript's names can differ, e.g. \"IST\" for Asia/Kolkata).\n */\n\nimport { zonedFields, zoneOffset } from '../time/timezone.js';\n\nconst MONTHS = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September',\n 'October', 'November', 'December'];\nconst DAYS = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];\n\nconst pad = (n: number, width: number): string => String(n).padStart(width, '0');\n\nfunction zoneName(time: number, timezone: string, offsetMs: number): string {\n if (timezone === 'Etc/UTC') return 'UTC';\n if (/^(UTC|GMT)/.test(timezone)) {\n if (offsetMs === 0) return 'GMT';\n const minutes = Math.abs(offsetMs) / 60000;\n return `GMT${offsetMs < 0 ? '-' : '+'}${pad(Math.floor(minutes / 60), 2)}:${pad(minutes % 60, 2)}`;\n }\n const part = new Intl.DateTimeFormat('en-US', { timeZone: timezone, timeZoneName: 'short' })\n .formatToParts(time)\n .find((p) => p.type === 'timeZoneName');\n return part?.value ?? timezone;\n}\n\n/** Week of year: weeks start on Sunday and week 1 is the week that contains 1 January. */\nfunction weekOfYear(year: number, month: number, day: number): number {\n const date = Date.UTC(year, month - 1, day);\n const dow = new Date(date).getUTCDay();\n const weekStart = date - dow * 86_400_000;\n // the week that contains 1 January of the next year is week 1\n if (weekStart + 6 * 86_400_000 >= Date.UTC(year + 1, 0, 1)) return 1;\n const jan1 = Date.UTC(year, 0, 1);\n const jan1Dow = new Date(jan1).getUTCDay();\n return Math.floor((date - jan1 + jan1Dow * 86_400_000) / (7 * 86_400_000)) + 1;\n}\n\n/** Formats a UNIX time (ms) with a SimpleDateFormat pattern in `timezone`. */\nexport function formatDate(time: number, pattern: string, timezone: string): string {\n if (Number.isNaN(time)) return 'NaN';\n const f = zonedFields(time, timezone);\n const offset = zoneOffset(time, timezone);\n const ms = ((time % 1000) + 1000) % 1000;\n const dayOfYear = (Date.UTC(f.year, f.month - 1, f.day) - Date.UTC(f.year, 0, 1)) / 86_400_000 + 1;\n\n let out = '';\n for (let i = 0; i < pattern.length; ) {\n const ch = pattern[i]!;\n if (ch === \"'\") {\n const end = pattern.indexOf(\"'\", i + 1);\n if (end === i + 1) {\n out += \"'\";\n i += 2;\n } else {\n out += pattern.slice(i + 1, end === -1 ? undefined : end);\n i = end === -1 ? pattern.length : end + 1;\n }\n continue;\n }\n if (!/[A-Za-z]/.test(ch)) {\n out += ch;\n i++;\n continue;\n }\n let n = 1;\n while (pattern[i + n] === ch) n++;\n i += n;\n const hour12 = f.hour % 12;\n switch (ch) {\n case 'y': out += n === 2 ? pad(f.year % 100, 2) : pad(f.year, n); break;\n case 'M': out += n >= 4 ? MONTHS[f.month - 1] : n === 3 ? MONTHS[f.month - 1]!.slice(0, 3) : pad(f.month, n); break;\n case 'd': out += pad(f.day, n); break;\n case 'E': out += n >= 4 ? DAYS[f.dayOfWeek - 1] : DAYS[f.dayOfWeek - 1]!.slice(0, 3); break;\n case 'u': out += pad(f.dayOfWeek === 1 ? 7 : f.dayOfWeek - 1, n); break;\n case 'D': out += pad(dayOfYear, n); break;\n case 'w': out += pad(weekOfYear(f.year, f.month, f.day), n); break;\n case 'H': out += pad(f.hour, n); break;\n case 'k': out += pad(f.hour === 0 ? 24 : f.hour, n); break;\n case 'K': out += pad(hour12, n); break;\n case 'h': out += pad(hour12 === 0 ? 12 : hour12, n); break;\n case 'a': out += f.hour < 12 ? 'AM' : 'PM'; break;\n case 'm': out += pad(f.minute, n); break;\n case 's': out += pad(f.second, n); break;\n case 'S': out += pad(ms, n); break;\n case 'Z': {\n const minutes = Math.abs(offset) / 60000;\n out += (offset < 0 ? '-' : '+') + pad(Math.floor(minutes / 60), 2) + pad(minutes % 60, 2);\n break;\n }\n case 'z': out += zoneName(time, timezone, offset); break;\n default: throw new SyntaxError(`Unsupported date pattern letter \"${ch}\" in \"${pattern}\"`);\n }\n }\n return out;\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,459 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* String namespace
|
|
3
|
+
* Mirrors PineScript's str.* functions for string manipulation and analysis.
|
|
4
|
+
*
|
|
5
|
+
* @remarks
|
|
6
|
+
* All string functions in this namespace follow PineScript v6 API specifications.
|
|
7
|
+
* String operations are case-sensitive unless otherwise specified.
|
|
8
|
+
*
|
|
9
|
+
* @version 6
|
|
10
|
+
*/
|
|
11
|
+
import type { int, bool, float, simple_int, simple_string } from '../types/index.js';
|
|
12
|
+
/**
|
|
13
|
+
* Returns the length of a string.
|
|
14
|
+
*
|
|
15
|
+
* @param str - The string to measure
|
|
16
|
+
* @returns The number of characters in the string
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* ```typescript
|
|
20
|
+
* str.length("Hello") // Returns: 5
|
|
21
|
+
* str.length("") // Returns: 0
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
24
|
+
export declare function length(str: simple_string): int;
|
|
25
|
+
/**
|
|
26
|
+
* Converts a value to its string representation (PineScript `str.tostring`).
|
|
27
|
+
*
|
|
28
|
+
* @param value - The value to convert (number, boolean, string, etc.)
|
|
29
|
+
* @param format - Optional number format: a pattern ("#.##", "#,###.00", "0.00%", "0.00E0") or
|
|
30
|
+
* `format.percent` ("percent"), `format.volume` ("volume"), `format.price` / `format.inherit`
|
|
31
|
+
* @returns String representation of the value
|
|
32
|
+
*
|
|
33
|
+
* @remarks
|
|
34
|
+
* As in PineScript:
|
|
35
|
+
* - without format, numbers show up to 10 decimals ("0.3333333333"); 1e21 and more use "1E21"
|
|
36
|
+
* - patterns round half away from zero on the shortest decimal form: 1.005 with "#.##" gives "1.01"
|
|
37
|
+
* - "#" is an optional digit ("1.5" with "#.##"), "0" a required digit ("1.50" with "0.00"),
|
|
38
|
+
* "," groups thousands, "%" multiplies by 100, 'text' is literal text
|
|
39
|
+
* - `format.percent` shows 2 decimals and "%" without multiplying; `format.volume` uses K, M, B, T
|
|
40
|
+
* - `format.price` and `format.inherit` give "price1" / "inherit1" in PineScript: they are patterns
|
|
41
|
+
* without digit characters, and oakscriptjs does the same
|
|
42
|
+
* - `format.mintick` needs the symbol's tick size and throws here
|
|
43
|
+
*
|
|
44
|
+
* @example
|
|
45
|
+
* ```typescript
|
|
46
|
+
* str.tostring(123) // "123"
|
|
47
|
+
* str.tostring(1.5, "#.##") // "1.5"
|
|
48
|
+
* str.tostring(0.5, "#.00") // ".50"
|
|
49
|
+
* str.tostring(12345.678, format.volume) // "12.346K"
|
|
50
|
+
* ```
|
|
51
|
+
*/
|
|
52
|
+
export declare function tostring(value: any, format?: simple_string): string;
|
|
53
|
+
/**
|
|
54
|
+
* Converts a string to a number (float).
|
|
55
|
+
*
|
|
56
|
+
* @param str - The string to convert
|
|
57
|
+
* @returns The numeric value, or null if conversion fails
|
|
58
|
+
*
|
|
59
|
+
* @remarks
|
|
60
|
+
* - Returns null for invalid number strings
|
|
61
|
+
* - Supports scientific notation (e.g., "1e3")
|
|
62
|
+
* - Supports decimal numbers (e.g., "0.5", ".5")
|
|
63
|
+
* - Whitespace is ignored
|
|
64
|
+
* - "NaN" string returns null
|
|
65
|
+
*
|
|
66
|
+
* @example
|
|
67
|
+
* ```typescript
|
|
68
|
+
* str.tonumber("123") // Returns: 123
|
|
69
|
+
* str.tonumber("45.67") // Returns: 45.67
|
|
70
|
+
* str.tonumber("abc") // Returns: null
|
|
71
|
+
* str.tonumber("1e3") // Returns: 1000
|
|
72
|
+
* ```
|
|
73
|
+
*/
|
|
74
|
+
export declare function tonumber(str: simple_string): float | null;
|
|
75
|
+
/**
|
|
76
|
+
* Extracts a substring from a string.
|
|
77
|
+
*
|
|
78
|
+
* @param str - The source string
|
|
79
|
+
* @param begin - Starting index (0-based, inclusive)
|
|
80
|
+
* @param end - Ending index (0-based, exclusive). If omitted, extracts to end of string
|
|
81
|
+
* @returns The extracted substring
|
|
82
|
+
*
|
|
83
|
+
* @remarks
|
|
84
|
+
* - If begin > end, indices are swapped (JavaScript behavior)
|
|
85
|
+
* - Negative indices are treated as 0
|
|
86
|
+
* - Indices beyond string length return empty string
|
|
87
|
+
*
|
|
88
|
+
* @example
|
|
89
|
+
* ```typescript
|
|
90
|
+
* str.substring("hello world", 0, 5) // Returns: "hello"
|
|
91
|
+
* str.substring("hello world", 6) // Returns: "world"
|
|
92
|
+
* str.substring("test", 1, 3) // Returns: "es"
|
|
93
|
+
* ```
|
|
94
|
+
*/
|
|
95
|
+
export declare function substring(str: simple_string, begin: simple_int, end?: simple_int): string;
|
|
96
|
+
/**
|
|
97
|
+
* Converts all characters in a string to uppercase.
|
|
98
|
+
*
|
|
99
|
+
* @param str - The string to convert
|
|
100
|
+
* @returns The uppercase string
|
|
101
|
+
*
|
|
102
|
+
* @example
|
|
103
|
+
* ```typescript
|
|
104
|
+
* str.upper("hello") // Returns: "HELLO"
|
|
105
|
+
* str.upper("Hello World") // Returns: "HELLO WORLD"
|
|
106
|
+
* str.upper("test123") // Returns: "TEST123"
|
|
107
|
+
* ```
|
|
108
|
+
*/
|
|
109
|
+
export declare function upper(str: simple_string): string;
|
|
110
|
+
/**
|
|
111
|
+
* Converts all characters in a string to lowercase.
|
|
112
|
+
*
|
|
113
|
+
* @param str - The string to convert
|
|
114
|
+
* @returns The lowercase string
|
|
115
|
+
*
|
|
116
|
+
* @example
|
|
117
|
+
* ```typescript
|
|
118
|
+
* str.lower("HELLO") // Returns: "hello"
|
|
119
|
+
* str.lower("Hello World") // Returns: "hello world"
|
|
120
|
+
* str.lower("TEST123") // Returns: "test123"
|
|
121
|
+
* ```
|
|
122
|
+
*/
|
|
123
|
+
export declare function lower(str: simple_string): string;
|
|
124
|
+
/**
|
|
125
|
+
* Checks if a string contains a substring.
|
|
126
|
+
*
|
|
127
|
+
* @param source - The string to search in
|
|
128
|
+
* @param str - The substring to search for
|
|
129
|
+
* @returns True if source contains str, false otherwise
|
|
130
|
+
*
|
|
131
|
+
* @remarks
|
|
132
|
+
* - Search is case-sensitive
|
|
133
|
+
* - Empty string is contained in any string
|
|
134
|
+
*
|
|
135
|
+
* @example
|
|
136
|
+
* ```typescript
|
|
137
|
+
* str.contains("hello world", "world") // Returns: true
|
|
138
|
+
* str.contains("hello world", "World") // Returns: false (case-sensitive)
|
|
139
|
+
* str.contains("test", "xyz") // Returns: false
|
|
140
|
+
* ```
|
|
141
|
+
*/
|
|
142
|
+
export declare function contains(source: simple_string, str: simple_string): bool;
|
|
143
|
+
/**
|
|
144
|
+
* Returns the position of the first occurrence of a substring.
|
|
145
|
+
*
|
|
146
|
+
* @param source - The string to search in
|
|
147
|
+
* @param str - The substring to search for
|
|
148
|
+
* @returns The 0-based index of the first occurrence, or -1 if not found
|
|
149
|
+
*
|
|
150
|
+
* @remarks
|
|
151
|
+
* - Search is case-sensitive
|
|
152
|
+
* - Returns 0 for empty search string
|
|
153
|
+
* - Returns -1 if substring is not found
|
|
154
|
+
*
|
|
155
|
+
* @example
|
|
156
|
+
* ```typescript
|
|
157
|
+
* str.pos("hello world", "world") // Returns: 6
|
|
158
|
+
* str.pos("hello world", "o") // Returns: 4 (first occurrence)
|
|
159
|
+
* str.pos("hello", "xyz") // Returns: -1
|
|
160
|
+
* ```
|
|
161
|
+
*/
|
|
162
|
+
export declare function pos(source: simple_string, str: simple_string): int;
|
|
163
|
+
/**
|
|
164
|
+
* Replaces occurrences of a substring with another string.
|
|
165
|
+
*
|
|
166
|
+
* @param source - The source string
|
|
167
|
+
* @param target - The substring to replace
|
|
168
|
+
* @param replacement - The string to replace with
|
|
169
|
+
* @param occurrence - If 0, replaces first occurrence only; otherwise replaces all occurrences (default: all)
|
|
170
|
+
* @returns The string with replacements made
|
|
171
|
+
*
|
|
172
|
+
* @remarks
|
|
173
|
+
* - Search is case-sensitive
|
|
174
|
+
* - If target is not found, returns source unchanged
|
|
175
|
+
* - occurrence parameter: 0 = first only, any other value = all occurrences
|
|
176
|
+
*
|
|
177
|
+
* @example
|
|
178
|
+
* ```typescript
|
|
179
|
+
* str.replace("hello world hello", "hello", "hi", 0) // Returns: "hi world hello"
|
|
180
|
+
* str.replace("hello world hello", "hello", "hi") // Returns: "hi world hi"
|
|
181
|
+
* str.replace("test", "xyz", "abc") // Returns: "test"
|
|
182
|
+
* ```
|
|
183
|
+
*/
|
|
184
|
+
export declare function replace(source: simple_string, target: simple_string, replacement: simple_string, occurrence?: simple_int): string;
|
|
185
|
+
/**
|
|
186
|
+
* Replaces all occurrences of a target string with a replacement string.
|
|
187
|
+
*
|
|
188
|
+
* @param source - The source string
|
|
189
|
+
* @param target - The substring to find
|
|
190
|
+
* @param replacement - The replacement string
|
|
191
|
+
* @returns String with all occurrences replaced
|
|
192
|
+
*
|
|
193
|
+
* @remarks
|
|
194
|
+
* - Replaces all occurrences of the target string
|
|
195
|
+
* - Case sensitive
|
|
196
|
+
* - If target is empty string, returns original string
|
|
197
|
+
* - This matches PineScript's `str.replace_all()` behavior
|
|
198
|
+
*
|
|
199
|
+
* @example
|
|
200
|
+
* ```typescript
|
|
201
|
+
* str.replace_all("hello world hello", "hello", "hi") // Returns: "hi world hi"
|
|
202
|
+
* str.replace_all("a-b-c", "-", "_") // Returns: "a_b_c"
|
|
203
|
+
* str.replace_all("test", "x", "y") // Returns: "test" (no match)
|
|
204
|
+
* ```
|
|
205
|
+
*/
|
|
206
|
+
export declare function replace_all(source: simple_string, target: simple_string, replacement: simple_string): string;
|
|
207
|
+
/**
|
|
208
|
+
* Splits a string into an array of substrings using a separator.
|
|
209
|
+
*
|
|
210
|
+
* @param str - The string to split
|
|
211
|
+
* @param separator - The separator string
|
|
212
|
+
* @returns Array of substrings
|
|
213
|
+
*
|
|
214
|
+
* @remarks
|
|
215
|
+
* - Empty separator splits into individual characters
|
|
216
|
+
* - If separator is not found, returns array with original string
|
|
217
|
+
* - Consecutive separators create empty strings in result
|
|
218
|
+
*
|
|
219
|
+
* @example
|
|
220
|
+
* ```typescript
|
|
221
|
+
* str.split("a,b,c", ",") // Returns: ["a", "b", "c"]
|
|
222
|
+
* str.split("hello", "") // Returns: ["h", "e", "l", "l", "o"]
|
|
223
|
+
* str.split("a,,b", ",") // Returns: ["a", "", "b"]
|
|
224
|
+
* ```
|
|
225
|
+
*/
|
|
226
|
+
export declare function split(str: simple_string, separator: simple_string): string[];
|
|
227
|
+
/**
|
|
228
|
+
* Concatenates multiple strings into one.
|
|
229
|
+
*
|
|
230
|
+
* @param strings - Variable number of strings to concatenate
|
|
231
|
+
* @returns The concatenated string
|
|
232
|
+
*
|
|
233
|
+
* @example
|
|
234
|
+
* ```typescript
|
|
235
|
+
* str.concat("hello", " ", "world") // Returns: "hello world"
|
|
236
|
+
* str.concat("a", "b", "c") // Returns: "abc"
|
|
237
|
+
* str.concat("test") // Returns: "test"
|
|
238
|
+
* ```
|
|
239
|
+
*/
|
|
240
|
+
export declare function concat(...strings: simple_string[]): string;
|
|
241
|
+
/**
|
|
242
|
+
* Formats a string with placeholders (PineScript `str.format`, Java MessageFormat syntax).
|
|
243
|
+
*
|
|
244
|
+
* @param formatStr - Pattern with `{0}`, `{1,number,#.##}`, `{0,number,percent}`, `{0,date,yyyy-MM-dd}`...
|
|
245
|
+
* @param args - Values for the placeholders
|
|
246
|
+
* @returns Formatted string
|
|
247
|
+
*
|
|
248
|
+
* @remarks
|
|
249
|
+
* As in PineScript: numbers in `{n}` use
|
|
250
|
+
* "#,##0.###" (1234.5678 gives "1,234.568"); number patterns round half to even on the exact
|
|
251
|
+
* value; `'...'` is literal text and `''` a quote; a missing argument leaves `{n}` in the text.
|
|
252
|
+
* Dates are formatted in UTC here; PineScript uses the exchange time zone.
|
|
253
|
+
*
|
|
254
|
+
* @example
|
|
255
|
+
* ```typescript
|
|
256
|
+
* str.format('Close: {0,number,#.##}', 101.456) // "Close: 101.46"
|
|
257
|
+
* str.format('{0} and {1}', 'a', 2) // "a and 2"
|
|
258
|
+
* ```
|
|
259
|
+
*/
|
|
260
|
+
export declare function format(formatStr: simple_string, ...args: any[]): string;
|
|
261
|
+
/**
|
|
262
|
+
* Checks if a string starts with a specific prefix.
|
|
263
|
+
*
|
|
264
|
+
* @param source - The string to check
|
|
265
|
+
* @param str - The prefix to look for
|
|
266
|
+
* @returns True if source starts with str, false otherwise
|
|
267
|
+
*
|
|
268
|
+
* @remarks
|
|
269
|
+
* - Search is case-sensitive
|
|
270
|
+
* - Empty string prefix always returns true
|
|
271
|
+
*
|
|
272
|
+
* @example
|
|
273
|
+
* ```typescript
|
|
274
|
+
* str.startswith("hello world", "hello") // Returns: true
|
|
275
|
+
* str.startswith("hello world", "Hello") // Returns: false (case-sensitive)
|
|
276
|
+
* str.startswith("test", "testing") // Returns: false
|
|
277
|
+
* ```
|
|
278
|
+
*/
|
|
279
|
+
export declare function startswith(source: simple_string, str: simple_string): bool;
|
|
280
|
+
/**
|
|
281
|
+
* Checks if a string ends with a specific suffix.
|
|
282
|
+
*
|
|
283
|
+
* @param source - The string to check
|
|
284
|
+
* @param str - The suffix to look for
|
|
285
|
+
* @returns True if source ends with str, false otherwise
|
|
286
|
+
*
|
|
287
|
+
* @remarks
|
|
288
|
+
* - Search is case-sensitive
|
|
289
|
+
* - Empty string suffix always returns true
|
|
290
|
+
*
|
|
291
|
+
* @example
|
|
292
|
+
* ```typescript
|
|
293
|
+
* str.endswith("hello world", "world") // Returns: true
|
|
294
|
+
* str.endswith("hello world", "World") // Returns: false (case-sensitive)
|
|
295
|
+
* str.endswith("testing", "test") // Returns: false
|
|
296
|
+
* ```
|
|
297
|
+
*/
|
|
298
|
+
export declare function endswith(source: simple_string, str: simple_string): bool;
|
|
299
|
+
/**
|
|
300
|
+
* Returns the character at a specific position in a string.
|
|
301
|
+
*
|
|
302
|
+
* @param str - The source string
|
|
303
|
+
* @param pos - The 0-based position
|
|
304
|
+
* @returns The character at the position, or empty string if out of bounds
|
|
305
|
+
*
|
|
306
|
+
* @remarks
|
|
307
|
+
* - Returns empty string for negative or out-of-bounds positions
|
|
308
|
+
* - Unicode characters may span multiple code units
|
|
309
|
+
*
|
|
310
|
+
* @example
|
|
311
|
+
* ```typescript
|
|
312
|
+
* str.charAt("hello", 0) // Returns: "h"
|
|
313
|
+
* str.charAt("hello", 4) // Returns: "o"
|
|
314
|
+
* str.charAt("hello", 10) // Returns: ""
|
|
315
|
+
* ```
|
|
316
|
+
*/
|
|
317
|
+
export declare function charAt(str: simple_string, pos: simple_int): string;
|
|
318
|
+
/**
|
|
319
|
+
* Removes whitespace from both ends of a string.
|
|
320
|
+
*
|
|
321
|
+
* @param str - The string to trim
|
|
322
|
+
* @returns The trimmed string
|
|
323
|
+
*
|
|
324
|
+
* @remarks
|
|
325
|
+
* - Removes spaces, tabs, newlines, and other whitespace characters
|
|
326
|
+
* - Preserves internal whitespace
|
|
327
|
+
*
|
|
328
|
+
* @example
|
|
329
|
+
* ```typescript
|
|
330
|
+
* str.trim(" hello ") // Returns: "hello"
|
|
331
|
+
* str.trim(" hello world ") // Returns: "hello world"
|
|
332
|
+
* str.trim("\thello\n") // Returns: "hello"
|
|
333
|
+
* ```
|
|
334
|
+
*/
|
|
335
|
+
export declare function trim(str: simple_string): string;
|
|
336
|
+
/**
|
|
337
|
+
* Removes whitespace from the left (start) of a string.
|
|
338
|
+
*
|
|
339
|
+
* @param str - The string to trim
|
|
340
|
+
* @returns The trimmed string
|
|
341
|
+
*
|
|
342
|
+
* @remarks
|
|
343
|
+
* - Only removes leading whitespace
|
|
344
|
+
* - Preserves trailing and internal whitespace
|
|
345
|
+
*
|
|
346
|
+
* @example
|
|
347
|
+
* ```typescript
|
|
348
|
+
* str.trimLeft(" hello ") // Returns: "hello "
|
|
349
|
+
* str.trimLeft(" hello") // Returns: "hello"
|
|
350
|
+
* str.trimLeft("\thello") // Returns: "hello"
|
|
351
|
+
* ```
|
|
352
|
+
*/
|
|
353
|
+
export declare function trimLeft(str: simple_string): string;
|
|
354
|
+
/**
|
|
355
|
+
* Removes whitespace from the right (end) of a string.
|
|
356
|
+
*
|
|
357
|
+
* @param str - The string to trim
|
|
358
|
+
* @returns The trimmed string
|
|
359
|
+
*
|
|
360
|
+
* @remarks
|
|
361
|
+
* - Only removes trailing whitespace
|
|
362
|
+
* - Preserves leading and internal whitespace
|
|
363
|
+
*
|
|
364
|
+
* @example
|
|
365
|
+
* ```typescript
|
|
366
|
+
* str.trimRight(" hello ") // Returns: " hello"
|
|
367
|
+
* str.trimRight("hello ") // Returns: "hello"
|
|
368
|
+
* str.trimRight("hello\t") // Returns: "hello"
|
|
369
|
+
* ```
|
|
370
|
+
*/
|
|
371
|
+
export declare function trimRight(str: simple_string): string;
|
|
372
|
+
/**
|
|
373
|
+
* Tests if a string matches a regular expression pattern.
|
|
374
|
+
*
|
|
375
|
+
* @param source - The string to test
|
|
376
|
+
* @param regex - The regular expression pattern
|
|
377
|
+
* @returns True if the pattern matches, false otherwise
|
|
378
|
+
*
|
|
379
|
+
* @remarks
|
|
380
|
+
* - Uses JavaScript regex syntax
|
|
381
|
+
* - Match is case-sensitive by default
|
|
382
|
+
* - Pattern is tested against entire string
|
|
383
|
+
*
|
|
384
|
+
* @example
|
|
385
|
+
* ```typescript
|
|
386
|
+
* str.match("hello123", "\\d+") // Returns: true
|
|
387
|
+
* str.match("test@example.com", "^[a-z]+@[a-z]+\\.[a-z]+$") // Returns: true
|
|
388
|
+
* str.match("abc", "[A-Z]+") // Returns: false
|
|
389
|
+
* ```
|
|
390
|
+
*/
|
|
391
|
+
export declare function match(source: simple_string, regex: simple_string): bool;
|
|
392
|
+
/**
|
|
393
|
+
* Formats a timestamp as a string according to the specified format.
|
|
394
|
+
*
|
|
395
|
+
* @param time - Unix timestamp in milliseconds
|
|
396
|
+
* @param format - Format string using PineScript format specifiers
|
|
397
|
+
* @returns Formatted date/time string
|
|
398
|
+
*
|
|
399
|
+
* @remarks
|
|
400
|
+
* Supported format specifiers (case-sensitive):
|
|
401
|
+
* - `yyyy` - 4-digit year (e.g., "2024")
|
|
402
|
+
* - `yy` - 2-digit year (e.g., "24")
|
|
403
|
+
* - `MMMM` - Full month name (e.g., "January")
|
|
404
|
+
* - `MMM` - Abbreviated month name (e.g., "Jan")
|
|
405
|
+
* - `MM` - 2-digit month (01-12)
|
|
406
|
+
* - `M` - Month (1-12)
|
|
407
|
+
* - `dd` - 2-digit day (01-31)
|
|
408
|
+
* - `d` - Day (1-31)
|
|
409
|
+
* - `HH` - 2-digit hour (00-23)
|
|
410
|
+
* - `H` - Hour (0-23)
|
|
411
|
+
* - `hh` - 2-digit hour (01-12)
|
|
412
|
+
* - `h` - Hour (1-12)
|
|
413
|
+
* - `mm` - 2-digit minute (00-59)
|
|
414
|
+
* - `m` - Minute (0-59)
|
|
415
|
+
* - `ss` - 2-digit second (00-59)
|
|
416
|
+
* - `s` - Second (0-59)
|
|
417
|
+
* - `a` - AM/PM
|
|
418
|
+
*
|
|
419
|
+
* @example
|
|
420
|
+
* ```typescript
|
|
421
|
+
* const timestamp = 1609459200000; // Jan 1, 2021 00:00:00 UTC
|
|
422
|
+
* str.format_time(timestamp, "dd MMM yyyy") // Returns: "01 Jan 2021"
|
|
423
|
+
* str.format_time(timestamp, "yyyy-MM-dd HH:mm:ss") // Returns: "2021-01-01 00:00:00"
|
|
424
|
+
* str.format_time(timestamp, "MMM d, yyyy") // Returns: "Jan 1, 2021"
|
|
425
|
+
* str.format_time(timestamp, "hh:mm a") // Returns: "12:00 AM"
|
|
426
|
+
* ```
|
|
427
|
+
*/
|
|
428
|
+
/**
|
|
429
|
+
* Constructs a new string containing the source string repeated N times with an optional separator.
|
|
430
|
+
*
|
|
431
|
+
* @param source - The string to repeat
|
|
432
|
+
* @param count - Number of times to repeat (must be >= 0)
|
|
433
|
+
* @param separator - String to inject between repeated instances. Optional, defaults to empty string.
|
|
434
|
+
* @returns The repeated string, or null if source is null/undefined
|
|
435
|
+
*
|
|
436
|
+
* @example
|
|
437
|
+
* ```typescript
|
|
438
|
+
* str.repeat("ab", 3) // Returns: "ababab"
|
|
439
|
+
* str.repeat("?", 3, ",") // Returns: "?,?,?"
|
|
440
|
+
* str.repeat("hello", 0) // Returns: ""
|
|
441
|
+
* str.repeat("x", 1) // Returns: "x"
|
|
442
|
+
* ```
|
|
443
|
+
*/
|
|
444
|
+
export declare function repeat(source: simple_string, count: simple_int, separator?: simple_string): string | null;
|
|
445
|
+
/**
|
|
446
|
+
* Formats a UNIX time (ms) with a date pattern (PineScript `str.format_time`).
|
|
447
|
+
*
|
|
448
|
+
* @param time - UNIX time in milliseconds
|
|
449
|
+
* @param format - Java SimpleDateFormat pattern, e.g. "yyyy-MM-dd HH:mm:ss", "dd MMM yyyy", "hh:mm a"
|
|
450
|
+
* @param timezone - UTC/GMT offset ("UTC-5") or IANA name ("America/New_York"). PineScript's default is
|
|
451
|
+
* the exchange time zone, which is not known here: the default is UTC
|
|
452
|
+
* @returns Formatted date string
|
|
453
|
+
*
|
|
454
|
+
* @remarks
|
|
455
|
+
* Letters: y, M, d, E, u, D, w,
|
|
456
|
+
* H, k, K, h, a, m, s, S, Z, z; 'text' is literal text.
|
|
457
|
+
*/
|
|
458
|
+
export declare function format_time(time: simple_int, format?: simple_string, timezone?: simple_string): string;
|
|
459
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/str/index.ts"],"names":[],"mappings":"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"}
|