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,470 @@
1
+ /**
2
+ * Line namespace
3
+ * Functions for creating and manipulating line drawing objects.
4
+ *
5
+ * @remarks
6
+ * While lines are primarily visual in PineScript, the line.get_price() function provides
7
+ * computational value for algorithmic trading - calculating trend line breakouts,
8
+ * support/resistance levels, and pattern recognition.
9
+ *
10
+ * @version 6
11
+ */
12
+ import { all as allDrawings, isDeleted, register, remove } from '../drawing/registry.js';
13
+ export function new_line(...args) {
14
+ let x1, y1, x2, y2, rest;
15
+ if (typeof args[0] === 'object' && args[0] !== null) {
16
+ const [p1, p2, ...others] = args;
17
+ const xloc = others[0] ?? 'bar_index';
18
+ [x1, y1, x2, y2, rest] = [pointX(p1, xloc), p1.price, pointX(p2, xloc), p2.price, others];
19
+ }
20
+ else {
21
+ [x1, y1, x2, y2] = args;
22
+ rest = args.slice(4);
23
+ }
24
+ const [xloc, extend, lineColor, style, width, force_overlay] = rest;
25
+ return register('line', {
26
+ x1,
27
+ y1,
28
+ x2,
29
+ y2,
30
+ xloc: xloc ?? 'bar_index',
31
+ extend: extend ?? 'none',
32
+ color: lineColor,
33
+ style: style || 'solid',
34
+ width: width || 1,
35
+ force_overlay: force_overlay ?? false,
36
+ });
37
+ }
38
+ /**
39
+ * Returns the price level of a line at a given bar index.
40
+ *
41
+ * @param id - Line object
42
+ * @param x - Bar index to calculate price at
43
+ * @returns Price level at the given bar index, or NaN if outside bounds and not extended
44
+ *
45
+ * @remarks
46
+ * - **CRITICAL COMPUTATIONAL FUNCTION** - Enables trend line breakout detection
47
+ * - Uses linear interpolation: y = y1 + (y2 - y1) * (x - x1) / (x2 - x1)
48
+ * - Respects extend mode:
49
+ * - 'none': Returns NaN if x is outside [x1, x2]
50
+ * - 'left': Extends infinitely to the left (x < x1)
51
+ * - 'right': Extends infinitely to the right (x > x2)
52
+ * - 'both': Extends infinitely in both directions
53
+ * - Only works with xloc='bar_index' lines (not xloc='bar_time')
54
+ * - In PineScript, this function treats all lines as if extend='both' regardless of actual setting
55
+ * For compatibility, we follow the actual extend setting
56
+ *
57
+ * @example
58
+ * ```typescript
59
+ * const trendLine = line.new(0, 100, 50, 150, 'bar_index', 'right');
60
+ *
61
+ * // Within segment
62
+ * line.get_price(trendLine, 25); // Returns 125
63
+ *
64
+ * // Extended right
65
+ * line.get_price(trendLine, 100); // Returns 200
66
+ *
67
+ * // Not extended left (with extend='right')
68
+ * line.get_price(trendLine, -10); // Returns NaN
69
+ *
70
+ * // Use for breakout detection
71
+ * const currentPrice = close[close.length - 1];
72
+ * const linePrice = line.get_price(trendLine, close.length - 1);
73
+ * if (currentPrice > linePrice) {
74
+ * console.log('Breakout above trend line!');
75
+ * }
76
+ * ```
77
+ */
78
+ export function get_price(id, x) {
79
+ const { x1, y1, x2, y2, extend, xloc } = id;
80
+ // Only works with bar_index xloc
81
+ if (xloc === 'bar_time') {
82
+ throw new Error('line.get_price() only works with xloc.bar_index lines, not xloc.bar_time');
83
+ }
84
+ // Avoid division by zero
85
+ if (x2 === x1) {
86
+ // Vertical line - return NaN or could return y1/y2
87
+ return NaN;
88
+ }
89
+ // Linear interpolation formula: y = y1 + (y2 - y1) * (x - x1) / (x2 - x1)
90
+ const slope = (y2 - y1) / (x2 - x1);
91
+ const price = y1 + slope * (x - x1);
92
+ // Check bounds based on extend mode
93
+ if (extend === 'none') {
94
+ // Only valid within the segment
95
+ if (x < Math.min(x1, x2) || x > Math.max(x1, x2)) {
96
+ return NaN;
97
+ }
98
+ }
99
+ else if (extend === 'left') {
100
+ // Valid to the left and within, but not to the right
101
+ if (x > Math.max(x1, x2)) {
102
+ return NaN;
103
+ }
104
+ }
105
+ else if (extend === 'right') {
106
+ // Valid to the right and within, but not to the left
107
+ if (x < Math.min(x1, x2)) {
108
+ return NaN;
109
+ }
110
+ }
111
+ // extend === 'both': always valid
112
+ return price;
113
+ }
114
+ /**
115
+ * Returns the first point's x coordinate.
116
+ *
117
+ * @param id - Line object
118
+ * @returns X coordinate of the first point
119
+ *
120
+ * @example
121
+ * ```typescript
122
+ * const line = line.new(10, 100, 50, 150);
123
+ * const x1 = line.get_x1(line); // Returns 10
124
+ * ```
125
+ */
126
+ export function get_x1(id) {
127
+ return id.x1;
128
+ }
129
+ /**
130
+ * Returns the second point's x coordinate.
131
+ *
132
+ * @param id - Line object
133
+ * @returns X coordinate of the second point
134
+ *
135
+ * @example
136
+ * ```typescript
137
+ * const line = line.new(10, 100, 50, 150);
138
+ * const x2 = line.get_x2(line); // Returns 50
139
+ * ```
140
+ */
141
+ export function get_x2(id) {
142
+ return id.x2;
143
+ }
144
+ /**
145
+ * Returns the first point's y coordinate (price level).
146
+ *
147
+ * @param id - Line object
148
+ * @returns Y coordinate (price) of the first point
149
+ *
150
+ * @example
151
+ * ```typescript
152
+ * const line = line.new(10, 100, 50, 150);
153
+ * const y1 = line.get_y1(line); // Returns 100
154
+ * ```
155
+ */
156
+ export function get_y1(id) {
157
+ return id.y1;
158
+ }
159
+ /**
160
+ * Returns the second point's y coordinate (price level).
161
+ *
162
+ * @param id - Line object
163
+ * @returns Y coordinate (price) of the second point
164
+ *
165
+ * @example
166
+ * ```typescript
167
+ * const line = line.new(10, 100, 50, 150);
168
+ * const y2 = line.get_y2(line); // Returns 150
169
+ * ```
170
+ */
171
+ export function get_y2(id) {
172
+ return id.y2;
173
+ }
174
+ /**
175
+ * Creates a copy of the line object.
176
+ *
177
+ * @param id - Line object to copy
178
+ * @returns New line object with same properties
179
+ *
180
+ * @remarks
181
+ * Creates a shallow copy of the line. Modifications to the copy won't affect the original.
182
+ *
183
+ * @example
184
+ * ```typescript
185
+ * const originalLine = line.new(0, 100, 50, 150);
186
+ * const copiedLine = line.copy(originalLine);
187
+ *
188
+ * // Modify copy without affecting original
189
+ * copiedLine.y2 = 200;
190
+ * ```
191
+ */
192
+ export function copy(id) {
193
+ return register('line', { ...id });
194
+ }
195
+ /**
196
+ * Sets the first point's x coordinate.
197
+ *
198
+ * @param id - Line object to modify
199
+ * @param x - New x coordinate (bar index or timestamp)
200
+ * @returns Modified line object
201
+ *
202
+ * @example
203
+ * ```typescript
204
+ * const line = line.new(0, 100, 50, 150);
205
+ * line.set_x1(line, 10); // Move first point to bar 10
206
+ * ```
207
+ */
208
+ export function set_x1(id, x) {
209
+ if (isDeleted(id))
210
+ return id;
211
+ id.x1 = x;
212
+ return id;
213
+ }
214
+ /**
215
+ * Sets the second point's x coordinate.
216
+ *
217
+ * @param id - Line object to modify
218
+ * @param x - New x coordinate (bar index or timestamp)
219
+ * @returns Modified line object
220
+ *
221
+ * @example
222
+ * ```typescript
223
+ * const line = line.new(0, 100, 50, 150);
224
+ * line.set_x2(line, 60); // Move second point to bar 60
225
+ * ```
226
+ */
227
+ export function set_x2(id, x) {
228
+ if (isDeleted(id))
229
+ return id;
230
+ id.x2 = x;
231
+ return id;
232
+ }
233
+ /**
234
+ * Sets the first point's y coordinate (price level).
235
+ *
236
+ * @param id - Line object to modify
237
+ * @param y - New y coordinate (price)
238
+ * @returns Modified line object
239
+ *
240
+ * @example
241
+ * ```typescript
242
+ * const line = line.new(0, 100, 50, 150);
243
+ * line.set_y1(line, 110); // Move first point to price 110
244
+ * ```
245
+ */
246
+ export function set_y1(id, y) {
247
+ if (isDeleted(id))
248
+ return id;
249
+ id.y1 = y;
250
+ return id;
251
+ }
252
+ /**
253
+ * Sets the second point's y coordinate (price level).
254
+ *
255
+ * @param id - Line object to modify
256
+ * @param y - New y coordinate (price)
257
+ * @returns Modified line object
258
+ *
259
+ * @example
260
+ * ```typescript
261
+ * const line = line.new(0, 100, 50, 150);
262
+ * line.set_y2(line, 160); // Move second point to price 160
263
+ * ```
264
+ */
265
+ export function set_y2(id, y) {
266
+ if (isDeleted(id))
267
+ return id;
268
+ id.y2 = y;
269
+ return id;
270
+ }
271
+ /**
272
+ * Sets both coordinates of the first point.
273
+ *
274
+ * @param id - Line object to modify
275
+ * @param x - New x coordinate
276
+ * @param y - New y coordinate
277
+ * @returns Modified line object
278
+ *
279
+ * @example
280
+ * ```typescript
281
+ * const line = line.new(0, 100, 50, 150);
282
+ * line.set_xy1(line, 5, 105); // Move first point to (5, 105)
283
+ * ```
284
+ */
285
+ export function set_xy1(id, x, y) {
286
+ if (isDeleted(id))
287
+ return id;
288
+ id.x1 = x;
289
+ id.y1 = y;
290
+ return id;
291
+ }
292
+ /**
293
+ * Sets both coordinates of the second point.
294
+ *
295
+ * @param id - Line object to modify
296
+ * @param x - New x coordinate
297
+ * @param y - New y coordinate
298
+ * @returns Modified line object
299
+ *
300
+ * @example
301
+ * ```typescript
302
+ * const line = line.new(0, 100, 50, 150);
303
+ * line.set_xy2(line, 60, 160); // Move second point to (60, 160)
304
+ * ```
305
+ */
306
+ export function set_xy2(id, x, y) {
307
+ if (isDeleted(id))
308
+ return id;
309
+ id.x2 = x;
310
+ id.y2 = y;
311
+ return id;
312
+ }
313
+ /**
314
+ * Sets the coordinate system for the line.
315
+ *
316
+ * @param id - Line object to modify
317
+ * @param x1 - New first point x coordinate
318
+ * @param x2 - New second point x coordinate
319
+ * @param xloc - New coordinate system ('bar_index' or 'bar_time')
320
+ * @returns Modified line object
321
+ *
322
+ * @remarks
323
+ * When changing xloc, you must provide appropriate x coordinates for the new system.
324
+ *
325
+ * @example
326
+ * ```typescript
327
+ * const line = line.new(0, 100, 50, 150);
328
+ * // Change to timestamp-based coordinates
329
+ * line.set_xloc(line, 1609459200000, 1609545600000, 'bar_time');
330
+ * ```
331
+ */
332
+ export function set_xloc(id, x1, x2, xloc) {
333
+ if (isDeleted(id))
334
+ return id;
335
+ id.x1 = x1;
336
+ id.x2 = x2;
337
+ id.xloc = xloc;
338
+ return id;
339
+ }
340
+ /**
341
+ * Sets the extension mode of the line.
342
+ *
343
+ * @param id - Line object to modify
344
+ * @param extend - New extension mode
345
+ * @returns Modified line object
346
+ *
347
+ * @example
348
+ * ```typescript
349
+ * const line = line.new(0, 100, 50, 150);
350
+ * line.set_extend(line, 'right'); // Extend line to the right
351
+ * ```
352
+ */
353
+ export function set_extend(id, extend) {
354
+ if (isDeleted(id))
355
+ return id;
356
+ id.extend = extend;
357
+ return id;
358
+ }
359
+ /**
360
+ * Sets the line color.
361
+ *
362
+ * @param id - Line object to modify
363
+ * @param color - New line color
364
+ * @returns Modified line object
365
+ *
366
+ * @example
367
+ * ```typescript
368
+ * const line = line.new(0, 100, 50, 150);
369
+ * line.set_color(line, '#FF0000'); // Change to red
370
+ * ```
371
+ */
372
+ export function set_color(id, lineColor) {
373
+ if (isDeleted(id))
374
+ return id;
375
+ id.color = lineColor;
376
+ return id;
377
+ }
378
+ /**
379
+ * Sets the line style.
380
+ *
381
+ * @param id - Line object to modify
382
+ * @param style - New line style
383
+ * @returns Modified line object
384
+ *
385
+ * @example
386
+ * ```typescript
387
+ * const line = line.new(0, 100, 50, 150);
388
+ * line.set_style(line, 'dashed'); // Change to dashed line
389
+ * ```
390
+ */
391
+ export function set_style(id, style) {
392
+ if (isDeleted(id))
393
+ return id;
394
+ id.style = style;
395
+ return id;
396
+ }
397
+ /**
398
+ * Sets the line width.
399
+ *
400
+ * @param id - Line object to modify
401
+ * @param width - New line width in pixels
402
+ * @returns Modified line object
403
+ *
404
+ * @example
405
+ * ```typescript
406
+ * const line = line.new(0, 100, 50, 150);
407
+ * line.set_width(line, 3); // Make line thicker
408
+ * ```
409
+ */
410
+ export function set_width(id, width) {
411
+ if (isDeleted(id))
412
+ return id;
413
+ id.width = width;
414
+ return id;
415
+ }
416
+ /**
417
+ * Deletes the line object.
418
+ *
419
+ * @param id - Line object to delete
420
+ *
421
+ * @remarks
422
+ * Removes the line from `line.all()`. As in PineScript, the deleted line is `na`: its getters
423
+ * return NaN and its setters do nothing. Deleting it twice has no effect. Deleting a line also deletes the linefills that use it.
424
+ *
425
+ * @example
426
+ * ```typescript
427
+ * const line = line.new(0, 100, 50, 150);
428
+ * line.delete(line);
429
+ * // line.all() no longer contains it
430
+ * ```
431
+ */
432
+ export function delete_line(id) {
433
+ remove('line', id);
434
+ }
435
+ /** x coordinate of a chart point for an object's xloc (`na` when the point has no such coordinate). */
436
+ function pointX(point, xloc) {
437
+ const x = xloc === 'bar_time' ? point.time : point.index;
438
+ return x ?? NaN;
439
+ }
440
+ /**
441
+ * All live lines, in creation order (PineScript `line.all`). A new array: later changes do not affect it.
442
+ */
443
+ export function all() {
444
+ return allDrawings('line');
445
+ }
446
+ /**
447
+ * Sets the first point of the line from a chart point: `point.index` for `bar_index` lines,
448
+ * `point.time` for `bar_time` lines (`na` when the point does not have it), and `point.price`.
449
+ */
450
+ export function set_first_point(id, point) {
451
+ if (isDeleted(id))
452
+ return id;
453
+ id.x1 = pointX(point, id.xloc);
454
+ id.y1 = point.price;
455
+ return id;
456
+ }
457
+ /**
458
+ * Sets the second point of the line from a chart point (see {@link set_first_point}).
459
+ */
460
+ export function set_second_point(id, point) {
461
+ if (isDeleted(id))
462
+ return id;
463
+ id.x2 = pointX(point, id.xloc);
464
+ id.y2 = point.price;
465
+ return id;
466
+ }
467
+ // Alias to match PineScript API
468
+ export { new_line as new };
469
+ export { delete_line as delete };
470
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/line/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,124 @@
1
+ /**
2
+ * Linefill namespace
3
+ * Functions for creating and manipulating linefill drawing objects.
4
+ *
5
+ * @remarks
6
+ * Linefill objects fill the area between two lines with a color.
7
+ * They have minimal computational value but automatically follow line movements
8
+ * and provide a way to retrieve the underlying line references.
9
+ *
10
+ * @version 6
11
+ */
12
+ import type { Linefill, Line, color } from '../types/index.js';
13
+ /**
14
+ * Creates a new linefill object that fills the area between two lines.
15
+ *
16
+ * @param line1 - First line object
17
+ * @param line2 - Second line object
18
+ * @param fillColor - Fill color (optional)
19
+ * @returns New linefill object
20
+ *
21
+ * @remarks
22
+ * - Automatically follows line movements (if lines are updated, fill updates too)
23
+ * - Automatically deleted if either line is deleted
24
+ * - If both lines extend in same direction, fill extends too
25
+ * - Purely visual in PineScript, but getters allow retrieving line references
26
+ *
27
+ * @example
28
+ * ```typescript
29
+ * import { line, linefill } from 'oakscriptjs';
30
+ *
31
+ * // Create channel lines
32
+ * const upperLine = line.new(0, 160, 50, 170, 'bar_index', 'right');
33
+ * const lowerLine = line.new(0, 140, 50, 150, 'bar_index', 'right');
34
+ *
35
+ * // Fill channel with color
36
+ * const channelFill = linefill.new(upperLine, lowerLine, '#0000FF20'); // Transparent blue
37
+ * ```
38
+ */
39
+ export declare function new_linefill(line1: Line, line2: Line, fillColor?: color): Linefill;
40
+ /**
41
+ * Returns the first line reference.
42
+ *
43
+ * @param id - Linefill object
44
+ * @returns First line object
45
+ *
46
+ * @remarks
47
+ * Can be used to retrieve and manipulate the first line.
48
+ *
49
+ * @example
50
+ * ```typescript
51
+ * const channelFill = linefill.new(upperLine, lowerLine);
52
+ *
53
+ * // Later, retrieve and update the first line
54
+ * const line1 = linefill.get_line1(channelFill);
55
+ * line.set_y2(line1, 175); // Update upper line's second point
56
+ * ```
57
+ */
58
+ export declare function get_line1(id: Linefill): Line;
59
+ /**
60
+ * Returns the second line reference.
61
+ *
62
+ * @param id - Linefill object
63
+ * @returns Second line object
64
+ *
65
+ * @remarks
66
+ * Can be used to retrieve and manipulate the second line.
67
+ *
68
+ * @example
69
+ * ```typescript
70
+ * const channelFill = linefill.new(upperLine, lowerLine);
71
+ *
72
+ * // Later, retrieve and update the second line
73
+ * const line2 = linefill.get_line2(channelFill);
74
+ * line.set_y2(line2, 145); // Update lower line's second point
75
+ * ```
76
+ */
77
+ export declare function get_line2(id: Linefill): Line;
78
+ /**
79
+ * Sets the fill color.
80
+ *
81
+ * @param id - Linefill object to modify
82
+ * @param fillColor - New fill color
83
+ * @returns Modified linefill object
84
+ *
85
+ * @remarks
86
+ * Useful for dynamically changing channel colors based on conditions.
87
+ *
88
+ * @example
89
+ * ```typescript
90
+ * const channelFill = linefill.new(upperLine, lowerLine, '#0000FF20');
91
+ *
92
+ * // Change color based on trend
93
+ * if (bullish) {
94
+ * linefill.set_color(channelFill, '#00FF0020'); // Green
95
+ * } else {
96
+ * linefill.set_color(channelFill, '#FF000020'); // Red
97
+ * }
98
+ * ```
99
+ */
100
+ export declare function set_color(id: Linefill, fillColor: color): Linefill;
101
+ /**
102
+ * Deletes the linefill object.
103
+ *
104
+ * @param id - Linefill object to delete
105
+ *
106
+ * @remarks
107
+ * Removes the linefill from `linefill.all()`. As in PineScript, the deleted linefill is `na`: its getters
108
+ * return NaN and its setters do nothing. Deleting it twice has no effect.
109
+ *
110
+ * @example
111
+ * ```typescript
112
+ * const channelFill = linefill.new(upperLine, lowerLine);
113
+ * linefill.delete(channelFill);
114
+ * // linefill.all() no longer contains it
115
+ * ```
116
+ */
117
+ export declare function delete_linefill(id: Linefill): void;
118
+ /**
119
+ * All live linefills, in creation order (PineScript `linefill.all`). A new array.
120
+ */
121
+ export declare function all(): Linefill[];
122
+ export { new_linefill as new };
123
+ export { delete_linefill as delete };
124
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/linefill/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE/D;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,CAAC,EAAE,KAAK,GAAG,QAAQ,CAMlF;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,SAAS,CAAC,EAAE,EAAE,QAAQ,GAAG,IAAI,CAE5C;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,SAAS,CAAC,EAAE,EAAE,QAAQ,GAAG,IAAI,CAE5C;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,GAAG,QAAQ,CAIlE;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,eAAe,CAAC,EAAE,EAAE,QAAQ,GAAG,IAAI,CAElD;AAGD;;GAEG;AACH,wBAAgB,GAAG,IAAI,QAAQ,EAAE,CAEhC;AAGD,OAAO,EAAE,YAAY,IAAI,GAAG,EAAE,CAAC;AAC/B,OAAO,EAAE,eAAe,IAAI,MAAM,EAAE,CAAC"}