openalgo-script 0.1.0-alpha.1 → 0.2.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 (990) hide show
  1. package/CHANGELOG.md +1200 -0
  2. package/README.md +49 -28
  3. package/dist/adapters/charts/alerts.d.ts +70 -0
  4. package/dist/adapters/charts/alerts.d.ts.map +1 -0
  5. package/dist/adapters/charts/alerts.js +52 -0
  6. package/dist/adapters/charts/alerts.js.map +1 -0
  7. package/dist/adapters/charts/bars.d.ts +39 -0
  8. package/dist/adapters/charts/bars.d.ts.map +1 -0
  9. package/dist/adapters/charts/bars.js +32 -0
  10. package/dist/adapters/charts/bars.js.map +1 -0
  11. package/dist/adapters/charts/candles.d.ts +40 -0
  12. package/dist/adapters/charts/candles.d.ts.map +1 -0
  13. package/dist/adapters/charts/candles.js +85 -0
  14. package/dist/adapters/charts/candles.js.map +1 -0
  15. package/dist/adapters/charts/colours.d.ts +47 -0
  16. package/dist/adapters/charts/colours.d.ts.map +1 -0
  17. package/dist/adapters/charts/colours.js +80 -0
  18. package/dist/adapters/charts/colours.js.map +1 -0
  19. package/dist/adapters/charts/columns.d.ts +37 -0
  20. package/dist/adapters/charts/columns.d.ts.map +1 -0
  21. package/dist/adapters/charts/columns.js +56 -0
  22. package/dist/adapters/charts/columns.js.map +1 -0
  23. package/dist/adapters/charts/contract.d.ts +278 -0
  24. package/dist/adapters/charts/contract.d.ts.map +1 -0
  25. package/dist/adapters/charts/contract.js +2 -0
  26. package/dist/adapters/charts/contract.js.map +1 -0
  27. package/dist/adapters/charts/descriptor.d.ts +48 -0
  28. package/dist/adapters/charts/descriptor.d.ts.map +1 -0
  29. package/dist/adapters/charts/descriptor.js +111 -0
  30. package/dist/adapters/charts/descriptor.js.map +1 -0
  31. package/dist/adapters/charts/drawings.d.ts +43 -0
  32. package/dist/adapters/charts/drawings.d.ts.map +1 -0
  33. package/dist/adapters/charts/drawings.js +172 -0
  34. package/dist/adapters/charts/drawings.js.map +1 -0
  35. package/dist/adapters/charts/errors.d.ts +28 -0
  36. package/dist/adapters/charts/errors.d.ts.map +1 -0
  37. package/dist/adapters/charts/errors.js +21 -0
  38. package/dist/adapters/charts/errors.js.map +1 -0
  39. package/dist/adapters/charts/fields.d.ts +33 -0
  40. package/dist/adapters/charts/fields.d.ts.map +1 -0
  41. package/dist/adapters/charts/fields.js +51 -0
  42. package/dist/adapters/charts/fields.js.map +1 -0
  43. package/dist/adapters/charts/fills.d.ts +23 -0
  44. package/dist/adapters/charts/fills.d.ts.map +1 -0
  45. package/dist/adapters/charts/fills.js +48 -0
  46. package/dist/adapters/charts/fills.js.map +1 -0
  47. package/dist/adapters/charts/index.d.ts +37 -0
  48. package/dist/adapters/charts/index.d.ts.map +1 -0
  49. package/dist/adapters/charts/index.js +33 -0
  50. package/dist/adapters/charts/index.js.map +1 -0
  51. package/dist/adapters/charts/levels.d.ts +39 -0
  52. package/dist/adapters/charts/levels.d.ts.map +1 -0
  53. package/dist/adapters/charts/levels.js +61 -0
  54. package/dist/adapters/charts/levels.js.map +1 -0
  55. package/dist/adapters/charts/markers.d.ts +41 -0
  56. package/dist/adapters/charts/markers.d.ts.map +1 -0
  57. package/dist/adapters/charts/markers.js +75 -0
  58. package/dist/adapters/charts/markers.js.map +1 -0
  59. package/dist/adapters/charts/paint.d.ts +61 -0
  60. package/dist/adapters/charts/paint.d.ts.map +1 -0
  61. package/dist/adapters/charts/paint.js +47 -0
  62. package/dist/adapters/charts/paint.js.map +1 -0
  63. package/dist/adapters/charts/plots.d.ts +39 -0
  64. package/dist/adapters/charts/plots.d.ts.map +1 -0
  65. package/dist/adapters/charts/plots.js +117 -0
  66. package/dist/adapters/charts/plots.js.map +1 -0
  67. package/dist/adapters/charts/produced.d.ts +57 -0
  68. package/dist/adapters/charts/produced.d.ts.map +1 -0
  69. package/dist/adapters/charts/produced.js +11 -0
  70. package/dist/adapters/charts/produced.js.map +1 -0
  71. package/dist/adapters/charts/requests.d.ts +114 -0
  72. package/dist/adapters/charts/requests.d.ts.map +1 -0
  73. package/dist/adapters/charts/requests.js +277 -0
  74. package/dist/adapters/charts/requests.js.map +1 -0
  75. package/dist/adapters/charts/run.d.ts +147 -0
  76. package/dist/adapters/charts/run.d.ts.map +1 -0
  77. package/dist/adapters/charts/run.js +148 -0
  78. package/dist/adapters/charts/run.js.map +1 -0
  79. package/dist/adapters/charts/settings.d.ts +78 -0
  80. package/dist/adapters/charts/settings.d.ts.map +1 -0
  81. package/dist/adapters/charts/settings.js +225 -0
  82. package/dist/adapters/charts/settings.js.map +1 -0
  83. package/dist/adapters/charts/surfaces.d.ts +204 -0
  84. package/dist/adapters/charts/surfaces.d.ts.map +1 -0
  85. package/dist/adapters/charts/surfaces.js +2 -0
  86. package/dist/adapters/charts/surfaces.js.map +1 -0
  87. package/dist/adapters/charts/tables.d.ts +65 -0
  88. package/dist/adapters/charts/tables.d.ts.map +1 -0
  89. package/dist/adapters/charts/tables.js +84 -0
  90. package/dist/adapters/charts/tables.js.map +1 -0
  91. package/dist/core/catalogue/catalogue.generated.d.ts +98 -10
  92. package/dist/core/catalogue/catalogue.generated.d.ts.map +1 -1
  93. package/dist/core/catalogue/catalogue.generated.js +17 -9
  94. package/dist/core/catalogue/catalogue.generated.js.map +1 -1
  95. package/dist/core/catalogue/values.generated.d.ts +25 -0
  96. package/dist/core/catalogue/values.generated.d.ts.map +1 -1
  97. package/dist/core/check/arguments.d.ts +41 -0
  98. package/dist/core/check/arguments.d.ts.map +1 -0
  99. package/dist/core/check/arguments.js +84 -0
  100. package/dist/core/check/arguments.js.map +1 -0
  101. package/dist/core/check/call-sites.d.ts +22 -0
  102. package/dist/core/check/call-sites.d.ts.map +1 -0
  103. package/dist/core/check/call-sites.js +329 -0
  104. package/dist/core/check/call-sites.js.map +1 -0
  105. package/dist/core/check/call-warmup.d.ts +37 -0
  106. package/dist/core/check/call-warmup.d.ts.map +1 -0
  107. package/dist/core/check/call-warmup.js +97 -0
  108. package/dist/core/check/call-warmup.js.map +1 -0
  109. package/dist/core/check/calls.d.ts +33 -0
  110. package/dist/core/check/calls.d.ts.map +1 -0
  111. package/dist/core/check/calls.js +348 -0
  112. package/dist/core/check/calls.js.map +1 -0
  113. package/dist/core/check/check.d.ts +23 -0
  114. package/dist/core/check/check.d.ts.map +1 -0
  115. package/dist/core/check/check.js +163 -0
  116. package/dist/core/check/check.js.map +1 -0
  117. package/dist/core/check/checked.d.ts +198 -0
  118. package/dist/core/check/checked.d.ts.map +1 -0
  119. package/dist/core/check/checked.js +19 -0
  120. package/dist/core/check/checked.js.map +1 -0
  121. package/dist/core/check/checker.d.ts +182 -0
  122. package/dist/core/check/checker.d.ts.map +1 -0
  123. package/dist/core/check/checker.js +280 -0
  124. package/dist/core/check/checker.js.map +1 -0
  125. package/dist/core/check/conditional.d.ts +35 -0
  126. package/dist/core/check/conditional.d.ts.map +1 -0
  127. package/dist/core/check/conditional.js +100 -0
  128. package/dist/core/check/conditional.js.map +1 -0
  129. package/dist/core/check/constant.d.ts +47 -0
  130. package/dist/core/check/constant.d.ts.map +1 -0
  131. package/dist/core/check/constant.js +101 -0
  132. package/dist/core/check/constant.js.map +1 -0
  133. package/dist/core/check/declaration.d.ts +33 -0
  134. package/dist/core/check/declaration.d.ts.map +1 -0
  135. package/dist/core/check/declaration.js +181 -0
  136. package/dist/core/check/declaration.js.map +1 -0
  137. package/dist/core/check/expressions.d.ts +36 -0
  138. package/dist/core/check/expressions.d.ts.map +1 -0
  139. package/dist/core/check/expressions.js +398 -0
  140. package/dist/core/check/expressions.js.map +1 -0
  141. package/dist/core/check/functions.d.ts +31 -0
  142. package/dist/core/check/functions.d.ts.map +1 -0
  143. package/dist/core/check/functions.js +238 -0
  144. package/dist/core/check/functions.js.map +1 -0
  145. package/dist/core/check/handles.d.ts +48 -0
  146. package/dist/core/check/handles.d.ts.map +1 -0
  147. package/dist/core/check/handles.js +43 -0
  148. package/dist/core/check/handles.js.map +1 -0
  149. package/dist/core/check/index.d.ts +30 -0
  150. package/dist/core/check/index.d.ts.map +1 -0
  151. package/dist/core/check/index.js +26 -0
  152. package/dist/core/check/index.js.map +1 -0
  153. package/dist/core/check/library-bars.d.ts +7 -0
  154. package/dist/core/check/library-bars.d.ts.map +1 -0
  155. package/dist/core/check/library-bars.js +181 -0
  156. package/dist/core/check/library-bars.js.map +1 -0
  157. package/dist/core/check/library-orders.d.ts +5 -0
  158. package/dist/core/check/library-orders.d.ts.map +1 -0
  159. package/dist/core/check/library-orders.js +250 -0
  160. package/dist/core/check/library-orders.js.map +1 -0
  161. package/dist/core/check/library-output.d.ts +7 -0
  162. package/dist/core/check/library-output.d.ts.map +1 -0
  163. package/dist/core/check/library-output.js +195 -0
  164. package/dist/core/check/library-output.js.map +1 -0
  165. package/dist/core/check/library-series.d.ts +3 -0
  166. package/dist/core/check/library-series.d.ts.map +1 -0
  167. package/dist/core/check/library-series.js +415 -0
  168. package/dist/core/check/library-series.js.map +1 -0
  169. package/dist/core/check/library.d.ts +204 -0
  170. package/dist/core/check/library.d.ts.map +1 -0
  171. package/dist/core/check/library.js +198 -0
  172. package/dist/core/check/library.js.map +1 -0
  173. package/dist/core/check/literals.d.ts +19 -0
  174. package/dist/core/check/literals.d.ts.map +1 -0
  175. package/dist/core/check/literals.js +22 -0
  176. package/dist/core/check/literals.js.map +1 -0
  177. package/dist/core/check/outputs.d.ts +31 -0
  178. package/dist/core/check/outputs.d.ts.map +1 -0
  179. package/dist/core/check/outputs.js +113 -0
  180. package/dist/core/check/outputs.js.map +1 -0
  181. package/dist/core/check/statements.d.ts +25 -0
  182. package/dist/core/check/statements.d.ts.map +1 -0
  183. package/dist/core/check/statements.js +377 -0
  184. package/dist/core/check/statements.js.map +1 -0
  185. package/dist/core/check/suggest.d.ts +25 -0
  186. package/dist/core/check/suggest.d.ts.map +1 -0
  187. package/dist/core/check/suggest.js +61 -0
  188. package/dist/core/check/suggest.js.map +1 -0
  189. package/dist/core/check/surface.d.ts +38 -0
  190. package/dist/core/check/surface.d.ts.map +1 -0
  191. package/dist/core/check/surface.js +100 -0
  192. package/dist/core/check/surface.js.map +1 -0
  193. package/dist/core/check/tags.d.ts +4 -0
  194. package/dist/core/check/tags.d.ts.map +1 -0
  195. package/dist/core/check/tags.js +54 -0
  196. package/dist/core/check/tags.js.map +1 -0
  197. package/dist/core/check/types.d.ts +153 -0
  198. package/dist/core/check/types.d.ts.map +1 -0
  199. package/dist/core/check/types.js +221 -0
  200. package/dist/core/check/types.js.map +1 -0
  201. package/dist/core/check/warmup.d.ts +73 -0
  202. package/dist/core/check/warmup.d.ts.map +1 -0
  203. package/dist/core/check/warmup.js +62 -0
  204. package/dist/core/check/warmup.js.map +1 -0
  205. package/dist/core/diagnostics/collector.d.ts +12 -0
  206. package/dist/core/diagnostics/collector.d.ts.map +1 -1
  207. package/dist/core/diagnostics/collector.js +27 -1
  208. package/dist/core/diagnostics/collector.js.map +1 -1
  209. package/dist/core/emit/calls.d.ts +38 -0
  210. package/dist/core/emit/calls.d.ts.map +1 -0
  211. package/dist/core/emit/calls.js +347 -0
  212. package/dist/core/emit/calls.js.map +1 -0
  213. package/dist/core/emit/canonical.d.ts +39 -0
  214. package/dist/core/emit/canonical.d.ts.map +1 -0
  215. package/dist/core/emit/canonical.js +71 -0
  216. package/dist/core/emit/canonical.js.map +1 -0
  217. package/dist/core/emit/channels.d.ts +28 -0
  218. package/dist/core/emit/channels.d.ts.map +1 -0
  219. package/dist/core/emit/channels.js +110 -0
  220. package/dist/core/emit/channels.js.map +1 -0
  221. package/dist/core/emit/code.d.ts +75 -0
  222. package/dist/core/emit/code.d.ts.map +1 -0
  223. package/dist/core/emit/code.js +104 -0
  224. package/dist/core/emit/code.js.map +1 -0
  225. package/dist/core/emit/colours.d.ts +35 -0
  226. package/dist/core/emit/colours.d.ts.map +1 -0
  227. package/dist/core/emit/colours.js +50 -0
  228. package/dist/core/emit/colours.js.map +1 -0
  229. package/dist/core/emit/context.d.ts +271 -0
  230. package/dist/core/emit/context.d.ts.map +1 -0
  231. package/dist/core/emit/context.js +358 -0
  232. package/dist/core/emit/context.js.map +1 -0
  233. package/dist/core/emit/defaults.d.ts +45 -0
  234. package/dist/core/emit/defaults.d.ts.map +1 -0
  235. package/dist/core/emit/defaults.js +116 -0
  236. package/dist/core/emit/defaults.js.map +1 -0
  237. package/dist/core/emit/emit.d.ts +13 -0
  238. package/dist/core/emit/emit.d.ts.map +1 -0
  239. package/dist/core/emit/emit.js +281 -0
  240. package/dist/core/emit/emit.js.map +1 -0
  241. package/dist/core/emit/events.d.ts +21 -0
  242. package/dist/core/emit/events.d.ts.map +1 -0
  243. package/dist/core/emit/events.js +112 -0
  244. package/dist/core/emit/events.js.map +1 -0
  245. package/dist/core/emit/expressions.d.ts +23 -0
  246. package/dist/core/emit/expressions.d.ts.map +1 -0
  247. package/dist/core/emit/expressions.js +253 -0
  248. package/dist/core/emit/expressions.js.map +1 -0
  249. package/dist/core/emit/functions.d.ts +30 -0
  250. package/dist/core/emit/functions.d.ts.map +1 -0
  251. package/dist/core/emit/functions.js +171 -0
  252. package/dist/core/emit/functions.js.map +1 -0
  253. package/dist/core/emit/gaps.d.ts +34 -0
  254. package/dist/core/emit/gaps.d.ts.map +1 -0
  255. package/dist/core/emit/gaps.js +16 -0
  256. package/dist/core/emit/gaps.js.map +1 -0
  257. package/dist/core/emit/index.d.ts +29 -0
  258. package/dist/core/emit/index.d.ts.map +1 -0
  259. package/dist/core/emit/index.js +23 -0
  260. package/dist/core/emit/index.js.map +1 -0
  261. package/dist/core/emit/inputs.d.ts +47 -0
  262. package/dist/core/emit/inputs.d.ts.map +1 -0
  263. package/dist/core/emit/inputs.js +150 -0
  264. package/dist/core/emit/inputs.js.map +1 -0
  265. package/dist/core/emit/layout.d.ts +73 -0
  266. package/dist/core/emit/layout.d.ts.map +1 -0
  267. package/dist/core/emit/layout.js +126 -0
  268. package/dist/core/emit/layout.js.map +1 -0
  269. package/dist/core/emit/meta.d.ts +14 -0
  270. package/dist/core/emit/meta.d.ts.map +1 -0
  271. package/dist/core/emit/meta.js +68 -0
  272. package/dist/core/emit/meta.js.map +1 -0
  273. package/dist/core/emit/opcodes.d.ts +28 -0
  274. package/dist/core/emit/opcodes.d.ts.map +1 -0
  275. package/dist/core/emit/opcodes.js +137 -0
  276. package/dist/core/emit/opcodes.js.map +1 -0
  277. package/dist/core/emit/outputs.d.ts +67 -0
  278. package/dist/core/emit/outputs.d.ts.map +1 -0
  279. package/dist/core/emit/outputs.js +293 -0
  280. package/dist/core/emit/outputs.js.map +1 -0
  281. package/dist/core/emit/pool.d.ts +33 -0
  282. package/dist/core/emit/pool.d.ts.map +1 -0
  283. package/dist/core/emit/pool.js +79 -0
  284. package/dist/core/emit/pool.js.map +1 -0
  285. package/dist/core/emit/program.d.ts +333 -0
  286. package/dist/core/emit/program.d.ts.map +1 -0
  287. package/dist/core/emit/program.js +15 -0
  288. package/dist/core/emit/program.js.map +1 -0
  289. package/dist/core/emit/registers.d.ts +35 -0
  290. package/dist/core/emit/registers.d.ts.map +1 -0
  291. package/dist/core/emit/registers.js +170 -0
  292. package/dist/core/emit/registers.js.map +1 -0
  293. package/dist/core/emit/request-scope.d.ts +36 -0
  294. package/dist/core/emit/request-scope.d.ts.map +1 -0
  295. package/dist/core/emit/request-scope.js +41 -0
  296. package/dist/core/emit/request-scope.js.map +1 -0
  297. package/dist/core/emit/requests.d.ts +69 -0
  298. package/dist/core/emit/requests.d.ts.map +1 -0
  299. package/dist/core/emit/requests.js +230 -0
  300. package/dist/core/emit/requests.js.map +1 -0
  301. package/dist/core/emit/requires.d.ts +4 -0
  302. package/dist/core/emit/requires.d.ts.map +1 -0
  303. package/dist/core/emit/requires.js +71 -0
  304. package/dist/core/emit/requires.js.map +1 -0
  305. package/dist/core/emit/sha256.d.ts +24 -0
  306. package/dist/core/emit/sha256.d.ts.map +1 -0
  307. package/dist/core/emit/sha256.js +109 -0
  308. package/dist/core/emit/sha256.js.map +1 -0
  309. package/dist/core/emit/statements.d.ts +20 -0
  310. package/dist/core/emit/statements.d.ts.map +1 -0
  311. package/dist/core/emit/statements.js +393 -0
  312. package/dist/core/emit/statements.js.map +1 -0
  313. package/dist/core/emit/values.d.ts +80 -0
  314. package/dist/core/emit/values.d.ts.map +1 -0
  315. package/dist/core/emit/values.js +242 -0
  316. package/dist/core/emit/values.js.map +1 -0
  317. package/dist/core/engine/alerts.d.ts +66 -0
  318. package/dist/core/engine/alerts.d.ts.map +1 -0
  319. package/dist/core/engine/alerts.js +119 -0
  320. package/dist/core/engine/alerts.js.map +1 -0
  321. package/dist/core/engine/arithmetic.d.ts +82 -0
  322. package/dist/core/engine/arithmetic.d.ts.map +1 -0
  323. package/dist/core/engine/arithmetic.js +141 -0
  324. package/dist/core/engine/arithmetic.js.map +1 -0
  325. package/dist/core/engine/bars.d.ts +95 -0
  326. package/dist/core/engine/bars.d.ts.map +1 -0
  327. package/dist/core/engine/bars.js +133 -0
  328. package/dist/core/engine/bars.js.map +1 -0
  329. package/dist/core/engine/budget.d.ts +162 -0
  330. package/dist/core/engine/budget.d.ts.map +1 -0
  331. package/dist/core/engine/budget.js +188 -0
  332. package/dist/core/engine/budget.js.map +1 -0
  333. package/dist/core/engine/channels.d.ts +106 -0
  334. package/dist/core/engine/channels.d.ts.map +1 -0
  335. package/dist/core/engine/channels.js +99 -0
  336. package/dist/core/engine/channels.js.map +1 -0
  337. package/dist/core/engine/drawings.d.ts +64 -0
  338. package/dist/core/engine/drawings.d.ts.map +1 -0
  339. package/dist/core/engine/drawings.js +67 -0
  340. package/dist/core/engine/drawings.js.map +1 -0
  341. package/dist/core/engine/engine.d.ts +140 -0
  342. package/dist/core/engine/engine.d.ts.map +1 -0
  343. package/dist/core/engine/engine.js +405 -0
  344. package/dist/core/engine/engine.js.map +1 -0
  345. package/dist/core/engine/errors.d.ts +64 -0
  346. package/dist/core/engine/errors.d.ts.map +1 -0
  347. package/dist/core/engine/errors.js +63 -0
  348. package/dist/core/engine/errors.js.map +1 -0
  349. package/dist/core/engine/frames.d.ts +48 -0
  350. package/dist/core/engine/frames.d.ts.map +1 -0
  351. package/dist/core/engine/frames.js +41 -0
  352. package/dist/core/engine/frames.js.map +1 -0
  353. package/dist/core/engine/grids.d.ts +25 -0
  354. package/dist/core/engine/grids.d.ts.map +1 -0
  355. package/dist/core/engine/grids.js +77 -0
  356. package/dist/core/engine/grids.js.map +1 -0
  357. package/dist/core/engine/guard.d.ts +4 -0
  358. package/dist/core/engine/guard.d.ts.map +1 -0
  359. package/dist/core/engine/guard.js +46 -0
  360. package/dist/core/engine/guard.js.map +1 -0
  361. package/dist/core/engine/host.d.ts +219 -0
  362. package/dist/core/engine/host.d.ts.map +1 -0
  363. package/dist/core/engine/host.js +38 -0
  364. package/dist/core/engine/host.js.map +1 -0
  365. package/dist/core/engine/index.d.ts +49 -0
  366. package/dist/core/engine/index.d.ts.map +1 -0
  367. package/dist/core/engine/index.js +33 -0
  368. package/dist/core/engine/index.js.map +1 -0
  369. package/dist/core/engine/inputs.d.ts +77 -0
  370. package/dist/core/engine/inputs.d.ts.map +1 -0
  371. package/dist/core/engine/inputs.js +205 -0
  372. package/dist/core/engine/inputs.js.map +1 -0
  373. package/dist/core/engine/ledger/call.d.ts +63 -0
  374. package/dist/core/engine/ledger/call.d.ts.map +1 -0
  375. package/dist/core/engine/ledger/call.js +136 -0
  376. package/dist/core/engine/ledger/call.js.map +1 -0
  377. package/dist/core/engine/ledger/closable.d.ts +155 -0
  378. package/dist/core/engine/ledger/closable.d.ts.map +1 -0
  379. package/dist/core/engine/ledger/closable.js +173 -0
  380. package/dist/core/engine/ledger/closable.js.map +1 -0
  381. package/dist/core/engine/ledger/holdings.d.ts +194 -0
  382. package/dist/core/engine/ledger/holdings.d.ts.map +1 -0
  383. package/dist/core/engine/ledger/holdings.js +237 -0
  384. package/dist/core/engine/ledger/holdings.js.map +1 -0
  385. package/dist/core/engine/ledger/index.d.ts +19 -0
  386. package/dist/core/engine/ledger/index.d.ts.map +1 -0
  387. package/dist/core/engine/ledger/index.js +2 -0
  388. package/dist/core/engine/ledger/index.js.map +1 -0
  389. package/dist/core/engine/ledger/intent.d.ts +106 -0
  390. package/dist/core/engine/ledger/intent.d.ts.map +1 -0
  391. package/dist/core/engine/ledger/intent.js +21 -0
  392. package/dist/core/engine/ledger/intent.js.map +1 -0
  393. package/dist/core/engine/ledger/ledger.d.ts +143 -0
  394. package/dist/core/engine/ledger/ledger.d.ts.map +1 -0
  395. package/dist/core/engine/ledger/ledger.js +237 -0
  396. package/dist/core/engine/ledger/ledger.js.map +1 -0
  397. package/dist/core/engine/ledger/place.d.ts +75 -0
  398. package/dist/core/engine/ledger/place.d.ts.map +1 -0
  399. package/dist/core/engine/ledger/place.js +174 -0
  400. package/dist/core/engine/ledger/place.js.map +1 -0
  401. package/dist/core/engine/ledger/positions.d.ts +68 -0
  402. package/dist/core/engine/ledger/positions.d.ts.map +1 -0
  403. package/dist/core/engine/ledger/positions.js +114 -0
  404. package/dist/core/engine/ledger/positions.js.map +1 -0
  405. package/dist/core/engine/ledger/refuse.d.ts +43 -0
  406. package/dist/core/engine/ledger/refuse.d.ts.map +1 -0
  407. package/dist/core/engine/ledger/refuse.js +329 -0
  408. package/dist/core/engine/ledger/refuse.js.map +1 -0
  409. package/dist/core/engine/ledger/row.d.ts +176 -0
  410. package/dist/core/engine/ledger/row.d.ts.map +1 -0
  411. package/dist/core/engine/ledger/row.js +169 -0
  412. package/dist/core/engine/ledger/row.js.map +1 -0
  413. package/dist/core/engine/ledger/sizing.d.ts +142 -0
  414. package/dist/core/engine/ledger/sizing.d.ts.map +1 -0
  415. package/dist/core/engine/ledger/sizing.js +223 -0
  416. package/dist/core/engine/ledger/sizing.js.map +1 -0
  417. package/dist/core/engine/library/arrays.d.ts +14 -0
  418. package/dist/core/engine/library/arrays.d.ts.map +1 -0
  419. package/dist/core/engine/library/arrays.js +285 -0
  420. package/dist/core/engine/library/arrays.js.map +1 -0
  421. package/dist/core/engine/library/averages.d.ts +9 -0
  422. package/dist/core/engine/library/averages.d.ts.map +1 -0
  423. package/dist/core/engine/library/averages.js +41 -0
  424. package/dist/core/engine/library/averages.js.map +1 -0
  425. package/dist/core/engine/library/binding.d.ts +230 -0
  426. package/dist/core/engine/library/binding.d.ts.map +1 -0
  427. package/dist/core/engine/library/binding.js +109 -0
  428. package/dist/core/engine/library/binding.js.map +1 -0
  429. package/dist/core/engine/library/chart.d.ts +3 -0
  430. package/dist/core/engine/library/chart.d.ts.map +1 -0
  431. package/dist/core/engine/library/chart.js +83 -0
  432. package/dist/core/engine/library/chart.js.map +1 -0
  433. package/dist/core/engine/library/colours.d.ts +26 -0
  434. package/dist/core/engine/library/colours.d.ts.map +1 -0
  435. package/dist/core/engine/library/colours.js +81 -0
  436. package/dist/core/engine/library/colours.js.map +1 -0
  437. package/dist/core/engine/library/dates.d.ts +3 -0
  438. package/dist/core/engine/library/dates.d.ts.map +1 -0
  439. package/dist/core/engine/library/dates.js +75 -0
  440. package/dist/core/engine/library/dates.js.map +1 -0
  441. package/dist/core/engine/library/index.d.ts +13 -0
  442. package/dist/core/engine/library/index.d.ts.map +1 -0
  443. package/dist/core/engine/library/index.js +86 -0
  444. package/dist/core/engine/library/index.js.map +1 -0
  445. package/dist/core/engine/library/maths.d.ts +3 -0
  446. package/dist/core/engine/library/maths.d.ts.map +1 -0
  447. package/dist/core/engine/library/maths.js +89 -0
  448. package/dist/core/engine/library/maths.js.map +1 -0
  449. package/dist/core/engine/library/objects.d.ts +3 -0
  450. package/dist/core/engine/library/objects.d.ts.map +1 -0
  451. package/dist/core/engine/library/objects.js +199 -0
  452. package/dist/core/engine/library/objects.js.map +1 -0
  453. package/dist/core/engine/library/oscillators.d.ts +3 -0
  454. package/dist/core/engine/library/oscillators.d.ts.map +1 -0
  455. package/dist/core/engine/library/oscillators.js +29 -0
  456. package/dist/core/engine/library/oscillators.js.map +1 -0
  457. package/dist/core/engine/library/ranges.d.ts +3 -0
  458. package/dist/core/engine/library/ranges.d.ts.map +1 -0
  459. package/dist/core/engine/library/ranges.js +23 -0
  460. package/dist/core/engine/library/ranges.js.map +1 -0
  461. package/dist/core/engine/library/series.d.ts +3 -0
  462. package/dist/core/engine/library/series.d.ts.map +1 -0
  463. package/dist/core/engine/library/series.js +46 -0
  464. package/dist/core/engine/library/series.js.map +1 -0
  465. package/dist/core/engine/library/state.d.ts +35 -0
  466. package/dist/core/engine/library/state.d.ts.map +1 -0
  467. package/dist/core/engine/library/state.js +19 -0
  468. package/dist/core/engine/library/state.js.map +1 -0
  469. package/dist/core/engine/library/studies.d.ts +3 -0
  470. package/dist/core/engine/library/studies.d.ts.map +1 -0
  471. package/dist/core/engine/library/studies.js +35 -0
  472. package/dist/core/engine/library/studies.js.map +1 -0
  473. package/dist/core/engine/library/text.d.ts +6 -0
  474. package/dist/core/engine/library/text.d.ts.map +1 -0
  475. package/dist/core/engine/library/text.js +280 -0
  476. package/dist/core/engine/library/text.js.map +1 -0
  477. package/dist/core/engine/library/trend.d.ts +3 -0
  478. package/dist/core/engine/library/trend.d.ts.map +1 -0
  479. package/dist/core/engine/library/trend.js +29 -0
  480. package/dist/core/engine/library/trend.js.map +1 -0
  481. package/dist/core/engine/library/volume.d.ts +3 -0
  482. package/dist/core/engine/library/volume.d.ts.map +1 -0
  483. package/dist/core/engine/library/volume.js +51 -0
  484. package/dist/core/engine/library/volume.js.map +1 -0
  485. package/dist/core/engine/load.d.ts +45 -0
  486. package/dist/core/engine/load.d.ts.map +1 -0
  487. package/dist/core/engine/load.js +60 -0
  488. package/dist/core/engine/load.js.map +1 -0
  489. package/dist/core/engine/machine.d.ts +107 -0
  490. package/dist/core/engine/machine.d.ts.map +1 -0
  491. package/dist/core/engine/machine.js +337 -0
  492. package/dist/core/engine/machine.js.map +1 -0
  493. package/dist/core/engine/memory.d.ts +60 -0
  494. package/dist/core/engine/memory.d.ts.map +1 -0
  495. package/dist/core/engine/memory.js +92 -0
  496. package/dist/core/engine/memory.js.map +1 -0
  497. package/dist/core/engine/operations.d.ts +62 -0
  498. package/dist/core/engine/operations.d.ts.map +1 -0
  499. package/dist/core/engine/operations.js +149 -0
  500. package/dist/core/engine/operations.js.map +1 -0
  501. package/dist/core/engine/orders.d.ts +56 -0
  502. package/dist/core/engine/orders.d.ts.map +1 -0
  503. package/dist/core/engine/orders.js +83 -0
  504. package/dist/core/engine/orders.js.map +1 -0
  505. package/dist/core/engine/registers.d.ts +50 -0
  506. package/dist/core/engine/registers.d.ts.map +1 -0
  507. package/dist/core/engine/registers.js +85 -0
  508. package/dist/core/engine/registers.js.map +1 -0
  509. package/dist/core/engine/request-body.d.ts +138 -0
  510. package/dist/core/engine/request-body.d.ts.map +1 -0
  511. package/dist/core/engine/request-body.js +227 -0
  512. package/dist/core/engine/request-body.js.map +1 -0
  513. package/dist/core/engine/request-plan.d.ts +79 -0
  514. package/dist/core/engine/request-plan.d.ts.map +1 -0
  515. package/dist/core/engine/request-plan.js +228 -0
  516. package/dist/core/engine/request-plan.js.map +1 -0
  517. package/dist/core/engine/requests.d.ts +105 -0
  518. package/dist/core/engine/requests.d.ts.map +1 -0
  519. package/dist/core/engine/requests.js +260 -0
  520. package/dist/core/engine/requests.js.map +1 -0
  521. package/dist/core/engine/results.d.ts +40 -0
  522. package/dist/core/engine/results.d.ts.map +1 -0
  523. package/dist/core/engine/results.js +2 -0
  524. package/dist/core/engine/results.js.map +1 -0
  525. package/dist/core/engine/series.d.ts +61 -0
  526. package/dist/core/engine/series.d.ts.map +1 -0
  527. package/dist/core/engine/series.js +41 -0
  528. package/dist/core/engine/series.js.map +1 -0
  529. package/dist/core/engine/session/hours.d.ts +49 -0
  530. package/dist/core/engine/session/hours.d.ts.map +1 -0
  531. package/dist/core/engine/session/hours.js +31 -0
  532. package/dist/core/engine/session/hours.js.map +1 -0
  533. package/dist/core/engine/session/index.d.ts +17 -0
  534. package/dist/core/engine/session/index.d.ts.map +1 -0
  535. package/dist/core/engine/session/index.js +3 -0
  536. package/dist/core/engine/session/index.js.map +1 -0
  537. package/dist/core/engine/session/record.d.ts +56 -0
  538. package/dist/core/engine/session/record.d.ts.map +1 -0
  539. package/dist/core/engine/session/record.js +165 -0
  540. package/dist/core/engine/session/record.js.map +1 -0
  541. package/dist/core/engine/session/spec.d.ts +19 -0
  542. package/dist/core/engine/session/spec.d.ts.map +1 -0
  543. package/dist/core/engine/session/spec.js +31 -0
  544. package/dist/core/engine/session/spec.js.map +1 -0
  545. package/dist/core/engine/timeframe.d.ts +59 -0
  546. package/dist/core/engine/timeframe.d.ts.map +1 -0
  547. package/dist/core/engine/timeframe.js +140 -0
  548. package/dist/core/engine/timeframe.js.map +1 -0
  549. package/dist/core/engine/types.d.ts +15 -0
  550. package/dist/core/engine/types.d.ts.map +1 -0
  551. package/dist/core/engine/types.js +2 -0
  552. package/dist/core/engine/types.js.map +1 -0
  553. package/dist/core/engine/values/heap.d.ts +134 -0
  554. package/dist/core/engine/values/heap.d.ts.map +1 -0
  555. package/dist/core/engine/values/heap.js +230 -0
  556. package/dist/core/engine/values/heap.js.map +1 -0
  557. package/dist/core/engine/values/index.d.ts +13 -0
  558. package/dist/core/engine/values/index.d.ts.map +1 -0
  559. package/dist/core/engine/values/index.js +3 -0
  560. package/dist/core/engine/values/index.js.map +1 -0
  561. package/dist/core/engine/values/value.d.ts +82 -0
  562. package/dist/core/engine/values/value.d.ts.map +1 -0
  563. package/dist/core/engine/values/value.js +134 -0
  564. package/dist/core/engine/values/value.js.map +1 -0
  565. package/dist/core/engine/verify-budgets.d.ts +35 -0
  566. package/dist/core/engine/verify-budgets.d.ts.map +1 -0
  567. package/dist/core/engine/verify-budgets.js +172 -0
  568. package/dist/core/engine/verify-budgets.js.map +1 -0
  569. package/dist/core/engine/verify-code.d.ts +32 -0
  570. package/dist/core/engine/verify-code.d.ts.map +1 -0
  571. package/dist/core/engine/verify-code.js +278 -0
  572. package/dist/core/engine/verify-code.js.map +1 -0
  573. package/dist/core/engine/verify-requests.d.ts +44 -0
  574. package/dist/core/engine/verify-requests.d.ts.map +1 -0
  575. package/dist/core/engine/verify-requests.js +220 -0
  576. package/dist/core/engine/verify-requests.js.map +1 -0
  577. package/dist/core/engine/verify-shape.d.ts +46 -0
  578. package/dist/core/engine/verify-shape.d.ts.map +1 -0
  579. package/dist/core/engine/verify-shape.js +147 -0
  580. package/dist/core/engine/verify-shape.js.map +1 -0
  581. package/dist/core/engine/verify-tables.d.ts +19 -0
  582. package/dist/core/engine/verify-tables.d.ts.map +1 -0
  583. package/dist/core/engine/verify-tables.js +171 -0
  584. package/dist/core/engine/verify-tables.js.map +1 -0
  585. package/dist/core/engine/verify.d.ts +19 -0
  586. package/dist/core/engine/verify.d.ts.map +1 -0
  587. package/dist/core/engine/verify.js +309 -0
  588. package/dist/core/engine/verify.js.map +1 -0
  589. package/dist/core/index.d.ts +61 -6
  590. package/dist/core/index.d.ts.map +1 -1
  591. package/dist/core/index.js +48 -6
  592. package/dist/core/index.js.map +1 -1
  593. package/dist/core/parse/expressions.js +1 -1
  594. package/dist/core/parse/expressions.js.map +1 -1
  595. package/dist/core/parse/names.d.ts +7 -1
  596. package/dist/core/parse/names.d.ts.map +1 -1
  597. package/dist/core/parse/names.js +28 -2
  598. package/dist/core/parse/names.js.map +1 -1
  599. package/dist/core/stdlib/averages/exponential.d.ts +51 -0
  600. package/dist/core/stdlib/averages/exponential.d.ts.map +1 -0
  601. package/dist/core/stdlib/averages/exponential.js +72 -0
  602. package/dist/core/stdlib/averages/exponential.js.map +1 -0
  603. package/dist/core/stdlib/averages/index.d.ts +7 -0
  604. package/dist/core/stdlib/averages/index.d.ts.map +1 -0
  605. package/dist/core/stdlib/averages/index.js +5 -0
  606. package/dist/core/stdlib/averages/index.js.map +1 -0
  607. package/dist/core/stdlib/averages/select.d.ts +35 -0
  608. package/dist/core/stdlib/averages/select.d.ts.map +1 -0
  609. package/dist/core/stdlib/averages/select.js +43 -0
  610. package/dist/core/stdlib/averages/select.js.map +1 -0
  611. package/dist/core/stdlib/averages/shaped.d.ts +61 -0
  612. package/dist/core/stdlib/averages/shaped.d.ts.map +1 -0
  613. package/dist/core/stdlib/averages/shaped.js +126 -0
  614. package/dist/core/stdlib/averages/shaped.js.map +1 -0
  615. package/dist/core/stdlib/averages/simple.d.ts +58 -0
  616. package/dist/core/stdlib/averages/simple.d.ts.map +1 -0
  617. package/dist/core/stdlib/averages/simple.js +92 -0
  618. package/dist/core/stdlib/averages/simple.js.map +1 -0
  619. package/dist/core/stdlib/calendar/civil.d.ts +56 -0
  620. package/dist/core/stdlib/calendar/civil.d.ts.map +1 -0
  621. package/dist/core/stdlib/calendar/civil.js +70 -0
  622. package/dist/core/stdlib/calendar/civil.js.map +1 -0
  623. package/dist/core/stdlib/calendar/fields.d.ts +36 -0
  624. package/dist/core/stdlib/calendar/fields.d.ts.map +1 -0
  625. package/dist/core/stdlib/calendar/fields.js +93 -0
  626. package/dist/core/stdlib/calendar/fields.js.map +1 -0
  627. package/dist/core/stdlib/calendar/format.d.ts +19 -0
  628. package/dist/core/stdlib/calendar/format.d.ts.map +1 -0
  629. package/dist/core/stdlib/calendar/format.js +51 -0
  630. package/dist/core/stdlib/calendar/format.js.map +1 -0
  631. package/dist/core/stdlib/calendar/index.d.ts +7 -0
  632. package/dist/core/stdlib/calendar/index.d.ts.map +1 -0
  633. package/dist/core/stdlib/calendar/index.js +5 -0
  634. package/dist/core/stdlib/calendar/index.js.map +1 -0
  635. package/dist/core/stdlib/calendar/zone.d.ts +53 -0
  636. package/dist/core/stdlib/calendar/zone.d.ts.map +1 -0
  637. package/dist/core/stdlib/calendar/zone.js +138 -0
  638. package/dist/core/stdlib/calendar/zone.js.map +1 -0
  639. package/dist/core/stdlib/index.d.ts +57 -0
  640. package/dist/core/stdlib/index.d.ts.map +1 -0
  641. package/dist/core/stdlib/index.js +51 -0
  642. package/dist/core/stdlib/index.js.map +1 -0
  643. package/dist/core/stdlib/maths/arithmetic.d.ts +38 -0
  644. package/dist/core/stdlib/maths/arithmetic.d.ts.map +1 -0
  645. package/dist/core/stdlib/maths/arithmetic.js +66 -0
  646. package/dist/core/stdlib/maths/arithmetic.js.map +1 -0
  647. package/dist/core/stdlib/maths/elementary.d.ts +65 -0
  648. package/dist/core/stdlib/maths/elementary.d.ts.map +1 -0
  649. package/dist/core/stdlib/maths/elementary.js +93 -0
  650. package/dist/core/stdlib/maths/elementary.js.map +1 -0
  651. package/dist/core/stdlib/maths/index.d.ts +4 -0
  652. package/dist/core/stdlib/maths/index.d.ts.map +1 -0
  653. package/dist/core/stdlib/maths/index.js +4 -0
  654. package/dist/core/stdlib/maths/index.js.map +1 -0
  655. package/dist/core/stdlib/maths/rounding.d.ts +43 -0
  656. package/dist/core/stdlib/maths/rounding.d.ts.map +1 -0
  657. package/dist/core/stdlib/maths/rounding.js +62 -0
  658. package/dist/core/stdlib/maths/rounding.js.map +1 -0
  659. package/dist/core/stdlib/momentum/convergence.d.ts +36 -0
  660. package/dist/core/stdlib/momentum/convergence.d.ts.map +1 -0
  661. package/dist/core/stdlib/momentum/convergence.js +48 -0
  662. package/dist/core/stdlib/momentum/convergence.js.map +1 -0
  663. package/dist/core/stdlib/momentum/index.d.ts +6 -0
  664. package/dist/core/stdlib/momentum/index.d.ts.map +1 -0
  665. package/dist/core/stdlib/momentum/index.js +6 -0
  666. package/dist/core/stdlib/momentum/index.js.map +1 -0
  667. package/dist/core/stdlib/momentum/pressure.d.ts +43 -0
  668. package/dist/core/stdlib/momentum/pressure.d.ts.map +1 -0
  669. package/dist/core/stdlib/momentum/pressure.js +103 -0
  670. package/dist/core/stdlib/momentum/pressure.js.map +1 -0
  671. package/dist/core/stdlib/momentum/rates.d.ts +74 -0
  672. package/dist/core/stdlib/momentum/rates.d.ts.map +1 -0
  673. package/dist/core/stdlib/momentum/rates.js +134 -0
  674. package/dist/core/stdlib/momentum/rates.js.map +1 -0
  675. package/dist/core/stdlib/momentum/rsi.d.ts +21 -0
  676. package/dist/core/stdlib/momentum/rsi.d.ts.map +1 -0
  677. package/dist/core/stdlib/momentum/rsi.js +30 -0
  678. package/dist/core/stdlib/momentum/rsi.js.map +1 -0
  679. package/dist/core/stdlib/momentum/stochastic.d.ts +44 -0
  680. package/dist/core/stdlib/momentum/stochastic.d.ts.map +1 -0
  681. package/dist/core/stdlib/momentum/stochastic.js +97 -0
  682. package/dist/core/stdlib/momentum/stochastic.js.map +1 -0
  683. package/dist/core/stdlib/series/changes.d.ts +59 -0
  684. package/dist/core/stdlib/series/changes.d.ts.map +1 -0
  685. package/dist/core/stdlib/series/changes.js +129 -0
  686. package/dist/core/stdlib/series/changes.js.map +1 -0
  687. package/dist/core/stdlib/series/conditions.d.ts +34 -0
  688. package/dist/core/stdlib/series/conditions.d.ts.map +1 -0
  689. package/dist/core/stdlib/series/conditions.js +52 -0
  690. package/dist/core/stdlib/series/conditions.js.map +1 -0
  691. package/dist/core/stdlib/series/extremes.d.ts +29 -0
  692. package/dist/core/stdlib/series/extremes.d.ts.map +1 -0
  693. package/dist/core/stdlib/series/extremes.js +62 -0
  694. package/dist/core/stdlib/series/extremes.js.map +1 -0
  695. package/dist/core/stdlib/series/index.d.ts +9 -0
  696. package/dist/core/stdlib/series/index.d.ts.map +1 -0
  697. package/dist/core/stdlib/series/index.js +7 -0
  698. package/dist/core/stdlib/series/index.js.map +1 -0
  699. package/dist/core/stdlib/series/pivots.d.ts +25 -0
  700. package/dist/core/stdlib/series/pivots.d.ts.map +1 -0
  701. package/dist/core/stdlib/series/pivots.js +42 -0
  702. package/dist/core/stdlib/series/pivots.js.map +1 -0
  703. package/dist/core/stdlib/series/statistics.d.ts +64 -0
  704. package/dist/core/stdlib/series/statistics.d.ts.map +1 -0
  705. package/dist/core/stdlib/series/statistics.js +148 -0
  706. package/dist/core/stdlib/series/statistics.js.map +1 -0
  707. package/dist/core/stdlib/series/totals.d.ts +68 -0
  708. package/dist/core/stdlib/series/totals.d.ts.map +1 -0
  709. package/dist/core/stdlib/series/totals.js +115 -0
  710. package/dist/core/stdlib/series/totals.js.map +1 -0
  711. package/dist/core/stdlib/trend/directional.d.ts +69 -0
  712. package/dist/core/stdlib/trend/directional.d.ts.map +1 -0
  713. package/dist/core/stdlib/trend/directional.js +151 -0
  714. package/dist/core/stdlib/trend/directional.js.map +1 -0
  715. package/dist/core/stdlib/trend/index.d.ts +4 -0
  716. package/dist/core/stdlib/trend/index.d.ts.map +1 -0
  717. package/dist/core/stdlib/trend/index.js +4 -0
  718. package/dist/core/stdlib/trend/index.js.map +1 -0
  719. package/dist/core/stdlib/trend/psar.d.ts +33 -0
  720. package/dist/core/stdlib/trend/psar.d.ts.map +1 -0
  721. package/dist/core/stdlib/trend/psar.js +86 -0
  722. package/dist/core/stdlib/trend/psar.js.map +1 -0
  723. package/dist/core/stdlib/trend/supertrend.d.ts +30 -0
  724. package/dist/core/stdlib/trend/supertrend.d.ts.map +1 -0
  725. package/dist/core/stdlib/trend/supertrend.js +65 -0
  726. package/dist/core/stdlib/trend/supertrend.js.map +1 -0
  727. package/dist/core/stdlib/values/bar.d.ts +39 -0
  728. package/dist/core/stdlib/values/bar.d.ts.map +1 -0
  729. package/dist/core/stdlib/values/bar.js +33 -0
  730. package/dist/core/stdlib/values/bar.js.map +1 -0
  731. package/dist/core/stdlib/values/index.d.ts +11 -0
  732. package/dist/core/stdlib/values/index.d.ts.map +1 -0
  733. package/dist/core/stdlib/values/index.js +6 -0
  734. package/dist/core/stdlib/values/index.js.map +1 -0
  735. package/dist/core/stdlib/values/lookback.d.ts +83 -0
  736. package/dist/core/stdlib/values/lookback.d.ts.map +1 -0
  737. package/dist/core/stdlib/values/lookback.js +134 -0
  738. package/dist/core/stdlib/values/lookback.js.map +1 -0
  739. package/dist/core/stdlib/values/region.d.ts +55 -0
  740. package/dist/core/stdlib/values/region.d.ts.map +1 -0
  741. package/dist/core/stdlib/values/region.js +73 -0
  742. package/dist/core/stdlib/values/region.js.map +1 -0
  743. package/dist/core/stdlib/values/tail.d.ts +44 -0
  744. package/dist/core/stdlib/values/tail.d.ts.map +1 -0
  745. package/dist/core/stdlib/values/tail.js +23 -0
  746. package/dist/core/stdlib/values/tail.js.map +1 -0
  747. package/dist/core/stdlib/values/value.d.ts +64 -0
  748. package/dist/core/stdlib/values/value.d.ts.map +1 -0
  749. package/dist/core/stdlib/values/value.js +61 -0
  750. package/dist/core/stdlib/values/value.js.map +1 -0
  751. package/dist/core/stdlib/volatility/bands.d.ts +50 -0
  752. package/dist/core/stdlib/volatility/bands.d.ts.map +1 -0
  753. package/dist/core/stdlib/volatility/bands.js +101 -0
  754. package/dist/core/stdlib/volatility/bands.js.map +1 -0
  755. package/dist/core/stdlib/volatility/deviation.d.ts +43 -0
  756. package/dist/core/stdlib/volatility/deviation.d.ts.map +1 -0
  757. package/dist/core/stdlib/volatility/deviation.js +75 -0
  758. package/dist/core/stdlib/volatility/deviation.js.map +1 -0
  759. package/dist/core/stdlib/volatility/index.d.ts +6 -0
  760. package/dist/core/stdlib/volatility/index.d.ts.map +1 -0
  761. package/dist/core/stdlib/volatility/index.js +5 -0
  762. package/dist/core/stdlib/volatility/index.js.map +1 -0
  763. package/dist/core/stdlib/volatility/measures.d.ts +48 -0
  764. package/dist/core/stdlib/volatility/measures.d.ts.map +1 -0
  765. package/dist/core/stdlib/volatility/measures.js +73 -0
  766. package/dist/core/stdlib/volatility/measures.js.map +1 -0
  767. package/dist/core/stdlib/volatility/range.d.ts +69 -0
  768. package/dist/core/stdlib/volatility/range.d.ts.map +1 -0
  769. package/dist/core/stdlib/volatility/range.js +86 -0
  770. package/dist/core/stdlib/volatility/range.js.map +1 -0
  771. package/dist/core/stdlib/volume/accumulation.d.ts +61 -0
  772. package/dist/core/stdlib/volume/accumulation.d.ts.map +1 -0
  773. package/dist/core/stdlib/volume/accumulation.js +127 -0
  774. package/dist/core/stdlib/volume/accumulation.js.map +1 -0
  775. package/dist/core/stdlib/volume/flow.d.ts +60 -0
  776. package/dist/core/stdlib/volume/flow.d.ts.map +1 -0
  777. package/dist/core/stdlib/volume/flow.js +125 -0
  778. package/dist/core/stdlib/volume/flow.js.map +1 -0
  779. package/dist/core/stdlib/volume/index.d.ts +5 -0
  780. package/dist/core/stdlib/volume/index.d.ts.map +1 -0
  781. package/dist/core/stdlib/volume/index.js +4 -0
  782. package/dist/core/stdlib/volume/index.js.map +1 -0
  783. package/dist/core/stdlib/volume/weighted.d.ts +52 -0
  784. package/dist/core/stdlib/volume/weighted.d.ts.map +1 -0
  785. package/dist/core/stdlib/volume/weighted.js +64 -0
  786. package/dist/core/stdlib/volume/weighted.js.map +1 -0
  787. package/dist/core/version/version.generated.d.ts +2 -2
  788. package/dist/core/version/version.generated.d.ts.map +1 -1
  789. package/dist/core/version/version.generated.js +2 -2
  790. package/dist/core/version/version.generated.js.map +1 -1
  791. package/package.json +38 -14
  792. package/spec/errors.json +382 -183
  793. package/src/adapters/charts/alerts.ts +116 -0
  794. package/src/adapters/charts/bars.ts +63 -0
  795. package/src/adapters/charts/candles.ts +137 -0
  796. package/src/adapters/charts/colours.ts +113 -0
  797. package/src/adapters/charts/columns.ts +99 -0
  798. package/src/adapters/charts/contract.ts +320 -0
  799. package/src/adapters/charts/descriptor.ts +199 -0
  800. package/src/adapters/charts/drawings.ts +213 -0
  801. package/src/adapters/charts/errors.ts +45 -0
  802. package/src/adapters/charts/fields.ts +74 -0
  803. package/src/adapters/charts/fills.ts +71 -0
  804. package/src/adapters/charts/index.ts +78 -0
  805. package/src/adapters/charts/levels.ts +92 -0
  806. package/src/adapters/charts/markers.ts +119 -0
  807. package/src/adapters/charts/paint.ts +101 -0
  808. package/src/adapters/charts/plots.ts +185 -0
  809. package/src/adapters/charts/produced.ts +68 -0
  810. package/src/adapters/charts/requests.ts +357 -0
  811. package/src/adapters/charts/run.ts +327 -0
  812. package/src/adapters/charts/settings.ts +273 -0
  813. package/src/adapters/charts/surfaces.ts +238 -0
  814. package/src/adapters/charts/tables.ts +155 -0
  815. package/src/core/catalogue/catalogue.generated.ts +17 -9
  816. package/src/core/catalogue/values.generated.ts +8 -0
  817. package/src/core/check/arguments.ts +126 -0
  818. package/src/core/check/call-sites.ts +385 -0
  819. package/src/core/check/call-warmup.ts +121 -0
  820. package/src/core/check/calls.ts +412 -0
  821. package/src/core/check/check.ts +183 -0
  822. package/src/core/check/checked.ts +228 -0
  823. package/src/core/check/checker.ts +393 -0
  824. package/src/core/check/conditional.ts +143 -0
  825. package/src/core/check/constant.ts +127 -0
  826. package/src/core/check/declaration.ts +230 -0
  827. package/src/core/check/expressions.ts +471 -0
  828. package/src/core/check/functions.ts +283 -0
  829. package/src/core/check/handles.ts +75 -0
  830. package/src/core/check/index.ts +67 -0
  831. package/src/core/check/library-bars.ts +194 -0
  832. package/src/core/check/library-orders.ts +290 -0
  833. package/src/core/check/library-output.ts +241 -0
  834. package/src/core/check/library-series.ts +457 -0
  835. package/src/core/check/library.ts +374 -0
  836. package/src/core/check/literals.ts +35 -0
  837. package/src/core/check/outputs.ts +152 -0
  838. package/src/core/check/statements.ts +465 -0
  839. package/src/core/check/suggest.ts +63 -0
  840. package/src/core/check/surface.ts +115 -0
  841. package/src/core/check/tags.ts +94 -0
  842. package/src/core/check/types.ts +260 -0
  843. package/src/core/check/warmup.ts +100 -0
  844. package/src/core/diagnostics/collector.ts +27 -1
  845. package/src/core/emit/calls.ts +415 -0
  846. package/src/core/emit/canonical.ts +81 -0
  847. package/src/core/emit/channels.ts +144 -0
  848. package/src/core/emit/code.ts +155 -0
  849. package/src/core/emit/colours.ts +75 -0
  850. package/src/core/emit/context.ts +461 -0
  851. package/src/core/emit/defaults.ts +150 -0
  852. package/src/core/emit/emit.ts +313 -0
  853. package/src/core/emit/events.ts +141 -0
  854. package/src/core/emit/expressions.ts +292 -0
  855. package/src/core/emit/functions.ts +195 -0
  856. package/src/core/emit/gaps.ts +44 -0
  857. package/src/core/emit/index.ts +74 -0
  858. package/src/core/emit/inputs.ts +179 -0
  859. package/src/core/emit/layout.ts +165 -0
  860. package/src/core/emit/meta.ts +104 -0
  861. package/src/core/emit/opcodes.ts +160 -0
  862. package/src/core/emit/outputs.ts +357 -0
  863. package/src/core/emit/pool.ts +102 -0
  864. package/src/core/emit/program.ts +385 -0
  865. package/src/core/emit/registers.ts +179 -0
  866. package/src/core/emit/request-scope.ts +52 -0
  867. package/src/core/emit/requests.ts +258 -0
  868. package/src/core/emit/requires.ts +91 -0
  869. package/src/core/emit/sha256.ts +119 -0
  870. package/src/core/emit/statements.ts +438 -0
  871. package/src/core/emit/values.ts +284 -0
  872. package/src/core/engine/alerts.ts +152 -0
  873. package/src/core/engine/arithmetic.ts +165 -0
  874. package/src/core/engine/bars.ts +224 -0
  875. package/src/core/engine/budget.ts +284 -0
  876. package/src/core/engine/channels.ts +171 -0
  877. package/src/core/engine/drawings.ts +127 -0
  878. package/src/core/engine/engine.ts +498 -0
  879. package/src/core/engine/errors.ts +100 -0
  880. package/src/core/engine/frames.ts +85 -0
  881. package/src/core/engine/grids.ts +98 -0
  882. package/src/core/engine/guard.ts +71 -0
  883. package/src/core/engine/host.ts +251 -0
  884. package/src/core/engine/index.ts +93 -0
  885. package/src/core/engine/inputs.ts +263 -0
  886. package/src/core/engine/ledger/call.ts +218 -0
  887. package/src/core/engine/ledger/closable.ts +269 -0
  888. package/src/core/engine/ledger/holdings.ts +354 -0
  889. package/src/core/engine/ledger/index.ts +28 -0
  890. package/src/core/engine/ledger/intent.ts +112 -0
  891. package/src/core/engine/ledger/ledger.ts +314 -0
  892. package/src/core/engine/ledger/place.ts +277 -0
  893. package/src/core/engine/ledger/positions.ts +123 -0
  894. package/src/core/engine/ledger/refuse.ts +378 -0
  895. package/src/core/engine/ledger/row.ts +318 -0
  896. package/src/core/engine/ledger/sizing.ts +292 -0
  897. package/src/core/engine/library/arrays.ts +316 -0
  898. package/src/core/engine/library/averages.ts +97 -0
  899. package/src/core/engine/library/binding.ts +325 -0
  900. package/src/core/engine/library/chart.ts +115 -0
  901. package/src/core/engine/library/colours.ts +111 -0
  902. package/src/core/engine/library/dates.ts +109 -0
  903. package/src/core/engine/library/index.ts +103 -0
  904. package/src/core/engine/library/maths.ts +134 -0
  905. package/src/core/engine/library/objects.ts +265 -0
  906. package/src/core/engine/library/oscillators.ts +124 -0
  907. package/src/core/engine/library/ranges.ts +51 -0
  908. package/src/core/engine/library/series.ts +236 -0
  909. package/src/core/engine/library/state.ts +47 -0
  910. package/src/core/engine/library/studies.ts +150 -0
  911. package/src/core/engine/library/text.ts +303 -0
  912. package/src/core/engine/library/trend.ts +79 -0
  913. package/src/core/engine/library/volume.ts +101 -0
  914. package/src/core/engine/load.ts +104 -0
  915. package/src/core/engine/machine.ts +446 -0
  916. package/src/core/engine/memory.ts +129 -0
  917. package/src/core/engine/operations.ts +171 -0
  918. package/src/core/engine/orders.ts +121 -0
  919. package/src/core/engine/registers.ts +104 -0
  920. package/src/core/engine/request-body.ts +328 -0
  921. package/src/core/engine/request-plan.ts +270 -0
  922. package/src/core/engine/requests.ts +382 -0
  923. package/src/core/engine/results.ts +41 -0
  924. package/src/core/engine/series.ts +82 -0
  925. package/src/core/engine/session/hours.ts +86 -0
  926. package/src/core/engine/session/index.ts +17 -0
  927. package/src/core/engine/session/record.ts +191 -0
  928. package/src/core/engine/session/spec.ts +45 -0
  929. package/src/core/engine/timeframe.ts +161 -0
  930. package/src/core/engine/types.ts +47 -0
  931. package/src/core/engine/values/heap.ts +295 -0
  932. package/src/core/engine/values/index.ts +34 -0
  933. package/src/core/engine/values/value.ts +158 -0
  934. package/src/core/engine/verify-budgets.ts +202 -0
  935. package/src/core/engine/verify-code.ts +332 -0
  936. package/src/core/engine/verify-requests.ts +255 -0
  937. package/src/core/engine/verify-shape.ts +164 -0
  938. package/src/core/engine/verify-tables.ts +176 -0
  939. package/src/core/engine/verify.ts +341 -0
  940. package/src/core/index.ts +128 -6
  941. package/src/core/parse/expressions.ts +1 -1
  942. package/src/core/parse/names.ts +29 -2
  943. package/src/core/stdlib/averages/exponential.ts +119 -0
  944. package/src/core/stdlib/averages/index.ts +45 -0
  945. package/src/core/stdlib/averages/select.ts +71 -0
  946. package/src/core/stdlib/averages/shaped.ts +161 -0
  947. package/src/core/stdlib/averages/simple.ts +139 -0
  948. package/src/core/stdlib/calendar/civil.ts +89 -0
  949. package/src/core/stdlib/calendar/fields.ts +124 -0
  950. package/src/core/stdlib/calendar/format.ts +71 -0
  951. package/src/core/stdlib/calendar/index.ts +15 -0
  952. package/src/core/stdlib/calendar/zone.ts +161 -0
  953. package/src/core/stdlib/index.ts +400 -0
  954. package/src/core/stdlib/maths/arithmetic.ts +74 -0
  955. package/src/core/stdlib/maths/elementary.ts +124 -0
  956. package/src/core/stdlib/maths/index.ts +43 -0
  957. package/src/core/stdlib/maths/rounding.ts +78 -0
  958. package/src/core/stdlib/momentum/convergence.ts +82 -0
  959. package/src/core/stdlib/momentum/index.ts +47 -0
  960. package/src/core/stdlib/momentum/pressure.ts +141 -0
  961. package/src/core/stdlib/momentum/rates.ts +188 -0
  962. package/src/core/stdlib/momentum/rsi.ts +49 -0
  963. package/src/core/stdlib/momentum/stochastic.ts +147 -0
  964. package/src/core/stdlib/series/changes.ts +177 -0
  965. package/src/core/stdlib/series/conditions.ts +74 -0
  966. package/src/core/stdlib/series/extremes.ts +92 -0
  967. package/src/core/stdlib/series/index.ts +83 -0
  968. package/src/core/stdlib/series/pivots.ts +63 -0
  969. package/src/core/stdlib/series/statistics.ts +207 -0
  970. package/src/core/stdlib/series/totals.ts +164 -0
  971. package/src/core/stdlib/trend/directional.ts +196 -0
  972. package/src/core/stdlib/trend/index.ts +13 -0
  973. package/src/core/stdlib/trend/psar.ts +131 -0
  974. package/src/core/stdlib/trend/supertrend.ts +100 -0
  975. package/src/core/stdlib/values/bar.ts +54 -0
  976. package/src/core/stdlib/values/index.ts +14 -0
  977. package/src/core/stdlib/values/lookback.ts +198 -0
  978. package/src/core/stdlib/values/region.ts +86 -0
  979. package/src/core/stdlib/values/tail.ts +58 -0
  980. package/src/core/stdlib/values/value.ts +82 -0
  981. package/src/core/stdlib/volatility/bands.ts +178 -0
  982. package/src/core/stdlib/volatility/deviation.ts +111 -0
  983. package/src/core/stdlib/volatility/index.ts +48 -0
  984. package/src/core/stdlib/volatility/measures.ts +96 -0
  985. package/src/core/stdlib/volatility/range.ts +143 -0
  986. package/src/core/stdlib/volume/accumulation.ts +152 -0
  987. package/src/core/stdlib/volume/flow.ts +173 -0
  988. package/src/core/stdlib/volume/index.ts +43 -0
  989. package/src/core/stdlib/volume/weighted.ts +101 -0
  990. package/src/core/version/version.generated.ts +2 -2
@@ -0,0 +1,172 @@
1
+ import { MS } from './bars.js';
2
+ import { cssOf } from './colours.js';
3
+ /** A colour a script left absent: nothing is drawn there. */
4
+ const TRANSPARENT = 'rgba(0, 0, 0, 0)';
5
+ const LINE_STYLES = ['solid', 'dashed', 'dotted'];
6
+ const ALIGNMENTS = ['left', 'center', 'right'];
7
+ /**
8
+ * One point, or nothing when either half of it is absent.
9
+ *
10
+ * The time crosses the same boundary a bar's does and in the same direction: an
11
+ * anchor is written in the language's milliseconds and a chart counts seconds,
12
+ * so an anchor handed over unconverted would sit fifty thousand years past the
13
+ * newest bar and still draw. It is not rounded, because rounding an anchor moves
14
+ * it, and a chart places one between two bars perfectly well.
15
+ */
16
+ function anchorOf(anchor) {
17
+ if (anchor === undefined || anchor.time === null || anchor.price === null)
18
+ return undefined;
19
+ return { time: anchor.time / MS, price: anchor.price };
20
+ }
21
+ function colour(style, key) {
22
+ return cssOf(style[key] ?? null) ?? TRANSPARENT;
23
+ }
24
+ function number(style, key) {
25
+ const value = style[key];
26
+ return typeof value === 'number' && Number.isFinite(value) ? value : undefined;
27
+ }
28
+ function text(style, key) {
29
+ const value = style[key];
30
+ return typeof value === 'string' && value !== '' ? value : undefined;
31
+ }
32
+ function flag(style, key) {
33
+ const value = style[key];
34
+ return typeof value === 'boolean' ? value : undefined;
35
+ }
36
+ function lineStyle(style) {
37
+ const value = style['style'];
38
+ return typeof value === 'string' && LINE_STYLES.includes(value)
39
+ ? value
40
+ : undefined;
41
+ }
42
+ function align(style) {
43
+ const value = style['align'];
44
+ return typeof value === 'string' && ALIGNMENTS.includes(value)
45
+ ? value
46
+ : undefined;
47
+ }
48
+ function oneLine(one) {
49
+ const from = anchorOf(one.anchors[0]);
50
+ const to = anchorOf(one.anchors[1]);
51
+ if (from === undefined || to === undefined)
52
+ return [];
53
+ const width = number(one.style, 'width');
54
+ const dash = lineStyle(one.style);
55
+ const left = flag(one.style, 'extendLeft');
56
+ const right = flag(one.style, 'extendRight');
57
+ return [
58
+ {
59
+ kind: 'line',
60
+ from,
61
+ to,
62
+ color: colour(one.style, 'color'),
63
+ ...(width === undefined ? {} : { lineWidth: width }),
64
+ ...(dash === undefined ? {} : { lineStyle: dash }),
65
+ ...(left === undefined ? {} : { extendLeft: left }),
66
+ ...(right === undefined ? {} : { extendRight: right }),
67
+ },
68
+ ];
69
+ }
70
+ function oneBox(one) {
71
+ const from = anchorOf(one.anchors[0]);
72
+ const to = anchorOf(one.anchors[1]);
73
+ if (from === undefined || to === undefined)
74
+ return [];
75
+ const opacity = number(one.style, 'opacity');
76
+ const width = number(one.style, 'width');
77
+ const caption = text(one.style, 'text');
78
+ const tooltip = text(one.style, 'tooltip');
79
+ return [
80
+ {
81
+ kind: 'box',
82
+ from,
83
+ to,
84
+ color: colour(one.style, 'color'),
85
+ fillColor: colour(one.style, 'fillColor'),
86
+ textColor: colour(one.style, 'textColor'),
87
+ ...(opacity === undefined ? {} : { opacity }),
88
+ ...(width === undefined ? {} : { lineWidth: width }),
89
+ ...(caption === undefined ? {} : { text: caption }),
90
+ ...(tooltip === undefined ? {} : { tooltip }),
91
+ },
92
+ ];
93
+ }
94
+ function oneLabel(one) {
95
+ const at = anchorOf(one.anchors[0]);
96
+ const written = one.style['text'];
97
+ if (at === undefined || typeof written !== 'string')
98
+ return [];
99
+ const placement = align(one.style);
100
+ const tooltip = text(one.style, 'tooltip');
101
+ return [
102
+ {
103
+ kind: 'label',
104
+ at,
105
+ text: written,
106
+ color: colour(one.style, 'color'),
107
+ textColor: colour(one.style, 'textColor'),
108
+ ...(placement === undefined ? {} : { align: placement }),
109
+ ...(tooltip === undefined ? {} : { tooltip }),
110
+ },
111
+ ];
112
+ }
113
+ /** The path cut at its gaps: one run of points per stretch that has none. */
114
+ function runsOf(one) {
115
+ const runs = [];
116
+ let run = [];
117
+ for (const point of one.anchors) {
118
+ const anchor = anchorOf(point);
119
+ if (anchor === undefined) {
120
+ if (run.length > 1)
121
+ runs.push(run);
122
+ run = [];
123
+ continue;
124
+ }
125
+ run.push(anchor);
126
+ }
127
+ if (run.length > 1)
128
+ runs.push(run);
129
+ return runs;
130
+ }
131
+ function onePolyline(one) {
132
+ const runs = runsOf(one);
133
+ const whole = runs.length === 1 && runs[0]?.length === one.anchors.length;
134
+ const width = number(one.style, 'width');
135
+ const opacity = number(one.style, 'opacity');
136
+ const closed = flag(one.style, 'closed');
137
+ const filled = whole
138
+ ? {
139
+ fillColor: colour(one.style, 'fillColor'),
140
+ ...(closed === undefined ? {} : { closed }),
141
+ ...(opacity === undefined ? {} : { opacity }),
142
+ }
143
+ : {};
144
+ return runs.map((points) => ({
145
+ kind: 'polyline',
146
+ points,
147
+ color: colour(one.style, 'color'),
148
+ ...(width === undefined ? {} : { lineWidth: width }),
149
+ ...filled,
150
+ }));
151
+ }
152
+ /**
153
+ * Every object the script holds, in the order it created them.
154
+ *
155
+ * Creation order rather than any other, because it is the order the script wrote
156
+ * and therefore the order a reader expects one shape to sit over another.
157
+ */
158
+ export function buildDrawings(held) {
159
+ const out = [];
160
+ for (const one of held) {
161
+ if (one.kind === 'line')
162
+ out.push(...oneLine(one));
163
+ else if (one.kind === 'box')
164
+ out.push(...oneBox(one));
165
+ else if (one.kind === 'label')
166
+ out.push(...oneLabel(one));
167
+ else
168
+ out.push(...onePolyline(one));
169
+ }
170
+ return out;
171
+ }
172
+ //# sourceMappingURL=drawings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"drawings.js","sourceRoot":"","sources":["../../../src/adapters/charts/drawings.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * How the adapter tells a chart that a study cannot be drawn.
3
+ *
4
+ * The engine's surface never throws: it returns a diagnostic. The chart's
5
+ * surface is the opposite, because a descriptor's `calc` has nowhere else to
6
+ * put a failure, so this is where the one becomes the other. Nothing is
7
+ * invented on the way across: the diagnostic the engine produced is carried
8
+ * whole, with its catalogue code, its source position and its fix, and the
9
+ * thrown error's message is the sentence the catalogue already wrote.
10
+ *
11
+ * **The name is what a chart reads.** The chart's runtime tells a bad input,
12
+ * which a user can fix from the settings dialog, from a defect, which they
13
+ * cannot, by the error's name. So a failure raised before any bar ran is named
14
+ * as an input error, because everything refused at load is a setting, a limit
15
+ * or a capability the host chose, and a failure raised on a bar keeps this
16
+ * adapter's own name, because a script that computed four thousand bars and
17
+ * then stopped is not something a settings dialog can repair.
18
+ */
19
+ import type { Diagnostic } from '../../core/index.js';
20
+ export declare class ChartAdapterError extends Error {
21
+ readonly diagnostic: Diagnostic;
22
+ constructor(diagnostic: Diagnostic, name: string);
23
+ }
24
+ /** A refusal at load: the program never ran, so a setting is what to change. */
25
+ export declare function refused(diagnostic: Diagnostic): ChartAdapterError;
26
+ /** A failure on a bar: the program ran and stopped. */
27
+ export declare function stopped(diagnostic: Diagnostic): ChartAdapterError;
28
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/adapters/charts/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAQtD,qBAAa,iBAAkB,SAAQ,KAAK;IAC1C,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;gBAEpB,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM;CAKjD;AAED,gFAAgF;AAChF,wBAAgB,OAAO,CAAC,UAAU,EAAE,UAAU,GAAG,iBAAiB,CAEjE;AAED,uDAAuD;AACvD,wBAAgB,OAAO,CAAC,UAAU,EAAE,UAAU,GAAG,iBAAiB,CAEjE"}
@@ -0,0 +1,21 @@
1
+ /** The name the chart's runtime reads for a condition a user can fix. */
2
+ const INPUT_ERROR = 'IndicatorInputError';
3
+ /** The name for a failure that is not about a setting. */
4
+ const SCRIPT_ERROR = 'OpenScriptError';
5
+ export class ChartAdapterError extends Error {
6
+ diagnostic;
7
+ constructor(diagnostic, name) {
8
+ super(`${diagnostic.code}: ${diagnostic.message} ${diagnostic.fix}`);
9
+ this.name = name;
10
+ this.diagnostic = diagnostic;
11
+ }
12
+ }
13
+ /** A refusal at load: the program never ran, so a setting is what to change. */
14
+ export function refused(diagnostic) {
15
+ return new ChartAdapterError(diagnostic, INPUT_ERROR);
16
+ }
17
+ /** A failure on a bar: the program ran and stopped. */
18
+ export function stopped(diagnostic) {
19
+ return new ChartAdapterError(diagnostic, SCRIPT_ERROR);
20
+ }
21
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/adapters/charts/errors.ts"],"names":[],"mappings":"AAoBA,yEAAyE;AACzE,MAAM,WAAW,GAAG,qBAAqB,CAAC;AAE1C,0DAA0D;AAC1D,MAAM,YAAY,GAAG,iBAAiB,CAAC;AAEvC,MAAM,OAAO,iBAAkB,SAAQ,KAAK;IACjC,UAAU,CAAa;IAEhC,YAAY,UAAsB,EAAE,IAAY;QAC9C,KAAK,CAAC,GAAG,UAAU,CAAC,IAAI,KAAK,UAAU,CAAC,OAAO,IAAI,UAAU,CAAC,GAAG,EAAE,CAAC,CAAC;QACrE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;CACF;AAED,gFAAgF;AAChF,MAAM,UAAU,OAAO,CAAC,UAAsB;IAC5C,OAAO,IAAI,iBAAiB,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;AACxD,CAAC;AAED,uDAAuD;AACvD,MAAM,UAAU,OAAO,CAAC,UAAsB;IAC5C,OAAO,IAAI,iBAAiB,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;AACzD,CAAC"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * A declaration field, read.
3
+ *
4
+ * Every field of `meta` and of every declaration in `outputs` holds either a
5
+ * value or the reference `{ "input": key }`, and the reference is how a tunable
6
+ * colour, a tunable pane range or a tunable band opacity reaches a declaration
7
+ * that is otherwise fixed before the first bar. The engine resolves those once
8
+ * at load, against the settings the host handed it; this module resolves the
9
+ * same fields against the settings the chart currently holds, which is what a
10
+ * descriptor built once and restyled many times needs.
11
+ *
12
+ * The lookup is a parameter rather than a settings object because converting one
13
+ * stored setting into a value is the input table's job, not this module's, and
14
+ * passing it in is what keeps the two from having to import each other.
15
+ */
16
+ import type { Field, InputReference } from '../../core/emit/index.js';
17
+ import type { ColourValue, Value } from '../../core/engine/index.js';
18
+ /** What a field's `{ "input": key }` form is resolved through. */
19
+ export type InputLookup = (key: string) => Value;
20
+ export declare function isReference(field: Field): field is InputReference;
21
+ /** A field as a value, with any input reference resolved. */
22
+ export declare function fieldOf(field: Field, lookup: InputLookup): Value;
23
+ /** A field that holds a colour, or nothing when it holds none. */
24
+ export declare function colourField(field: Field, lookup: InputLookup): ColourValue | undefined;
25
+ export declare function numberField(field: Field, lookup: InputLookup, fallback: number): number;
26
+ export declare function stringField(field: Field, lookup: InputLookup, fallback: string): string;
27
+ export declare function boolField(field: Field, lookup: InputLookup): boolean | undefined;
28
+ /** A field that holds `[min, max]`, or nothing when it holds no such pair. */
29
+ export declare function rangeField(field: Field, lookup: InputLookup): {
30
+ readonly min: number;
31
+ readonly max: number;
32
+ } | null;
33
+ //# sourceMappingURL=fields.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fields.d.ts","sourceRoot":"","sources":["../../../src/adapters/charts/fields.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,KAAK,EAAU,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC9E,OAAO,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAC;AAGrE,kEAAkE;AAClE,MAAM,MAAM,WAAW,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK,KAAK,CAAC;AAEjD,wBAAgB,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK,IAAI,cAAc,CAEjE;AAED,6DAA6D;AAC7D,wBAAgB,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,GAAG,KAAK,CAKhE;AAED,kEAAkE;AAClE,wBAAgB,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,GAAG,WAAW,GAAG,SAAS,CAGtF;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAGvF;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAGvF;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,GAAG,SAAS,CAGhF;AAED,8EAA8E;AAC9E,wBAAgB,UAAU,CACxB,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,WAAW,GAClB;IAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAOvD"}
@@ -0,0 +1,51 @@
1
+ import { isColourValue } from './colours.js';
2
+ export function isReference(field) {
3
+ return typeof field === 'object' && field !== null && !Array.isArray(field);
4
+ }
5
+ /** A field as a value, with any input reference resolved. */
6
+ export function fieldOf(field, lookup) {
7
+ if (field === null)
8
+ return null;
9
+ if (isReference(field))
10
+ return lookup(field.input);
11
+ if (Array.isArray(field))
12
+ return colourFrom(field);
13
+ return field;
14
+ }
15
+ /** A field that holds a colour, or nothing when it holds none. */
16
+ export function colourField(field, lookup) {
17
+ const value = fieldOf(field, lookup);
18
+ return isColourValue(value) ? value : undefined;
19
+ }
20
+ export function numberField(field, lookup, fallback) {
21
+ const value = fieldOf(field, lookup);
22
+ return typeof value === 'number' && Number.isFinite(value) ? value : fallback;
23
+ }
24
+ export function stringField(field, lookup, fallback) {
25
+ const value = fieldOf(field, lookup);
26
+ return typeof value === 'string' ? value : fallback;
27
+ }
28
+ export function boolField(field, lookup) {
29
+ const value = fieldOf(field, lookup);
30
+ return typeof value === 'boolean' ? value : undefined;
31
+ }
32
+ /** A field that holds `[min, max]`, or nothing when it holds no such pair. */
33
+ export function rangeField(field, lookup) {
34
+ const value = isReference(field) ? lookup(field.input) : field;
35
+ if (!Array.isArray(value) || value.length !== 2)
36
+ return null;
37
+ const [min, max] = value;
38
+ if (typeof min !== 'number' || typeof max !== 'number')
39
+ return null;
40
+ if (!Number.isFinite(min) || !Number.isFinite(max))
41
+ return null;
42
+ return { min, max };
43
+ }
44
+ /** The four numbers a colour field carries, as the value model holds them. */
45
+ function colourFrom(field) {
46
+ if (field.length !== 4)
47
+ return null;
48
+ const [r, g, b, a] = field;
49
+ return { tag: 'color', r, g, b, a };
50
+ }
51
+ //# sourceMappingURL=fields.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fields.js","sourceRoot":"","sources":["../../../src/adapters/charts/fields.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Declared bands into the chart's shaded bands.
3
+ *
4
+ * A band is two plot keys and two colours, which is the chart's own spec, so the
5
+ * pair of keys crosses unchanged. Two details do not.
6
+ *
7
+ * **Opacity is a dimmer, not a second alpha.** A colour carries its own alpha
8
+ * everywhere in the language, and the band's `opacity` multiplies whatever the
9
+ * colours already are. That is exactly what the chart does with the field, so a
10
+ * script that never touches it gets the colour it wrote.
11
+ *
12
+ * **A band with no colour of its own follows the first plot.** `stdlib.md` 14.2
13
+ * says such a band is that plot's colour faded to twelve percent, and the plot's
14
+ * colour may be one the host picked from its palette rather than one the script
15
+ * wrote, so the band is pointed at the plot's settings key rather than at a value
16
+ * read now. The twelve percent is then the dimmer, multiplied by whatever the
17
+ * script asked for.
18
+ */
19
+ import type { CompiledProgram } from '../../core/emit/index.js';
20
+ import type { ChartFill } from './contract.js';
21
+ import type { InputLookup } from './fields.js';
22
+ export declare function buildFills(program: CompiledProgram, lookup: InputLookup): readonly ChartFill[];
23
+ //# sourceMappingURL=fills.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fills.d.ts","sourceRoot":"","sources":["../../../src/adapters/charts/fills.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,KAAK,EAAQ,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAEtE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE/C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAU/C,wBAAgB,UAAU,CAAC,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,WAAW,GAAG,SAAS,SAAS,EAAE,CAI9F"}
@@ -0,0 +1,48 @@
1
+ import { cssColour } from './colours.js';
2
+ import { boolField, colourField, isReference, numberField } from './fields.js';
3
+ /**
4
+ * The fade a band with no declared colour is drawn at, `stdlib.md` 14.2.
5
+ *
6
+ * It is written here because the adapter has to multiply it by the script's own
7
+ * opacity, and a chart applies its own default only where the field is absent.
8
+ */
9
+ const UNCOLOURED_FADE = 0.12;
10
+ export function buildFills(program, lookup) {
11
+ const out = [];
12
+ for (const band of program.outputs.fills)
13
+ out.push(oneBand(program, band, lookup));
14
+ return out;
15
+ }
16
+ function oneBand(program, band, lookup) {
17
+ const up = colourField(band.colorUp, lookup);
18
+ const down = colourField(band.colorDown, lookup);
19
+ const overlay = boolField(band.overlay, lookup);
20
+ const declared = up !== undefined || down !== undefined;
21
+ const opacity = numberField(band.opacity, lookup, 1) * (declared ? 1 : UNCOLOURED_FADE);
22
+ const follow = declared ? undefined : plotColourKey(program, band.between[0]);
23
+ return {
24
+ between: band.between,
25
+ ...(up === undefined ? {} : { colorUp: cssColour(up) }),
26
+ ...(down === undefined ? {} : { colorDown: cssColour(down) }),
27
+ ...(isReference(band.colorUp) ? { colorUpKey: band.colorUp.input } : {}),
28
+ ...(isReference(band.colorDown) ? { colorDownKey: band.colorDown.input } : {}),
29
+ ...(follow === undefined ? {} : { colorUpKey: follow, colorDownKey: follow }),
30
+ opacity,
31
+ ...(overlay === undefined ? {} : { overlay }),
32
+ };
33
+ }
34
+ /**
35
+ * The settings key holding a plot's colour.
36
+ *
37
+ * A chart generates one appearance row per plot and names it after the plot,
38
+ * except where the plot declares a colour key of its own, which is what a plot
39
+ * whose colour came from an `input()` does. The two cases are the same two this
40
+ * adapter produces in `plots.ts`.
41
+ */
42
+ function plotColourKey(program, key) {
43
+ const plot = program.outputs.plots.find((one) => one.key === key);
44
+ if (plot !== undefined && isReference(plot.color))
45
+ return plot.color.input;
46
+ return `${key}:color`;
47
+ }
48
+ //# sourceMappingURL=fills.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fills.js","sourceRoot":"","sources":["../../../src/adapters/charts/fills.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * The chart adapter: a compiled program becomes a chart's indicator descriptor.
3
+ *
4
+ * This is the only module in the repository allowed to know two worlds at once,
5
+ * and it is the piece a platform with its own chart replaces rather than the
6
+ * piece it patches. Everything under `src/core` stays ignorant of charts, and
7
+ * the layering check is what keeps it that way.
8
+ *
9
+ * **The chart library is a peer dependency, and nothing here imports it.** A
10
+ * package that pulled a chart into everyone's install would defeat the point of
11
+ * a language that a platform can take on its own, so the descriptor's shape is
12
+ * declared in `contract.ts` and the value this produces is assigned to the
13
+ * library's own type by the host, in one line, at the host's build. See that
14
+ * file for the line.
15
+ *
16
+ * What is mapped is the whole output surface: the declared inputs and the
17
+ * settings dialog a chart generates from them, the plots with their styles and
18
+ * scales, the bands between them, the horizontal levels, the pane's fixed range,
19
+ * the markers, the candle and pane painting, the summary grid, the drawing
20
+ * objects a script mutates over time, the watched conditions, and the lifecycle
21
+ * a read of another instrument fetches through.
22
+ *
23
+ * What a study can express and this descriptor has no field for is recorded,
24
+ * with its reason, in `spec/chart-narrowings.json`, and each one is also named
25
+ * in the file that would have written it. `scripts/check-chart-surface.mjs`
26
+ * reads that record against a compiled program, so the list cannot grow in
27
+ * silence.
28
+ */
29
+ export { descriptorFor } from './descriptor.js';
30
+ export { candleOwner } from './paint.js';
31
+ export type { Painter } from './paint.js';
32
+ export { ChartAdapterError } from './errors.js';
33
+ export { release } from './run.js';
34
+ export type { ChartAdapterOptions } from './run.js';
35
+ export type { ChartBar, ChartCalcContext, ChartDescriptor, ChartFill, ChartInput, ChartLevel, ChartLevelContext, ChartLineStyle, ChartPlot, ChartPriceFormat, ChartPriceScaleId, ChartSeriesStyle, ChartSeriesType, ChartSettings, ChartSource, ChartStore, ChartValues, } from './contract.js';
36
+ export type { ChartAlertContext, ChartAlertSpec, ChartAnchor, ChartAttachContext, ChartBarsRequest, ChartCell, ChartCellAlign, ChartDataChange, ChartDataStatus, ChartDrawing, ChartGrid, ChartMarker, ChartMarkerPosition, ChartMarkerShape, ChartMarkerSize, ChartSurfaceContext, ChartTableOptions, ChartTablePosition, } from './surfaces.js';
37
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/adapters/charts/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,YAAY,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,YAAY,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAEpD,YAAY,EACV,QAAQ,EACR,gBAAgB,EAChB,eAAe,EACf,SAAS,EACT,UAAU,EACV,UAAU,EACV,iBAAiB,EACjB,cAAc,EACd,SAAS,EACT,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,aAAa,EACb,WAAW,EACX,UAAU,EACV,WAAW,GACZ,MAAM,eAAe,CAAC;AAEvB,YAAY,EACV,iBAAiB,EACjB,cAAc,EACd,WAAW,EACX,kBAAkB,EAClB,gBAAgB,EAChB,SAAS,EACT,cAAc,EACd,eAAe,EACf,eAAe,EACf,YAAY,EACZ,SAAS,EACT,WAAW,EACX,mBAAmB,EACnB,gBAAgB,EAChB,eAAe,EACf,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,eAAe,CAAC"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * The chart adapter: a compiled program becomes a chart's indicator descriptor.
3
+ *
4
+ * This is the only module in the repository allowed to know two worlds at once,
5
+ * and it is the piece a platform with its own chart replaces rather than the
6
+ * piece it patches. Everything under `src/core` stays ignorant of charts, and
7
+ * the layering check is what keeps it that way.
8
+ *
9
+ * **The chart library is a peer dependency, and nothing here imports it.** A
10
+ * package that pulled a chart into everyone's install would defeat the point of
11
+ * a language that a platform can take on its own, so the descriptor's shape is
12
+ * declared in `contract.ts` and the value this produces is assigned to the
13
+ * library's own type by the host, in one line, at the host's build. See that
14
+ * file for the line.
15
+ *
16
+ * What is mapped is the whole output surface: the declared inputs and the
17
+ * settings dialog a chart generates from them, the plots with their styles and
18
+ * scales, the bands between them, the horizontal levels, the pane's fixed range,
19
+ * the markers, the candle and pane painting, the summary grid, the drawing
20
+ * objects a script mutates over time, the watched conditions, and the lifecycle
21
+ * a read of another instrument fetches through.
22
+ *
23
+ * What a study can express and this descriptor has no field for is recorded,
24
+ * with its reason, in `spec/chart-narrowings.json`, and each one is also named
25
+ * in the file that would have written it. `scripts/check-chart-surface.mjs`
26
+ * reads that record against a compiled program, so the list cannot grow in
27
+ * silence.
28
+ */
29
+ export { descriptorFor } from './descriptor.js';
30
+ export { candleOwner } from './paint.js';
31
+ export { ChartAdapterError } from './errors.js';
32
+ export { release } from './run.js';
33
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/adapters/charts/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAGzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Declared levels into the chart's horizontal levels, and the pane's range.
3
+ *
4
+ * A level's price is a channel rather than a constant, so it is evaluated on
5
+ * every bar and **the level drawn is the one from the last bar executed**. That
6
+ * is what makes a level that tracks the data possible at all, and the chart
7
+ * recomputes its levels after every calculation for the same reason, so the two
8
+ * meet without either giving anything up: the price travels in the values table
9
+ * like any other column and is read at its last entry.
10
+ *
11
+ * A level whose last value is absent is not drawn, which is the rule for an
12
+ * absent value reaching any drawn surface: a line breaks, a band stops, a level
13
+ * is not drawn. Returning it at some substituted price would put a line on the
14
+ * chart that the script did not ask for.
15
+ *
16
+ * The colour, the dash and the width are read against the settings the chart
17
+ * holds at the moment it asks, not against the ones it held when the descriptor
18
+ * was built, so a level whose colour came from an `input()` follows the dialog.
19
+ */
20
+ import type { CompiledProgram } from '../../core/emit/index.js';
21
+ import type { ColumnSpec } from './columns.js';
22
+ import type { ChartLevel, ChartLevelContext, ChartSettings } from './contract.js';
23
+ export interface LevelsBuild {
24
+ readonly columns: readonly ColumnSpec[];
25
+ levels(ctx: ChartLevelContext): readonly ChartLevel[];
26
+ }
27
+ export declare function buildLevels(program: CompiledProgram): LevelsBuild;
28
+ /**
29
+ * The study's own pane range, or nothing when it fixed none.
30
+ *
31
+ * It is read per call rather than once, because `range` is one of the fields a
32
+ * script may write with an `input()`, and a chart asks again whenever the
33
+ * settings change.
34
+ */
35
+ export declare function buildRange(program: CompiledProgram): (settings: ChartSettings) => {
36
+ readonly min: number;
37
+ readonly max: number;
38
+ } | null;
39
+ //# sourceMappingURL=levels.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"levels.d.ts","sourceRoot":"","sources":["../../../src/adapters/charts/levels.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAGhE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAkB,aAAa,EAAE,MAAM,eAAe,CAAC;AAMlG,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,OAAO,EAAE,SAAS,UAAU,EAAE,CAAC;IACxC,MAAM,CAAC,GAAG,EAAE,iBAAiB,GAAG,SAAS,UAAU,EAAE,CAAC;CACvD;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,eAAe,GAAG,WAAW,CAgCjE;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CACxB,OAAO,EAAE,eAAe,GACvB,CAAC,QAAQ,EAAE,aAAa,KAAK;IAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAEpF"}
@@ -0,0 +1,61 @@
1
+ import { cssColour } from './colours.js';
2
+ import { levelKey } from './columns.js';
3
+ import { colourField, numberField, rangeField, stringField } from './fields.js';
4
+ import { lookupFor } from './settings.js';
5
+ const LINE_STYLES = ['solid', 'dashed', 'dotted'];
6
+ export function buildLevels(program) {
7
+ const columns = program.outputs.levels.map((declared, index) => ({
8
+ key: levelKey(index),
9
+ channel: declared.channel,
10
+ part: 'value',
11
+ }));
12
+ return {
13
+ columns,
14
+ levels(ctx) {
15
+ const lookup = lookupFor(program, settingsOf(ctx));
16
+ const out = [];
17
+ for (let index = 0; index < program.outputs.levels.length; index += 1) {
18
+ const declared = program.outputs.levels[index];
19
+ if (declared === undefined)
20
+ continue;
21
+ const column = ctx.values?.[levelKey(index)];
22
+ const price = column === undefined ? undefined : column[column.length - 1];
23
+ if (typeof price !== 'number')
24
+ continue;
25
+ const colour = colourField(declared.color, lookup);
26
+ const title = stringField(declared.title, lookup, '');
27
+ const style = stringField(declared.lineStyle, lookup, 'dashed');
28
+ out.push({
29
+ price,
30
+ ...(colour === undefined ? {} : { color: cssColour(colour) }),
31
+ ...(title === '' ? {} : { title }),
32
+ lineWidth: numberField(declared.lineWidth, lookup, 1),
33
+ lineStyle: LINE_STYLES.includes(style) ? style : 'dashed',
34
+ });
35
+ }
36
+ return out;
37
+ },
38
+ };
39
+ }
40
+ /**
41
+ * The study's own pane range, or nothing when it fixed none.
42
+ *
43
+ * It is read per call rather than once, because `range` is one of the fields a
44
+ * script may write with an `input()`, and a chart asks again whenever the
45
+ * settings change.
46
+ */
47
+ export function buildRange(program) {
48
+ return (settings) => rangeField(program.meta.range, lookupFor(program, settings));
49
+ }
50
+ /**
51
+ * The settings a level context carries.
52
+ *
53
+ * The context spreads the settings keys onto itself and also carries them under
54
+ * `settings`, so a caller that built one by hand from a settings bag alone still
55
+ * works: the named member when there is one, the context itself otherwise.
56
+ */
57
+ function settingsOf(ctx) {
58
+ const named = ctx.settings;
59
+ return named === undefined ? ctx : named;
60
+ }
61
+ //# sourceMappingURL=levels.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"levels.js","sourceRoot":"","sources":["../../../src/adapters/charts/levels.ts"],"names":[],"mappings":"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"}