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,602 @@
1
+ /**
2
+ * Box namespace
3
+ * Functions for creating and manipulating box drawing objects.
4
+ *
5
+ * @remarks
6
+ * Box objects represent rectangular areas on the chart. The getter functions
7
+ * (get_top, get_bottom, get_left, get_right) enable computational use cases like:
8
+ * - Gap detection and tracking (detecting when price fills gaps)
9
+ * - Range breakout analysis (detecting when price breaks out of consolidation)
10
+ * - Rectangle pattern recognition
11
+ *
12
+ * @version 6
13
+ */
14
+ import { all as allDrawings, isDeleted, register, remove } from '../drawing/registry.js';
15
+ export function new_box(...args) {
16
+ let left, top, right, bottom, rest;
17
+ if (typeof args[0] === 'object' && args[0] !== null) {
18
+ const [tl, br, ...others] = args;
19
+ const xloc = others[4] ?? 'bar_index';
20
+ [left, top, right, bottom, rest] = [pointX(tl, xloc), tl.price, pointX(br, xloc), br.price, others];
21
+ }
22
+ else {
23
+ [left, top, right, bottom] = args;
24
+ rest = args.slice(4);
25
+ }
26
+ const [border_color, border_width, border_style, extend, xloc, bgcolor, text, text_size, text_color, text_halign, text_valign, text_wrap, text_font_family, force_overlay, text_formatting] = rest;
27
+ return register('box', {
28
+ left,
29
+ top,
30
+ right,
31
+ bottom,
32
+ xloc: xloc ?? 'bar_index',
33
+ extend: extend ?? 'none',
34
+ border_color,
35
+ border_width: border_width || 1,
36
+ border_style: border_style || 'solid',
37
+ bgcolor,
38
+ text,
39
+ text_size,
40
+ text_color,
41
+ text_halign,
42
+ text_valign,
43
+ text_wrap,
44
+ text_font_family,
45
+ force_overlay: force_overlay ?? false,
46
+ text_formatting,
47
+ });
48
+ }
49
+ /**
50
+ * Returns the left border x coordinate.
51
+ *
52
+ * @param id - Box object
53
+ * @returns Left border coordinate (bar index or timestamp)
54
+ *
55
+ * @remarks
56
+ * **COMPUTATIONAL USE**: Calculate gap duration, validate range timeframes
57
+ *
58
+ * @example
59
+ * ```typescript
60
+ * const gap = box.new(10, 105, 20, 100);
61
+ * const currentBar = 30;
62
+ * const duration = currentBar - box.get_left(gap); // Returns 20
63
+ *
64
+ * if (duration > 50) {
65
+ * console.log('Gap has been open for 50+ bars');
66
+ * }
67
+ * ```
68
+ */
69
+ export function get_left(id) {
70
+ return id.left;
71
+ }
72
+ /**
73
+ * Returns the right border x coordinate.
74
+ *
75
+ * @param id - Box object
76
+ * @returns Right border coordinate (bar index or timestamp)
77
+ *
78
+ * @remarks
79
+ * **COMPUTATIONAL USE**: Calculate gap duration, update trailing edges
80
+ *
81
+ * @example
82
+ * ```typescript
83
+ * const range = box.new(100, 155, 150, 145);
84
+ * const width = box.get_right(range) - box.get_left(range); // Returns 50 bars
85
+ * ```
86
+ */
87
+ export function get_right(id) {
88
+ return id.right;
89
+ }
90
+ /**
91
+ * Returns the top border price level.
92
+ *
93
+ * @param id - Box object
94
+ * @returns Top border price
95
+ *
96
+ * @remarks
97
+ * **COMPUTATIONAL USE**: Detect breakouts above resistance, check gap fills
98
+ *
99
+ * @example
100
+ * ```typescript
101
+ * const gap = box.new(10, 105, 20, 100); // Bearish gap
102
+ *
103
+ * // Check if price has filled gap from below
104
+ * const high = 106;
105
+ * if (high > box.get_top(gap)) {
106
+ * console.log('Gap completely filled!');
107
+ * }
108
+ * ```
109
+ */
110
+ export function get_top(id) {
111
+ return id.top;
112
+ }
113
+ /**
114
+ * Returns the bottom border price level.
115
+ *
116
+ * @param id - Box object
117
+ * @returns Bottom border price
118
+ *
119
+ * @remarks
120
+ * **COMPUTATIONAL USE**: Detect breakouts below support, check gap fills
121
+ *
122
+ * @example
123
+ * ```typescript
124
+ * const gap = box.new(10, 105, 20, 100); // Bearish gap
125
+ *
126
+ * // Check if price has touched gap from above
127
+ * const low = 104;
128
+ * if (low < box.get_top(gap) && low > box.get_bottom(gap)) {
129
+ * console.log('Price entered the gap!');
130
+ * }
131
+ * ```
132
+ */
133
+ export function get_bottom(id) {
134
+ return id.bottom;
135
+ }
136
+ /**
137
+ * Creates a copy of the box object.
138
+ *
139
+ * @param id - Box object to copy
140
+ * @returns New box object with same properties
141
+ *
142
+ * @remarks
143
+ * Creates a shallow copy of the box. Modifications to the copy won't affect the original.
144
+ *
145
+ * @example
146
+ * ```typescript
147
+ * const originalBox = box.new(10, 105, 20, 100);
148
+ * const copiedBox = box.copy(originalBox);
149
+ *
150
+ * // Modify copy without affecting original
151
+ * copiedBox.top = 110;
152
+ * ```
153
+ */
154
+ export function copy(id) {
155
+ return register('box', { ...id });
156
+ }
157
+ // =============================================================================
158
+ // COORDINATE SETTERS
159
+ // =============================================================================
160
+ /**
161
+ * Sets the left border x coordinate.
162
+ *
163
+ * @param id - Box object to modify
164
+ * @param left - New left border coordinate
165
+ * @returns Modified box object
166
+ *
167
+ * @example
168
+ * ```typescript
169
+ * const box = box.new(10, 105, 20, 100);
170
+ * box.set_left(box, 15); // Move left edge to bar 15
171
+ * ```
172
+ */
173
+ export function set_left(id, left) {
174
+ if (isDeleted(id))
175
+ return id;
176
+ id.left = left;
177
+ return id;
178
+ }
179
+ /**
180
+ * Sets the right border x coordinate.
181
+ *
182
+ * @param id - Box object to modify
183
+ * @param right - New right border coordinate
184
+ * @returns Modified box object
185
+ *
186
+ * @example
187
+ * ```typescript
188
+ * const box = box.new(10, 105, 20, 100);
189
+ * box.set_right(box, 25); // Move right edge to bar 25
190
+ * ```
191
+ */
192
+ export function set_right(id, right) {
193
+ if (isDeleted(id))
194
+ return id;
195
+ id.right = right;
196
+ return id;
197
+ }
198
+ /**
199
+ * Sets the top border price level.
200
+ *
201
+ * @param id - Box object to modify
202
+ * @param top - New top border price
203
+ * @returns Modified box object
204
+ *
205
+ * @example
206
+ * ```typescript
207
+ * const box = box.new(10, 105, 20, 100);
208
+ * box.set_top(box, 110); // Move top edge to price 110
209
+ * ```
210
+ */
211
+ export function set_top(id, top) {
212
+ if (isDeleted(id))
213
+ return id;
214
+ id.top = top;
215
+ return id;
216
+ }
217
+ /**
218
+ * Sets the bottom border price level.
219
+ *
220
+ * @param id - Box object to modify
221
+ * @param bottom - New bottom border price
222
+ * @returns Modified box object
223
+ *
224
+ * @example
225
+ * ```typescript
226
+ * const box = box.new(10, 105, 20, 100);
227
+ * box.set_bottom(box, 95); // Move bottom edge to price 95
228
+ * ```
229
+ */
230
+ export function set_bottom(id, bottom) {
231
+ if (isDeleted(id))
232
+ return id;
233
+ id.bottom = bottom;
234
+ return id;
235
+ }
236
+ /**
237
+ * Sets the left and top coordinates.
238
+ *
239
+ * @param id - Box object to modify
240
+ * @param left - New left border coordinate
241
+ * @param top - New top border price
242
+ * @returns Modified box object
243
+ *
244
+ * @example
245
+ * ```typescript
246
+ * const box = box.new(10, 105, 20, 100);
247
+ * box.set_lefttop(box, 12, 108); // Move top-left corner
248
+ * ```
249
+ */
250
+ export function set_lefttop(id, left, top) {
251
+ if (isDeleted(id))
252
+ return id;
253
+ id.left = left;
254
+ id.top = top;
255
+ return id;
256
+ }
257
+ /**
258
+ * Sets the right and bottom coordinates.
259
+ *
260
+ * @param id - Box object to modify
261
+ * @param right - New right border coordinate
262
+ * @param bottom - New bottom border price
263
+ * @returns Modified box object
264
+ *
265
+ * @example
266
+ * ```typescript
267
+ * const box = box.new(10, 105, 20, 100);
268
+ * box.set_rightbottom(box, 25, 98); // Move bottom-right corner
269
+ * ```
270
+ */
271
+ export function set_rightbottom(id, right, bottom) {
272
+ if (isDeleted(id))
273
+ return id;
274
+ id.right = right;
275
+ id.bottom = bottom;
276
+ return id;
277
+ }
278
+ /**
279
+ * Sets the coordinate system for the box.
280
+ *
281
+ * @param id - Box object to modify
282
+ * @param left - New left border coordinate
283
+ * @param right - New right border coordinate
284
+ * @param xloc - New coordinate system ('bar_index' or 'bar_time')
285
+ * @returns Modified box object
286
+ *
287
+ * @remarks
288
+ * When changing xloc, you must provide appropriate x coordinates for the new system.
289
+ *
290
+ * @example
291
+ * ```typescript
292
+ * const box = box.new(10, 105, 20, 100);
293
+ * // Change to timestamp-based coordinates
294
+ * box.set_xloc(box, 1609459200000, 1609545600000, 'bar_time');
295
+ * ```
296
+ */
297
+ export function set_xloc(id, left, right, xloc) {
298
+ if (isDeleted(id))
299
+ return id;
300
+ id.left = left;
301
+ id.right = right;
302
+ id.xloc = xloc;
303
+ return id;
304
+ }
305
+ /**
306
+ * Sets the horizontal extension mode.
307
+ *
308
+ * @param id - Box object to modify
309
+ * @param extend - New extension mode
310
+ * @returns Modified box object
311
+ *
312
+ * @example
313
+ * ```typescript
314
+ * const box = box.new(10, 105, 20, 100);
315
+ * box.set_extend(box, 'right'); // Extend box to the right
316
+ * ```
317
+ */
318
+ export function set_extend(id, extend) {
319
+ if (isDeleted(id))
320
+ return id;
321
+ id.extend = extend;
322
+ return id;
323
+ }
324
+ // =============================================================================
325
+ // STYLING SETTERS
326
+ // =============================================================================
327
+ /**
328
+ * Sets the border color.
329
+ *
330
+ * @param id - Box object to modify
331
+ * @param borderColor - New border color
332
+ * @returns Modified box object
333
+ *
334
+ * @example
335
+ * ```typescript
336
+ * const box = box.new(10, 105, 20, 100);
337
+ * box.set_border_color(box, '#FF0000'); // Red border
338
+ * ```
339
+ */
340
+ export function set_border_color(id, borderColor) {
341
+ if (isDeleted(id))
342
+ return id;
343
+ id.border_color = borderColor;
344
+ return id;
345
+ }
346
+ /**
347
+ * Sets the border width.
348
+ *
349
+ * @param id - Box object to modify
350
+ * @param width - New border width in pixels
351
+ * @returns Modified box object
352
+ *
353
+ * @example
354
+ * ```typescript
355
+ * const box = box.new(10, 105, 20, 100);
356
+ * box.set_border_width(box, 2); // Thicker border
357
+ * ```
358
+ */
359
+ export function set_border_width(id, width) {
360
+ if (isDeleted(id))
361
+ return id;
362
+ id.border_width = width;
363
+ return id;
364
+ }
365
+ /**
366
+ * Sets the border style.
367
+ *
368
+ * @param id - Box object to modify
369
+ * @param style - New border style
370
+ * @returns Modified box object
371
+ *
372
+ * @example
373
+ * ```typescript
374
+ * const box = box.new(10, 105, 20, 100);
375
+ * box.set_border_style(box, 'dashed'); // Dashed border
376
+ * ```
377
+ */
378
+ export function set_border_style(id, style) {
379
+ if (isDeleted(id))
380
+ return id;
381
+ id.border_style = style;
382
+ return id;
383
+ }
384
+ /**
385
+ * Sets the background fill color.
386
+ *
387
+ * @param id - Box object to modify
388
+ * @param bgColor - New background color
389
+ * @returns Modified box object
390
+ *
391
+ * @example
392
+ * ```typescript
393
+ * const box = box.new(10, 105, 20, 100);
394
+ * box.set_bgcolor(box, '#00FF0030'); // Transparent green fill
395
+ * ```
396
+ */
397
+ export function set_bgcolor(id, bgColor) {
398
+ if (isDeleted(id))
399
+ return id;
400
+ id.bgcolor = bgColor;
401
+ return id;
402
+ }
403
+ // =============================================================================
404
+ // TEXT SETTERS
405
+ // =============================================================================
406
+ /**
407
+ * Sets the text content.
408
+ *
409
+ * @param id - Box object to modify
410
+ * @param text - New text content
411
+ * @returns Modified box object
412
+ *
413
+ * @example
414
+ * ```typescript
415
+ * const box = box.new(10, 105, 20, 100);
416
+ * box.set_text(box, 'Gap Filled'); // Update text
417
+ * ```
418
+ */
419
+ export function set_text(id, text) {
420
+ if (isDeleted(id))
421
+ return id;
422
+ id.text = text;
423
+ return id;
424
+ }
425
+ /**
426
+ * Sets the text color.
427
+ *
428
+ * @param id - Box object to modify
429
+ * @param textColor - New text color
430
+ * @returns Modified box object
431
+ *
432
+ * @example
433
+ * ```typescript
434
+ * const box = box.new(10, 105, 20, 100);
435
+ * box.set_text_color(box, '#FFFFFF'); // White text
436
+ * ```
437
+ */
438
+ export function set_text_color(id, textColor) {
439
+ if (isDeleted(id))
440
+ return id;
441
+ id.text_color = textColor;
442
+ return id;
443
+ }
444
+ /**
445
+ * Sets the text size.
446
+ *
447
+ * @param id - Box object to modify
448
+ * @param size - New text size
449
+ * @returns Modified box object
450
+ *
451
+ * @example
452
+ * ```typescript
453
+ * const box = box.new(10, 105, 20, 100);
454
+ * box.set_text_size(box, 'large'); // Larger text
455
+ * ```
456
+ */
457
+ export function set_text_size(id, size) {
458
+ if (isDeleted(id))
459
+ return id;
460
+ id.text_size = size;
461
+ return id;
462
+ }
463
+ /**
464
+ * Sets the horizontal text alignment.
465
+ *
466
+ * @param id - Box object to modify
467
+ * @param align - New horizontal alignment
468
+ * @returns Modified box object
469
+ *
470
+ * @example
471
+ * ```typescript
472
+ * const box = box.new(10, 105, 20, 100);
473
+ * box.set_text_halign(box, 'center'); // Center text horizontally
474
+ * ```
475
+ */
476
+ export function set_text_halign(id, align) {
477
+ if (isDeleted(id))
478
+ return id;
479
+ id.text_halign = align;
480
+ return id;
481
+ }
482
+ /**
483
+ * Sets the vertical text alignment.
484
+ *
485
+ * @param id - Box object to modify
486
+ * @param align - New vertical alignment
487
+ * @returns Modified box object
488
+ *
489
+ * @example
490
+ * ```typescript
491
+ * const box = box.new(10, 105, 20, 100);
492
+ * box.set_text_valign(box, 'center'); // Center text vertically
493
+ * ```
494
+ */
495
+ export function set_text_valign(id, align) {
496
+ if (isDeleted(id))
497
+ return id;
498
+ id.text_valign = align;
499
+ return id;
500
+ }
501
+ /**
502
+ * Sets the text wrapping mode.
503
+ *
504
+ * @param id - Box object to modify
505
+ * @param wrap - New text wrap mode
506
+ * @returns Modified box object
507
+ *
508
+ * @example
509
+ * ```typescript
510
+ * const box = box.new(10, 105, 20, 100);
511
+ * box.set_text_wrap(box, 'auto'); // Enable text wrapping
512
+ * ```
513
+ */
514
+ export function set_text_wrap(id, wrap) {
515
+ if (isDeleted(id))
516
+ return id;
517
+ id.text_wrap = wrap;
518
+ return id;
519
+ }
520
+ /**
521
+ * Sets the text font family.
522
+ *
523
+ * @param id - Box object to modify
524
+ * @param font - New font family
525
+ * @returns Modified box object
526
+ *
527
+ * @example
528
+ * ```typescript
529
+ * const box = box.new(10, 105, 20, 100);
530
+ * box.set_text_font_family(box, 'monospace'); // Monospace font
531
+ * ```
532
+ */
533
+ export function set_text_font_family(id, font) {
534
+ if (isDeleted(id))
535
+ return id;
536
+ id.text_font_family = font;
537
+ return id;
538
+ }
539
+ /**
540
+ * Deletes the box object.
541
+ *
542
+ * @param id - Box object to delete
543
+ *
544
+ * @remarks
545
+ * Removes the box from `box.all()`. As in PineScript, the deleted box is `na`: its getters
546
+ * return NaN and its setters do nothing. Deleting it twice has no effect.
547
+ *
548
+ * @example
549
+ * ```typescript
550
+ * const box = box.new(10, 105, 20, 100);
551
+ * box.delete(box);
552
+ * // box.all() no longer contains it
553
+ * ```
554
+ */
555
+ export function delete_box(id) {
556
+ remove('box', id);
557
+ }
558
+ /** x coordinate of a chart point for an object's xloc (`na` when the point has no such coordinate). */
559
+ function pointX(point, xloc) {
560
+ const x = xloc === 'bar_time' ? point.time : point.index;
561
+ return x ?? NaN;
562
+ }
563
+ /**
564
+ * All live boxes, in creation order (PineScript `box.all`). A new array.
565
+ */
566
+ export function all() {
567
+ return allDrawings('box');
568
+ }
569
+ /**
570
+ * Sets the left and top borders from a chart point (`point.index` or `point.time` by xloc, and `point.price`).
571
+ */
572
+ export function set_top_left_point(id, point) {
573
+ if (isDeleted(id))
574
+ return id;
575
+ id.left = pointX(point, id.xloc);
576
+ id.top = point.price;
577
+ return id;
578
+ }
579
+ /**
580
+ * Sets the right and bottom borders from a chart point (`point.index` or `point.time` by xloc, and `point.price`).
581
+ */
582
+ export function set_bottom_right_point(id, point) {
583
+ if (isDeleted(id))
584
+ return id;
585
+ id.right = pointX(point, id.xloc);
586
+ id.bottom = point.price;
587
+ return id;
588
+ }
589
+ /**
590
+ * Sets the text formatting: `text.format_none`, `text.format_bold`, `text.format_italic`,
591
+ * or `text.format_bold + text.format_italic`.
592
+ */
593
+ export function set_text_formatting(id, formatting) {
594
+ if (isDeleted(id))
595
+ return id;
596
+ id.text_formatting = formatting;
597
+ return id;
598
+ }
599
+ // Alias to match PineScript API
600
+ export { new_box as new };
601
+ export { delete_box as delete };
602
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/box/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,61 @@
1
+ /**
2
+ * @fileoverview Per-call history of ta.* functions called in a conditional block.
3
+ *
4
+ * In PineScript, every ta.* call keeps its own history of the values it receives. A call inside
5
+ * an `if` block receives values only on the bars where the block runs, so its history skips the
6
+ * other bars: `ta.crossover(a, b)` is false on the first bar the block runs, and `ta.sma(x, 3)`
7
+ * averages the last 3 values it received, not the last 3 bars.
8
+ *
9
+ * - {@link whenCalled}: vectorized, when the bars of the calls are known in advance.
10
+ * - {@link crossover} / {@link crossunder} / {@link cross} / {@link barssince}: one stateful call site for bar
11
+ * loops, called only on the bars where the Pine call runs.
12
+ *
13
+ * Since PineScript v6, `and` / `or` are lazy: the right operand runs only when the left operand does not decide
14
+ * the result. A ta.* call in the right operand of `a or b` runs on the bars where `a` is false, in `a and b` on the
15
+ * bars where `a` is true, so it needs a call site too:
16
+ *
17
+ * ```typescript
18
+ * // Pine: longCond = longUp or (src > sig and ta.barssince(longUp) <= lookback)
19
+ * const since = callsite.whenCalled(longUp.map((u, i) => !u && src[i] > sig[i]), (c) => taCore.barssince(c.map(Boolean)), longUp);
20
+ * // ta.barssince(longUp) only runs where longUp is false: it never sees true and stays na
21
+ * ```
22
+ *
23
+ * ```typescript
24
+ * // Pine: if inRange
25
+ * // buy = ta.crossover(cumRsi, 60)
26
+ * const buy = callsite.whenCalled(inRange, (a) => taCore.crossover(a, a.map(() => 60)), cumRsi);
27
+ *
28
+ * // Same call in a bar loop
29
+ * const buyCross = callsite.crossover();
30
+ * for (let i = 0; i < n; i++) {
31
+ * if (inRange[i]) {
32
+ * const buy = buyCross(cumRsi[i], 60);
33
+ * }
34
+ * }
35
+ * ```
36
+ *
37
+ * @module callsite
38
+ */
39
+ import type { Source } from '../types/index.js';
40
+ /**
41
+ * Runs `fn` on the bars where `called` is true only, like a ta.* call inside an `if` block.
42
+ * `fn` receives the values of `sources` on those bars, in order; its results are placed back on
43
+ * the same bars. The other bars get na (NaN).
44
+ *
45
+ * @param called - true (or non-zero) on the bars where the call runs
46
+ * @param fn - the calculation, for example `(x) => taCore.sma(x, 3)`
47
+ * @param sources - the arguments of the call, one value per chart bar
48
+ */
49
+ export declare function whenCalled<T extends number | boolean>(called: ArrayLike<boolean | number>, fn: (...values: number[][]) => ArrayLike<T>, ...sources: Source[]): Array<T | number>;
50
+ /** One `ta.crossover(a, b)` call site: false on its first call, as its history is na. */
51
+ export declare function crossover(): (a: number, b: number) => boolean;
52
+ /** One `ta.crossunder(a, b)` call site: false on its first call, as its history is na. */
53
+ export declare function crossunder(): (a: number, b: number) => boolean;
54
+ /**
55
+ * One `ta.barssince(condition)` call site: the number of calls since the condition was true on a call (0 on that
56
+ * call), na before the first true condition. An na condition counts as false.
57
+ */
58
+ export declare function barssince(): (condition: boolean | number) => number;
59
+ /** One `ta.cross(a, b)` call site: false on its first call, as its history is na. */
60
+ export declare function cross(): (a: number, b: number) => boolean;
61
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/callsite/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEhD;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CAAC,CAAC,SAAS,MAAM,GAAG,OAAO,EACnD,MAAM,EAAE,SAAS,CAAC,OAAO,GAAG,MAAM,CAAC,EACnC,EAAE,EAAE,CAAC,GAAG,MAAM,EAAE,MAAM,EAAE,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,EAC3C,GAAG,OAAO,EAAE,MAAM,EAAE,GACnB,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC,CASnB;AAcD,yFAAyF;AACzF,wBAAgB,SAAS,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,OAAO,CAE7D;AAED,0FAA0F;AAC1F,wBAAgB,UAAU,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,OAAO,CAE9D;AAED;;;GAGG;AACH,wBAAgB,SAAS,IAAI,CAAC,SAAS,EAAE,OAAO,GAAG,MAAM,KAAK,MAAM,CAOnE;AAED,qFAAqF;AACrF,wBAAgB,KAAK,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,OAAO,CAEzD"}