openalgo-script 0.1.0-alpha.1 → 0.4.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 (1210) hide show
  1. package/CHANGELOG.md +1469 -0
  2. package/README.md +85 -30
  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 +221 -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 +166 -0
  90. package/dist/adapters/charts/tables.js.map +1 -0
  91. package/dist/adapters/codemirror/commands.d.ts +14 -0
  92. package/dist/adapters/codemirror/commands.d.ts.map +1 -0
  93. package/dist/adapters/codemirror/commands.js +52 -0
  94. package/dist/adapters/codemirror/commands.js.map +1 -0
  95. package/dist/adapters/codemirror/completion.d.ts +15 -0
  96. package/dist/adapters/codemirror/completion.d.ts.map +1 -0
  97. package/dist/adapters/codemirror/completion.js +64 -0
  98. package/dist/adapters/codemirror/completion.js.map +1 -0
  99. package/dist/adapters/codemirror/contract.d.ts +156 -0
  100. package/dist/adapters/codemirror/contract.d.ts.map +1 -0
  101. package/dist/adapters/codemirror/contract.js +42 -0
  102. package/dist/adapters/codemirror/contract.js.map +1 -0
  103. package/dist/adapters/codemirror/index.d.ts +43 -0
  104. package/dist/adapters/codemirror/index.d.ts.map +1 -0
  105. package/dist/adapters/codemirror/index.js +8 -0
  106. package/dist/adapters/codemirror/index.js.map +1 -0
  107. package/dist/adapters/codemirror/lint.d.ts +17 -0
  108. package/dist/adapters/codemirror/lint.d.ts.map +1 -0
  109. package/dist/adapters/codemirror/lint.js +62 -0
  110. package/dist/adapters/codemirror/lint.js.map +1 -0
  111. package/dist/adapters/codemirror/positions.d.ts +16 -0
  112. package/dist/adapters/codemirror/positions.d.ts.map +1 -0
  113. package/dist/adapters/codemirror/positions.js +65 -0
  114. package/dist/adapters/codemirror/positions.js.map +1 -0
  115. package/dist/adapters/codemirror/stream.d.ts +23 -0
  116. package/dist/adapters/codemirror/stream.d.ts.map +1 -0
  117. package/dist/adapters/codemirror/stream.js +70 -0
  118. package/dist/adapters/codemirror/stream.js.map +1 -0
  119. package/dist/adapters/codemirror/tokens.d.ts +44 -0
  120. package/dist/adapters/codemirror/tokens.d.ts.map +1 -0
  121. package/dist/adapters/codemirror/tokens.js +34 -0
  122. package/dist/adapters/codemirror/tokens.js.map +1 -0
  123. package/dist/adapters/codemirror/tooltips.d.ts +35 -0
  124. package/dist/adapters/codemirror/tooltips.d.ts.map +1 -0
  125. package/dist/adapters/codemirror/tooltips.js +108 -0
  126. package/dist/adapters/codemirror/tooltips.js.map +1 -0
  127. package/dist/core/accounting/charges.d.ts +136 -0
  128. package/dist/core/accounting/charges.d.ts.map +1 -0
  129. package/dist/core/accounting/charges.js +362 -0
  130. package/dist/core/accounting/charges.js.map +1 -0
  131. package/dist/core/accounting/equity.d.ts +158 -0
  132. package/dist/core/accounting/equity.d.ts.map +1 -0
  133. package/dist/core/accounting/equity.js +155 -0
  134. package/dist/core/accounting/equity.js.map +1 -0
  135. package/dist/core/accounting/index.d.ts +44 -0
  136. package/dist/core/accounting/index.d.ts.map +1 -0
  137. package/dist/core/accounting/index.js +36 -0
  138. package/dist/core/accounting/index.js.map +1 -0
  139. package/dist/core/accounting/markers.d.ts +43 -0
  140. package/dist/core/accounting/markers.d.ts.map +1 -0
  141. package/dist/core/accounting/markers.js +64 -0
  142. package/dist/core/accounting/markers.js.map +1 -0
  143. package/dist/core/accounting/monthly.d.ts +52 -0
  144. package/dist/core/accounting/monthly.d.ts.map +1 -0
  145. package/dist/core/accounting/monthly.js +99 -0
  146. package/dist/core/accounting/monthly.js.map +1 -0
  147. package/dist/core/accounting/report.d.ts +38 -0
  148. package/dist/core/accounting/report.d.ts.map +1 -0
  149. package/dist/core/accounting/report.js +63 -0
  150. package/dist/core/accounting/report.js.map +1 -0
  151. package/dist/core/accounting/shapes.d.ts +70 -0
  152. package/dist/core/accounting/shapes.d.ts.map +1 -0
  153. package/dist/core/accounting/shapes.js +21 -0
  154. package/dist/core/accounting/shapes.js.map +1 -0
  155. package/dist/core/accounting/statistics.d.ts +75 -0
  156. package/dist/core/accounting/statistics.d.ts.map +1 -0
  157. package/dist/core/accounting/statistics.js +246 -0
  158. package/dist/core/accounting/statistics.js.map +1 -0
  159. package/dist/core/accounting/trades.d.ts +118 -0
  160. package/dist/core/accounting/trades.d.ts.map +1 -0
  161. package/dist/core/accounting/trades.js +186 -0
  162. package/dist/core/accounting/trades.js.map +1 -0
  163. package/dist/core/backtest/compare.d.ts +38 -0
  164. package/dist/core/backtest/compare.d.ts.map +1 -0
  165. package/dist/core/backtest/compare.js +189 -0
  166. package/dist/core/backtest/compare.js.map +1 -0
  167. package/dist/core/backtest/declaration.d.ts +52 -0
  168. package/dist/core/backtest/declaration.d.ts.map +1 -0
  169. package/dist/core/backtest/declaration.js +48 -0
  170. package/dist/core/backtest/declaration.js.map +1 -0
  171. package/dist/core/backtest/drive.d.ts +29 -0
  172. package/dist/core/backtest/drive.d.ts.map +1 -0
  173. package/dist/core/backtest/drive.js +262 -0
  174. package/dist/core/backtest/drive.js.map +1 -0
  175. package/dist/core/backtest/index.d.ts +46 -0
  176. package/dist/core/backtest/index.d.ts.map +1 -0
  177. package/dist/core/backtest/index.js +36 -0
  178. package/dist/core/backtest/index.js.map +1 -0
  179. package/dist/core/backtest/range.d.ts +84 -0
  180. package/dist/core/backtest/range.d.ts.map +1 -0
  181. package/dist/core/backtest/range.js +90 -0
  182. package/dist/core/backtest/range.js.map +1 -0
  183. package/dist/core/backtest/record.d.ts +238 -0
  184. package/dist/core/backtest/record.d.ts.map +1 -0
  185. package/dist/core/backtest/record.js +176 -0
  186. package/dist/core/backtest/record.js.map +1 -0
  187. package/dist/core/backtest/replay.d.ts +48 -0
  188. package/dist/core/backtest/replay.d.ts.map +1 -0
  189. package/dist/core/backtest/replay.js +127 -0
  190. package/dist/core/backtest/replay.js.map +1 -0
  191. package/dist/core/backtest/resting.d.ts +62 -0
  192. package/dist/core/backtest/resting.d.ts.map +1 -0
  193. package/dist/core/backtest/resting.js +59 -0
  194. package/dist/core/backtest/resting.js.map +1 -0
  195. package/dist/core/backtest/settings.d.ts +117 -0
  196. package/dist/core/backtest/settings.d.ts.map +1 -0
  197. package/dist/core/backtest/settings.js +207 -0
  198. package/dist/core/backtest/settings.js.map +1 -0
  199. package/dist/core/backtest/simulate.d.ts +146 -0
  200. package/dist/core/backtest/simulate.d.ts.map +1 -0
  201. package/dist/core/backtest/simulate.js +217 -0
  202. package/dist/core/backtest/simulate.js.map +1 -0
  203. package/dist/core/catalogue/catalogue.generated.d.ts +164 -10
  204. package/dist/core/catalogue/catalogue.generated.d.ts.map +1 -1
  205. package/dist/core/catalogue/catalogue.generated.js +23 -9
  206. package/dist/core/catalogue/catalogue.generated.js.map +1 -1
  207. package/dist/core/catalogue/values.generated.d.ts +49 -0
  208. package/dist/core/catalogue/values.generated.d.ts.map +1 -1
  209. package/dist/core/check/arguments.d.ts +41 -0
  210. package/dist/core/check/arguments.d.ts.map +1 -0
  211. package/dist/core/check/arguments.js +84 -0
  212. package/dist/core/check/arguments.js.map +1 -0
  213. package/dist/core/check/call-sites.d.ts +22 -0
  214. package/dist/core/check/call-sites.d.ts.map +1 -0
  215. package/dist/core/check/call-sites.js +329 -0
  216. package/dist/core/check/call-sites.js.map +1 -0
  217. package/dist/core/check/call-warmup.d.ts +37 -0
  218. package/dist/core/check/call-warmup.d.ts.map +1 -0
  219. package/dist/core/check/call-warmup.js +97 -0
  220. package/dist/core/check/call-warmup.js.map +1 -0
  221. package/dist/core/check/calls.d.ts +33 -0
  222. package/dist/core/check/calls.d.ts.map +1 -0
  223. package/dist/core/check/calls.js +348 -0
  224. package/dist/core/check/calls.js.map +1 -0
  225. package/dist/core/check/check.d.ts +23 -0
  226. package/dist/core/check/check.d.ts.map +1 -0
  227. package/dist/core/check/check.js +163 -0
  228. package/dist/core/check/check.js.map +1 -0
  229. package/dist/core/check/checked.d.ts +198 -0
  230. package/dist/core/check/checked.d.ts.map +1 -0
  231. package/dist/core/check/checked.js +19 -0
  232. package/dist/core/check/checked.js.map +1 -0
  233. package/dist/core/check/checker.d.ts +182 -0
  234. package/dist/core/check/checker.d.ts.map +1 -0
  235. package/dist/core/check/checker.js +280 -0
  236. package/dist/core/check/checker.js.map +1 -0
  237. package/dist/core/check/conditional.d.ts +35 -0
  238. package/dist/core/check/conditional.d.ts.map +1 -0
  239. package/dist/core/check/conditional.js +100 -0
  240. package/dist/core/check/conditional.js.map +1 -0
  241. package/dist/core/check/constant.d.ts +47 -0
  242. package/dist/core/check/constant.d.ts.map +1 -0
  243. package/dist/core/check/constant.js +101 -0
  244. package/dist/core/check/constant.js.map +1 -0
  245. package/dist/core/check/declaration.d.ts +33 -0
  246. package/dist/core/check/declaration.d.ts.map +1 -0
  247. package/dist/core/check/declaration.js +181 -0
  248. package/dist/core/check/declaration.js.map +1 -0
  249. package/dist/core/check/expressions.d.ts +36 -0
  250. package/dist/core/check/expressions.d.ts.map +1 -0
  251. package/dist/core/check/expressions.js +398 -0
  252. package/dist/core/check/expressions.js.map +1 -0
  253. package/dist/core/check/functions.d.ts +31 -0
  254. package/dist/core/check/functions.d.ts.map +1 -0
  255. package/dist/core/check/functions.js +238 -0
  256. package/dist/core/check/functions.js.map +1 -0
  257. package/dist/core/check/handles.d.ts +48 -0
  258. package/dist/core/check/handles.d.ts.map +1 -0
  259. package/dist/core/check/handles.js +43 -0
  260. package/dist/core/check/handles.js.map +1 -0
  261. package/dist/core/check/index.d.ts +31 -0
  262. package/dist/core/check/index.d.ts.map +1 -0
  263. package/dist/core/check/index.js +26 -0
  264. package/dist/core/check/index.js.map +1 -0
  265. package/dist/core/check/library-bars.d.ts +7 -0
  266. package/dist/core/check/library-bars.d.ts.map +1 -0
  267. package/dist/core/check/library-bars.js +181 -0
  268. package/dist/core/check/library-bars.js.map +1 -0
  269. package/dist/core/check/library-orders.d.ts +5 -0
  270. package/dist/core/check/library-orders.d.ts.map +1 -0
  271. package/dist/core/check/library-orders.js +250 -0
  272. package/dist/core/check/library-orders.js.map +1 -0
  273. package/dist/core/check/library-output.d.ts +7 -0
  274. package/dist/core/check/library-output.d.ts.map +1 -0
  275. package/dist/core/check/library-output.js +195 -0
  276. package/dist/core/check/library-output.js.map +1 -0
  277. package/dist/core/check/library-prose.generated.d.ts +16 -0
  278. package/dist/core/check/library-prose.generated.d.ts.map +1 -0
  279. package/dist/core/check/library-prose.generated.js +353 -0
  280. package/dist/core/check/library-prose.generated.js.map +1 -0
  281. package/dist/core/check/library-series.d.ts +3 -0
  282. package/dist/core/check/library-series.d.ts.map +1 -0
  283. package/dist/core/check/library-series.js +415 -0
  284. package/dist/core/check/library-series.js.map +1 -0
  285. package/dist/core/check/library.d.ts +204 -0
  286. package/dist/core/check/library.d.ts.map +1 -0
  287. package/dist/core/check/library.js +198 -0
  288. package/dist/core/check/library.js.map +1 -0
  289. package/dist/core/check/literals.d.ts +19 -0
  290. package/dist/core/check/literals.d.ts.map +1 -0
  291. package/dist/core/check/literals.js +22 -0
  292. package/dist/core/check/literals.js.map +1 -0
  293. package/dist/core/check/outputs.d.ts +31 -0
  294. package/dist/core/check/outputs.d.ts.map +1 -0
  295. package/dist/core/check/outputs.js +113 -0
  296. package/dist/core/check/outputs.js.map +1 -0
  297. package/dist/core/check/statements.d.ts +25 -0
  298. package/dist/core/check/statements.d.ts.map +1 -0
  299. package/dist/core/check/statements.js +377 -0
  300. package/dist/core/check/statements.js.map +1 -0
  301. package/dist/core/check/suggest.d.ts +25 -0
  302. package/dist/core/check/suggest.d.ts.map +1 -0
  303. package/dist/core/check/suggest.js +61 -0
  304. package/dist/core/check/suggest.js.map +1 -0
  305. package/dist/core/check/surface.d.ts +62 -0
  306. package/dist/core/check/surface.d.ts.map +1 -0
  307. package/dist/core/check/surface.js +129 -0
  308. package/dist/core/check/surface.js.map +1 -0
  309. package/dist/core/check/tags.d.ts +4 -0
  310. package/dist/core/check/tags.d.ts.map +1 -0
  311. package/dist/core/check/tags.js +54 -0
  312. package/dist/core/check/tags.js.map +1 -0
  313. package/dist/core/check/types.d.ts +153 -0
  314. package/dist/core/check/types.d.ts.map +1 -0
  315. package/dist/core/check/types.js +221 -0
  316. package/dist/core/check/types.js.map +1 -0
  317. package/dist/core/check/warmup.d.ts +73 -0
  318. package/dist/core/check/warmup.d.ts.map +1 -0
  319. package/dist/core/check/warmup.js +62 -0
  320. package/dist/core/check/warmup.js.map +1 -0
  321. package/dist/core/diagnostics/collector.d.ts +12 -0
  322. package/dist/core/diagnostics/collector.d.ts.map +1 -1
  323. package/dist/core/diagnostics/collector.js +27 -1
  324. package/dist/core/diagnostics/collector.js.map +1 -1
  325. package/dist/core/emit/calls.d.ts +38 -0
  326. package/dist/core/emit/calls.d.ts.map +1 -0
  327. package/dist/core/emit/calls.js +347 -0
  328. package/dist/core/emit/calls.js.map +1 -0
  329. package/dist/core/emit/canonical.d.ts +39 -0
  330. package/dist/core/emit/canonical.d.ts.map +1 -0
  331. package/dist/core/emit/canonical.js +71 -0
  332. package/dist/core/emit/canonical.js.map +1 -0
  333. package/dist/core/emit/channels.d.ts +28 -0
  334. package/dist/core/emit/channels.d.ts.map +1 -0
  335. package/dist/core/emit/channels.js +110 -0
  336. package/dist/core/emit/channels.js.map +1 -0
  337. package/dist/core/emit/code.d.ts +75 -0
  338. package/dist/core/emit/code.d.ts.map +1 -0
  339. package/dist/core/emit/code.js +104 -0
  340. package/dist/core/emit/code.js.map +1 -0
  341. package/dist/core/emit/colours.d.ts +35 -0
  342. package/dist/core/emit/colours.d.ts.map +1 -0
  343. package/dist/core/emit/colours.js +50 -0
  344. package/dist/core/emit/colours.js.map +1 -0
  345. package/dist/core/emit/context.d.ts +271 -0
  346. package/dist/core/emit/context.d.ts.map +1 -0
  347. package/dist/core/emit/context.js +358 -0
  348. package/dist/core/emit/context.js.map +1 -0
  349. package/dist/core/emit/defaults.d.ts +64 -0
  350. package/dist/core/emit/defaults.d.ts.map +1 -0
  351. package/dist/core/emit/defaults.js +182 -0
  352. package/dist/core/emit/defaults.js.map +1 -0
  353. package/dist/core/emit/emit.d.ts +13 -0
  354. package/dist/core/emit/emit.d.ts.map +1 -0
  355. package/dist/core/emit/emit.js +281 -0
  356. package/dist/core/emit/emit.js.map +1 -0
  357. package/dist/core/emit/events.d.ts +21 -0
  358. package/dist/core/emit/events.d.ts.map +1 -0
  359. package/dist/core/emit/events.js +112 -0
  360. package/dist/core/emit/events.js.map +1 -0
  361. package/dist/core/emit/expressions.d.ts +23 -0
  362. package/dist/core/emit/expressions.d.ts.map +1 -0
  363. package/dist/core/emit/expressions.js +253 -0
  364. package/dist/core/emit/expressions.js.map +1 -0
  365. package/dist/core/emit/functions.d.ts +30 -0
  366. package/dist/core/emit/functions.d.ts.map +1 -0
  367. package/dist/core/emit/functions.js +171 -0
  368. package/dist/core/emit/functions.js.map +1 -0
  369. package/dist/core/emit/gaps.d.ts +34 -0
  370. package/dist/core/emit/gaps.d.ts.map +1 -0
  371. package/dist/core/emit/gaps.js +16 -0
  372. package/dist/core/emit/gaps.js.map +1 -0
  373. package/dist/core/emit/index.d.ts +31 -0
  374. package/dist/core/emit/index.d.ts.map +1 -0
  375. package/dist/core/emit/index.js +25 -0
  376. package/dist/core/emit/index.js.map +1 -0
  377. package/dist/core/emit/inputs.d.ts +47 -0
  378. package/dist/core/emit/inputs.d.ts.map +1 -0
  379. package/dist/core/emit/inputs.js +150 -0
  380. package/dist/core/emit/inputs.js.map +1 -0
  381. package/dist/core/emit/layout.d.ts +73 -0
  382. package/dist/core/emit/layout.d.ts.map +1 -0
  383. package/dist/core/emit/layout.js +126 -0
  384. package/dist/core/emit/layout.js.map +1 -0
  385. package/dist/core/emit/meta.d.ts +14 -0
  386. package/dist/core/emit/meta.d.ts.map +1 -0
  387. package/dist/core/emit/meta.js +68 -0
  388. package/dist/core/emit/meta.js.map +1 -0
  389. package/dist/core/emit/opcodes.d.ts +28 -0
  390. package/dist/core/emit/opcodes.d.ts.map +1 -0
  391. package/dist/core/emit/opcodes.js +137 -0
  392. package/dist/core/emit/opcodes.js.map +1 -0
  393. package/dist/core/emit/outputs.d.ts +67 -0
  394. package/dist/core/emit/outputs.d.ts.map +1 -0
  395. package/dist/core/emit/outputs.js +293 -0
  396. package/dist/core/emit/outputs.js.map +1 -0
  397. package/dist/core/emit/pool.d.ts +33 -0
  398. package/dist/core/emit/pool.d.ts.map +1 -0
  399. package/dist/core/emit/pool.js +79 -0
  400. package/dist/core/emit/pool.js.map +1 -0
  401. package/dist/core/emit/program.d.ts +333 -0
  402. package/dist/core/emit/program.d.ts.map +1 -0
  403. package/dist/core/emit/program.js +15 -0
  404. package/dist/core/emit/program.js.map +1 -0
  405. package/dist/core/emit/registers.d.ts +35 -0
  406. package/dist/core/emit/registers.d.ts.map +1 -0
  407. package/dist/core/emit/registers.js +170 -0
  408. package/dist/core/emit/registers.js.map +1 -0
  409. package/dist/core/emit/request-scope.d.ts +36 -0
  410. package/dist/core/emit/request-scope.d.ts.map +1 -0
  411. package/dist/core/emit/request-scope.js +41 -0
  412. package/dist/core/emit/request-scope.js.map +1 -0
  413. package/dist/core/emit/requests.d.ts +69 -0
  414. package/dist/core/emit/requests.d.ts.map +1 -0
  415. package/dist/core/emit/requests.js +230 -0
  416. package/dist/core/emit/requests.js.map +1 -0
  417. package/dist/core/emit/requires.d.ts +4 -0
  418. package/dist/core/emit/requires.d.ts.map +1 -0
  419. package/dist/core/emit/requires.js +71 -0
  420. package/dist/core/emit/requires.js.map +1 -0
  421. package/dist/core/emit/sha256.d.ts +24 -0
  422. package/dist/core/emit/sha256.d.ts.map +1 -0
  423. package/dist/core/emit/sha256.js +109 -0
  424. package/dist/core/emit/sha256.js.map +1 -0
  425. package/dist/core/emit/statements.d.ts +20 -0
  426. package/dist/core/emit/statements.d.ts.map +1 -0
  427. package/dist/core/emit/statements.js +393 -0
  428. package/dist/core/emit/statements.js.map +1 -0
  429. package/dist/core/emit/values.d.ts +80 -0
  430. package/dist/core/emit/values.d.ts.map +1 -0
  431. package/dist/core/emit/values.js +242 -0
  432. package/dist/core/emit/values.js.map +1 -0
  433. package/dist/core/engine/alerts.d.ts +66 -0
  434. package/dist/core/engine/alerts.d.ts.map +1 -0
  435. package/dist/core/engine/alerts.js +119 -0
  436. package/dist/core/engine/alerts.js.map +1 -0
  437. package/dist/core/engine/arithmetic.d.ts +82 -0
  438. package/dist/core/engine/arithmetic.d.ts.map +1 -0
  439. package/dist/core/engine/arithmetic.js +141 -0
  440. package/dist/core/engine/arithmetic.js.map +1 -0
  441. package/dist/core/engine/bars.d.ts +95 -0
  442. package/dist/core/engine/bars.d.ts.map +1 -0
  443. package/dist/core/engine/bars.js +133 -0
  444. package/dist/core/engine/bars.js.map +1 -0
  445. package/dist/core/engine/budget.d.ts +162 -0
  446. package/dist/core/engine/budget.d.ts.map +1 -0
  447. package/dist/core/engine/budget.js +188 -0
  448. package/dist/core/engine/budget.js.map +1 -0
  449. package/dist/core/engine/channels.d.ts +106 -0
  450. package/dist/core/engine/channels.d.ts.map +1 -0
  451. package/dist/core/engine/channels.js +99 -0
  452. package/dist/core/engine/channels.js.map +1 -0
  453. package/dist/core/engine/drawings.d.ts +64 -0
  454. package/dist/core/engine/drawings.d.ts.map +1 -0
  455. package/dist/core/engine/drawings.js +67 -0
  456. package/dist/core/engine/drawings.js.map +1 -0
  457. package/dist/core/engine/engine.d.ts +140 -0
  458. package/dist/core/engine/engine.d.ts.map +1 -0
  459. package/dist/core/engine/engine.js +405 -0
  460. package/dist/core/engine/engine.js.map +1 -0
  461. package/dist/core/engine/errors.d.ts +64 -0
  462. package/dist/core/engine/errors.d.ts.map +1 -0
  463. package/dist/core/engine/errors.js +63 -0
  464. package/dist/core/engine/errors.js.map +1 -0
  465. package/dist/core/engine/frames.d.ts +48 -0
  466. package/dist/core/engine/frames.d.ts.map +1 -0
  467. package/dist/core/engine/frames.js +41 -0
  468. package/dist/core/engine/frames.js.map +1 -0
  469. package/dist/core/engine/grids.d.ts +25 -0
  470. package/dist/core/engine/grids.d.ts.map +1 -0
  471. package/dist/core/engine/grids.js +77 -0
  472. package/dist/core/engine/grids.js.map +1 -0
  473. package/dist/core/engine/guard.d.ts +4 -0
  474. package/dist/core/engine/guard.d.ts.map +1 -0
  475. package/dist/core/engine/guard.js +46 -0
  476. package/dist/core/engine/guard.js.map +1 -0
  477. package/dist/core/engine/host.d.ts +219 -0
  478. package/dist/core/engine/host.d.ts.map +1 -0
  479. package/dist/core/engine/host.js +38 -0
  480. package/dist/core/engine/host.js.map +1 -0
  481. package/dist/core/engine/index.d.ts +49 -0
  482. package/dist/core/engine/index.d.ts.map +1 -0
  483. package/dist/core/engine/index.js +33 -0
  484. package/dist/core/engine/index.js.map +1 -0
  485. package/dist/core/engine/inputs.d.ts +77 -0
  486. package/dist/core/engine/inputs.d.ts.map +1 -0
  487. package/dist/core/engine/inputs.js +205 -0
  488. package/dist/core/engine/inputs.js.map +1 -0
  489. package/dist/core/engine/ledger/call.d.ts +63 -0
  490. package/dist/core/engine/ledger/call.d.ts.map +1 -0
  491. package/dist/core/engine/ledger/call.js +136 -0
  492. package/dist/core/engine/ledger/call.js.map +1 -0
  493. package/dist/core/engine/ledger/closable.d.ts +155 -0
  494. package/dist/core/engine/ledger/closable.d.ts.map +1 -0
  495. package/dist/core/engine/ledger/closable.js +173 -0
  496. package/dist/core/engine/ledger/closable.js.map +1 -0
  497. package/dist/core/engine/ledger/holdings.d.ts +194 -0
  498. package/dist/core/engine/ledger/holdings.d.ts.map +1 -0
  499. package/dist/core/engine/ledger/holdings.js +237 -0
  500. package/dist/core/engine/ledger/holdings.js.map +1 -0
  501. package/dist/core/engine/ledger/index.d.ts +19 -0
  502. package/dist/core/engine/ledger/index.d.ts.map +1 -0
  503. package/dist/core/engine/ledger/index.js +2 -0
  504. package/dist/core/engine/ledger/index.js.map +1 -0
  505. package/dist/core/engine/ledger/intent.d.ts +106 -0
  506. package/dist/core/engine/ledger/intent.d.ts.map +1 -0
  507. package/dist/core/engine/ledger/intent.js +21 -0
  508. package/dist/core/engine/ledger/intent.js.map +1 -0
  509. package/dist/core/engine/ledger/ledger.d.ts +143 -0
  510. package/dist/core/engine/ledger/ledger.d.ts.map +1 -0
  511. package/dist/core/engine/ledger/ledger.js +237 -0
  512. package/dist/core/engine/ledger/ledger.js.map +1 -0
  513. package/dist/core/engine/ledger/place.d.ts +75 -0
  514. package/dist/core/engine/ledger/place.d.ts.map +1 -0
  515. package/dist/core/engine/ledger/place.js +174 -0
  516. package/dist/core/engine/ledger/place.js.map +1 -0
  517. package/dist/core/engine/ledger/positions.d.ts +68 -0
  518. package/dist/core/engine/ledger/positions.d.ts.map +1 -0
  519. package/dist/core/engine/ledger/positions.js +114 -0
  520. package/dist/core/engine/ledger/positions.js.map +1 -0
  521. package/dist/core/engine/ledger/refuse.d.ts +43 -0
  522. package/dist/core/engine/ledger/refuse.d.ts.map +1 -0
  523. package/dist/core/engine/ledger/refuse.js +329 -0
  524. package/dist/core/engine/ledger/refuse.js.map +1 -0
  525. package/dist/core/engine/ledger/row.d.ts +176 -0
  526. package/dist/core/engine/ledger/row.d.ts.map +1 -0
  527. package/dist/core/engine/ledger/row.js +169 -0
  528. package/dist/core/engine/ledger/row.js.map +1 -0
  529. package/dist/core/engine/ledger/sizing.d.ts +142 -0
  530. package/dist/core/engine/ledger/sizing.d.ts.map +1 -0
  531. package/dist/core/engine/ledger/sizing.js +223 -0
  532. package/dist/core/engine/ledger/sizing.js.map +1 -0
  533. package/dist/core/engine/library/arrays.d.ts +14 -0
  534. package/dist/core/engine/library/arrays.d.ts.map +1 -0
  535. package/dist/core/engine/library/arrays.js +285 -0
  536. package/dist/core/engine/library/arrays.js.map +1 -0
  537. package/dist/core/engine/library/averages.d.ts +9 -0
  538. package/dist/core/engine/library/averages.d.ts.map +1 -0
  539. package/dist/core/engine/library/averages.js +41 -0
  540. package/dist/core/engine/library/averages.js.map +1 -0
  541. package/dist/core/engine/library/binding.d.ts +230 -0
  542. package/dist/core/engine/library/binding.d.ts.map +1 -0
  543. package/dist/core/engine/library/binding.js +109 -0
  544. package/dist/core/engine/library/binding.js.map +1 -0
  545. package/dist/core/engine/library/chart.d.ts +3 -0
  546. package/dist/core/engine/library/chart.d.ts.map +1 -0
  547. package/dist/core/engine/library/chart.js +83 -0
  548. package/dist/core/engine/library/chart.js.map +1 -0
  549. package/dist/core/engine/library/colours.d.ts +26 -0
  550. package/dist/core/engine/library/colours.d.ts.map +1 -0
  551. package/dist/core/engine/library/colours.js +81 -0
  552. package/dist/core/engine/library/colours.js.map +1 -0
  553. package/dist/core/engine/library/dates.d.ts +3 -0
  554. package/dist/core/engine/library/dates.d.ts.map +1 -0
  555. package/dist/core/engine/library/dates.js +75 -0
  556. package/dist/core/engine/library/dates.js.map +1 -0
  557. package/dist/core/engine/library/index.d.ts +13 -0
  558. package/dist/core/engine/library/index.d.ts.map +1 -0
  559. package/dist/core/engine/library/index.js +86 -0
  560. package/dist/core/engine/library/index.js.map +1 -0
  561. package/dist/core/engine/library/maths.d.ts +3 -0
  562. package/dist/core/engine/library/maths.d.ts.map +1 -0
  563. package/dist/core/engine/library/maths.js +89 -0
  564. package/dist/core/engine/library/maths.js.map +1 -0
  565. package/dist/core/engine/library/objects.d.ts +3 -0
  566. package/dist/core/engine/library/objects.d.ts.map +1 -0
  567. package/dist/core/engine/library/objects.js +199 -0
  568. package/dist/core/engine/library/objects.js.map +1 -0
  569. package/dist/core/engine/library/oscillators.d.ts +3 -0
  570. package/dist/core/engine/library/oscillators.d.ts.map +1 -0
  571. package/dist/core/engine/library/oscillators.js +29 -0
  572. package/dist/core/engine/library/oscillators.js.map +1 -0
  573. package/dist/core/engine/library/ranges.d.ts +3 -0
  574. package/dist/core/engine/library/ranges.d.ts.map +1 -0
  575. package/dist/core/engine/library/ranges.js +23 -0
  576. package/dist/core/engine/library/ranges.js.map +1 -0
  577. package/dist/core/engine/library/series.d.ts +3 -0
  578. package/dist/core/engine/library/series.d.ts.map +1 -0
  579. package/dist/core/engine/library/series.js +46 -0
  580. package/dist/core/engine/library/series.js.map +1 -0
  581. package/dist/core/engine/library/state.d.ts +35 -0
  582. package/dist/core/engine/library/state.d.ts.map +1 -0
  583. package/dist/core/engine/library/state.js +19 -0
  584. package/dist/core/engine/library/state.js.map +1 -0
  585. package/dist/core/engine/library/studies.d.ts +3 -0
  586. package/dist/core/engine/library/studies.d.ts.map +1 -0
  587. package/dist/core/engine/library/studies.js +35 -0
  588. package/dist/core/engine/library/studies.js.map +1 -0
  589. package/dist/core/engine/library/text.d.ts +6 -0
  590. package/dist/core/engine/library/text.d.ts.map +1 -0
  591. package/dist/core/engine/library/text.js +280 -0
  592. package/dist/core/engine/library/text.js.map +1 -0
  593. package/dist/core/engine/library/trend.d.ts +3 -0
  594. package/dist/core/engine/library/trend.d.ts.map +1 -0
  595. package/dist/core/engine/library/trend.js +29 -0
  596. package/dist/core/engine/library/trend.js.map +1 -0
  597. package/dist/core/engine/library/volume.d.ts +3 -0
  598. package/dist/core/engine/library/volume.d.ts.map +1 -0
  599. package/dist/core/engine/library/volume.js +51 -0
  600. package/dist/core/engine/library/volume.js.map +1 -0
  601. package/dist/core/engine/load.d.ts +59 -0
  602. package/dist/core/engine/load.d.ts.map +1 -0
  603. package/dist/core/engine/load.js +61 -0
  604. package/dist/core/engine/load.js.map +1 -0
  605. package/dist/core/engine/machine.d.ts +107 -0
  606. package/dist/core/engine/machine.d.ts.map +1 -0
  607. package/dist/core/engine/machine.js +337 -0
  608. package/dist/core/engine/machine.js.map +1 -0
  609. package/dist/core/engine/memory.d.ts +60 -0
  610. package/dist/core/engine/memory.d.ts.map +1 -0
  611. package/dist/core/engine/memory.js +92 -0
  612. package/dist/core/engine/memory.js.map +1 -0
  613. package/dist/core/engine/operations.d.ts +62 -0
  614. package/dist/core/engine/operations.d.ts.map +1 -0
  615. package/dist/core/engine/operations.js +149 -0
  616. package/dist/core/engine/operations.js.map +1 -0
  617. package/dist/core/engine/orders.d.ts +56 -0
  618. package/dist/core/engine/orders.d.ts.map +1 -0
  619. package/dist/core/engine/orders.js +83 -0
  620. package/dist/core/engine/orders.js.map +1 -0
  621. package/dist/core/engine/registers.d.ts +50 -0
  622. package/dist/core/engine/registers.d.ts.map +1 -0
  623. package/dist/core/engine/registers.js +85 -0
  624. package/dist/core/engine/registers.js.map +1 -0
  625. package/dist/core/engine/request-body.d.ts +138 -0
  626. package/dist/core/engine/request-body.d.ts.map +1 -0
  627. package/dist/core/engine/request-body.js +227 -0
  628. package/dist/core/engine/request-body.js.map +1 -0
  629. package/dist/core/engine/request-plan.d.ts +79 -0
  630. package/dist/core/engine/request-plan.d.ts.map +1 -0
  631. package/dist/core/engine/request-plan.js +228 -0
  632. package/dist/core/engine/request-plan.js.map +1 -0
  633. package/dist/core/engine/requests.d.ts +105 -0
  634. package/dist/core/engine/requests.d.ts.map +1 -0
  635. package/dist/core/engine/requests.js +260 -0
  636. package/dist/core/engine/requests.js.map +1 -0
  637. package/dist/core/engine/results.d.ts +40 -0
  638. package/dist/core/engine/results.d.ts.map +1 -0
  639. package/dist/core/engine/results.js +2 -0
  640. package/dist/core/engine/results.js.map +1 -0
  641. package/dist/core/engine/series.d.ts +61 -0
  642. package/dist/core/engine/series.d.ts.map +1 -0
  643. package/dist/core/engine/series.js +41 -0
  644. package/dist/core/engine/series.js.map +1 -0
  645. package/dist/core/engine/session/hours.d.ts +49 -0
  646. package/dist/core/engine/session/hours.d.ts.map +1 -0
  647. package/dist/core/engine/session/hours.js +31 -0
  648. package/dist/core/engine/session/hours.js.map +1 -0
  649. package/dist/core/engine/session/index.d.ts +17 -0
  650. package/dist/core/engine/session/index.d.ts.map +1 -0
  651. package/dist/core/engine/session/index.js +3 -0
  652. package/dist/core/engine/session/index.js.map +1 -0
  653. package/dist/core/engine/session/record.d.ts +56 -0
  654. package/dist/core/engine/session/record.d.ts.map +1 -0
  655. package/dist/core/engine/session/record.js +165 -0
  656. package/dist/core/engine/session/record.js.map +1 -0
  657. package/dist/core/engine/session/spec.d.ts +19 -0
  658. package/dist/core/engine/session/spec.d.ts.map +1 -0
  659. package/dist/core/engine/session/spec.js +31 -0
  660. package/dist/core/engine/session/spec.js.map +1 -0
  661. package/dist/core/engine/timeframe.d.ts +59 -0
  662. package/dist/core/engine/timeframe.d.ts.map +1 -0
  663. package/dist/core/engine/timeframe.js +140 -0
  664. package/dist/core/engine/timeframe.js.map +1 -0
  665. package/dist/core/engine/types.d.ts +15 -0
  666. package/dist/core/engine/types.d.ts.map +1 -0
  667. package/dist/core/engine/types.js +2 -0
  668. package/dist/core/engine/types.js.map +1 -0
  669. package/dist/core/engine/values/heap.d.ts +134 -0
  670. package/dist/core/engine/values/heap.d.ts.map +1 -0
  671. package/dist/core/engine/values/heap.js +230 -0
  672. package/dist/core/engine/values/heap.js.map +1 -0
  673. package/dist/core/engine/values/index.d.ts +13 -0
  674. package/dist/core/engine/values/index.d.ts.map +1 -0
  675. package/dist/core/engine/values/index.js +3 -0
  676. package/dist/core/engine/values/index.js.map +1 -0
  677. package/dist/core/engine/values/value.d.ts +82 -0
  678. package/dist/core/engine/values/value.d.ts.map +1 -0
  679. package/dist/core/engine/values/value.js +134 -0
  680. package/dist/core/engine/values/value.js.map +1 -0
  681. package/dist/core/engine/verify-budgets.d.ts +35 -0
  682. package/dist/core/engine/verify-budgets.d.ts.map +1 -0
  683. package/dist/core/engine/verify-budgets.js +172 -0
  684. package/dist/core/engine/verify-budgets.js.map +1 -0
  685. package/dist/core/engine/verify-code.d.ts +32 -0
  686. package/dist/core/engine/verify-code.d.ts.map +1 -0
  687. package/dist/core/engine/verify-code.js +278 -0
  688. package/dist/core/engine/verify-code.js.map +1 -0
  689. package/dist/core/engine/verify-requests.d.ts +44 -0
  690. package/dist/core/engine/verify-requests.d.ts.map +1 -0
  691. package/dist/core/engine/verify-requests.js +220 -0
  692. package/dist/core/engine/verify-requests.js.map +1 -0
  693. package/dist/core/engine/verify-shape.d.ts +46 -0
  694. package/dist/core/engine/verify-shape.d.ts.map +1 -0
  695. package/dist/core/engine/verify-shape.js +147 -0
  696. package/dist/core/engine/verify-shape.js.map +1 -0
  697. package/dist/core/engine/verify-tables.d.ts +19 -0
  698. package/dist/core/engine/verify-tables.d.ts.map +1 -0
  699. package/dist/core/engine/verify-tables.js +171 -0
  700. package/dist/core/engine/verify-tables.js.map +1 -0
  701. package/dist/core/engine/verify.d.ts +19 -0
  702. package/dist/core/engine/verify.d.ts.map +1 -0
  703. package/dist/core/engine/verify.js +309 -0
  704. package/dist/core/engine/verify.js.map +1 -0
  705. package/dist/core/index.d.ts +95 -6
  706. package/dist/core/index.d.ts.map +1 -1
  707. package/dist/core/index.js +64 -6
  708. package/dist/core/index.js.map +1 -1
  709. package/dist/core/parse/expressions.js +1 -1
  710. package/dist/core/parse/expressions.js.map +1 -1
  711. package/dist/core/parse/names.d.ts +7 -1
  712. package/dist/core/parse/names.d.ts.map +1 -1
  713. package/dist/core/parse/names.js +28 -2
  714. package/dist/core/parse/names.js.map +1 -1
  715. package/dist/core/stdlib/averages/exponential.d.ts +51 -0
  716. package/dist/core/stdlib/averages/exponential.d.ts.map +1 -0
  717. package/dist/core/stdlib/averages/exponential.js +72 -0
  718. package/dist/core/stdlib/averages/exponential.js.map +1 -0
  719. package/dist/core/stdlib/averages/index.d.ts +7 -0
  720. package/dist/core/stdlib/averages/index.d.ts.map +1 -0
  721. package/dist/core/stdlib/averages/index.js +5 -0
  722. package/dist/core/stdlib/averages/index.js.map +1 -0
  723. package/dist/core/stdlib/averages/select.d.ts +35 -0
  724. package/dist/core/stdlib/averages/select.d.ts.map +1 -0
  725. package/dist/core/stdlib/averages/select.js +43 -0
  726. package/dist/core/stdlib/averages/select.js.map +1 -0
  727. package/dist/core/stdlib/averages/shaped.d.ts +61 -0
  728. package/dist/core/stdlib/averages/shaped.d.ts.map +1 -0
  729. package/dist/core/stdlib/averages/shaped.js +126 -0
  730. package/dist/core/stdlib/averages/shaped.js.map +1 -0
  731. package/dist/core/stdlib/averages/simple.d.ts +58 -0
  732. package/dist/core/stdlib/averages/simple.d.ts.map +1 -0
  733. package/dist/core/stdlib/averages/simple.js +92 -0
  734. package/dist/core/stdlib/averages/simple.js.map +1 -0
  735. package/dist/core/stdlib/calendar/civil.d.ts +56 -0
  736. package/dist/core/stdlib/calendar/civil.d.ts.map +1 -0
  737. package/dist/core/stdlib/calendar/civil.js +70 -0
  738. package/dist/core/stdlib/calendar/civil.js.map +1 -0
  739. package/dist/core/stdlib/calendar/fields.d.ts +36 -0
  740. package/dist/core/stdlib/calendar/fields.d.ts.map +1 -0
  741. package/dist/core/stdlib/calendar/fields.js +93 -0
  742. package/dist/core/stdlib/calendar/fields.js.map +1 -0
  743. package/dist/core/stdlib/calendar/format.d.ts +19 -0
  744. package/dist/core/stdlib/calendar/format.d.ts.map +1 -0
  745. package/dist/core/stdlib/calendar/format.js +51 -0
  746. package/dist/core/stdlib/calendar/format.js.map +1 -0
  747. package/dist/core/stdlib/calendar/index.d.ts +7 -0
  748. package/dist/core/stdlib/calendar/index.d.ts.map +1 -0
  749. package/dist/core/stdlib/calendar/index.js +5 -0
  750. package/dist/core/stdlib/calendar/index.js.map +1 -0
  751. package/dist/core/stdlib/calendar/zone.d.ts +53 -0
  752. package/dist/core/stdlib/calendar/zone.d.ts.map +1 -0
  753. package/dist/core/stdlib/calendar/zone.js +138 -0
  754. package/dist/core/stdlib/calendar/zone.js.map +1 -0
  755. package/dist/core/stdlib/index.d.ts +57 -0
  756. package/dist/core/stdlib/index.d.ts.map +1 -0
  757. package/dist/core/stdlib/index.js +51 -0
  758. package/dist/core/stdlib/index.js.map +1 -0
  759. package/dist/core/stdlib/maths/arithmetic.d.ts +38 -0
  760. package/dist/core/stdlib/maths/arithmetic.d.ts.map +1 -0
  761. package/dist/core/stdlib/maths/arithmetic.js +66 -0
  762. package/dist/core/stdlib/maths/arithmetic.js.map +1 -0
  763. package/dist/core/stdlib/maths/elementary.d.ts +65 -0
  764. package/dist/core/stdlib/maths/elementary.d.ts.map +1 -0
  765. package/dist/core/stdlib/maths/elementary.js +93 -0
  766. package/dist/core/stdlib/maths/elementary.js.map +1 -0
  767. package/dist/core/stdlib/maths/index.d.ts +4 -0
  768. package/dist/core/stdlib/maths/index.d.ts.map +1 -0
  769. package/dist/core/stdlib/maths/index.js +4 -0
  770. package/dist/core/stdlib/maths/index.js.map +1 -0
  771. package/dist/core/stdlib/maths/rounding.d.ts +43 -0
  772. package/dist/core/stdlib/maths/rounding.d.ts.map +1 -0
  773. package/dist/core/stdlib/maths/rounding.js +62 -0
  774. package/dist/core/stdlib/maths/rounding.js.map +1 -0
  775. package/dist/core/stdlib/momentum/convergence.d.ts +36 -0
  776. package/dist/core/stdlib/momentum/convergence.d.ts.map +1 -0
  777. package/dist/core/stdlib/momentum/convergence.js +48 -0
  778. package/dist/core/stdlib/momentum/convergence.js.map +1 -0
  779. package/dist/core/stdlib/momentum/index.d.ts +6 -0
  780. package/dist/core/stdlib/momentum/index.d.ts.map +1 -0
  781. package/dist/core/stdlib/momentum/index.js +6 -0
  782. package/dist/core/stdlib/momentum/index.js.map +1 -0
  783. package/dist/core/stdlib/momentum/pressure.d.ts +43 -0
  784. package/dist/core/stdlib/momentum/pressure.d.ts.map +1 -0
  785. package/dist/core/stdlib/momentum/pressure.js +103 -0
  786. package/dist/core/stdlib/momentum/pressure.js.map +1 -0
  787. package/dist/core/stdlib/momentum/rates.d.ts +74 -0
  788. package/dist/core/stdlib/momentum/rates.d.ts.map +1 -0
  789. package/dist/core/stdlib/momentum/rates.js +134 -0
  790. package/dist/core/stdlib/momentum/rates.js.map +1 -0
  791. package/dist/core/stdlib/momentum/rsi.d.ts +21 -0
  792. package/dist/core/stdlib/momentum/rsi.d.ts.map +1 -0
  793. package/dist/core/stdlib/momentum/rsi.js +30 -0
  794. package/dist/core/stdlib/momentum/rsi.js.map +1 -0
  795. package/dist/core/stdlib/momentum/stochastic.d.ts +44 -0
  796. package/dist/core/stdlib/momentum/stochastic.d.ts.map +1 -0
  797. package/dist/core/stdlib/momentum/stochastic.js +97 -0
  798. package/dist/core/stdlib/momentum/stochastic.js.map +1 -0
  799. package/dist/core/stdlib/series/changes.d.ts +59 -0
  800. package/dist/core/stdlib/series/changes.d.ts.map +1 -0
  801. package/dist/core/stdlib/series/changes.js +129 -0
  802. package/dist/core/stdlib/series/changes.js.map +1 -0
  803. package/dist/core/stdlib/series/conditions.d.ts +34 -0
  804. package/dist/core/stdlib/series/conditions.d.ts.map +1 -0
  805. package/dist/core/stdlib/series/conditions.js +52 -0
  806. package/dist/core/stdlib/series/conditions.js.map +1 -0
  807. package/dist/core/stdlib/series/extremes.d.ts +29 -0
  808. package/dist/core/stdlib/series/extremes.d.ts.map +1 -0
  809. package/dist/core/stdlib/series/extremes.js +62 -0
  810. package/dist/core/stdlib/series/extremes.js.map +1 -0
  811. package/dist/core/stdlib/series/index.d.ts +9 -0
  812. package/dist/core/stdlib/series/index.d.ts.map +1 -0
  813. package/dist/core/stdlib/series/index.js +7 -0
  814. package/dist/core/stdlib/series/index.js.map +1 -0
  815. package/dist/core/stdlib/series/pivots.d.ts +25 -0
  816. package/dist/core/stdlib/series/pivots.d.ts.map +1 -0
  817. package/dist/core/stdlib/series/pivots.js +42 -0
  818. package/dist/core/stdlib/series/pivots.js.map +1 -0
  819. package/dist/core/stdlib/series/statistics.d.ts +64 -0
  820. package/dist/core/stdlib/series/statistics.d.ts.map +1 -0
  821. package/dist/core/stdlib/series/statistics.js +148 -0
  822. package/dist/core/stdlib/series/statistics.js.map +1 -0
  823. package/dist/core/stdlib/series/totals.d.ts +68 -0
  824. package/dist/core/stdlib/series/totals.d.ts.map +1 -0
  825. package/dist/core/stdlib/series/totals.js +115 -0
  826. package/dist/core/stdlib/series/totals.js.map +1 -0
  827. package/dist/core/stdlib/trend/directional.d.ts +69 -0
  828. package/dist/core/stdlib/trend/directional.d.ts.map +1 -0
  829. package/dist/core/stdlib/trend/directional.js +151 -0
  830. package/dist/core/stdlib/trend/directional.js.map +1 -0
  831. package/dist/core/stdlib/trend/index.d.ts +4 -0
  832. package/dist/core/stdlib/trend/index.d.ts.map +1 -0
  833. package/dist/core/stdlib/trend/index.js +4 -0
  834. package/dist/core/stdlib/trend/index.js.map +1 -0
  835. package/dist/core/stdlib/trend/psar.d.ts +33 -0
  836. package/dist/core/stdlib/trend/psar.d.ts.map +1 -0
  837. package/dist/core/stdlib/trend/psar.js +86 -0
  838. package/dist/core/stdlib/trend/psar.js.map +1 -0
  839. package/dist/core/stdlib/trend/supertrend.d.ts +30 -0
  840. package/dist/core/stdlib/trend/supertrend.d.ts.map +1 -0
  841. package/dist/core/stdlib/trend/supertrend.js +65 -0
  842. package/dist/core/stdlib/trend/supertrend.js.map +1 -0
  843. package/dist/core/stdlib/values/bar.d.ts +39 -0
  844. package/dist/core/stdlib/values/bar.d.ts.map +1 -0
  845. package/dist/core/stdlib/values/bar.js +33 -0
  846. package/dist/core/stdlib/values/bar.js.map +1 -0
  847. package/dist/core/stdlib/values/index.d.ts +11 -0
  848. package/dist/core/stdlib/values/index.d.ts.map +1 -0
  849. package/dist/core/stdlib/values/index.js +6 -0
  850. package/dist/core/stdlib/values/index.js.map +1 -0
  851. package/dist/core/stdlib/values/lookback.d.ts +83 -0
  852. package/dist/core/stdlib/values/lookback.d.ts.map +1 -0
  853. package/dist/core/stdlib/values/lookback.js +134 -0
  854. package/dist/core/stdlib/values/lookback.js.map +1 -0
  855. package/dist/core/stdlib/values/region.d.ts +55 -0
  856. package/dist/core/stdlib/values/region.d.ts.map +1 -0
  857. package/dist/core/stdlib/values/region.js +73 -0
  858. package/dist/core/stdlib/values/region.js.map +1 -0
  859. package/dist/core/stdlib/values/tail.d.ts +44 -0
  860. package/dist/core/stdlib/values/tail.d.ts.map +1 -0
  861. package/dist/core/stdlib/values/tail.js +23 -0
  862. package/dist/core/stdlib/values/tail.js.map +1 -0
  863. package/dist/core/stdlib/values/value.d.ts +64 -0
  864. package/dist/core/stdlib/values/value.d.ts.map +1 -0
  865. package/dist/core/stdlib/values/value.js +61 -0
  866. package/dist/core/stdlib/values/value.js.map +1 -0
  867. package/dist/core/stdlib/volatility/bands.d.ts +50 -0
  868. package/dist/core/stdlib/volatility/bands.d.ts.map +1 -0
  869. package/dist/core/stdlib/volatility/bands.js +101 -0
  870. package/dist/core/stdlib/volatility/bands.js.map +1 -0
  871. package/dist/core/stdlib/volatility/deviation.d.ts +43 -0
  872. package/dist/core/stdlib/volatility/deviation.d.ts.map +1 -0
  873. package/dist/core/stdlib/volatility/deviation.js +75 -0
  874. package/dist/core/stdlib/volatility/deviation.js.map +1 -0
  875. package/dist/core/stdlib/volatility/index.d.ts +6 -0
  876. package/dist/core/stdlib/volatility/index.d.ts.map +1 -0
  877. package/dist/core/stdlib/volatility/index.js +5 -0
  878. package/dist/core/stdlib/volatility/index.js.map +1 -0
  879. package/dist/core/stdlib/volatility/measures.d.ts +48 -0
  880. package/dist/core/stdlib/volatility/measures.d.ts.map +1 -0
  881. package/dist/core/stdlib/volatility/measures.js +73 -0
  882. package/dist/core/stdlib/volatility/measures.js.map +1 -0
  883. package/dist/core/stdlib/volatility/range.d.ts +69 -0
  884. package/dist/core/stdlib/volatility/range.d.ts.map +1 -0
  885. package/dist/core/stdlib/volatility/range.js +86 -0
  886. package/dist/core/stdlib/volatility/range.js.map +1 -0
  887. package/dist/core/stdlib/volume/accumulation.d.ts +61 -0
  888. package/dist/core/stdlib/volume/accumulation.d.ts.map +1 -0
  889. package/dist/core/stdlib/volume/accumulation.js +127 -0
  890. package/dist/core/stdlib/volume/accumulation.js.map +1 -0
  891. package/dist/core/stdlib/volume/flow.d.ts +60 -0
  892. package/dist/core/stdlib/volume/flow.d.ts.map +1 -0
  893. package/dist/core/stdlib/volume/flow.js +125 -0
  894. package/dist/core/stdlib/volume/flow.js.map +1 -0
  895. package/dist/core/stdlib/volume/index.d.ts +5 -0
  896. package/dist/core/stdlib/volume/index.d.ts.map +1 -0
  897. package/dist/core/stdlib/volume/index.js +4 -0
  898. package/dist/core/stdlib/volume/index.js.map +1 -0
  899. package/dist/core/stdlib/volume/weighted.d.ts +52 -0
  900. package/dist/core/stdlib/volume/weighted.d.ts.map +1 -0
  901. package/dist/core/stdlib/volume/weighted.js +64 -0
  902. package/dist/core/stdlib/volume/weighted.js.map +1 -0
  903. package/dist/core/version/version.generated.d.ts +2 -2
  904. package/dist/core/version/version.generated.d.ts.map +1 -1
  905. package/dist/core/version/version.generated.js +2 -2
  906. package/dist/core/version/version.generated.js.map +1 -1
  907. package/dist/editor/complete.d.ts +40 -0
  908. package/dist/editor/complete.d.ts.map +1 -0
  909. package/dist/editor/complete.js +206 -0
  910. package/dist/editor/complete.js.map +1 -0
  911. package/dist/editor/diagnose.d.ts +18 -0
  912. package/dist/editor/diagnose.d.ts.map +1 -0
  913. package/dist/editor/diagnose.js +70 -0
  914. package/dist/editor/diagnose.js.map +1 -0
  915. package/dist/editor/format.d.ts +11 -0
  916. package/dist/editor/format.d.ts.map +1 -0
  917. package/dist/editor/format.js +50 -0
  918. package/dist/editor/format.js.map +1 -0
  919. package/dist/editor/highlight.d.ts +28 -0
  920. package/dist/editor/highlight.d.ts.map +1 -0
  921. package/dist/editor/highlight.js +65 -0
  922. package/dist/editor/highlight.js.map +1 -0
  923. package/dist/editor/hover.d.ts +40 -0
  924. package/dist/editor/hover.d.ts.map +1 -0
  925. package/dist/editor/hover.js +147 -0
  926. package/dist/editor/hover.js.map +1 -0
  927. package/dist/editor/index.d.ts +60 -0
  928. package/dist/editor/index.d.ts.map +1 -0
  929. package/dist/editor/index.js +7 -0
  930. package/dist/editor/index.js.map +1 -0
  931. package/dist/editor/kinds.d.ts +27 -0
  932. package/dist/editor/kinds.d.ts.map +1 -0
  933. package/dist/editor/kinds.js +118 -0
  934. package/dist/editor/kinds.js.map +1 -0
  935. package/dist/editor/layout.d.ts +47 -0
  936. package/dist/editor/layout.d.ts.map +1 -0
  937. package/dist/editor/layout.js +135 -0
  938. package/dist/editor/layout.js.map +1 -0
  939. package/dist/editor/manifest.d.ts +47 -0
  940. package/dist/editor/manifest.d.ts.map +1 -0
  941. package/dist/editor/manifest.js +93 -0
  942. package/dist/editor/manifest.js.map +1 -0
  943. package/dist/editor/reading.d.ts +41 -0
  944. package/dist/editor/reading.d.ts.map +1 -0
  945. package/dist/editor/reading.js +51 -0
  946. package/dist/editor/reading.js.map +1 -0
  947. package/dist/editor/scan.d.ts +26 -0
  948. package/dist/editor/scan.d.ts.map +1 -0
  949. package/dist/editor/scan.js +139 -0
  950. package/dist/editor/scan.js.map +1 -0
  951. package/dist/editor/scope.d.ts +19 -0
  952. package/dist/editor/scope.d.ts.map +1 -0
  953. package/dist/editor/scope.js +99 -0
  954. package/dist/editor/scope.js.map +1 -0
  955. package/dist/editor/signature.d.ts +38 -0
  956. package/dist/editor/signature.d.ts.map +1 -0
  957. package/dist/editor/signature.js +112 -0
  958. package/dist/editor/signature.js.map +1 -0
  959. package/dist/editor/site.d.ts +46 -0
  960. package/dist/editor/site.d.ts.map +1 -0
  961. package/dist/editor/site.js +184 -0
  962. package/dist/editor/site.js.map +1 -0
  963. package/dist/editor/spacing.d.ts +29 -0
  964. package/dist/editor/spacing.d.ts.map +1 -0
  965. package/dist/editor/spacing.js +116 -0
  966. package/dist/editor/spacing.js.map +1 -0
  967. package/package.json +66 -15
  968. package/spec/errors.json +522 -183
  969. package/src/adapters/charts/alerts.ts +116 -0
  970. package/src/adapters/charts/bars.ts +63 -0
  971. package/src/adapters/charts/candles.ts +137 -0
  972. package/src/adapters/charts/colours.ts +113 -0
  973. package/src/adapters/charts/columns.ts +99 -0
  974. package/src/adapters/charts/contract.ts +320 -0
  975. package/src/adapters/charts/descriptor.ts +199 -0
  976. package/src/adapters/charts/drawings.ts +213 -0
  977. package/src/adapters/charts/errors.ts +45 -0
  978. package/src/adapters/charts/fields.ts +74 -0
  979. package/src/adapters/charts/fills.ts +71 -0
  980. package/src/adapters/charts/index.ts +78 -0
  981. package/src/adapters/charts/levels.ts +92 -0
  982. package/src/adapters/charts/markers.ts +119 -0
  983. package/src/adapters/charts/paint.ts +101 -0
  984. package/src/adapters/charts/plots.ts +185 -0
  985. package/src/adapters/charts/produced.ts +68 -0
  986. package/src/adapters/charts/requests.ts +357 -0
  987. package/src/adapters/charts/run.ts +327 -0
  988. package/src/adapters/charts/settings.ts +273 -0
  989. package/src/adapters/charts/surfaces.ts +255 -0
  990. package/src/adapters/charts/tables.ts +243 -0
  991. package/src/adapters/codemirror/commands.ts +53 -0
  992. package/src/adapters/codemirror/completion.ts +74 -0
  993. package/src/adapters/codemirror/contract.ts +156 -0
  994. package/src/adapters/codemirror/index.ts +66 -0
  995. package/src/adapters/codemirror/lint.ts +66 -0
  996. package/src/adapters/codemirror/positions.ts +79 -0
  997. package/src/adapters/codemirror/stream.ts +87 -0
  998. package/src/adapters/codemirror/tokens.ts +64 -0
  999. package/src/adapters/codemirror/tooltips.ts +113 -0
  1000. package/src/core/accounting/charges.ts +452 -0
  1001. package/src/core/accounting/equity.ts +276 -0
  1002. package/src/core/accounting/index.ts +49 -0
  1003. package/src/core/accounting/markers.ts +95 -0
  1004. package/src/core/accounting/monthly.ts +137 -0
  1005. package/src/core/accounting/report.ts +89 -0
  1006. package/src/core/accounting/shapes.ts +73 -0
  1007. package/src/core/accounting/statistics.ts +350 -0
  1008. package/src/core/accounting/trades.ts +313 -0
  1009. package/src/core/backtest/compare.ts +244 -0
  1010. package/src/core/backtest/declaration.ts +97 -0
  1011. package/src/core/backtest/drive.ts +364 -0
  1012. package/src/core/backtest/index.ts +52 -0
  1013. package/src/core/backtest/range.ts +137 -0
  1014. package/src/core/backtest/record.ts +341 -0
  1015. package/src/core/backtest/replay.ts +158 -0
  1016. package/src/core/backtest/resting.ts +125 -0
  1017. package/src/core/backtest/settings.ts +280 -0
  1018. package/src/core/backtest/simulate.ts +304 -0
  1019. package/src/core/catalogue/catalogue.generated.ts +23 -9
  1020. package/src/core/catalogue/values.generated.ts +14 -0
  1021. package/src/core/check/arguments.ts +126 -0
  1022. package/src/core/check/call-sites.ts +385 -0
  1023. package/src/core/check/call-warmup.ts +121 -0
  1024. package/src/core/check/calls.ts +412 -0
  1025. package/src/core/check/check.ts +183 -0
  1026. package/src/core/check/checked.ts +228 -0
  1027. package/src/core/check/checker.ts +393 -0
  1028. package/src/core/check/conditional.ts +143 -0
  1029. package/src/core/check/constant.ts +127 -0
  1030. package/src/core/check/declaration.ts +230 -0
  1031. package/src/core/check/expressions.ts +471 -0
  1032. package/src/core/check/functions.ts +283 -0
  1033. package/src/core/check/handles.ts +75 -0
  1034. package/src/core/check/index.ts +70 -0
  1035. package/src/core/check/library-bars.ts +194 -0
  1036. package/src/core/check/library-orders.ts +290 -0
  1037. package/src/core/check/library-output.ts +241 -0
  1038. package/src/core/check/library-prose.generated.ts +367 -0
  1039. package/src/core/check/library-series.ts +457 -0
  1040. package/src/core/check/library.ts +374 -0
  1041. package/src/core/check/literals.ts +35 -0
  1042. package/src/core/check/outputs.ts +152 -0
  1043. package/src/core/check/statements.ts +465 -0
  1044. package/src/core/check/suggest.ts +63 -0
  1045. package/src/core/check/surface.ts +149 -0
  1046. package/src/core/check/tags.ts +94 -0
  1047. package/src/core/check/types.ts +260 -0
  1048. package/src/core/check/warmup.ts +100 -0
  1049. package/src/core/diagnostics/collector.ts +27 -1
  1050. package/src/core/emit/calls.ts +415 -0
  1051. package/src/core/emit/canonical.ts +81 -0
  1052. package/src/core/emit/channels.ts +144 -0
  1053. package/src/core/emit/code.ts +155 -0
  1054. package/src/core/emit/colours.ts +75 -0
  1055. package/src/core/emit/context.ts +461 -0
  1056. package/src/core/emit/defaults.ts +220 -0
  1057. package/src/core/emit/emit.ts +313 -0
  1058. package/src/core/emit/events.ts +141 -0
  1059. package/src/core/emit/expressions.ts +292 -0
  1060. package/src/core/emit/functions.ts +195 -0
  1061. package/src/core/emit/gaps.ts +44 -0
  1062. package/src/core/emit/index.ts +76 -0
  1063. package/src/core/emit/inputs.ts +179 -0
  1064. package/src/core/emit/layout.ts +165 -0
  1065. package/src/core/emit/meta.ts +104 -0
  1066. package/src/core/emit/opcodes.ts +160 -0
  1067. package/src/core/emit/outputs.ts +357 -0
  1068. package/src/core/emit/pool.ts +102 -0
  1069. package/src/core/emit/program.ts +385 -0
  1070. package/src/core/emit/registers.ts +179 -0
  1071. package/src/core/emit/request-scope.ts +52 -0
  1072. package/src/core/emit/requests.ts +258 -0
  1073. package/src/core/emit/requires.ts +91 -0
  1074. package/src/core/emit/sha256.ts +119 -0
  1075. package/src/core/emit/statements.ts +438 -0
  1076. package/src/core/emit/values.ts +284 -0
  1077. package/src/core/engine/alerts.ts +152 -0
  1078. package/src/core/engine/arithmetic.ts +165 -0
  1079. package/src/core/engine/bars.ts +224 -0
  1080. package/src/core/engine/budget.ts +284 -0
  1081. package/src/core/engine/channels.ts +171 -0
  1082. package/src/core/engine/drawings.ts +127 -0
  1083. package/src/core/engine/engine.ts +498 -0
  1084. package/src/core/engine/errors.ts +100 -0
  1085. package/src/core/engine/frames.ts +85 -0
  1086. package/src/core/engine/grids.ts +98 -0
  1087. package/src/core/engine/guard.ts +71 -0
  1088. package/src/core/engine/host.ts +251 -0
  1089. package/src/core/engine/index.ts +93 -0
  1090. package/src/core/engine/inputs.ts +263 -0
  1091. package/src/core/engine/ledger/call.ts +218 -0
  1092. package/src/core/engine/ledger/closable.ts +269 -0
  1093. package/src/core/engine/ledger/holdings.ts +354 -0
  1094. package/src/core/engine/ledger/index.ts +28 -0
  1095. package/src/core/engine/ledger/intent.ts +112 -0
  1096. package/src/core/engine/ledger/ledger.ts +314 -0
  1097. package/src/core/engine/ledger/place.ts +277 -0
  1098. package/src/core/engine/ledger/positions.ts +123 -0
  1099. package/src/core/engine/ledger/refuse.ts +378 -0
  1100. package/src/core/engine/ledger/row.ts +318 -0
  1101. package/src/core/engine/ledger/sizing.ts +292 -0
  1102. package/src/core/engine/library/arrays.ts +316 -0
  1103. package/src/core/engine/library/averages.ts +97 -0
  1104. package/src/core/engine/library/binding.ts +325 -0
  1105. package/src/core/engine/library/chart.ts +115 -0
  1106. package/src/core/engine/library/colours.ts +111 -0
  1107. package/src/core/engine/library/dates.ts +109 -0
  1108. package/src/core/engine/library/index.ts +103 -0
  1109. package/src/core/engine/library/maths.ts +134 -0
  1110. package/src/core/engine/library/objects.ts +265 -0
  1111. package/src/core/engine/library/oscillators.ts +124 -0
  1112. package/src/core/engine/library/ranges.ts +51 -0
  1113. package/src/core/engine/library/series.ts +236 -0
  1114. package/src/core/engine/library/state.ts +47 -0
  1115. package/src/core/engine/library/studies.ts +150 -0
  1116. package/src/core/engine/library/text.ts +303 -0
  1117. package/src/core/engine/library/trend.ts +79 -0
  1118. package/src/core/engine/library/volume.ts +101 -0
  1119. package/src/core/engine/load.ts +118 -0
  1120. package/src/core/engine/machine.ts +446 -0
  1121. package/src/core/engine/memory.ts +129 -0
  1122. package/src/core/engine/operations.ts +171 -0
  1123. package/src/core/engine/orders.ts +121 -0
  1124. package/src/core/engine/registers.ts +104 -0
  1125. package/src/core/engine/request-body.ts +328 -0
  1126. package/src/core/engine/request-plan.ts +270 -0
  1127. package/src/core/engine/requests.ts +382 -0
  1128. package/src/core/engine/results.ts +41 -0
  1129. package/src/core/engine/series.ts +82 -0
  1130. package/src/core/engine/session/hours.ts +86 -0
  1131. package/src/core/engine/session/index.ts +17 -0
  1132. package/src/core/engine/session/record.ts +191 -0
  1133. package/src/core/engine/session/spec.ts +45 -0
  1134. package/src/core/engine/timeframe.ts +161 -0
  1135. package/src/core/engine/types.ts +47 -0
  1136. package/src/core/engine/values/heap.ts +295 -0
  1137. package/src/core/engine/values/index.ts +34 -0
  1138. package/src/core/engine/values/value.ts +158 -0
  1139. package/src/core/engine/verify-budgets.ts +202 -0
  1140. package/src/core/engine/verify-code.ts +332 -0
  1141. package/src/core/engine/verify-requests.ts +255 -0
  1142. package/src/core/engine/verify-shape.ts +164 -0
  1143. package/src/core/engine/verify-tables.ts +176 -0
  1144. package/src/core/engine/verify.ts +341 -0
  1145. package/src/core/index.ts +212 -6
  1146. package/src/core/parse/expressions.ts +1 -1
  1147. package/src/core/parse/names.ts +29 -2
  1148. package/src/core/stdlib/averages/exponential.ts +119 -0
  1149. package/src/core/stdlib/averages/index.ts +45 -0
  1150. package/src/core/stdlib/averages/select.ts +71 -0
  1151. package/src/core/stdlib/averages/shaped.ts +161 -0
  1152. package/src/core/stdlib/averages/simple.ts +139 -0
  1153. package/src/core/stdlib/calendar/civil.ts +89 -0
  1154. package/src/core/stdlib/calendar/fields.ts +124 -0
  1155. package/src/core/stdlib/calendar/format.ts +71 -0
  1156. package/src/core/stdlib/calendar/index.ts +15 -0
  1157. package/src/core/stdlib/calendar/zone.ts +161 -0
  1158. package/src/core/stdlib/index.ts +400 -0
  1159. package/src/core/stdlib/maths/arithmetic.ts +74 -0
  1160. package/src/core/stdlib/maths/elementary.ts +124 -0
  1161. package/src/core/stdlib/maths/index.ts +43 -0
  1162. package/src/core/stdlib/maths/rounding.ts +78 -0
  1163. package/src/core/stdlib/momentum/convergence.ts +82 -0
  1164. package/src/core/stdlib/momentum/index.ts +47 -0
  1165. package/src/core/stdlib/momentum/pressure.ts +141 -0
  1166. package/src/core/stdlib/momentum/rates.ts +188 -0
  1167. package/src/core/stdlib/momentum/rsi.ts +49 -0
  1168. package/src/core/stdlib/momentum/stochastic.ts +147 -0
  1169. package/src/core/stdlib/series/changes.ts +177 -0
  1170. package/src/core/stdlib/series/conditions.ts +74 -0
  1171. package/src/core/stdlib/series/extremes.ts +92 -0
  1172. package/src/core/stdlib/series/index.ts +83 -0
  1173. package/src/core/stdlib/series/pivots.ts +63 -0
  1174. package/src/core/stdlib/series/statistics.ts +207 -0
  1175. package/src/core/stdlib/series/totals.ts +164 -0
  1176. package/src/core/stdlib/trend/directional.ts +196 -0
  1177. package/src/core/stdlib/trend/index.ts +13 -0
  1178. package/src/core/stdlib/trend/psar.ts +131 -0
  1179. package/src/core/stdlib/trend/supertrend.ts +100 -0
  1180. package/src/core/stdlib/values/bar.ts +54 -0
  1181. package/src/core/stdlib/values/index.ts +14 -0
  1182. package/src/core/stdlib/values/lookback.ts +198 -0
  1183. package/src/core/stdlib/values/region.ts +86 -0
  1184. package/src/core/stdlib/values/tail.ts +58 -0
  1185. package/src/core/stdlib/values/value.ts +82 -0
  1186. package/src/core/stdlib/volatility/bands.ts +178 -0
  1187. package/src/core/stdlib/volatility/deviation.ts +111 -0
  1188. package/src/core/stdlib/volatility/index.ts +48 -0
  1189. package/src/core/stdlib/volatility/measures.ts +96 -0
  1190. package/src/core/stdlib/volatility/range.ts +143 -0
  1191. package/src/core/stdlib/volume/accumulation.ts +152 -0
  1192. package/src/core/stdlib/volume/flow.ts +173 -0
  1193. package/src/core/stdlib/volume/index.ts +43 -0
  1194. package/src/core/stdlib/volume/weighted.ts +101 -0
  1195. package/src/core/version/version.generated.ts +2 -2
  1196. package/src/editor/complete.ts +266 -0
  1197. package/src/editor/diagnose.ts +71 -0
  1198. package/src/editor/format.ts +85 -0
  1199. package/src/editor/highlight.ts +110 -0
  1200. package/src/editor/hover.ts +199 -0
  1201. package/src/editor/index.ts +65 -0
  1202. package/src/editor/kinds.ts +157 -0
  1203. package/src/editor/layout.ts +189 -0
  1204. package/src/editor/manifest.ts +119 -0
  1205. package/src/editor/reading.ts +69 -0
  1206. package/src/editor/scan.ts +162 -0
  1207. package/src/editor/scope.ts +122 -0
  1208. package/src/editor/signature.ts +150 -0
  1209. package/src/editor/site.ts +233 -0
  1210. package/src/editor/spacing.ts +132 -0
package/README.md CHANGED
@@ -17,21 +17,59 @@ can write their own engine for it.
17
17
 
18
18
  ## Status
19
19
 
20
- **`0.1.0-alpha.0` parses. It does not yet compute anything.**
21
-
22
- That is the honest description of what an install gets you today: a lexer, a
23
- parser, a syntax tree, and diagnostics carrying a code, a line, a column and a
24
- fix. It will tell you whether a script is well formed. It will not calculate a
25
- moving average, draw anything, or place an order.
26
-
27
- The registry shows this version under `latest` only because a package must have
28
- one and this is the first release. The `-alpha.0` on the version is the part to
29
- read.
30
-
31
- The checker and the engine are Phase 2, and the roadmap says what each phase owes
32
- before it is allowed to finish. The specification is written first and the
33
- implementation follows it, which is why there is a great deal more specification
34
- here than there is compiler.
20
+ **`0.4.0` runs studies, backtests strategies, and ships the language
21
+ intelligence an editor needs.**
22
+
23
+ What an install gets you today: the compiler, the engine, the chart adapter and
24
+ the backtest. A script compiles in milliseconds in a browser tab and computes,
25
+ bar by bar, the same numbers everywhere. One hundred and one independently
26
+ written studies compile, load and run, and five of them match arithmetic
27
+ transcribed from the specification alone, bit for bit, warmups included.
28
+
29
+ A strategy is walked over a range of bars and what comes back is a document
30
+ rather than a number: the program, the bars, the settings, every frame, every
31
+ fill, the ledger and the report. That document replays to the same report and
32
+ reruns to the same bytes, and `npm test` proves it over the shipped strategy
33
+ examples on every run rather than asserting it in a page. Two records can be put
34
+ beside each other, and a pair over different bars is reported incomparable
35
+ instead of being subtracted into a table that reads like a result.
36
+
37
+ What it does **not** do yet, stated plainly because the registry page is the
38
+ first thing a stranger reads:
39
+
40
+ - **The backtest does not model everything, and says which.** A bracket's stop
41
+ cannot fill, because the engine appends no order row for a bracket. A quantity
42
+ stated in cash or in a percentage of equity is refused rather than filled,
43
+ because a backtest works out no running equity to size against. The equity
44
+ curve marks a trade at the size it ended up entering, so a strategy that
45
+ scales in is reported with a drawdown deeper than the account had. A script
46
+ still cannot read its own equity mid-run. The `0.4.0` entry in
47
+ [`CHANGELOG.md`](./CHANGELOG.md) is the full list, and every item on it is
48
+ there because somebody would otherwise find it inside a report they had
49
+ already believed.
50
+ - **No editor on screen, and that is the design.** The six headless functions are
51
+ here and resolve as `openalgo-script/editor`: highlight, complete, diagnose,
52
+ hover, signature and format, text in and data out, with no DOM at any tier. The
53
+ text component, the panel, the apply button, saving and the theme are yours,
54
+ and the drop-in adapter for one editor component wires the six into it without
55
+ drawing anything itself. What each function gives you, and what stays yours, is
56
+ in
57
+ [`docs/integrating/the-editor-half.md`](./docs/integrating/the-editor-half.md).
58
+ The language server that would put the same errors in a desktop editor is the
59
+ rest of Phase 4 and is not written.
60
+ - **No second engine, and no case files to hand one.** The Python engine and the
61
+ conformance suite that would prove two engines agree are Phase 6. A run record
62
+ is the case, but the files a suite is run from cannot be written from one yet:
63
+ a case has to carry the source text and a record carries the source's hash.
64
+ Until an engine somebody else wrote passes that suite, the portability claim is
65
+ a design, not a result.
66
+
67
+ The version is `0.4.0` rather than `1.0` because of that list. The studies
68
+ surface is the part that is finished, and it is the part to build on.
69
+
70
+ `ROADMAP.md` says what each phase owes before it is allowed to finish. The
71
+ specification is written first and the implementation follows it, which is why
72
+ there is still more specification here than compiler.
35
73
 
36
74
  ## What it looks like
37
75
 
@@ -75,7 +113,7 @@ OpenScript is the opposite of that:
75
113
 
76
114
  - **Yours.** Plain text files in a folder. Version control, diffs, your own editor.
77
115
  - **Local.** It compiles and runs on your machine. No execution quota, no loop
78
- timeout, no cap on how many things you may draw.
116
+ timeout, and nothing you drew silently dropped to make room for the next one.
79
117
  - **Honest.** A higher timeframe read has to say whether it repaints. The
80
118
  compiler warns when a script would.
81
119
  - **Connected.** The same script places real orders through your own broker
@@ -130,9 +168,11 @@ and the dependencies only ever point one way.
130
168
  | \ /
131
169
  | .../adapters/charts <- knows both. The only place that does
132
170
  |
133
- .../editor
171
+ .../editor <- the six headless functions. No DOM, no
172
+ | package, nothing on screen
134
173
  |
135
- .../adapters/codemirror <- knows the editor component. Nothing else does
174
+ .../adapters/codemirror <- knows both. Takes its markup from the
175
+ host, so it draws nothing either
136
176
  ```
137
177
 
138
178
  The language ships as one package with an entry point per tier, so a consumer who
@@ -140,13 +180,20 @@ wants only the compiler never pays for an adapter. A tier is declared only once
140
180
  exists: an entry point that resolves to nothing fails at a consumer's run time
141
181
  rather than honestly at install.
142
182
 
183
+ These four resolve today, from an install holding nothing but the manifest and the
184
+ built output. That is a check rather than a sentence: `scripts/check-entry-points.mjs`
185
+ builds exactly that install in a temporary directory, with no package of any kind
186
+ beside it, and imports every one of them.
187
+
143
188
  | Entry point | Is | Depends on |
144
189
  |---|---|---|
145
190
  | `openalgo-script` | Compiler and engine | Nothing |
146
- | `openalgo-script/editor` | Highlight, complete, diagnose, hover, signature, format. No DOM | The compiler |
191
+ | `openalgo-script/editor` | The six headless language functions an editor needs | The compiler |
147
192
  | `openalgo-script/adapters/charts` | Turns a compiled study into a chart's indicator descriptor | The compiler and a chart |
148
- | `openalgo-script/adapters/codemirror` | A drop-in editor language package | The editor half and an editor component |
149
- | The Python engine, on its own index | The same compiled program, run on a server | Nothing |
193
+ | `openalgo-script/adapters/codemirror` | Wires the six into a text component | The editor half and a text component |
194
+
195
+ The server-side engine is not among them: it is a separate package in another
196
+ language, and the roadmap says which phase owes it.
150
197
 
151
198
  An adapter is the only thing allowed to know two worlds at once, which is what
152
199
  makes it the piece a platform replaces rather than the piece they patch. A
@@ -155,8 +202,10 @@ else. A platform with its own editor does the same on that side.
155
202
 
156
203
  This is enforced rather than promised. `scripts/check-layering.mjs` runs in
157
204
  continuous integration and fails the build if the compiler imports a chart, if
158
- anything outside an adapter imports a package, or if the compiler or the editor
159
- half so much as mentions a browser global.
205
+ anything outside an adapter imports a package, or if anything under `src` so much
206
+ as mentions a browser global. That last one holds of the adapters too: the editor
207
+ adapter takes a tooltip's markup from the host rather than building an element,
208
+ so every file in the package loads in a worker and on a server.
160
209
 
161
210
  ## Taking it, one step at a time
162
211
 
@@ -166,7 +215,7 @@ Each row is usable on its own. Nobody has to take the next one.
166
215
  |---|---|---|
167
216
  | Scripts that produce numbers | `openalgo-script`, and the six-item host interface | An afternoon |
168
217
  | Those studies on your chart | the charts adapter, plus a chart | Days. Free if the chart is the one this adapter already targets |
169
- | Traders authoring in your app | `openalgo-script/editor`, and your own text component or the drop-in one | Days |
218
+ | Traders authoring in your app | The editor half, and your own text component or the drop-in adapter | Days |
170
219
  | Traders trading from it | Wire the order half of the host interface to your order API | About a week |
171
220
  | To run it on your own stack | Implement the compiled program format in your language, then pass the conformance suite | Weeks |
172
221
 
@@ -184,18 +233,24 @@ fails the build.
184
233
 
185
234
  | Guarantee | How you can tell | Today |
186
235
  |---|---|---|
187
- | No `eval`, no generated code, runs under a strict content security policy | Grep the source. There is no code construction anywhere, and the compiler emits data | Enforced |
236
+ | The package cannot build code out of text: every door to a generator is a module, and it imports none of them | `scripts/check-layering.mjs`. Nothing under `src` may import a module from the runtime's own namespace, at either spelling, and no load may have a specifier that is not written down. So there is no virtual machine, no worker and no child process in the graph to reach. Unreachable by construction, not unmatched by a pattern | Enforced |
237
+ | The two names that need no import, the string evaluator and the function builder, are refused | A runtime switch you set on your own process, `--disallow-code-generation-from-strings`. Our own suite runs under it. It refuses those two names and closes no other door: see [`docs/integrating/running-the-engine.md`](./docs/integrating/running-the-engine.md) for what it does not cover and what is yours to do | Yours to turn on |
238
+ | No generator anywhere in this repository's own text | `scripts/check-no-eval.mjs`, over the source, both built outputs, the tooling, the hooks and the build steps, attacking itself with every form it knows before it reads a file. **It is a lint, not a proof.** It has now been got past five times, the last by a constructor reached through a key assembled at run time, and a list of spellings only ever has to be beaten once more. Treat a pass as evidence that no known form is present | **Lint** |
239
+ | A generator that runs is refused | The suite runs under the setting that refuses to compile text, so a builder throws the moment its path executes, however it was spelled. This caught the form the scan missed. What it cannot cover: a line no test reaches, and the module doors above, which is why the row above it matters more than this one | Enforced, for code the tests execute |
188
240
  | Zero runtime dependencies | `dependencies` is empty and stays empty | Enforced |
189
241
  | The pieces are separable: take the language without the chart, or the chart without the language | `scripts/check-layering.mjs`. The core may not import a package or touch a browser global | Enforced |
190
242
  | Small modules with a stated surface | `scripts/check-modularity.mjs`. A module's index is its only door | Enforced |
191
- | Every error is documented, with a code, a cause and a fix | `scripts/check-error-codes.mjs`, and the code type is generated from the catalogue so an invented code will not compile | Enforced |
243
+ | Every error is documented, with a code, a cause and a fix | `scripts/check-error-codes.mjs` reads every file in the tree, and the code type is generated from the catalogue so an invented code will not compile. `scripts/check-catalogue-tests.mjs` compares the catalogue a reader opens with the file the compiler is generated from, string for string, so the two cannot say different things | Enforced |
192
244
  | No fact is stated in two places | `scripts/check-duplication.mjs` | Enforced, with recorded debt |
193
- | The compiled program is implementable without reading our code | `spec/compiled-program.md` and `spec/host-interface.md` | Written |
245
+ | The compiled program is implementable without reading our code | `spec/compiled-program.md` and `spec/host-interface.md`. Every engine test drives a host built from those pages rather than one we wrote | Written, and used |
194
246
  | Two engines agree to the last decimal | The conformance suite, run against both. A disagreement blocks a release | Phase 6 gate |
195
- | A runaway script stops | Instruction, memory and wall clock budgets, enforced by the engine that owns the loop | Phase 2 gate |
196
- | A failing script does not take anything else down | One script's failure is a diagnostic on that script | Phase 2 gate |
247
+ | A runaway script stops | Instruction, memory and wall clock budgets, counters in the loop the engine owns. `tests/engine/budget.test.ts` | Enforced |
248
+ | A failing script does not take anything else down | One script's failure is a diagnostic on that script and reaches nothing else | Enforced |
249
+ | Every entry point in the export map resolves from a real install | `scripts/check-entry-points.mjs`. Each one is imported from a temporary install built from the `files` list alone, with no package beside it, which is also what says both adapters' peer dependencies are optional in fact and not only in the manifest | Enforced |
250
+ | A completion, a tooltip and a default come from the compiler, not from a list | The names are the standard library manifest the checker resolves against; what a call is for is the cell `spec/stdlib.md` prints, read at build time by `scripts/generate-library-prose.mjs`; a default is the one `scripts/check-defaults.mjs` holds the compiler to. `tests/editor/hover.test.ts` fails if the manifest and the specification describe different sets of names | Enforced |
251
+ | Laying a script out again cannot change what it computes | `tests/editor/format.test.ts`. Every example and every gate script is formatted, both texts are compiled, and the compiled programs are compared. Each call also checks itself against the lexer, so a rule that is wrong returns your source untouched rather than a changed program | Enforced |
197
252
  | A saved script never stops working | The language version is declared per file and old front ends are retained | Phase 7, with a test per retained version |
198
- | Performance | A benchmark with a number, in continuous integration | Phase 2 gate |
253
+ | Performance | Eight benchmarks with recorded budgets, run by `npm test` and in continuous integration. A regression past a budget fails the build | Enforced |
199
254
 
200
255
  The rows marked as gates are not promises we intend to keep. They are conditions a
201
256
  phase does not finish without, and each one is written into the roadmap beside the
@@ -0,0 +1,70 @@
1
+ /**
2
+ * Declared alerts into the chart's watched conditions.
3
+ *
4
+ * An `alert()` call site is lifted by the compiler into one declared entry: a
5
+ * boolean channel carrying the chain of guards that reaches the call, a string
6
+ * channel carrying the message, a stable key and a title (`stdlib.md` 16.1). The
7
+ * chart's own watched condition is a row with a stable id, a title and a
8
+ * predicate it evaluates per bar, so the mapping is the boolean channel: it
9
+ * rides the values table as a column, and the predicate reads that column at the
10
+ * bar it is judging.
11
+ *
12
+ * **Nothing fires for history, and the chart is what applies that.** It judges
13
+ * only bars that are new since it last looked, so a study added at noon to a
14
+ * chart holding two years announces none of them, and a settings change, which
15
+ * recomputes the whole history without adding a bar, announces nothing either.
16
+ * That is `stdlib.md` 16.2 reached from the host's side rather than the engine's,
17
+ * and it is the rule the descriptor's own slot already carries.
18
+ *
19
+ * **An absent condition is not a true one.** The column holds a number where the
20
+ * channel published `true` and `null` everywhere else, so an alert under a guard
21
+ * that was absent during warmup does not fire. That is `language.md` 6.6's three
22
+ * valued logic reaching a surface, and it is the most common reason a new alert
23
+ * looks dead.
24
+ *
25
+ * **The message is computed on the bar that fired, and it travels.** It is a
26
+ * string per bar, so it cannot ride the table of numbers the calculation
27
+ * returns, and the entry's own field takes a function of the same context the
28
+ * predicate was judged on: the bars, the columns, the settings and the bar's
29
+ * index. The settings are the study instance (`produced.ts`), so the message
30
+ * reads the run's own string channel there, at the one bar it is asked about,
31
+ * and the alert a user receives carries the numbers the script put in it.
32
+ *
33
+ * A message the bar published nothing for falls back to the declared title,
34
+ * which is what the chart itself does for an entry that states no message. That
35
+ * is the honest answer for the one case that reaches it: `message` is a required
36
+ * argument, so the string is absent only where the expression that built it was,
37
+ * and absence reaching a surface draws nothing of its own (`language.md` 6.7).
38
+ *
39
+ * **One thing a declared alert carries still has no field on the chart's entry**
40
+ * and is left out rather than approximated. The **frequency** (`stdlib.md` 16.2)
41
+ * has nowhere to land: the chart evaluates each entry once for each new bar,
42
+ * which is `"oncePerBar"`; `"once"` would need state that lives as long as the
43
+ * study instance and `"everyUpdate"` would need the entry to be evaluated again
44
+ * on a bar that is still moving, and the entry is handed neither. It is recorded
45
+ * with its reason in `spec/chart-narrowings.json`, which
46
+ * `scripts/check-chart-surface.mjs` refuses to let grow in silence.
47
+ */
48
+ import type { CompiledProgram } from '../../core/emit/index.js';
49
+ import type { ColumnSpec } from './columns.js';
50
+ import type { InputLookup } from './fields.js';
51
+ import type { MessageColumn } from './produced.js';
52
+ import type { Columns } from './run.js';
53
+ import type { ChartAlertSpec } from './surfaces.js';
54
+ /** The key one alert's condition column travels under. */
55
+ export declare function alertKey(index: number): string;
56
+ export interface AlertBuild {
57
+ readonly alerts: readonly ChartAlertSpec[];
58
+ readonly columns: readonly ColumnSpec[];
59
+ }
60
+ /**
61
+ * Each declared alert's message channel, as the run left it.
62
+ *
63
+ * Indexed by the alert's position in `outputs.alerts`, so an entry the program
64
+ * declares without a message channel holds an empty column rather than shifting
65
+ * the ones after it.
66
+ */
67
+ export declare function alertMessages(program: CompiledProgram, columns: Columns): readonly MessageColumn[];
68
+ /** The rows a user subscribes to, fixed before the first bar. */
69
+ export declare function buildAlerts(program: CompiledProgram, lookup: InputLookup): AlertBuild;
70
+ //# sourceMappingURL=alerts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"alerts.d.ts","sourceRoot":"","sources":["../../../src/adapters/charts/alerts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE/C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAEnD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,KAAK,EAAqB,cAAc,EAAE,MAAM,eAAe,CAAC;AAEvE,0DAA0D;AAC1D,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE9C;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,MAAM,EAAE,SAAS,cAAc,EAAE,CAAC;IAC3C,QAAQ,CAAC,OAAO,EAAE,SAAS,UAAU,EAAE,CAAC;CACzC;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,eAAe,EACxB,OAAO,EAAE,OAAO,GACf,SAAS,aAAa,EAAE,CAK1B;AAED,iEAAiE;AACjE,wBAAgB,WAAW,CAAC,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,WAAW,GAAG,UAAU,CAyBrF"}
@@ -0,0 +1,52 @@
1
+ import { stringField } from './fields.js';
2
+ import { producedFor } from './produced.js';
3
+ /** The key one alert's condition column travels under. */
4
+ export function alertKey(index) {
5
+ return `openscript:alert:${index}`;
6
+ }
7
+ /**
8
+ * Each declared alert's message channel, as the run left it.
9
+ *
10
+ * Indexed by the alert's position in `outputs.alerts`, so an entry the program
11
+ * declares without a message channel holds an empty column rather than shifting
12
+ * the ones after it.
13
+ */
14
+ export function alertMessages(program, columns) {
15
+ return program.outputs.alerts.map((declared) => {
16
+ const channel = declared.messageChannel;
17
+ return channel === null ? [] : (columns[channel] ?? []);
18
+ });
19
+ }
20
+ /** The rows a user subscribes to, fixed before the first bar. */
21
+ export function buildAlerts(program, lookup) {
22
+ const alerts = [];
23
+ const columns = [];
24
+ for (let index = 0; index < program.outputs.alerts.length; index += 1) {
25
+ const declared = program.outputs.alerts[index];
26
+ if (declared === undefined)
27
+ continue;
28
+ const key = alertKey(index);
29
+ const title = stringField(declared.title, lookup, '');
30
+ columns.push({ key, channel: declared.condChannel, part: 'flag' });
31
+ alerts.push({
32
+ id: declared.key,
33
+ title,
34
+ // A program whose alert has no message channel states no message, and the
35
+ // chart's own default for that is the title. Declaring a function that
36
+ // returned the title anyway would hide that fact behind this adapter.
37
+ ...(declared.messageChannel === null
38
+ ? {}
39
+ : {
40
+ message: (ctx) => messageAt(producedFor(ctx.settings).messages[index], ctx.index) ?? title,
41
+ }),
42
+ when: (ctx) => ctx.values[key]?.[ctx.index] === 1,
43
+ });
44
+ }
45
+ return { alerts, columns };
46
+ }
47
+ /** The message one bar published, or nothing where it published none. */
48
+ function messageAt(column, index) {
49
+ const value = column?.[index];
50
+ return typeof value === 'string' ? value : undefined;
51
+ }
52
+ //# sourceMappingURL=alerts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"alerts.js","sourceRoot":"","sources":["../../../src/adapters/charts/alerts.ts"],"names":[],"mappings":"AAiDA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAG1C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAI5C,0DAA0D;AAC1D,MAAM,UAAU,QAAQ,CAAC,KAAa;IACpC,OAAO,oBAAoB,KAAK,EAAE,CAAC;AACrC,CAAC;AAOD;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAC3B,OAAwB,EACxB,OAAgB;IAEhB,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;QAC7C,MAAM,OAAO,GAAG,QAAQ,CAAC,cAAc,CAAC;QACxC,OAAO,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;AACL,CAAC;AAED,iEAAiE;AACjE,MAAM,UAAU,WAAW,CAAC,OAAwB,EAAE,MAAmB;IACvE,MAAM,MAAM,GAAqB,EAAE,CAAC;IACpC,MAAM,OAAO,GAAiB,EAAE,CAAC;IACjC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACtE,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC/C,IAAI,QAAQ,KAAK,SAAS;YAAE,SAAS;QACrC,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC5B,MAAM,KAAK,GAAG,WAAW,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;QACtD,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,CAAC,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QACnE,MAAM,CAAC,IAAI,CAAC;YACV,EAAE,EAAE,QAAQ,CAAC,GAAG;YAChB,KAAK;YACL,0EAA0E;YAC1E,uEAAuE;YACvE,sEAAsE;YACtE,GAAG,CAAC,QAAQ,CAAC,cAAc,KAAK,IAAI;gBAClC,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC;oBACE,OAAO,EAAE,CAAC,GAAsB,EAAU,EAAE,CAC1C,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK;iBAC3E,CAAC;YACN,IAAI,EAAE,CAAC,GAAsB,EAAW,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC;SAC9E,CAAC,CAAC;IACL,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AAC7B,CAAC;AAED,yEAAyE;AACzE,SAAS,SAAS,CAAC,MAAiC,EAAE,KAAa;IACjE,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AACvD,CAAC"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * A chart's bar as the engine reads one.
3
+ *
4
+ * One fact differs across the boundary and it is easy to get wrong in a way
5
+ * nothing catches. A chart's bar time is in **seconds** and the engine's is in
6
+ * **milliseconds**, so every time crosses through here and nowhere else; a study
7
+ * comparing `time` against an anchor would be a thousand times out and would
8
+ * still draw. Every other field is spelled on both sides as
9
+ * `host-interface.md` 3.1 spells it, so nothing here renames anything.
10
+ *
11
+ * **Absence survives the crossing.** A bar with no volume arrives with the field
12
+ * missing and leaves with it missing, because a script that sizes something by
13
+ * volume has to be able to tell "no trades" from "nobody said", and a zero put
14
+ * in here would answer the wrong one of those for ever.
15
+ *
16
+ * **Nothing here says where a session begins.** The session is a range of hours
17
+ * in the instrument record (`host-interface.md` 4.3), the engine derives the
18
+ * per-bar facts from it, and a chart's own host states those hours alongside
19
+ * the exchange and the lot size. An option here that set the flags per bar would be
20
+ * a second source for a fact the engine already derives, and the two would
21
+ * disagree on the study every intraday chart draws.
22
+ */
23
+ import type { BarState, HostBar } from '../../core/engine/index.js';
24
+ import type { ChartBar, ChartCalcContext } from './contract.js';
25
+ /** Milliseconds in a second, so the conversion is named rather than a literal. */
26
+ export declare const MS = 1000;
27
+ export declare function hostBar(bar: ChartBar): HostBar;
28
+ /** A chart's wall clock reading, in the units the engine's `chart.now()` uses. */
29
+ export declare function hostNow(seconds: number): number;
30
+ /**
31
+ * What the host states about one execution.
32
+ *
33
+ * Only the newest bar can be unconfirmed or driven by a live feed: every bar
34
+ * before it is history, whatever the feed behind the chart is doing now. The
35
+ * chart's own calculation context says which of those two the newest bar is,
36
+ * and says nothing at all about the ones before it, which is the same split.
37
+ */
38
+ export declare function stateFor(index: number, bars: readonly ChartBar[], ctx: ChartCalcContext | undefined): BarState;
39
+ //# sourceMappingURL=bars.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bars.d.ts","sourceRoot":"","sources":["../../../src/adapters/charts/bars.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,KAAK,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEhE,kFAAkF;AAClF,eAAO,MAAM,EAAE,OAAO,CAAC;AAEvB,wBAAgB,OAAO,CAAC,GAAG,EAAE,QAAQ,GAAG,OAAO,CAU9C;AAED,kFAAkF;AAClF,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED;;;;;;;GAOG;AACH,wBAAgB,QAAQ,CACtB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,SAAS,QAAQ,EAAE,EACzB,GAAG,EAAE,gBAAgB,GAAG,SAAS,GAChC,QAAQ,CAKV"}
@@ -0,0 +1,32 @@
1
+ /** Milliseconds in a second, so the conversion is named rather than a literal. */
2
+ export const MS = 1000;
3
+ export function hostBar(bar) {
4
+ return {
5
+ open: bar.open,
6
+ high: bar.high,
7
+ low: bar.low,
8
+ close: bar.close,
9
+ time: Number.isFinite(bar.time) ? bar.time * MS : null,
10
+ ...(bar.volume === undefined ? {} : { volume: bar.volume }),
11
+ ...(bar.oi === undefined ? {} : { oi: bar.oi }),
12
+ };
13
+ }
14
+ /** A chart's wall clock reading, in the units the engine's `chart.now()` uses. */
15
+ export function hostNow(seconds) {
16
+ return seconds * MS;
17
+ }
18
+ /**
19
+ * What the host states about one execution.
20
+ *
21
+ * Only the newest bar can be unconfirmed or driven by a live feed: every bar
22
+ * before it is history, whatever the feed behind the chart is doing now. The
23
+ * chart's own calculation context says which of those two the newest bar is,
24
+ * and says nothing at all about the ones before it, which is the same split.
25
+ */
26
+ export function stateFor(index, bars, ctx) {
27
+ const last = index === bars.length - 1;
28
+ const isConfirmed = !last || ctx === undefined ? true : ctx.barState.isConfirmed;
29
+ const isRealtime = last && ctx !== undefined ? ctx.barState.isRealtime : false;
30
+ return { isConfirmed, isRealtime };
31
+ }
32
+ //# sourceMappingURL=bars.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bars.js","sourceRoot":"","sources":["../../../src/adapters/charts/bars.ts"],"names":[],"mappings":"AAyBA,kFAAkF;AAClF,MAAM,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC;AAEvB,MAAM,UAAU,OAAO,CAAC,GAAa;IACnC,OAAO;QACL,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,GAAG,EAAE,GAAG,CAAC,GAAG;QACZ,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI;QACtD,GAAG,CAAC,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC;QAC3D,GAAG,CAAC,GAAG,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC;KAChD,CAAC;AACJ,CAAC;AAED,kFAAkF;AAClF,MAAM,UAAU,OAAO,CAAC,OAAe;IACrC,OAAO,OAAO,GAAG,EAAE,CAAC;AACtB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,QAAQ,CACtB,KAAa,EACb,IAAyB,EACzB,GAAiC;IAEjC,MAAM,IAAI,GAAG,KAAK,KAAK,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;IACvC,MAAM,WAAW,GAAG,CAAC,IAAI,IAAI,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC;IACjF,MAAM,UAAU,GAAG,IAAI,IAAI,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC;IAC/E,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC;AACrC,CAAC"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * A candle plot: one declaration, four columns.
3
+ *
4
+ * `plotCandles` is one entry with one key and one legend row, and the four
5
+ * values it draws travel as four ordinary columns that the entry names. The
6
+ * chart's descriptor has exactly that shape, so the mapping is a rename.
7
+ *
8
+ * The colours are where the two contracts differ and the difference is worth
9
+ * stating. A candle's colour is declared four ways: one for a bar that closed at
10
+ * or above its open, one for a bar that closed below, and two overrides for the
11
+ * wick and the border alone. Where all four are constants they are the series'
12
+ * own style and cost nothing per bar. Where a script passed a series colour
13
+ * instead, the value arrives on a channel and the colour is decided per bar,
14
+ * which is the split callback the chart takes.
15
+ *
16
+ * **A null override means the wick or the border follows the body**, which is
17
+ * the opposite of a null colour on a line plot: the host may choose an
18
+ * undecorated line's colour because nothing depends on it, and a wick the host
19
+ * coloured independently of the body it grows out of would draw a different
20
+ * candle on every chart. So an override with neither a channel nor a declared
21
+ * value is answered with the body's own colour for that bar, and one with a
22
+ * declared value is left alone for the style to carry.
23
+ */
24
+ import type { CandleChannels } from '../../core/emit/index.js';
25
+ import type { ChartBarColor, ChartColorContext, ChartSeriesStyle } from './contract.js';
26
+ import type { ColumnSpec } from './columns.js';
27
+ import type { InputLookup } from './fields.js';
28
+ export interface CandleBuild {
29
+ readonly ohlc: {
30
+ readonly open: string;
31
+ readonly high: string;
32
+ readonly low: string;
33
+ readonly close: string;
34
+ };
35
+ readonly style: ChartSeriesStyle;
36
+ readonly columns: readonly ColumnSpec[];
37
+ readonly colorParts: ((ctx: ChartColorContext) => ChartBarColor | undefined) | undefined;
38
+ }
39
+ export declare function buildCandle(key: string, ohlc: CandleChannels, lookup: InputLookup): CandleBuild;
40
+ //# sourceMappingURL=candles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"candles.d.ts","sourceRoot":"","sources":["../../../src/adapters/charts/candles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAG/D,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAExF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE/C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,EAAE;QACb,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;KACxB,CAAC;IACF,QAAQ,CAAC,KAAK,EAAE,gBAAgB,CAAC;IACjC,QAAQ,CAAC,OAAO,EAAE,SAAS,UAAU,EAAE,CAAC;IACxC,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC,GAAG,EAAE,iBAAiB,KAAK,aAAa,GAAG,SAAS,CAAC,GAAG,SAAS,CAAC;CAC1F;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,WAAW,GAAG,WAAW,CAmE/F"}
@@ -0,0 +1,85 @@
1
+ import { cssColour } from './colours.js';
2
+ import { colourAt, colourColumns } from './columns.js';
3
+ import { colourField } from './fields.js';
4
+ export function buildCandle(key, ohlc, lookup) {
5
+ const keys = {
6
+ open: `${key}:open`,
7
+ high: `${key}:high`,
8
+ low: `${key}:low`,
9
+ close: `${key}:close`,
10
+ };
11
+ const up = colourField(ohlc.colorUp, lookup);
12
+ const down = colourField(ohlc.colorDown, lookup);
13
+ const wick = colourField(ohlc.wickColor, lookup);
14
+ const border = colourField(ohlc.borderColor, lookup);
15
+ const borderUp = border ?? up;
16
+ const borderDown = border ?? down;
17
+ const wickUp = wick ?? up;
18
+ const wickDown = wick ?? down;
19
+ const style = {
20
+ ...(up === undefined ? {} : { upColor: cssColour(up) }),
21
+ ...(down === undefined ? {} : { downColor: cssColour(down) }),
22
+ ...(borderUp === undefined ? {} : { borderUpColor: cssColour(borderUp) }),
23
+ ...(borderDown === undefined ? {} : { borderDownColor: cssColour(borderDown) }),
24
+ ...(wickUp === undefined ? {} : { wickUpColor: cssColour(wickUp) }),
25
+ ...(wickDown === undefined ? {} : { wickDownColor: cssColour(wickDown) }),
26
+ };
27
+ const columns = [
28
+ { key: keys.open, channel: ohlc.open, part: 'value' },
29
+ { key: keys.high, channel: ohlc.high, part: 'value' },
30
+ { key: keys.low, channel: ohlc.low, part: 'value' },
31
+ { key: keys.close, channel: ohlc.close, part: 'value' },
32
+ ];
33
+ const parts = [
34
+ { name: `${key}:up`, channel: ohlc.colorUpChannel },
35
+ { name: `${key}:down`, channel: ohlc.colorDownChannel },
36
+ { name: `${key}:wick`, channel: ohlc.wickColorChannel },
37
+ { name: `${key}:border`, channel: ohlc.borderColorChannel },
38
+ ];
39
+ for (const part of parts) {
40
+ if (part.channel !== null)
41
+ columns.push(...colourColumns(part.name, part.channel));
42
+ }
43
+ const perBar = parts.some((one) => one.channel !== null);
44
+ return {
45
+ ohlc: keys,
46
+ style,
47
+ columns,
48
+ colorParts: perBar
49
+ ? (ctx) => {
50
+ const rising = isRising(ctx, keys.open, keys.close);
51
+ const bodyChannel = rising ? ohlc.colorUpChannel : ohlc.colorDownChannel;
52
+ const body = bodyChannel === null
53
+ ? undefined
54
+ : colourAt(ctx.values, ctx.index, rising ? `${key}:up` : `${key}:down`);
55
+ const wickPart = override(ctx, `${key}:wick`, ohlc.wickColorChannel, wick, body);
56
+ const borderPart = override(ctx, `${key}:border`, ohlc.borderColorChannel, border, body);
57
+ return {
58
+ ...(body === undefined ? {} : { body }),
59
+ ...(wickPart === undefined ? {} : { wick: wickPart }),
60
+ ...(borderPart === undefined ? {} : { border: borderPart }),
61
+ };
62
+ }
63
+ : undefined,
64
+ };
65
+ }
66
+ /** Whether this bar closed at or above its own open, by the candle's columns. */
67
+ function isRising(ctx, openKey, closeKey) {
68
+ const open = ctx.values[openKey]?.[ctx.index];
69
+ const close = ctx.values[closeKey]?.[ctx.index];
70
+ if (typeof open !== 'number' || typeof close !== 'number')
71
+ return true;
72
+ return close >= open;
73
+ }
74
+ /**
75
+ * The wick or the border for one bar.
76
+ *
77
+ * Its own channel wins, then a declared constant, which the series style already
78
+ * carries and this leaves alone, and otherwise the part follows the body.
79
+ */
80
+ function override(ctx, name, channel, declared, body) {
81
+ if (channel !== null)
82
+ return colourAt(ctx.values, ctx.index, name);
83
+ return declared === undefined ? body : undefined;
84
+ }
85
+ //# sourceMappingURL=candles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"candles.js","sourceRoot":"","sources":["../../../src/adapters/charts/candles.ts"],"names":[],"mappings":"AAyBA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAEvD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAe1C,MAAM,UAAU,WAAW,CAAC,GAAW,EAAE,IAAoB,EAAE,MAAmB;IAChF,MAAM,IAAI,GAAG;QACX,IAAI,EAAE,GAAG,GAAG,OAAO;QACnB,IAAI,EAAE,GAAG,GAAG,OAAO;QACnB,GAAG,EAAE,GAAG,GAAG,MAAM;QACjB,KAAK,EAAE,GAAG,GAAG,QAAQ;KACtB,CAAC;IAEF,MAAM,EAAE,GAAG,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC7C,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IACjD,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IACjD,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IAErD,MAAM,QAAQ,GAAG,MAAM,IAAI,EAAE,CAAC;IAC9B,MAAM,UAAU,GAAG,MAAM,IAAI,IAAI,CAAC;IAClC,MAAM,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;IAC1B,MAAM,QAAQ,GAAG,IAAI,IAAI,IAAI,CAAC;IAE9B,MAAM,KAAK,GAAqB;QAC9B,GAAG,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC;QACvD,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7D,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzE,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/E,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;QACnE,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;KAC1E,CAAC;IAEF,MAAM,OAAO,GAAiB;QAC5B,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE;QACrD,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE;QACrD,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE;QACnD,EAAE,GAAG,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE;KACxD,CAAC;IAEF,MAAM,KAAK,GAAiE;QAC1E,EAAE,IAAI,EAAE,GAAG,GAAG,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,cAAc,EAAE;QACnD,EAAE,IAAI,EAAE,GAAG,GAAG,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,gBAAgB,EAAE;QACvD,EAAE,IAAI,EAAE,GAAG,GAAG,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,gBAAgB,EAAE;QACvD,EAAE,IAAI,EAAE,GAAG,GAAG,SAAS,EAAE,OAAO,EAAE,IAAI,CAAC,kBAAkB,EAAE;KAC5D,CAAC;IACF,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI;YAAE,OAAO,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IACrF,CAAC;IAED,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC;IACzD,OAAO;QACL,IAAI,EAAE,IAAI;QACV,KAAK;QACL,OAAO;QACP,UAAU,EAAE,MAAM;YAChB,CAAC,CAAC,CAAC,GAAsB,EAA6B,EAAE;gBACpD,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;gBACpD,MAAM,WAAW,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC;gBACzE,MAAM,IAAI,GACR,WAAW,KAAK,IAAI;oBAClB,CAAC,CAAC,SAAS;oBACX,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,OAAO,CAAC,CAAC;gBAC5E,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,EAAE,IAAI,CAAC,gBAAgB,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;gBACjF,MAAM,UAAU,GAAG,QAAQ,CAAC,GAAG,EAAE,GAAG,GAAG,SAAS,EAAE,IAAI,CAAC,kBAAkB,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;gBACzF,OAAO;oBACL,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;oBACvC,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;oBACrD,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;iBAC5D,CAAC;YACJ,CAAC;YACH,CAAC,CAAC,SAAS;KACd,CAAC;AACJ,CAAC;AAED,iFAAiF;AACjF,SAAS,QAAQ,CAAC,GAAsB,EAAE,OAAe,EAAE,QAAgB;IACzE,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC9C,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAChD,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IACvE,OAAO,KAAK,IAAI,IAAI,CAAC;AACvB,CAAC;AAED;;;;;GAKG;AACH,SAAS,QAAQ,CACf,GAAsB,EACtB,IAAY,EACZ,OAAsB,EACtB,QAAiC,EACjC,IAAwB;IAExB,IAAI,OAAO,KAAK,IAAI;QAAE,OAAO,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACnE,OAAO,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;AACnD,CAAC"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * A colour on either side of the boundary.
3
+ *
4
+ * The language carries a colour as four numbers, three whole channels and an
5
+ * alpha that is an ordinary number from 0 to 1. A chart carries one as a CSS
6
+ * string. The two directions are not symmetric and it is worth saying why.
7
+ *
8
+ * **Out of the language, nothing is lost.** The functional form is written
9
+ * rather than eight hexadecimal digits, because a hexadecimal alpha is a byte
10
+ * and the language's is not: `fade(x, 93)` is an alpha of 0.07, which no pair of
11
+ * hexadecimal digits holds exactly, and a study whose band came back a shade off
12
+ * would be a difference nobody could account for.
13
+ *
14
+ * **Into the language, alpha is the part that goes missing.** A chart's colour
15
+ * control is a swatch with no alpha channel, so the value it stores back is six
16
+ * digits and the transparency the script asked for is gone. Rather than turn
17
+ * every translucent input opaque the first time somebody opens the dialog, a
18
+ * value with no alpha of its own keeps the alpha the script declared, and only
19
+ * a value that states one replaces it.
20
+ *
21
+ * A per-bar colour reaches a chart through the values table, which holds columns
22
+ * of numbers, so it travels as two columns: the three channels packed into one
23
+ * whole number, and the alpha beside them as itself. One column would have to
24
+ * put the alpha in a byte and lose exactly what the functional form is here to
25
+ * keep.
26
+ */
27
+ import type { ColourValue, Value } from '../../core/engine/index.js';
28
+ /** The CSS spelling of a colour. */
29
+ export declare function cssColour(colour: ColourValue): string;
30
+ /** The CSS spelling of a value that may not be a colour at all. */
31
+ export declare function cssOf(value: Value): string | undefined;
32
+ export declare function isColourValue(value: Value): value is ColourValue;
33
+ export declare function colourOf(r: number, g: number, b: number, a: number): ColourValue;
34
+ /**
35
+ * A CSS colour back into the language's four numbers.
36
+ *
37
+ * `alpha` is what a value with no alpha of its own is given: the alpha the
38
+ * script declared for that input, so a swatch that cannot express transparency
39
+ * does not remove it. Anything unparseable is nothing, which the caller turns
40
+ * into the refusal the input's own validation would have produced.
41
+ */
42
+ export declare function parseColour(text: string, alpha: number): ColourValue | undefined;
43
+ /** The three channels as one whole number, for a column of per-bar colours. */
44
+ export declare function packChannels(colour: ColourValue): number;
45
+ /** The CSS spelling of a packed triple and the alpha that travelled beside it. */
46
+ export declare function unpackColour(packed: number, alpha: number): string;
47
+ //# sourceMappingURL=colours.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"colours.d.ts","sourceRoot":"","sources":["../../../src/adapters/charts/colours.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAC;AAMrE,oCAAoC;AACpC,wBAAgB,SAAS,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAErD;AAED,mEAAmE;AACnE,wBAAgB,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,GAAG,SAAS,CAEtD;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK,IAAI,WAAW,CAEhE;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,WAAW,CAEhF;AAED;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CA2BhF;AAED,+EAA+E;AAC/E,wBAAgB,YAAY,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAExD;AAED,kFAAkF;AAClF,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAKlE"}