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.
Files changed (544) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +31 -9
  3. package/dist/cjs/array/index.d.ts +701 -0
  4. package/dist/cjs/array/index.d.ts.map +1 -0
  5. package/dist/cjs/array/index.js +392 -0
  6. package/dist/cjs/array/index.js.map +7 -0
  7. package/dist/cjs/box/index.d.ts +444 -0
  8. package/dist/cjs/box/index.d.ts.map +1 -0
  9. package/dist/cjs/box/index.js +246 -0
  10. package/dist/cjs/box/index.js.map +7 -0
  11. package/dist/cjs/callsite/index.d.ts +61 -0
  12. package/dist/cjs/callsite/index.d.ts.map +1 -0
  13. package/dist/cjs/callsite/index.js +65 -0
  14. package/dist/cjs/callsite/index.js.map +7 -0
  15. package/dist/cjs/chartpoint/index.d.ts +90 -0
  16. package/dist/cjs/chartpoint/index.d.ts.map +1 -0
  17. package/dist/cjs/chartpoint/index.js +56 -0
  18. package/dist/cjs/chartpoint/index.js.map +7 -0
  19. package/dist/cjs/color/index.d.ts +285 -0
  20. package/dist/cjs/color/index.d.ts.map +1 -0
  21. package/dist/cjs/color/index.js +143 -0
  22. package/dist/cjs/color/index.js.map +7 -0
  23. package/dist/cjs/compare/index.d.ts +26 -0
  24. package/dist/cjs/compare/index.d.ts.map +1 -0
  25. package/dist/cjs/compare/index.js +50 -0
  26. package/dist/cjs/compare/index.js.map +7 -0
  27. package/dist/cjs/drawing/registry.d.ts +42 -0
  28. package/dist/cjs/drawing/registry.d.ts.map +1 -0
  29. package/dist/cjs/drawing/registry.js +87 -0
  30. package/dist/cjs/drawing/registry.js.map +7 -0
  31. package/dist/cjs/index.d.ts +85 -0
  32. package/dist/cjs/index.d.ts.map +1 -0
  33. package/dist/cjs/index.js +184 -0
  34. package/dist/cjs/index.js.map +7 -0
  35. package/dist/cjs/indicator.d.ts +117 -0
  36. package/dist/cjs/indicator.d.ts.map +1 -0
  37. package/dist/cjs/indicator.js +74 -0
  38. package/dist/cjs/indicator.js.map +7 -0
  39. package/dist/cjs/input.d.ts +196 -0
  40. package/dist/cjs/input.d.ts.map +1 -0
  41. package/dist/cjs/input.js +197 -0
  42. package/dist/cjs/input.js.map +7 -0
  43. package/dist/cjs/label/index.d.ts +303 -0
  44. package/dist/cjs/label/index.d.ts.map +1 -0
  45. package/dist/cjs/label/index.js +190 -0
  46. package/dist/cjs/label/index.js.map +7 -0
  47. package/dist/cjs/lib/index.d.ts +8 -0
  48. package/dist/cjs/lib/index.d.ts.map +1 -0
  49. package/dist/cjs/lib/index.js +19 -0
  50. package/dist/cjs/lib/index.js.map +7 -0
  51. package/dist/{lib → cjs/lib}/zigzag/index.d.ts +4 -1
  52. package/dist/cjs/lib/zigzag/index.d.ts.map +1 -0
  53. package/dist/cjs/lib/zigzag/index.js +27 -0
  54. package/dist/cjs/lib/zigzag/index.js.map +7 -0
  55. package/dist/cjs/lib/zigzag/zigzag.d.ts +100 -0
  56. package/dist/cjs/lib/zigzag/zigzag.d.ts.map +1 -0
  57. package/dist/cjs/lib/zigzag/zigzag.js +207 -0
  58. package/dist/cjs/lib/zigzag/zigzag.js.map +7 -0
  59. package/dist/cjs/line/index.d.ts +342 -0
  60. package/dist/cjs/line/index.d.ts.map +1 -0
  61. package/dist/cjs/line/index.js +193 -0
  62. package/dist/cjs/line/index.js.map +7 -0
  63. package/dist/cjs/linefill/index.d.ts +124 -0
  64. package/dist/cjs/linefill/index.d.ts.map +1 -0
  65. package/dist/cjs/linefill/index.js +56 -0
  66. package/dist/cjs/linefill/index.js.map +7 -0
  67. package/dist/cjs/map/index.d.ts +69 -0
  68. package/dist/cjs/map/index.d.ts.map +1 -0
  69. package/dist/cjs/map/index.js +80 -0
  70. package/dist/cjs/map/index.js.map +7 -0
  71. package/dist/cjs/math/index.d.ts +560 -0
  72. package/dist/cjs/math/index.d.ts.map +1 -0
  73. package/dist/cjs/math/index.js +441 -0
  74. package/dist/cjs/math/index.js.map +7 -0
  75. package/dist/cjs/matrix/index.d.ts +1231 -0
  76. package/dist/cjs/matrix/index.d.ts.map +1 -0
  77. package/dist/cjs/matrix/index.js +1200 -0
  78. package/dist/cjs/matrix/index.js.map +7 -0
  79. package/dist/cjs/package.json +1 -0
  80. package/dist/cjs/plot.d.ts +76 -0
  81. package/dist/cjs/plot.d.ts.map +1 -0
  82. package/dist/cjs/plot.js +51 -0
  83. package/dist/cjs/plot.js.map +7 -0
  84. package/dist/cjs/polyline/index.d.ts +115 -0
  85. package/dist/cjs/polyline/index.d.ts.map +1 -0
  86. package/dist/cjs/polyline/index.js +76 -0
  87. package/dist/cjs/polyline/index.js.map +7 -0
  88. package/dist/cjs/runtime/adapters/LightweightChartsAdapter.d.ts +86 -0
  89. package/dist/cjs/runtime/adapters/LightweightChartsAdapter.d.ts.map +1 -0
  90. package/dist/cjs/runtime/adapters/LightweightChartsAdapter.js +141 -0
  91. package/dist/cjs/runtime/adapters/LightweightChartsAdapter.js.map +7 -0
  92. package/dist/cjs/runtime/adapters/SimpleInputAdapter.d.ts +59 -0
  93. package/dist/cjs/runtime/adapters/SimpleInputAdapter.d.ts.map +1 -0
  94. package/dist/cjs/runtime/adapters/SimpleInputAdapter.js +117 -0
  95. package/dist/cjs/runtime/adapters/SimpleInputAdapter.js.map +7 -0
  96. package/dist/{runtime → cjs/runtime}/index.d.ts +12 -5
  97. package/dist/cjs/runtime/index.d.ts.map +1 -0
  98. package/dist/cjs/runtime/index.js +49 -0
  99. package/dist/cjs/runtime/index.js.map +7 -0
  100. package/dist/cjs/runtime/inputs.d.ts +91 -0
  101. package/dist/cjs/runtime/inputs.d.ts.map +1 -0
  102. package/dist/cjs/runtime/inputs.js +262 -0
  103. package/dist/cjs/runtime/inputs.js.map +7 -0
  104. package/dist/cjs/runtime/runtime.d.ts +70 -0
  105. package/dist/cjs/runtime/runtime.d.ts.map +1 -0
  106. package/dist/cjs/runtime/runtime.js +148 -0
  107. package/dist/cjs/runtime/runtime.js.map +7 -0
  108. package/dist/cjs/runtime/series.d.ts +362 -0
  109. package/dist/cjs/runtime/series.d.ts.map +1 -0
  110. package/dist/cjs/runtime/series.js +560 -0
  111. package/dist/cjs/runtime/series.js.map +7 -0
  112. package/dist/cjs/runtime/types.d.ts +282 -0
  113. package/dist/cjs/runtime/types.d.ts.map +1 -0
  114. package/dist/cjs/runtime/types.js +17 -0
  115. package/dist/cjs/runtime/types.js.map +7 -0
  116. package/dist/cjs/script/index.d.ts +987 -0
  117. package/dist/cjs/script/index.d.ts.map +1 -0
  118. package/dist/cjs/script/index.js +1169 -0
  119. package/dist/cjs/script/index.js.map +7 -0
  120. package/dist/cjs/security/resample.d.ts +63 -0
  121. package/dist/cjs/security/resample.d.ts.map +1 -0
  122. package/dist/cjs/security/resample.js +84 -0
  123. package/dist/cjs/security/resample.js.map +7 -0
  124. package/dist/cjs/session/bars.d.ts +80 -0
  125. package/dist/cjs/session/bars.d.ts.map +1 -0
  126. package/dist/cjs/session/bars.js +219 -0
  127. package/dist/cjs/session/bars.js.map +7 -0
  128. package/dist/cjs/session/calendar.d.ts +70 -0
  129. package/dist/cjs/session/calendar.d.ts.map +1 -0
  130. package/dist/cjs/session/calendar.js +164 -0
  131. package/dist/cjs/session/calendar.js.map +7 -0
  132. package/dist/cjs/str/dateformat.d.ts +15 -0
  133. package/dist/cjs/str/dateformat.d.ts.map +1 -0
  134. package/dist/cjs/str/dateformat.js +149 -0
  135. package/dist/cjs/str/dateformat.js.map +7 -0
  136. package/dist/cjs/str/index.d.ts +459 -0
  137. package/dist/cjs/str/index.d.ts.map +1 -0
  138. package/dist/cjs/str/index.js +143 -0
  139. package/dist/cjs/str/index.js.map +7 -0
  140. package/dist/cjs/str/messageformat.d.ts +14 -0
  141. package/dist/cjs/str/messageformat.d.ts.map +1 -0
  142. package/dist/cjs/str/messageformat.js +114 -0
  143. package/dist/cjs/str/messageformat.js.map +7 -0
  144. package/dist/cjs/str/numberformat.d.ts +19 -0
  145. package/dist/cjs/str/numberformat.d.ts.map +1 -0
  146. package/dist/cjs/str/numberformat.js +170 -0
  147. package/dist/cjs/str/numberformat.js.map +7 -0
  148. package/dist/{strategy → cjs/strategy}/index.d.ts +50 -0
  149. package/dist/cjs/strategy/index.d.ts.map +1 -0
  150. package/dist/cjs/strategy/index.js +92 -0
  151. package/dist/cjs/strategy/index.js.map +7 -0
  152. package/dist/cjs/ta/index.d.ts +1397 -0
  153. package/dist/cjs/ta/index.d.ts.map +1 -0
  154. package/dist/cjs/ta/index.js +1715 -0
  155. package/dist/cjs/ta/index.js.map +7 -0
  156. package/dist/cjs/ta/running-sum.d.ts +30 -0
  157. package/dist/cjs/ta/running-sum.d.ts.map +1 -0
  158. package/dist/cjs/ta/running-sum.js +99 -0
  159. package/dist/cjs/ta/running-sum.js.map +7 -0
  160. package/dist/cjs/ta-series.d.ts +558 -0
  161. package/dist/cjs/ta-series.d.ts.map +1 -0
  162. package/dist/cjs/ta-series.js +606 -0
  163. package/dist/cjs/ta-series.js.map +7 -0
  164. package/dist/cjs/text/index.d.ts +14 -0
  165. package/dist/cjs/text/index.d.ts.map +1 -0
  166. package/dist/cjs/text/index.js +29 -0
  167. package/dist/cjs/text/index.js.map +7 -0
  168. package/dist/cjs/time/datestring.d.ts +23 -0
  169. package/dist/cjs/time/datestring.d.ts.map +1 -0
  170. package/dist/cjs/time/datestring.js +106 -0
  171. package/dist/cjs/time/datestring.js.map +7 -0
  172. package/dist/cjs/time/index.d.ts +89 -0
  173. package/dist/cjs/time/index.d.ts.map +1 -0
  174. package/dist/cjs/time/index.js +85 -0
  175. package/dist/cjs/time/index.js.map +7 -0
  176. package/dist/cjs/time/session.d.ts +17 -0
  177. package/dist/cjs/time/session.d.ts.map +1 -0
  178. package/dist/cjs/time/session.js +65 -0
  179. package/dist/cjs/time/session.js.map +7 -0
  180. package/dist/cjs/time/timezone.d.ts +40 -0
  181. package/dist/cjs/time/timezone.d.ts.map +1 -0
  182. package/dist/cjs/time/timezone.js +125 -0
  183. package/dist/cjs/time/timezone.js.map +7 -0
  184. package/dist/cjs/timeframe/index.d.ts +73 -0
  185. package/dist/cjs/timeframe/index.d.ts.map +1 -0
  186. package/dist/cjs/timeframe/index.js +85 -0
  187. package/dist/cjs/timeframe/index.js.map +7 -0
  188. package/dist/cjs/types/index.d.ts +343 -0
  189. package/dist/cjs/types/index.d.ts.map +1 -0
  190. package/dist/cjs/types/index.js +32 -0
  191. package/dist/cjs/types/index.js.map +7 -0
  192. package/dist/cjs/types/metadata.d.ts +300 -0
  193. package/dist/cjs/types/metadata.d.ts.map +1 -0
  194. package/dist/cjs/types/metadata.js +17 -0
  195. package/dist/cjs/types/metadata.js.map +7 -0
  196. package/dist/cjs/utils/index.d.ts +167 -0
  197. package/dist/cjs/utils/index.d.ts.map +1 -0
  198. package/dist/cjs/utils/index.js +209 -0
  199. package/dist/cjs/utils/index.js.map +7 -0
  200. package/dist/esm/array/index.d.ts +701 -0
  201. package/dist/esm/array/index.d.ts.map +1 -0
  202. package/dist/esm/array/index.js +983 -0
  203. package/dist/esm/array/index.js.map +1 -0
  204. package/dist/esm/box/index.d.ts +444 -0
  205. package/dist/esm/box/index.d.ts.map +1 -0
  206. package/dist/esm/box/index.js +602 -0
  207. package/dist/esm/box/index.js.map +1 -0
  208. package/dist/esm/callsite/index.d.ts +61 -0
  209. package/dist/esm/callsite/index.d.ts.map +1 -0
  210. package/dist/esm/callsite/index.js +97 -0
  211. package/dist/esm/callsite/index.js.map +1 -0
  212. package/dist/esm/chartpoint/index.d.ts +90 -0
  213. package/dist/esm/chartpoint/index.d.ts.map +1 -0
  214. package/dist/esm/chartpoint/index.js +113 -0
  215. package/dist/esm/chartpoint/index.js.map +1 -0
  216. package/dist/esm/color/index.d.ts +285 -0
  217. package/dist/esm/color/index.d.ts.map +1 -0
  218. package/dist/esm/color/index.js +373 -0
  219. package/dist/esm/color/index.js.map +1 -0
  220. package/dist/esm/compare/index.d.ts +26 -0
  221. package/dist/esm/compare/index.d.ts.map +1 -0
  222. package/dist/esm/compare/index.js +39 -0
  223. package/dist/esm/compare/index.js.map +1 -0
  224. package/dist/esm/drawing/registry.d.ts +42 -0
  225. package/dist/esm/drawing/registry.d.ts.map +1 -0
  226. package/dist/esm/drawing/registry.js +89 -0
  227. package/dist/esm/drawing/registry.js.map +1 -0
  228. package/dist/esm/index.d.ts +85 -0
  229. package/dist/esm/index.d.ts.map +1 -0
  230. package/dist/esm/index.js +96 -0
  231. package/dist/esm/index.js.map +1 -0
  232. package/dist/esm/indicator.d.ts +117 -0
  233. package/dist/esm/indicator.d.ts.map +1 -0
  234. package/dist/esm/indicator.js +84 -0
  235. package/dist/esm/indicator.js.map +1 -0
  236. package/dist/esm/input.d.ts +196 -0
  237. package/dist/esm/input.d.ts.map +1 -0
  238. package/dist/esm/input.js +183 -0
  239. package/dist/esm/input.js.map +1 -0
  240. package/dist/esm/label/index.d.ts +303 -0
  241. package/dist/esm/label/index.d.ts.map +1 -0
  242. package/dist/esm/label/index.js +417 -0
  243. package/dist/esm/label/index.js.map +1 -0
  244. package/dist/esm/lib/index.d.ts +8 -0
  245. package/dist/esm/lib/index.d.ts.map +1 -0
  246. package/dist/esm/lib/index.js +8 -0
  247. package/dist/esm/lib/index.js.map +1 -0
  248. package/dist/esm/lib/zigzag/index.d.ts +5 -0
  249. package/dist/esm/lib/zigzag/index.d.ts.map +1 -0
  250. package/dist/esm/lib/zigzag/index.js +5 -0
  251. package/dist/esm/lib/zigzag/index.js.map +1 -0
  252. package/dist/esm/lib/zigzag/zigzag.d.ts +100 -0
  253. package/dist/esm/lib/zigzag/zigzag.d.ts.map +1 -0
  254. package/dist/esm/lib/zigzag/zigzag.js +229 -0
  255. package/dist/esm/lib/zigzag/zigzag.js.map +1 -0
  256. package/dist/esm/line/index.d.ts +342 -0
  257. package/dist/esm/line/index.d.ts.map +1 -0
  258. package/dist/esm/line/index.js +470 -0
  259. package/dist/esm/line/index.js.map +1 -0
  260. package/dist/esm/linefill/index.d.ts +124 -0
  261. package/dist/esm/linefill/index.d.ts.map +1 -0
  262. package/dist/esm/linefill/index.js +144 -0
  263. package/dist/esm/linefill/index.js.map +1 -0
  264. package/dist/esm/map/index.d.ts +69 -0
  265. package/dist/esm/map/index.d.ts.map +1 -0
  266. package/dist/esm/map/index.js +106 -0
  267. package/dist/esm/map/index.js.map +1 -0
  268. package/dist/esm/math/index.d.ts +560 -0
  269. package/dist/esm/math/index.d.ts.map +1 -0
  270. package/dist/esm/math/index.js +495 -0
  271. package/dist/esm/math/index.js.map +1 -0
  272. package/dist/esm/matrix/index.d.ts +1231 -0
  273. package/dist/esm/matrix/index.d.ts.map +1 -0
  274. package/dist/esm/matrix/index.js +2450 -0
  275. package/dist/esm/matrix/index.js.map +1 -0
  276. package/dist/esm/plot.d.ts +76 -0
  277. package/dist/esm/plot.d.ts.map +1 -0
  278. package/dist/esm/plot.js +63 -0
  279. package/dist/esm/plot.js.map +1 -0
  280. package/dist/esm/polyline/index.d.ts +115 -0
  281. package/dist/esm/polyline/index.d.ts.map +1 -0
  282. package/dist/esm/polyline/index.js +157 -0
  283. package/dist/esm/polyline/index.js.map +1 -0
  284. package/dist/esm/runtime/adapters/LightweightChartsAdapter.d.ts +86 -0
  285. package/dist/esm/runtime/adapters/LightweightChartsAdapter.d.ts.map +1 -0
  286. package/dist/esm/runtime/adapters/LightweightChartsAdapter.js +140 -0
  287. package/dist/esm/runtime/adapters/LightweightChartsAdapter.js.map +1 -0
  288. package/dist/esm/runtime/adapters/SimpleInputAdapter.d.ts +59 -0
  289. package/dist/esm/runtime/adapters/SimpleInputAdapter.d.ts.map +1 -0
  290. package/dist/esm/runtime/adapters/SimpleInputAdapter.js +115 -0
  291. package/dist/esm/runtime/adapters/SimpleInputAdapter.js.map +1 -0
  292. package/dist/esm/runtime/index.d.ts +13 -0
  293. package/dist/esm/runtime/index.d.ts.map +1 -0
  294. package/dist/esm/runtime/index.js +14 -0
  295. package/dist/esm/runtime/index.js.map +1 -0
  296. package/dist/esm/runtime/inputs.d.ts +91 -0
  297. package/dist/esm/runtime/inputs.d.ts.map +1 -0
  298. package/dist/esm/runtime/inputs.js +334 -0
  299. package/dist/esm/runtime/inputs.js.map +1 -0
  300. package/dist/esm/runtime/runtime.d.ts +70 -0
  301. package/dist/esm/runtime/runtime.d.ts.map +1 -0
  302. package/dist/esm/runtime/runtime.js +193 -0
  303. package/dist/esm/runtime/runtime.js.map +1 -0
  304. package/dist/esm/runtime/series.d.ts +362 -0
  305. package/dist/esm/runtime/series.d.ts.map +1 -0
  306. package/dist/esm/runtime/series.js +583 -0
  307. package/dist/esm/runtime/series.js.map +1 -0
  308. package/dist/esm/runtime/types.d.ts +282 -0
  309. package/dist/esm/runtime/types.d.ts.map +1 -0
  310. package/dist/esm/runtime/types.js +7 -0
  311. package/dist/esm/runtime/types.js.map +1 -0
  312. package/dist/esm/script/index.d.ts +987 -0
  313. package/dist/esm/script/index.d.ts.map +1 -0
  314. package/dist/esm/script/index.js +1289 -0
  315. package/dist/esm/script/index.js.map +1 -0
  316. package/dist/esm/security/resample.d.ts +63 -0
  317. package/dist/esm/security/resample.d.ts.map +1 -0
  318. package/dist/esm/security/resample.js +110 -0
  319. package/dist/esm/security/resample.js.map +1 -0
  320. package/dist/esm/session/bars.d.ts +80 -0
  321. package/dist/esm/session/bars.d.ts.map +1 -0
  322. package/dist/esm/session/bars.js +232 -0
  323. package/dist/esm/session/bars.js.map +1 -0
  324. package/dist/esm/session/calendar.d.ts +70 -0
  325. package/dist/esm/session/calendar.d.ts.map +1 -0
  326. package/dist/esm/session/calendar.js +172 -0
  327. package/dist/esm/session/calendar.js.map +1 -0
  328. package/dist/esm/str/dateformat.d.ts +15 -0
  329. package/dist/esm/str/dateformat.d.ts.map +1 -0
  330. package/dist/esm/str/dateformat.js +136 -0
  331. package/dist/esm/str/dateformat.js.map +1 -0
  332. package/dist/esm/str/index.d.ts +459 -0
  333. package/dist/esm/str/index.d.ts.map +1 -0
  334. package/dist/esm/str/index.js +540 -0
  335. package/dist/esm/str/index.js.map +1 -0
  336. package/dist/esm/str/messageformat.d.ts +14 -0
  337. package/dist/esm/str/messageformat.d.ts.map +1 -0
  338. package/dist/esm/str/messageformat.js +111 -0
  339. package/dist/esm/str/messageformat.js.map +1 -0
  340. package/dist/esm/str/numberformat.d.ts +19 -0
  341. package/dist/esm/str/numberformat.d.ts.map +1 -0
  342. package/dist/esm/str/numberformat.js +189 -0
  343. package/dist/esm/str/numberformat.js.map +1 -0
  344. package/dist/esm/strategy/index.d.ts +245 -0
  345. package/dist/esm/strategy/index.d.ts.map +1 -0
  346. package/dist/esm/strategy/index.js +84 -0
  347. package/dist/esm/strategy/index.js.map +1 -0
  348. package/dist/esm/ta/index.d.ts +1397 -0
  349. package/dist/esm/ta/index.d.ts.map +1 -0
  350. package/dist/esm/ta/index.js +3227 -0
  351. package/dist/esm/ta/index.js.map +1 -0
  352. package/dist/esm/ta/running-sum.d.ts +30 -0
  353. package/dist/esm/ta/running-sum.d.ts.map +1 -0
  354. package/dist/esm/ta/running-sum.js +113 -0
  355. package/dist/esm/ta/running-sum.js.map +1 -0
  356. package/dist/esm/ta-series.d.ts +558 -0
  357. package/dist/esm/ta-series.d.ts.map +1 -0
  358. package/dist/esm/ta-series.js +910 -0
  359. package/dist/esm/ta-series.js.map +1 -0
  360. package/dist/esm/text/index.d.ts +14 -0
  361. package/dist/esm/text/index.d.ts.map +1 -0
  362. package/dist/esm/text/index.js +14 -0
  363. package/dist/esm/text/index.js.map +1 -0
  364. package/dist/esm/time/datestring.d.ts +23 -0
  365. package/dist/esm/time/datestring.d.ts.map +1 -0
  366. package/dist/esm/time/datestring.js +94 -0
  367. package/dist/esm/time/datestring.js.map +1 -0
  368. package/dist/esm/time/index.d.ts +89 -0
  369. package/dist/esm/time/index.d.ts.map +1 -0
  370. package/dist/esm/time/index.js +108 -0
  371. package/dist/esm/time/index.js.map +1 -0
  372. package/dist/esm/time/session.d.ts +17 -0
  373. package/dist/esm/time/session.d.ts.map +1 -0
  374. package/dist/esm/time/session.js +69 -0
  375. package/dist/esm/time/session.js.map +1 -0
  376. package/dist/esm/time/timezone.d.ts +40 -0
  377. package/dist/esm/time/timezone.d.ts.map +1 -0
  378. package/dist/esm/time/timezone.js +144 -0
  379. package/dist/esm/time/timezone.js.map +1 -0
  380. package/dist/esm/timeframe/index.d.ts +73 -0
  381. package/dist/esm/timeframe/index.d.ts.map +1 -0
  382. package/dist/esm/timeframe/index.js +131 -0
  383. package/dist/esm/timeframe/index.js.map +1 -0
  384. package/dist/esm/types/index.d.ts +343 -0
  385. package/dist/esm/types/index.d.ts.map +1 -0
  386. package/dist/esm/types/index.js +17 -0
  387. package/dist/esm/types/index.js.map +1 -0
  388. package/dist/esm/types/metadata.d.ts +300 -0
  389. package/dist/esm/types/metadata.d.ts.map +1 -0
  390. package/dist/esm/types/metadata.js +7 -0
  391. package/dist/esm/types/metadata.js.map +1 -0
  392. package/dist/esm/utils/index.d.ts +167 -0
  393. package/dist/esm/utils/index.d.ts.map +1 -0
  394. package/dist/esm/utils/index.js +295 -0
  395. package/dist/esm/utils/index.js.map +1 -0
  396. package/package.json +53 -23
  397. package/src/array/index.ts +1056 -0
  398. package/src/box/index.ts +680 -0
  399. package/src/callsite/index.ts +104 -0
  400. package/src/chartpoint/index.ts +126 -0
  401. package/src/color/index.ts +411 -0
  402. package/src/compare/index.ts +46 -0
  403. package/src/drawing/registry.ts +106 -0
  404. package/src/index.ts +201 -0
  405. package/src/indicator.ts +185 -0
  406. package/src/input.ts +280 -0
  407. package/src/label/index.ts +490 -0
  408. package/src/lib/index.ts +8 -0
  409. package/src/lib/zigzag/index.ts +13 -0
  410. package/src/lib/zigzag/zigzag.ts +318 -0
  411. package/src/line/index.ts +530 -0
  412. package/src/linefill/index.ts +152 -0
  413. package/src/map/index.ts +115 -0
  414. package/src/math/index.ts +1071 -0
  415. package/src/matrix/index.ts +2697 -0
  416. package/src/plot.ts +121 -0
  417. package/src/polyline/index.ts +184 -0
  418. package/src/runtime/adapters/LightweightChartsAdapter.ts +201 -0
  419. package/src/runtime/adapters/SimpleInputAdapter.ts +132 -0
  420. package/src/runtime/index.ts +52 -0
  421. package/src/runtime/inputs.ts +377 -0
  422. package/src/runtime/runtime.ts +241 -0
  423. package/src/runtime/series.ts +644 -0
  424. package/src/runtime/types.ts +292 -0
  425. package/src/script/index.ts +1865 -0
  426. package/src/security/resample.ts +119 -0
  427. package/src/session/bars.ts +262 -0
  428. package/src/session/calendar.ts +199 -0
  429. package/src/str/dateformat.ts +104 -0
  430. package/src/str/index.ts +557 -0
  431. package/src/str/messageformat.ts +109 -0
  432. package/src/str/numberformat.ts +197 -0
  433. package/src/strategy/index.ts +281 -0
  434. package/src/ta/index.ts +3580 -0
  435. package/src/ta/running-sum.ts +117 -0
  436. package/src/ta-series.ts +1036 -0
  437. package/src/text/index.ts +14 -0
  438. package/src/time/datestring.ts +96 -0
  439. package/src/time/index.ts +161 -0
  440. package/src/time/session.ts +79 -0
  441. package/src/time/timezone.ts +180 -0
  442. package/src/timeframe/index.ts +144 -0
  443. package/src/types/index.ts +398 -0
  444. package/src/types/metadata.ts +334 -0
  445. package/src/utils/index.ts +334 -0
  446. package/dist/array/index.d.ts +0 -57
  447. package/dist/array/index.d.ts.map +0 -1
  448. package/dist/box/index.d.ts +0 -37
  449. package/dist/box/index.d.ts.map +0 -1
  450. package/dist/callsite/index.d.ts +0 -7
  451. package/dist/callsite/index.d.ts.map +0 -1
  452. package/dist/chartpoint/index.d.ts +0 -8
  453. package/dist/chartpoint/index.d.ts.map +0 -1
  454. package/dist/color/index.d.ts +0 -28
  455. package/dist/color/index.d.ts.map +0 -1
  456. package/dist/compare/index.d.ts +0 -8
  457. package/dist/compare/index.d.ts.map +0 -1
  458. package/dist/drawing/registry.d.ts +0 -19
  459. package/dist/drawing/registry.d.ts.map +0 -1
  460. package/dist/index.cjs +0 -7979
  461. package/dist/index.d.ts +0 -64
  462. package/dist/index.d.ts.map +0 -1
  463. package/dist/index.mjs +0 -7962
  464. package/dist/indicator.d.ts +0 -42
  465. package/dist/indicator.d.ts.map +0 -1
  466. package/dist/input.d.ts +0 -47
  467. package/dist/input.d.ts.map +0 -1
  468. package/dist/label/index.d.ts +0 -30
  469. package/dist/label/index.d.ts.map +0 -1
  470. package/dist/lib/index.d.ts +0 -2
  471. package/dist/lib/index.d.ts.map +0 -1
  472. package/dist/lib/zigzag/index.d.ts.map +0 -1
  473. package/dist/lib/zigzag/zigzag.d.ts +0 -47
  474. package/dist/lib/zigzag/zigzag.d.ts.map +0 -1
  475. package/dist/line/index.d.ts +0 -30
  476. package/dist/line/index.d.ts.map +0 -1
  477. package/dist/linefill/index.d.ts +0 -10
  478. package/dist/linefill/index.d.ts.map +0 -1
  479. package/dist/map/index.d.ts +0 -14
  480. package/dist/map/index.d.ts.map +0 -1
  481. package/dist/math/index.d.ts +0 -53
  482. package/dist/math/index.d.ts.map +0 -1
  483. package/dist/matrix/index.d.ts +0 -52
  484. package/dist/matrix/index.d.ts.map +0 -1
  485. package/dist/plot.d.ts +0 -20
  486. package/dist/plot.d.ts.map +0 -1
  487. package/dist/polyline/index.d.ts +0 -11
  488. package/dist/polyline/index.d.ts.map +0 -1
  489. package/dist/runtime/adapters/LightweightChartsAdapter.d.ts +0 -15
  490. package/dist/runtime/adapters/LightweightChartsAdapter.d.ts.map +0 -1
  491. package/dist/runtime/adapters/SimpleInputAdapter.d.ts +0 -16
  492. package/dist/runtime/adapters/SimpleInputAdapter.d.ts.map +0 -1
  493. package/dist/runtime/index.cjs +0 -600
  494. package/dist/runtime/index.d.ts.map +0 -1
  495. package/dist/runtime/index.mjs +0 -577
  496. package/dist/runtime/inputs.d.ts +0 -13
  497. package/dist/runtime/inputs.d.ts.map +0 -1
  498. package/dist/runtime/runtime.d.ts +0 -16
  499. package/dist/runtime/runtime.d.ts.map +0 -1
  500. package/dist/runtime/series.d.ts +0 -60
  501. package/dist/runtime/series.d.ts.map +0 -1
  502. package/dist/runtime/types.d.ts +0 -122
  503. package/dist/runtime/types.d.ts.map +0 -1
  504. package/dist/script/index.cjs +0 -6372
  505. package/dist/script/index.d.ts +0 -709
  506. package/dist/script/index.d.ts.map +0 -1
  507. package/dist/script/index.mjs +0 -6355
  508. package/dist/security/resample.d.ts +0 -13
  509. package/dist/security/resample.d.ts.map +0 -1
  510. package/dist/session/bars.d.ts +0 -34
  511. package/dist/session/bars.d.ts.map +0 -1
  512. package/dist/session/calendar.d.ts +0 -31
  513. package/dist/session/calendar.d.ts.map +0 -1
  514. package/dist/str/dateformat.d.ts +0 -2
  515. package/dist/str/dateformat.d.ts.map +0 -1
  516. package/dist/str/index.d.ts +0 -24
  517. package/dist/str/index.d.ts.map +0 -1
  518. package/dist/str/messageformat.d.ts +0 -2
  519. package/dist/str/messageformat.d.ts.map +0 -1
  520. package/dist/str/numberformat.d.ts +0 -3
  521. package/dist/str/numberformat.d.ts.map +0 -1
  522. package/dist/strategy/index.d.ts.map +0 -1
  523. package/dist/ta/index.d.ts +0 -72
  524. package/dist/ta/index.d.ts.map +0 -1
  525. package/dist/ta-series.d.ts +0 -143
  526. package/dist/ta-series.d.ts.map +0 -1
  527. package/dist/text/index.d.ts +0 -4
  528. package/dist/text/index.d.ts.map +0 -1
  529. package/dist/time/datestring.d.ts +0 -2
  530. package/dist/time/datestring.d.ts.map +0 -1
  531. package/dist/time/index.d.ts +0 -15
  532. package/dist/time/index.d.ts.map +0 -1
  533. package/dist/time/session.d.ts +0 -2
  534. package/dist/time/session.d.ts.map +0 -1
  535. package/dist/time/timezone.d.ts +0 -13
  536. package/dist/time/timezone.d.ts.map +0 -1
  537. package/dist/timeframe/index.d.ts +0 -17
  538. package/dist/timeframe/index.d.ts.map +0 -1
  539. package/dist/types/index.d.ts +0 -181
  540. package/dist/types/index.d.ts.map +0 -1
  541. package/dist/types/metadata.d.ts +0 -131
  542. package/dist/types/metadata.d.ts.map +0 -1
  543. package/dist/utils/index.d.ts +0 -26
  544. package/dist/utils/index.d.ts.map +0 -1
@@ -0,0 +1,910 @@
1
+ /**
2
+ * @fileoverview Technical analysis functions that work with Series
3
+ * Fixed wrappers around core ta.* functions with O(n) performance
4
+ * @module ta-series
5
+ */
6
+ import * as taCore from './ta/index.js';
7
+ import { Series } from './runtime/series.js';
8
+ /**
9
+ * Simple Moving Average
10
+ * @param source - Source series
11
+ * @param length - Period length
12
+ * @returns Series with SMA values
13
+ */
14
+ export function sma(source, length) {
15
+ const bars = source.bars;
16
+ const sourceValues = source.toArray();
17
+ const result = taCore.sma(sourceValues, length);
18
+ return Series.fromArray(bars, result);
19
+ }
20
+ /**
21
+ * Exponential Moving Average
22
+ * @param source - Source series
23
+ * @param length - Period length
24
+ * @returns Series with EMA values
25
+ */
26
+ export function ema(source, length) {
27
+ const bars = source.bars;
28
+ const sourceValues = source.toArray();
29
+ const result = taCore.ema(sourceValues, length);
30
+ return Series.fromArray(bars, result);
31
+ }
32
+ /**
33
+ * Weighted Moving Average
34
+ * @param source - Source series
35
+ * @param length - Period length
36
+ * @returns Series with WMA values
37
+ */
38
+ export function wma(source, length) {
39
+ const bars = source.bars;
40
+ const sourceValues = source.toArray();
41
+ const result = taCore.wma(sourceValues, length);
42
+ return Series.fromArray(bars, result);
43
+ }
44
+ /**
45
+ * Relative Moving Average
46
+ * @param source - Source series
47
+ * @param length - Period length
48
+ * @returns Series with RMA values
49
+ */
50
+ export function rma(source, length) {
51
+ const bars = source.bars;
52
+ const sourceValues = source.toArray();
53
+ const result = taCore.rma(sourceValues, length);
54
+ return Series.fromArray(bars, result);
55
+ }
56
+ /**
57
+ * Relative Strength Index
58
+ * @param source - Source series
59
+ * @param length - Period length
60
+ * @returns Series with RSI values
61
+ */
62
+ export function rsi(source, length) {
63
+ const bars = source.bars;
64
+ const sourceValues = source.toArray();
65
+ const result = taCore.rsi(sourceValues, length);
66
+ return Series.fromArray(bars, result);
67
+ }
68
+ /**
69
+ * Moving Average Convergence Divergence
70
+ * @param source - Source series
71
+ * @param fastLength - Fast EMA period
72
+ * @param slowLength - Slow EMA period
73
+ * @param signalLength - Signal line period
74
+ * @returns Tuple of [macdLine, signalLine, histogram] Series
75
+ */
76
+ export function macd(source, fastLength, slowLength, signalLength) {
77
+ const bars = source.bars;
78
+ const sourceValues = source.toArray();
79
+ const [macdVals, signalVals, histVals] = taCore.macd(sourceValues, fastLength, slowLength, signalLength);
80
+ const macdSeries = Series.fromArray(bars, macdVals);
81
+ const signalSeries = Series.fromArray(bars, signalVals);
82
+ const histSeries = Series.fromArray(bars, histVals);
83
+ return [macdSeries, signalSeries, histSeries];
84
+ }
85
+ /**
86
+ * Bollinger Bands
87
+ * @param source - Source series
88
+ * @param length - Period length
89
+ * @param mult - Standard deviation multiplier
90
+ * @returns Tuple of [upper, basis, lower] Series
91
+ */
92
+ export function bb(source, length, mult) {
93
+ const bars = source.bars;
94
+ const sourceValues = source.toArray();
95
+ const [upperVals, basisVals, lowerVals] = taCore.bb(sourceValues, length, mult);
96
+ const upperSeries = Series.fromArray(bars, upperVals);
97
+ const basisSeries = Series.fromArray(bars, basisVals);
98
+ const lowerSeries = Series.fromArray(bars, lowerVals);
99
+ return [upperSeries, basisSeries, lowerSeries];
100
+ }
101
+ /**
102
+ * Standard deviation (PineScript ta.stdev; biased by default)
103
+ * @param source - Source series
104
+ * @param length - Period length
105
+ * @param biased - true (default): divide by length; false: by length - 1
106
+ * @returns Series with standard deviation values
107
+ */
108
+ export function stdev(source, length, biased = true) {
109
+ const bars = source.bars;
110
+ return Series.fromArray(bars, taCore.stdev(source.toArray(), length, biased));
111
+ }
112
+ /**
113
+ * Average True Range
114
+ * @param bars - Bar data
115
+ * @param length - Period length
116
+ * @returns Series with ATR values
117
+ */
118
+ export function atr(bars, length) {
119
+ const high = bars.map(b => b.high);
120
+ const low = bars.map(b => b.low);
121
+ const close = bars.map(b => b.close);
122
+ const result = taCore.atr(length, high, low, close);
123
+ return Series.fromArray(bars, result);
124
+ }
125
+ /**
126
+ * True Range
127
+ * @param bars - Bar data
128
+ * @param handle_na - How NaN values are handled (default: false)
129
+ * @returns Series with TR values
130
+ */
131
+ export function tr(bars, handle_na = false) {
132
+ const high = bars.map(b => b.high);
133
+ const low = bars.map(b => b.low);
134
+ const close = bars.map(b => b.close);
135
+ const result = taCore.tr(handle_na, high, low, close);
136
+ return Series.fromArray(bars, result);
137
+ }
138
+ // Volume built-in variables. PineScript exposes them as variables of the chart bars
139
+ // (`ta.obv`); here they take the bars.
140
+ const col = (bars, f) => bars.map((b) => b[f] ?? NaN);
141
+ /** On Balance Volume (PineScript `ta.obv`) */
142
+ export function obv(bars) {
143
+ return Series.fromArray(bars, taCore.obv(col(bars, 'close'), col(bars, 'volume')));
144
+ }
145
+ /** Price-Volume Trend (PineScript `ta.pvt`) */
146
+ export function pvt(bars) {
147
+ return Series.fromArray(bars, taCore.pvt(col(bars, 'close'), col(bars, 'volume')));
148
+ }
149
+ /** Accumulation/Distribution index (PineScript `ta.accdist`) */
150
+ export function accdist(bars) {
151
+ return Series.fromArray(bars, taCore.accdist(col(bars, 'high'), col(bars, 'low'), col(bars, 'close'), col(bars, 'volume')));
152
+ }
153
+ /** Negative Volume Index (PineScript `ta.nvi`) */
154
+ export function nvi(bars) {
155
+ return Series.fromArray(bars, taCore.nvi(col(bars, 'close'), col(bars, 'volume')));
156
+ }
157
+ /** Positive Volume Index (PineScript `ta.pvi`) */
158
+ export function pvi(bars) {
159
+ return Series.fromArray(bars, taCore.pvi(col(bars, 'close'), col(bars, 'volume')));
160
+ }
161
+ /** Intraday Intensity Index (PineScript `ta.iii`) */
162
+ export function iii(bars) {
163
+ return Series.fromArray(bars, taCore.iii(col(bars, 'high'), col(bars, 'low'), col(bars, 'close'), col(bars, 'volume')));
164
+ }
165
+ /** Williams Accumulation/Distribution (PineScript `ta.wad`) */
166
+ export function wad(bars) {
167
+ return Series.fromArray(bars, taCore.wad(col(bars, 'high'), col(bars, 'low'), col(bars, 'close')));
168
+ }
169
+ /** Williams Variable Accumulation/Distribution (PineScript `ta.wvad`) */
170
+ export function wvad(bars) {
171
+ return Series.fromArray(bars, taCore.wvad(col(bars, 'open'), col(bars, 'high'), col(bars, 'low'), col(bars, 'close'), col(bars, 'volume')));
172
+ }
173
+ /**
174
+ * Stochastic %K
175
+ * @param source - Source series (typically close)
176
+ * @param high - High series
177
+ * @param low - Low series
178
+ * @param length - Period length
179
+ * @returns Series with stochastic values
180
+ */
181
+ export function stoch(source, high, low, length) {
182
+ const bars = source.bars;
183
+ const sourceValues = source.toArray();
184
+ const highValues = high.toArray();
185
+ const lowValues = low.toArray();
186
+ const result = taCore.stoch(sourceValues, highValues, lowValues, length);
187
+ return Series.fromArray(bars, result);
188
+ }
189
+ /**
190
+ * Crossover detection
191
+ * @param source1 - First series
192
+ * @param source2 - Second series or number
193
+ * @returns Series with 1 where crossover, 0 otherwise
194
+ */
195
+ export function crossover(source1, source2) {
196
+ const bars = source1.bars;
197
+ const vals1 = source1.toArray();
198
+ const vals2 = typeof source2 === 'number'
199
+ ? Array(bars.length).fill(source2)
200
+ : source2.toArray();
201
+ const result = taCore.crossover(vals1, vals2);
202
+ // Convert boolean array to number array
203
+ const numResult = result.map(b => b ? 1 : 0);
204
+ return Series.fromArray(bars, numResult);
205
+ }
206
+ /**
207
+ * Crossunder detection
208
+ * @param source1 - First series
209
+ * @param source2 - Second series or number
210
+ * @returns Series with 1 where crossunder, 0 otherwise
211
+ */
212
+ export function crossunder(source1, source2) {
213
+ const bars = source1.bars;
214
+ const vals1 = source1.toArray();
215
+ const vals2 = typeof source2 === 'number'
216
+ ? Array(bars.length).fill(source2)
217
+ : source2.toArray();
218
+ const result = taCore.crossunder(vals1, vals2);
219
+ // Convert boolean array to number array
220
+ const numResult = result.map(b => b ? 1 : 0);
221
+ return Series.fromArray(bars, numResult);
222
+ }
223
+ /**
224
+ * Cross detection
225
+ * @param source1 - First series
226
+ * @param source2 - Second series or number
227
+ * @returns Series with 1 where cross, 0 otherwise
228
+ */
229
+ export function cross(source1, source2) {
230
+ const bars = source1.bars;
231
+ const vals1 = source1.toArray();
232
+ const vals2 = typeof source2 === 'number'
233
+ ? Array(bars.length).fill(source2)
234
+ : source2.toArray();
235
+ const result = taCore.cross(vals1, vals2);
236
+ // Convert boolean array to number array
237
+ const numResult = result.map(b => b ? 1 : 0);
238
+ return Series.fromArray(bars, numResult);
239
+ }
240
+ /**
241
+ * Change (difference from previous value)
242
+ * @param source - Source series
243
+ * @param length - Lookback period
244
+ * @returns Series with change values
245
+ */
246
+ export function change(source, length = 1) {
247
+ const bars = source.bars;
248
+ const sourceValues = source.toArray();
249
+ const result = taCore.change(sourceValues, length);
250
+ return Series.fromArray(bars, result);
251
+ }
252
+ /**
253
+ * Momentum
254
+ * @param source - Source series
255
+ * @param length - Lookback period
256
+ * @returns Series with momentum values
257
+ */
258
+ export function mom(source, length) {
259
+ const bars = source.bars;
260
+ const sourceValues = source.toArray();
261
+ const result = taCore.mom(sourceValues, length);
262
+ return Series.fromArray(bars, result);
263
+ }
264
+ /**
265
+ * Rate of Change
266
+ * @param source - Source series
267
+ * @param length - Lookback period
268
+ * @returns Series with ROC values
269
+ */
270
+ export function roc(source, length) {
271
+ const bars = source.bars;
272
+ const sourceValues = source.toArray();
273
+ const result = taCore.roc(sourceValues, length);
274
+ return Series.fromArray(bars, result);
275
+ }
276
+ /**
277
+ * Highest value in period
278
+ * @param source - Source series
279
+ * @param length - Period length
280
+ * @returns Series with highest values
281
+ */
282
+ export function highest(source, length) {
283
+ const bars = source.bars;
284
+ const sourceValues = source.toArray();
285
+ const result = taCore.highest(sourceValues, length);
286
+ return Series.fromArray(bars, result);
287
+ }
288
+ /**
289
+ * Lowest value in period
290
+ * @param source - Source series
291
+ * @param length - Period length
292
+ * @returns Series with lowest values
293
+ */
294
+ export function lowest(source, length) {
295
+ const bars = source.bars;
296
+ const sourceValues = source.toArray();
297
+ const result = taCore.lowest(sourceValues, length);
298
+ return Series.fromArray(bars, result);
299
+ }
300
+ /**
301
+ * Rising detection
302
+ * @param source - Source series
303
+ * @param length - Lookback period
304
+ * @returns Series with 1 where rising, 0 otherwise
305
+ */
306
+ export function rising(source, length) {
307
+ const bars = source.bars;
308
+ const sourceValues = source.toArray();
309
+ const result = taCore.rising(sourceValues, length);
310
+ // Convert boolean array to number array
311
+ const numResult = result.map(b => b ? 1 : 0);
312
+ return Series.fromArray(bars, numResult);
313
+ }
314
+ /**
315
+ * Falling detection
316
+ * @param source - Source series
317
+ * @param length - Lookback period
318
+ * @returns Series with 1 where falling, 0 otherwise
319
+ */
320
+ export function falling(source, length) {
321
+ const bars = source.bars;
322
+ const sourceValues = source.toArray();
323
+ const result = taCore.falling(sourceValues, length);
324
+ // Convert boolean array to number array
325
+ const numResult = result.map(b => b ? 1 : 0);
326
+ return Series.fromArray(bars, numResult);
327
+ }
328
+ /**
329
+ * Cumulative sum
330
+ * @param source - Source series
331
+ * @returns Series with cumulative sum values
332
+ */
333
+ export function cum(source) {
334
+ const bars = source.bars;
335
+ const sourceValues = source.toArray();
336
+ const result = taCore.cum(sourceValues);
337
+ return Series.fromArray(bars, result);
338
+ }
339
+ /**
340
+ * Supertrend indicator
341
+ * @param bars - Bar data
342
+ * @param factor - Multiplier factor
343
+ * @param atrLength - ATR period length
344
+ * @returns Tuple of [supertrend, direction] Series
345
+ */
346
+ export function supertrend(bars, factor, atrLength) {
347
+ const high = bars.map(b => b.high);
348
+ const low = bars.map(b => b.low);
349
+ const close = bars.map(b => b.close);
350
+ const [trendVals, dirVals] = taCore.supertrend(factor, atrLength, high, low, close);
351
+ const trendSeries = Series.fromArray(bars, trendVals);
352
+ const dirSeries = Series.fromArray(bars, dirVals);
353
+ return [trendSeries, dirSeries];
354
+ }
355
+ /**
356
+ * Volume Weighted Average Price (PineScript ta.vwap)
357
+ * @param source - Source series
358
+ * @param volume - Volume series
359
+ * @param anchor - Reset condition (non-zero = reset); without it the sums never restart
360
+ * @returns Series with VWAP values
361
+ */
362
+ export function vwap(source, volume, anchor) {
363
+ const bars = source.bars;
364
+ return Series.fromArray(bars, taCore.vwap(source.toArray(), volume.toArray(), anchor?.toArray()));
365
+ }
366
+ /**
367
+ * VWAP with standard deviation bands (PineScript `[vwap, upper, lower] = ta.vwap(source, anchor, stdev_mult)`)
368
+ * @returns [vwap, upper, lower] Series
369
+ */
370
+ export function vwapBands(source, volume, anchor, stdev_mult) {
371
+ const bars = source.bars;
372
+ const [m, u, l] = taCore.vwap(source.toArray(), volume.toArray(), anchor?.toArray(), stdev_mult);
373
+ return [Series.fromArray(bars, m), Series.fromArray(bars, u), Series.fromArray(bars, l)];
374
+ }
375
+ /**
376
+ * Ichimoku Kinko Hyo (Ichimoku Cloud)
377
+ * @param bars - Bar data
378
+ * @param conversionPeriods - Period for Tenkan-sen (default: 9)
379
+ * @param basePeriods - Period for Kijun-sen (default: 26)
380
+ * @param laggingSpan2Periods - Period for Senkou Span B (default: 52)
381
+ * @param displacement - Displacement for Senkou Spans and Chikou Span (default: 26)
382
+ * @returns Tuple of [tenkanSen, kijunSen, senkouSpanA, senkouSpanB, chikouSpan] Series
383
+ */
384
+ export function ichimoku(bars, conversionPeriods, basePeriods, laggingSpan2Periods, displacement) {
385
+ const high = bars.map(b => b.high);
386
+ const low = bars.map(b => b.low);
387
+ const close = bars.map(b => b.close);
388
+ const [tenkan, kijun, senkouA, senkouB, chikou] = taCore.ichimoku(conversionPeriods, basePeriods, laggingSpan2Periods, displacement, high, low, close);
389
+ return [
390
+ Series.fromArray(bars, tenkan),
391
+ Series.fromArray(bars, kijun),
392
+ Series.fromArray(bars, senkouA),
393
+ Series.fromArray(bars, senkouB),
394
+ Series.fromArray(bars, chikou),
395
+ ];
396
+ }
397
+ /**
398
+ * Volume Weighted Moving Average
399
+ * @param source - Source series
400
+ * @param length - Period length
401
+ * @param volume - Volume series
402
+ * @returns Series with VWMA values
403
+ */
404
+ export function vwma(source, length, volume) {
405
+ const bars = source.bars;
406
+ const sourceValues = source.toArray();
407
+ const volumeValues = volume.toArray();
408
+ const result = taCore.vwma(sourceValues, length, volumeValues);
409
+ return Series.fromArray(bars, result);
410
+ }
411
+ /**
412
+ * Linear Regression
413
+ * @param source - Source series
414
+ * @param length - Period length
415
+ * @param offset - Offset (default: 0)
416
+ * @returns Series with linear regression values
417
+ */
418
+ export function linreg(source, length, offset = 0) {
419
+ const bars = source.bars;
420
+ const sourceValues = source.toArray();
421
+ const result = taCore.linreg(sourceValues, length, offset);
422
+ return Series.fromArray(bars, result);
423
+ }
424
+ /**
425
+ * Arnaud Legoux Moving Average
426
+ * @param source - Source series
427
+ * @param length - Period length (default: 9)
428
+ * @param offset - Controls tradeoff between smoothness and responsiveness (default: 0.85)
429
+ * @param sigma - Standard deviation factor for sharpness (default: 6)
430
+ * @param floor - Whether to floor the offset calculation (default: false)
431
+ * @returns Series with ALMA values
432
+ */
433
+ export function alma(source, length = 9, offset = 0.85, sigma = 6, floor = false) {
434
+ const bars = source.bars;
435
+ const sourceValues = source.toArray();
436
+ const result = taCore.alma(sourceValues, length, offset, sigma, floor);
437
+ return Series.fromArray(bars, result);
438
+ }
439
+ /**
440
+ * ZigZag indicator - identifies significant trend reversals
441
+ * @param bars - Bar data
442
+ * @param deviation - Minimum percentage price change to form a new pivot (default: 5.0)
443
+ * @param depth - Minimum bars between pivots (default: 10)
444
+ * @param backstep - Bars to look back for confirmation (default: 3)
445
+ * @returns Tuple of [zigzag values, direction, isPivot flags] Series
446
+ * @remarks
447
+ * - The isPivot Series contains numeric values (1 for pivot, 0 for non-pivot)
448
+ * converted from boolean for consistency with other Series-based functions
449
+ * - The core ta.zigzag() function returns boolean isPivot values
450
+ */
451
+ export function zigzag(bars, deviation = 5, depth = 10, backstep = 3) {
452
+ const high = bars.map(b => b.high);
453
+ const low = bars.map(b => b.low);
454
+ const [zigzagVals, dirVals, pivotVals] = taCore.zigzag(deviation, depth, backstep, undefined, high, low);
455
+ // Convert boolean pivot flags to numbers (1/0) for Series compatibility
456
+ return [
457
+ Series.fromArray(bars, zigzagVals),
458
+ Series.fromArray(bars, dirVals),
459
+ Series.fromArray(bars, pivotVals.map(b => b ? 1 : 0)),
460
+ ];
461
+ }
462
+ /**
463
+ * Commodity Channel Index
464
+ * @param source - Source series (typically hlc3)
465
+ * @param length - Period length
466
+ * @returns Series with CCI values
467
+ */
468
+ export function cci(source, length) {
469
+ const bars = source.bars;
470
+ const sourceValues = source.toArray();
471
+ const result = taCore.cci(sourceValues, length);
472
+ return Series.fromArray(bars, result);
473
+ }
474
+ /**
475
+ * Parabolic SAR (Stop and Reverse)
476
+ * @param bars - Bar data
477
+ * @param start - Initial acceleration factor (default: 0.02)
478
+ * @param inc - Acceleration factor increment (default: 0.02)
479
+ * @param max - Maximum acceleration factor (default: 0.2)
480
+ * @returns Series with SAR values
481
+ */
482
+ export function sar(bars, start = 0.02, inc = 0.02, max = 0.2) {
483
+ const high = bars.map(b => b.high);
484
+ const low = bars.map(b => b.low);
485
+ const close = bars.map(b => b.close);
486
+ const result = taCore.sar(start, inc, max, high, low, close);
487
+ return Series.fromArray(bars, result);
488
+ }
489
+ /**
490
+ * Deviation
491
+ * @param source - Source series
492
+ * @param length - Period length
493
+ * @returns Series with deviation values
494
+ */
495
+ export function dev(source, length) {
496
+ const bars = source.bars;
497
+ const result = taCore.dev(source.toArray(), length);
498
+ return Series.fromArray(bars, result);
499
+ }
500
+ /**
501
+ * Variance
502
+ * @param source - Source series
503
+ * @param length - Period length
504
+ * @param biased - Use biased estimation (default: true)
505
+ * @returns Series with variance values
506
+ */
507
+ export function variance(source, length, biased = true) {
508
+ const bars = source.bars;
509
+ const result = taCore.variance(source.toArray(), length, biased);
510
+ return Series.fromArray(bars, result);
511
+ }
512
+ /**
513
+ * Median
514
+ * @param source - Source series
515
+ * @param length - Period length
516
+ * @returns Series with median values
517
+ */
518
+ export function median(source, length) {
519
+ const bars = source.bars;
520
+ const result = taCore.median(source.toArray(), length);
521
+ return Series.fromArray(bars, result);
522
+ }
523
+ /**
524
+ * Symmetrically Weighted Moving Average
525
+ * @param source - Source series
526
+ * @returns Series with SWMA values
527
+ */
528
+ export function swma(source) {
529
+ const bars = source.bars;
530
+ const result = taCore.swma(source.toArray());
531
+ return Series.fromArray(bars, result);
532
+ }
533
+ /**
534
+ * Correlation
535
+ * @param source1 - First source series
536
+ * @param source2 - Second source series
537
+ * @param length - Period length
538
+ * @returns Series with correlation values
539
+ */
540
+ export function correlation(source1, source2, length) {
541
+ const bars = source1.bars;
542
+ const result = taCore.correlation(source1.toArray(), source2.toArray(), length);
543
+ return Series.fromArray(bars, result);
544
+ }
545
+ /**
546
+ * Percent Rank
547
+ * @param source - Source series
548
+ * @param length - Period length
549
+ * @returns Series with percent rank values
550
+ */
551
+ export function percentrank(source, length) {
552
+ const bars = source.bars;
553
+ const result = taCore.percentrank(source.toArray(), length);
554
+ return Series.fromArray(bars, result);
555
+ }
556
+ /**
557
+ * Money Flow Index
558
+ * @param source - Source series (typically hlc3)
559
+ * @param length - Period length
560
+ * @param volume - Volume series
561
+ * @returns Series with MFI values
562
+ */
563
+ export function mfi(source, length, volume) {
564
+ const bars = source.bars;
565
+ const result = taCore.mfi(source.toArray(), length, volume.toArray());
566
+ return Series.fromArray(bars, result);
567
+ }
568
+ /**
569
+ * Hull Moving Average
570
+ * @param source - Source series
571
+ * @param length - Period length
572
+ * @returns Series with HMA values
573
+ */
574
+ export function hma(source, length) {
575
+ const bars = source.bars;
576
+ const result = taCore.hma(source.toArray(), length);
577
+ return Series.fromArray(bars, result);
578
+ }
579
+ /**
580
+ * Pivot High
581
+ * @param source - Source series
582
+ * @param leftbars - Number of bars to the left of the pivot
583
+ * @param rightbars - Number of bars to the right of the pivot
584
+ * @returns Series with the pivot high value on the bar where the pivot is confirmed,
585
+ * `rightbars` bars after the pivot bar (as in PineScript), NaN elsewhere
586
+ */
587
+ export function pivothigh(source, leftbars, rightbars) {
588
+ const bars = source.bars;
589
+ const result = taCore.pivothigh(source.toArray(), leftbars, rightbars);
590
+ return Series.fromArray(bars, result);
591
+ }
592
+ /**
593
+ * Pivot Low
594
+ * @param source - Source series
595
+ * @param leftbars - Number of bars to the left of the pivot
596
+ * @param rightbars - Number of bars to the right of the pivot
597
+ * @returns Series with the pivot low value on the bar where the pivot is confirmed,
598
+ * `rightbars` bars after the pivot bar (as in PineScript), NaN elsewhere
599
+ */
600
+ export function pivotlow(source, leftbars, rightbars) {
601
+ const bars = source.bars;
602
+ const result = taCore.pivotlow(source.toArray(), leftbars, rightbars);
603
+ return Series.fromArray(bars, result);
604
+ }
605
+ /**
606
+ * Bars Since condition was true
607
+ * @param condition - Boolean series (1/0 values)
608
+ * @returns Series with bar count since condition was last true
609
+ */
610
+ export function barssince(condition) {
611
+ const bars = condition.bars;
612
+ const boolValues = condition.toArray().map(v => v === 1);
613
+ const result = taCore.barssince(boolValues);
614
+ return Series.fromArray(bars, result);
615
+ }
616
+ /**
617
+ * Value When condition was true
618
+ * @param condition - Boolean series (1/0 values)
619
+ * @param source - Source series to extract values from
620
+ * @param occurrence - Which occurrence to use (0 = most recent)
621
+ * @returns Series with values from source when condition was true
622
+ */
623
+ export function valuewhen(condition, source, occurrence) {
624
+ const bars = condition.bars;
625
+ const boolValues = condition.toArray().map(v => v === 1);
626
+ const result = taCore.valuewhen(boolValues, source.toArray(), occurrence);
627
+ return Series.fromArray(bars, result);
628
+ }
629
+ /**
630
+ * Directional Movement Index
631
+ * @param bars - Bar data
632
+ * @param diLength - DI period length
633
+ * @param adxSmoothing - ADX smoothing period
634
+ * @returns Tuple of [plusDI, minusDI, adx] Series
635
+ */
636
+ export function dmi(bars, diLength, adxSmoothing) {
637
+ const high = bars.map(b => b.high);
638
+ const low = bars.map(b => b.low);
639
+ const close = bars.map(b => b.close);
640
+ const [plusDI, minusDI, adx] = taCore.dmi(diLength, adxSmoothing, high, low, close);
641
+ return [
642
+ Series.fromArray(bars, plusDI),
643
+ Series.fromArray(bars, minusDI),
644
+ Series.fromArray(bars, adx),
645
+ ];
646
+ }
647
+ /**
648
+ * True Strength Index
649
+ * @param source - Source series
650
+ * @param shortLength - Short smoothing period
651
+ * @param longLength - Long smoothing period
652
+ * @returns Series with TSI values
653
+ */
654
+ export function tsi(source, shortLength, longLength) {
655
+ const bars = source.bars;
656
+ const result = taCore.tsi(source.toArray(), shortLength, longLength);
657
+ return Series.fromArray(bars, result);
658
+ }
659
+ /**
660
+ * Chande Momentum Oscillator
661
+ * @param source - Source series
662
+ * @param length - Period length
663
+ * @returns Series with CMO values
664
+ */
665
+ export function cmo(source, length) {
666
+ const bars = source.bars;
667
+ const result = taCore.cmo(source.toArray(), length);
668
+ return Series.fromArray(bars, result);
669
+ }
670
+ /**
671
+ * Keltner Channel
672
+ * @param bars - Bar data
673
+ * @param source - Source series
674
+ * @param length - Period length
675
+ * @param mult - Multiplier
676
+ * @param useTrueRange - Use true range (default: true)
677
+ * @returns Tuple of [middle, upper, lower] Series
678
+ */
679
+ export function kc(bars, source, length, mult, useTrueRange = true) {
680
+ const high = bars.map(b => b.high);
681
+ const low = bars.map(b => b.low);
682
+ const close = bars.map(b => b.close);
683
+ const [middle, upper, lower] = taCore.kc(source.toArray(), length, mult, useTrueRange, high, low, close);
684
+ return [
685
+ Series.fromArray(bars, middle),
686
+ Series.fromArray(bars, upper),
687
+ Series.fromArray(bars, lower),
688
+ ];
689
+ }
690
+ /**
691
+ * Bollinger Bands Width
692
+ * @param source - Source series
693
+ * @param length - Period length
694
+ * @param mult - Standard deviation multiplier
695
+ * @returns Series with BBW values
696
+ */
697
+ export function bbw(source, length, mult) {
698
+ const bars = source.bars;
699
+ const result = taCore.bbw(source.toArray(), length, mult);
700
+ return Series.fromArray(bars, result);
701
+ }
702
+ /**
703
+ * Williams %R
704
+ * @param bars - Bar data
705
+ * @param length - Period length (default: 14)
706
+ * @returns Series with Williams %R values
707
+ */
708
+ export function wpr(bars, length = 14) {
709
+ const high = bars.map(b => b.high);
710
+ const low = bars.map(b => b.low);
711
+ const close = bars.map(b => b.close);
712
+ const result = taCore.wpr(high, low, close, length);
713
+ return Series.fromArray(bars, result);
714
+ }
715
+ /**
716
+ * Keltner Channel Width
717
+ * @param bars - Bar data
718
+ * @param source - Source series
719
+ * @param length - Period length (default: 20)
720
+ * @param mult - Multiplier (default: 2)
721
+ * @param useTrueRange - Use true range (default: true)
722
+ * @returns Series with KCW values
723
+ */
724
+ export function kcw(bars, source, length = 20, mult = 2, useTrueRange = true) {
725
+ const high = bars.map(b => b.high);
726
+ const low = bars.map(b => b.low);
727
+ const close = bars.map(b => b.close);
728
+ const result = taCore.kcw(source.toArray(), length, mult, useTrueRange, high, low, close);
729
+ return Series.fromArray(bars, result);
730
+ }
731
+ /**
732
+ * Range: highest minus lowest value over the last `length` non-na values (PineScript ta.range)
733
+ * @param source - Source series
734
+ * @param length - Number of values
735
+ * @returns Series with range values
736
+ */
737
+ export function range(source, length) {
738
+ const bars = source.bars;
739
+ return Series.fromArray(bars, taCore.range(source.toArray(), length));
740
+ }
741
+ /**
742
+ * Highest Bars - offset to the highest value
743
+ * @param source - Source series
744
+ * @param length - Period length
745
+ * @returns Series with bar offsets to highest value
746
+ */
747
+ export function highestbars(source, length) {
748
+ const bars = source.bars;
749
+ const result = taCore.highestbars(source.toArray(), length);
750
+ return Series.fromArray(bars, result);
751
+ }
752
+ /**
753
+ * Lowest Bars - offset to the lowest value
754
+ * @param source - Source series
755
+ * @param length - Period length
756
+ * @returns Series with bar offsets to lowest value
757
+ */
758
+ export function lowestbars(source, length) {
759
+ const bars = source.bars;
760
+ const result = taCore.lowestbars(source.toArray(), length);
761
+ return Series.fromArray(bars, result);
762
+ }
763
+ /**
764
+ * All-time highest value (PineScript ta.max)
765
+ * @param source - Source series
766
+ * @returns Series with the highest value up to each bar
767
+ */
768
+ export function max(source) {
769
+ const bars = source.bars;
770
+ return Series.fromArray(bars, taCore.max(source.toArray()));
771
+ }
772
+ /**
773
+ * All-time lowest value (PineScript ta.min)
774
+ * @param source - Source series
775
+ * @returns Series with the lowest value up to each bar
776
+ */
777
+ export function min(source) {
778
+ const bars = source.bars;
779
+ return Series.fromArray(bars, taCore.min(source.toArray()));
780
+ }
781
+ /**
782
+ * Center of Gravity
783
+ * @param source - Source series
784
+ * @param length - Period length (default: 10)
785
+ * @returns Series with COG values
786
+ */
787
+ export function cog(source, length = 10) {
788
+ const bars = source.bars;
789
+ const result = taCore.cog(source.toArray(), length);
790
+ return Series.fromArray(bars, result);
791
+ }
792
+ /**
793
+ * Mode (most frequent value)
794
+ * @param source - Source series
795
+ * @param length - Period length
796
+ * @returns Series with mode values
797
+ */
798
+ export function mode(source, length) {
799
+ const bars = source.bars;
800
+ const result = taCore.mode(source.toArray(), length);
801
+ return Series.fromArray(bars, result);
802
+ }
803
+ /**
804
+ * Percentile (linear interpolation)
805
+ * @param source - Source series
806
+ * @param length - Period length
807
+ * @param percentage - Percentile percentage
808
+ * @returns Series with percentile values
809
+ */
810
+ export function percentile_linear_interpolation(source, length, percentage) {
811
+ const bars = source.bars;
812
+ const result = taCore.percentile_linear_interpolation(source.toArray(), length, percentage);
813
+ return Series.fromArray(bars, result);
814
+ }
815
+ /**
816
+ * Percentile (nearest rank)
817
+ * @param source - Source series
818
+ * @param length - Period length
819
+ * @param percentage - Percentile percentage
820
+ * @returns Series with percentile values
821
+ */
822
+ export function percentile_nearest_rank(source, length, percentage) {
823
+ const bars = source.bars;
824
+ const result = taCore.percentile_nearest_rank(source.toArray(), length, percentage);
825
+ return Series.fromArray(bars, result);
826
+ }
827
+ /**
828
+ * Rank Correlation Index
829
+ * @param source - Source series
830
+ * @param length - Period length
831
+ * @returns Series with RCI values
832
+ */
833
+ export function rci(source, length) {
834
+ const bars = source.bars;
835
+ const result = taCore.rci(source.toArray(), length);
836
+ return Series.fromArray(bars, result);
837
+ }
838
+ // Export as namespace object to match PineScript ta.* syntax
839
+ export const ta = {
840
+ sma,
841
+ ema,
842
+ wma,
843
+ vwma,
844
+ rma,
845
+ rsi,
846
+ macd,
847
+ bb,
848
+ stdev,
849
+ atr,
850
+ tr,
851
+ stoch,
852
+ crossover,
853
+ crossunder,
854
+ cross,
855
+ change,
856
+ mom,
857
+ roc,
858
+ highest,
859
+ lowest,
860
+ rising,
861
+ falling,
862
+ cum,
863
+ supertrend,
864
+ vwap,
865
+ ichimoku,
866
+ linreg,
867
+ alma,
868
+ zigzag,
869
+ cci,
870
+ sar,
871
+ dev,
872
+ variance,
873
+ median,
874
+ swma,
875
+ correlation,
876
+ percentrank,
877
+ mfi,
878
+ hma,
879
+ pivothigh,
880
+ pivotlow,
881
+ barssince,
882
+ valuewhen,
883
+ dmi,
884
+ tsi,
885
+ cmo,
886
+ kc,
887
+ bbw,
888
+ wpr,
889
+ kcw,
890
+ range,
891
+ highestbars,
892
+ lowestbars,
893
+ max,
894
+ min,
895
+ vwapBands,
896
+ obv,
897
+ pvt,
898
+ accdist,
899
+ nvi,
900
+ pvi,
901
+ iii,
902
+ wad,
903
+ wvad,
904
+ cog,
905
+ mode,
906
+ percentile_linear_interpolation,
907
+ percentile_nearest_rank,
908
+ rci,
909
+ };
910
+ //# sourceMappingURL=ta-series.js.map