openalgo-script 0.1.0-alpha.1 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (990) hide show
  1. package/CHANGELOG.md +1200 -0
  2. package/README.md +49 -28
  3. package/dist/adapters/charts/alerts.d.ts +70 -0
  4. package/dist/adapters/charts/alerts.d.ts.map +1 -0
  5. package/dist/adapters/charts/alerts.js +52 -0
  6. package/dist/adapters/charts/alerts.js.map +1 -0
  7. package/dist/adapters/charts/bars.d.ts +39 -0
  8. package/dist/adapters/charts/bars.d.ts.map +1 -0
  9. package/dist/adapters/charts/bars.js +32 -0
  10. package/dist/adapters/charts/bars.js.map +1 -0
  11. package/dist/adapters/charts/candles.d.ts +40 -0
  12. package/dist/adapters/charts/candles.d.ts.map +1 -0
  13. package/dist/adapters/charts/candles.js +85 -0
  14. package/dist/adapters/charts/candles.js.map +1 -0
  15. package/dist/adapters/charts/colours.d.ts +47 -0
  16. package/dist/adapters/charts/colours.d.ts.map +1 -0
  17. package/dist/adapters/charts/colours.js +80 -0
  18. package/dist/adapters/charts/colours.js.map +1 -0
  19. package/dist/adapters/charts/columns.d.ts +37 -0
  20. package/dist/adapters/charts/columns.d.ts.map +1 -0
  21. package/dist/adapters/charts/columns.js +56 -0
  22. package/dist/adapters/charts/columns.js.map +1 -0
  23. package/dist/adapters/charts/contract.d.ts +278 -0
  24. package/dist/adapters/charts/contract.d.ts.map +1 -0
  25. package/dist/adapters/charts/contract.js +2 -0
  26. package/dist/adapters/charts/contract.js.map +1 -0
  27. package/dist/adapters/charts/descriptor.d.ts +48 -0
  28. package/dist/adapters/charts/descriptor.d.ts.map +1 -0
  29. package/dist/adapters/charts/descriptor.js +111 -0
  30. package/dist/adapters/charts/descriptor.js.map +1 -0
  31. package/dist/adapters/charts/drawings.d.ts +43 -0
  32. package/dist/adapters/charts/drawings.d.ts.map +1 -0
  33. package/dist/adapters/charts/drawings.js +172 -0
  34. package/dist/adapters/charts/drawings.js.map +1 -0
  35. package/dist/adapters/charts/errors.d.ts +28 -0
  36. package/dist/adapters/charts/errors.d.ts.map +1 -0
  37. package/dist/adapters/charts/errors.js +21 -0
  38. package/dist/adapters/charts/errors.js.map +1 -0
  39. package/dist/adapters/charts/fields.d.ts +33 -0
  40. package/dist/adapters/charts/fields.d.ts.map +1 -0
  41. package/dist/adapters/charts/fields.js +51 -0
  42. package/dist/adapters/charts/fields.js.map +1 -0
  43. package/dist/adapters/charts/fills.d.ts +23 -0
  44. package/dist/adapters/charts/fills.d.ts.map +1 -0
  45. package/dist/adapters/charts/fills.js +48 -0
  46. package/dist/adapters/charts/fills.js.map +1 -0
  47. package/dist/adapters/charts/index.d.ts +37 -0
  48. package/dist/adapters/charts/index.d.ts.map +1 -0
  49. package/dist/adapters/charts/index.js +33 -0
  50. package/dist/adapters/charts/index.js.map +1 -0
  51. package/dist/adapters/charts/levels.d.ts +39 -0
  52. package/dist/adapters/charts/levels.d.ts.map +1 -0
  53. package/dist/adapters/charts/levels.js +61 -0
  54. package/dist/adapters/charts/levels.js.map +1 -0
  55. package/dist/adapters/charts/markers.d.ts +41 -0
  56. package/dist/adapters/charts/markers.d.ts.map +1 -0
  57. package/dist/adapters/charts/markers.js +75 -0
  58. package/dist/adapters/charts/markers.js.map +1 -0
  59. package/dist/adapters/charts/paint.d.ts +61 -0
  60. package/dist/adapters/charts/paint.d.ts.map +1 -0
  61. package/dist/adapters/charts/paint.js +47 -0
  62. package/dist/adapters/charts/paint.js.map +1 -0
  63. package/dist/adapters/charts/plots.d.ts +39 -0
  64. package/dist/adapters/charts/plots.d.ts.map +1 -0
  65. package/dist/adapters/charts/plots.js +117 -0
  66. package/dist/adapters/charts/plots.js.map +1 -0
  67. package/dist/adapters/charts/produced.d.ts +57 -0
  68. package/dist/adapters/charts/produced.d.ts.map +1 -0
  69. package/dist/adapters/charts/produced.js +11 -0
  70. package/dist/adapters/charts/produced.js.map +1 -0
  71. package/dist/adapters/charts/requests.d.ts +114 -0
  72. package/dist/adapters/charts/requests.d.ts.map +1 -0
  73. package/dist/adapters/charts/requests.js +277 -0
  74. package/dist/adapters/charts/requests.js.map +1 -0
  75. package/dist/adapters/charts/run.d.ts +147 -0
  76. package/dist/adapters/charts/run.d.ts.map +1 -0
  77. package/dist/adapters/charts/run.js +148 -0
  78. package/dist/adapters/charts/run.js.map +1 -0
  79. package/dist/adapters/charts/settings.d.ts +78 -0
  80. package/dist/adapters/charts/settings.d.ts.map +1 -0
  81. package/dist/adapters/charts/settings.js +225 -0
  82. package/dist/adapters/charts/settings.js.map +1 -0
  83. package/dist/adapters/charts/surfaces.d.ts +204 -0
  84. package/dist/adapters/charts/surfaces.d.ts.map +1 -0
  85. package/dist/adapters/charts/surfaces.js +2 -0
  86. package/dist/adapters/charts/surfaces.js.map +1 -0
  87. package/dist/adapters/charts/tables.d.ts +65 -0
  88. package/dist/adapters/charts/tables.d.ts.map +1 -0
  89. package/dist/adapters/charts/tables.js +84 -0
  90. package/dist/adapters/charts/tables.js.map +1 -0
  91. package/dist/core/catalogue/catalogue.generated.d.ts +98 -10
  92. package/dist/core/catalogue/catalogue.generated.d.ts.map +1 -1
  93. package/dist/core/catalogue/catalogue.generated.js +17 -9
  94. package/dist/core/catalogue/catalogue.generated.js.map +1 -1
  95. package/dist/core/catalogue/values.generated.d.ts +25 -0
  96. package/dist/core/catalogue/values.generated.d.ts.map +1 -1
  97. package/dist/core/check/arguments.d.ts +41 -0
  98. package/dist/core/check/arguments.d.ts.map +1 -0
  99. package/dist/core/check/arguments.js +84 -0
  100. package/dist/core/check/arguments.js.map +1 -0
  101. package/dist/core/check/call-sites.d.ts +22 -0
  102. package/dist/core/check/call-sites.d.ts.map +1 -0
  103. package/dist/core/check/call-sites.js +329 -0
  104. package/dist/core/check/call-sites.js.map +1 -0
  105. package/dist/core/check/call-warmup.d.ts +37 -0
  106. package/dist/core/check/call-warmup.d.ts.map +1 -0
  107. package/dist/core/check/call-warmup.js +97 -0
  108. package/dist/core/check/call-warmup.js.map +1 -0
  109. package/dist/core/check/calls.d.ts +33 -0
  110. package/dist/core/check/calls.d.ts.map +1 -0
  111. package/dist/core/check/calls.js +348 -0
  112. package/dist/core/check/calls.js.map +1 -0
  113. package/dist/core/check/check.d.ts +23 -0
  114. package/dist/core/check/check.d.ts.map +1 -0
  115. package/dist/core/check/check.js +163 -0
  116. package/dist/core/check/check.js.map +1 -0
  117. package/dist/core/check/checked.d.ts +198 -0
  118. package/dist/core/check/checked.d.ts.map +1 -0
  119. package/dist/core/check/checked.js +19 -0
  120. package/dist/core/check/checked.js.map +1 -0
  121. package/dist/core/check/checker.d.ts +182 -0
  122. package/dist/core/check/checker.d.ts.map +1 -0
  123. package/dist/core/check/checker.js +280 -0
  124. package/dist/core/check/checker.js.map +1 -0
  125. package/dist/core/check/conditional.d.ts +35 -0
  126. package/dist/core/check/conditional.d.ts.map +1 -0
  127. package/dist/core/check/conditional.js +100 -0
  128. package/dist/core/check/conditional.js.map +1 -0
  129. package/dist/core/check/constant.d.ts +47 -0
  130. package/dist/core/check/constant.d.ts.map +1 -0
  131. package/dist/core/check/constant.js +101 -0
  132. package/dist/core/check/constant.js.map +1 -0
  133. package/dist/core/check/declaration.d.ts +33 -0
  134. package/dist/core/check/declaration.d.ts.map +1 -0
  135. package/dist/core/check/declaration.js +181 -0
  136. package/dist/core/check/declaration.js.map +1 -0
  137. package/dist/core/check/expressions.d.ts +36 -0
  138. package/dist/core/check/expressions.d.ts.map +1 -0
  139. package/dist/core/check/expressions.js +398 -0
  140. package/dist/core/check/expressions.js.map +1 -0
  141. package/dist/core/check/functions.d.ts +31 -0
  142. package/dist/core/check/functions.d.ts.map +1 -0
  143. package/dist/core/check/functions.js +238 -0
  144. package/dist/core/check/functions.js.map +1 -0
  145. package/dist/core/check/handles.d.ts +48 -0
  146. package/dist/core/check/handles.d.ts.map +1 -0
  147. package/dist/core/check/handles.js +43 -0
  148. package/dist/core/check/handles.js.map +1 -0
  149. package/dist/core/check/index.d.ts +30 -0
  150. package/dist/core/check/index.d.ts.map +1 -0
  151. package/dist/core/check/index.js +26 -0
  152. package/dist/core/check/index.js.map +1 -0
  153. package/dist/core/check/library-bars.d.ts +7 -0
  154. package/dist/core/check/library-bars.d.ts.map +1 -0
  155. package/dist/core/check/library-bars.js +181 -0
  156. package/dist/core/check/library-bars.js.map +1 -0
  157. package/dist/core/check/library-orders.d.ts +5 -0
  158. package/dist/core/check/library-orders.d.ts.map +1 -0
  159. package/dist/core/check/library-orders.js +250 -0
  160. package/dist/core/check/library-orders.js.map +1 -0
  161. package/dist/core/check/library-output.d.ts +7 -0
  162. package/dist/core/check/library-output.d.ts.map +1 -0
  163. package/dist/core/check/library-output.js +195 -0
  164. package/dist/core/check/library-output.js.map +1 -0
  165. package/dist/core/check/library-series.d.ts +3 -0
  166. package/dist/core/check/library-series.d.ts.map +1 -0
  167. package/dist/core/check/library-series.js +415 -0
  168. package/dist/core/check/library-series.js.map +1 -0
  169. package/dist/core/check/library.d.ts +204 -0
  170. package/dist/core/check/library.d.ts.map +1 -0
  171. package/dist/core/check/library.js +198 -0
  172. package/dist/core/check/library.js.map +1 -0
  173. package/dist/core/check/literals.d.ts +19 -0
  174. package/dist/core/check/literals.d.ts.map +1 -0
  175. package/dist/core/check/literals.js +22 -0
  176. package/dist/core/check/literals.js.map +1 -0
  177. package/dist/core/check/outputs.d.ts +31 -0
  178. package/dist/core/check/outputs.d.ts.map +1 -0
  179. package/dist/core/check/outputs.js +113 -0
  180. package/dist/core/check/outputs.js.map +1 -0
  181. package/dist/core/check/statements.d.ts +25 -0
  182. package/dist/core/check/statements.d.ts.map +1 -0
  183. package/dist/core/check/statements.js +377 -0
  184. package/dist/core/check/statements.js.map +1 -0
  185. package/dist/core/check/suggest.d.ts +25 -0
  186. package/dist/core/check/suggest.d.ts.map +1 -0
  187. package/dist/core/check/suggest.js +61 -0
  188. package/dist/core/check/suggest.js.map +1 -0
  189. package/dist/core/check/surface.d.ts +38 -0
  190. package/dist/core/check/surface.d.ts.map +1 -0
  191. package/dist/core/check/surface.js +100 -0
  192. package/dist/core/check/surface.js.map +1 -0
  193. package/dist/core/check/tags.d.ts +4 -0
  194. package/dist/core/check/tags.d.ts.map +1 -0
  195. package/dist/core/check/tags.js +54 -0
  196. package/dist/core/check/tags.js.map +1 -0
  197. package/dist/core/check/types.d.ts +153 -0
  198. package/dist/core/check/types.d.ts.map +1 -0
  199. package/dist/core/check/types.js +221 -0
  200. package/dist/core/check/types.js.map +1 -0
  201. package/dist/core/check/warmup.d.ts +73 -0
  202. package/dist/core/check/warmup.d.ts.map +1 -0
  203. package/dist/core/check/warmup.js +62 -0
  204. package/dist/core/check/warmup.js.map +1 -0
  205. package/dist/core/diagnostics/collector.d.ts +12 -0
  206. package/dist/core/diagnostics/collector.d.ts.map +1 -1
  207. package/dist/core/diagnostics/collector.js +27 -1
  208. package/dist/core/diagnostics/collector.js.map +1 -1
  209. package/dist/core/emit/calls.d.ts +38 -0
  210. package/dist/core/emit/calls.d.ts.map +1 -0
  211. package/dist/core/emit/calls.js +347 -0
  212. package/dist/core/emit/calls.js.map +1 -0
  213. package/dist/core/emit/canonical.d.ts +39 -0
  214. package/dist/core/emit/canonical.d.ts.map +1 -0
  215. package/dist/core/emit/canonical.js +71 -0
  216. package/dist/core/emit/canonical.js.map +1 -0
  217. package/dist/core/emit/channels.d.ts +28 -0
  218. package/dist/core/emit/channels.d.ts.map +1 -0
  219. package/dist/core/emit/channels.js +110 -0
  220. package/dist/core/emit/channels.js.map +1 -0
  221. package/dist/core/emit/code.d.ts +75 -0
  222. package/dist/core/emit/code.d.ts.map +1 -0
  223. package/dist/core/emit/code.js +104 -0
  224. package/dist/core/emit/code.js.map +1 -0
  225. package/dist/core/emit/colours.d.ts +35 -0
  226. package/dist/core/emit/colours.d.ts.map +1 -0
  227. package/dist/core/emit/colours.js +50 -0
  228. package/dist/core/emit/colours.js.map +1 -0
  229. package/dist/core/emit/context.d.ts +271 -0
  230. package/dist/core/emit/context.d.ts.map +1 -0
  231. package/dist/core/emit/context.js +358 -0
  232. package/dist/core/emit/context.js.map +1 -0
  233. package/dist/core/emit/defaults.d.ts +45 -0
  234. package/dist/core/emit/defaults.d.ts.map +1 -0
  235. package/dist/core/emit/defaults.js +116 -0
  236. package/dist/core/emit/defaults.js.map +1 -0
  237. package/dist/core/emit/emit.d.ts +13 -0
  238. package/dist/core/emit/emit.d.ts.map +1 -0
  239. package/dist/core/emit/emit.js +281 -0
  240. package/dist/core/emit/emit.js.map +1 -0
  241. package/dist/core/emit/events.d.ts +21 -0
  242. package/dist/core/emit/events.d.ts.map +1 -0
  243. package/dist/core/emit/events.js +112 -0
  244. package/dist/core/emit/events.js.map +1 -0
  245. package/dist/core/emit/expressions.d.ts +23 -0
  246. package/dist/core/emit/expressions.d.ts.map +1 -0
  247. package/dist/core/emit/expressions.js +253 -0
  248. package/dist/core/emit/expressions.js.map +1 -0
  249. package/dist/core/emit/functions.d.ts +30 -0
  250. package/dist/core/emit/functions.d.ts.map +1 -0
  251. package/dist/core/emit/functions.js +171 -0
  252. package/dist/core/emit/functions.js.map +1 -0
  253. package/dist/core/emit/gaps.d.ts +34 -0
  254. package/dist/core/emit/gaps.d.ts.map +1 -0
  255. package/dist/core/emit/gaps.js +16 -0
  256. package/dist/core/emit/gaps.js.map +1 -0
  257. package/dist/core/emit/index.d.ts +29 -0
  258. package/dist/core/emit/index.d.ts.map +1 -0
  259. package/dist/core/emit/index.js +23 -0
  260. package/dist/core/emit/index.js.map +1 -0
  261. package/dist/core/emit/inputs.d.ts +47 -0
  262. package/dist/core/emit/inputs.d.ts.map +1 -0
  263. package/dist/core/emit/inputs.js +150 -0
  264. package/dist/core/emit/inputs.js.map +1 -0
  265. package/dist/core/emit/layout.d.ts +73 -0
  266. package/dist/core/emit/layout.d.ts.map +1 -0
  267. package/dist/core/emit/layout.js +126 -0
  268. package/dist/core/emit/layout.js.map +1 -0
  269. package/dist/core/emit/meta.d.ts +14 -0
  270. package/dist/core/emit/meta.d.ts.map +1 -0
  271. package/dist/core/emit/meta.js +68 -0
  272. package/dist/core/emit/meta.js.map +1 -0
  273. package/dist/core/emit/opcodes.d.ts +28 -0
  274. package/dist/core/emit/opcodes.d.ts.map +1 -0
  275. package/dist/core/emit/opcodes.js +137 -0
  276. package/dist/core/emit/opcodes.js.map +1 -0
  277. package/dist/core/emit/outputs.d.ts +67 -0
  278. package/dist/core/emit/outputs.d.ts.map +1 -0
  279. package/dist/core/emit/outputs.js +293 -0
  280. package/dist/core/emit/outputs.js.map +1 -0
  281. package/dist/core/emit/pool.d.ts +33 -0
  282. package/dist/core/emit/pool.d.ts.map +1 -0
  283. package/dist/core/emit/pool.js +79 -0
  284. package/dist/core/emit/pool.js.map +1 -0
  285. package/dist/core/emit/program.d.ts +333 -0
  286. package/dist/core/emit/program.d.ts.map +1 -0
  287. package/dist/core/emit/program.js +15 -0
  288. package/dist/core/emit/program.js.map +1 -0
  289. package/dist/core/emit/registers.d.ts +35 -0
  290. package/dist/core/emit/registers.d.ts.map +1 -0
  291. package/dist/core/emit/registers.js +170 -0
  292. package/dist/core/emit/registers.js.map +1 -0
  293. package/dist/core/emit/request-scope.d.ts +36 -0
  294. package/dist/core/emit/request-scope.d.ts.map +1 -0
  295. package/dist/core/emit/request-scope.js +41 -0
  296. package/dist/core/emit/request-scope.js.map +1 -0
  297. package/dist/core/emit/requests.d.ts +69 -0
  298. package/dist/core/emit/requests.d.ts.map +1 -0
  299. package/dist/core/emit/requests.js +230 -0
  300. package/dist/core/emit/requests.js.map +1 -0
  301. package/dist/core/emit/requires.d.ts +4 -0
  302. package/dist/core/emit/requires.d.ts.map +1 -0
  303. package/dist/core/emit/requires.js +71 -0
  304. package/dist/core/emit/requires.js.map +1 -0
  305. package/dist/core/emit/sha256.d.ts +24 -0
  306. package/dist/core/emit/sha256.d.ts.map +1 -0
  307. package/dist/core/emit/sha256.js +109 -0
  308. package/dist/core/emit/sha256.js.map +1 -0
  309. package/dist/core/emit/statements.d.ts +20 -0
  310. package/dist/core/emit/statements.d.ts.map +1 -0
  311. package/dist/core/emit/statements.js +393 -0
  312. package/dist/core/emit/statements.js.map +1 -0
  313. package/dist/core/emit/values.d.ts +80 -0
  314. package/dist/core/emit/values.d.ts.map +1 -0
  315. package/dist/core/emit/values.js +242 -0
  316. package/dist/core/emit/values.js.map +1 -0
  317. package/dist/core/engine/alerts.d.ts +66 -0
  318. package/dist/core/engine/alerts.d.ts.map +1 -0
  319. package/dist/core/engine/alerts.js +119 -0
  320. package/dist/core/engine/alerts.js.map +1 -0
  321. package/dist/core/engine/arithmetic.d.ts +82 -0
  322. package/dist/core/engine/arithmetic.d.ts.map +1 -0
  323. package/dist/core/engine/arithmetic.js +141 -0
  324. package/dist/core/engine/arithmetic.js.map +1 -0
  325. package/dist/core/engine/bars.d.ts +95 -0
  326. package/dist/core/engine/bars.d.ts.map +1 -0
  327. package/dist/core/engine/bars.js +133 -0
  328. package/dist/core/engine/bars.js.map +1 -0
  329. package/dist/core/engine/budget.d.ts +162 -0
  330. package/dist/core/engine/budget.d.ts.map +1 -0
  331. package/dist/core/engine/budget.js +188 -0
  332. package/dist/core/engine/budget.js.map +1 -0
  333. package/dist/core/engine/channels.d.ts +106 -0
  334. package/dist/core/engine/channels.d.ts.map +1 -0
  335. package/dist/core/engine/channels.js +99 -0
  336. package/dist/core/engine/channels.js.map +1 -0
  337. package/dist/core/engine/drawings.d.ts +64 -0
  338. package/dist/core/engine/drawings.d.ts.map +1 -0
  339. package/dist/core/engine/drawings.js +67 -0
  340. package/dist/core/engine/drawings.js.map +1 -0
  341. package/dist/core/engine/engine.d.ts +140 -0
  342. package/dist/core/engine/engine.d.ts.map +1 -0
  343. package/dist/core/engine/engine.js +405 -0
  344. package/dist/core/engine/engine.js.map +1 -0
  345. package/dist/core/engine/errors.d.ts +64 -0
  346. package/dist/core/engine/errors.d.ts.map +1 -0
  347. package/dist/core/engine/errors.js +63 -0
  348. package/dist/core/engine/errors.js.map +1 -0
  349. package/dist/core/engine/frames.d.ts +48 -0
  350. package/dist/core/engine/frames.d.ts.map +1 -0
  351. package/dist/core/engine/frames.js +41 -0
  352. package/dist/core/engine/frames.js.map +1 -0
  353. package/dist/core/engine/grids.d.ts +25 -0
  354. package/dist/core/engine/grids.d.ts.map +1 -0
  355. package/dist/core/engine/grids.js +77 -0
  356. package/dist/core/engine/grids.js.map +1 -0
  357. package/dist/core/engine/guard.d.ts +4 -0
  358. package/dist/core/engine/guard.d.ts.map +1 -0
  359. package/dist/core/engine/guard.js +46 -0
  360. package/dist/core/engine/guard.js.map +1 -0
  361. package/dist/core/engine/host.d.ts +219 -0
  362. package/dist/core/engine/host.d.ts.map +1 -0
  363. package/dist/core/engine/host.js +38 -0
  364. package/dist/core/engine/host.js.map +1 -0
  365. package/dist/core/engine/index.d.ts +49 -0
  366. package/dist/core/engine/index.d.ts.map +1 -0
  367. package/dist/core/engine/index.js +33 -0
  368. package/dist/core/engine/index.js.map +1 -0
  369. package/dist/core/engine/inputs.d.ts +77 -0
  370. package/dist/core/engine/inputs.d.ts.map +1 -0
  371. package/dist/core/engine/inputs.js +205 -0
  372. package/dist/core/engine/inputs.js.map +1 -0
  373. package/dist/core/engine/ledger/call.d.ts +63 -0
  374. package/dist/core/engine/ledger/call.d.ts.map +1 -0
  375. package/dist/core/engine/ledger/call.js +136 -0
  376. package/dist/core/engine/ledger/call.js.map +1 -0
  377. package/dist/core/engine/ledger/closable.d.ts +155 -0
  378. package/dist/core/engine/ledger/closable.d.ts.map +1 -0
  379. package/dist/core/engine/ledger/closable.js +173 -0
  380. package/dist/core/engine/ledger/closable.js.map +1 -0
  381. package/dist/core/engine/ledger/holdings.d.ts +194 -0
  382. package/dist/core/engine/ledger/holdings.d.ts.map +1 -0
  383. package/dist/core/engine/ledger/holdings.js +237 -0
  384. package/dist/core/engine/ledger/holdings.js.map +1 -0
  385. package/dist/core/engine/ledger/index.d.ts +19 -0
  386. package/dist/core/engine/ledger/index.d.ts.map +1 -0
  387. package/dist/core/engine/ledger/index.js +2 -0
  388. package/dist/core/engine/ledger/index.js.map +1 -0
  389. package/dist/core/engine/ledger/intent.d.ts +106 -0
  390. package/dist/core/engine/ledger/intent.d.ts.map +1 -0
  391. package/dist/core/engine/ledger/intent.js +21 -0
  392. package/dist/core/engine/ledger/intent.js.map +1 -0
  393. package/dist/core/engine/ledger/ledger.d.ts +143 -0
  394. package/dist/core/engine/ledger/ledger.d.ts.map +1 -0
  395. package/dist/core/engine/ledger/ledger.js +237 -0
  396. package/dist/core/engine/ledger/ledger.js.map +1 -0
  397. package/dist/core/engine/ledger/place.d.ts +75 -0
  398. package/dist/core/engine/ledger/place.d.ts.map +1 -0
  399. package/dist/core/engine/ledger/place.js +174 -0
  400. package/dist/core/engine/ledger/place.js.map +1 -0
  401. package/dist/core/engine/ledger/positions.d.ts +68 -0
  402. package/dist/core/engine/ledger/positions.d.ts.map +1 -0
  403. package/dist/core/engine/ledger/positions.js +114 -0
  404. package/dist/core/engine/ledger/positions.js.map +1 -0
  405. package/dist/core/engine/ledger/refuse.d.ts +43 -0
  406. package/dist/core/engine/ledger/refuse.d.ts.map +1 -0
  407. package/dist/core/engine/ledger/refuse.js +329 -0
  408. package/dist/core/engine/ledger/refuse.js.map +1 -0
  409. package/dist/core/engine/ledger/row.d.ts +176 -0
  410. package/dist/core/engine/ledger/row.d.ts.map +1 -0
  411. package/dist/core/engine/ledger/row.js +169 -0
  412. package/dist/core/engine/ledger/row.js.map +1 -0
  413. package/dist/core/engine/ledger/sizing.d.ts +142 -0
  414. package/dist/core/engine/ledger/sizing.d.ts.map +1 -0
  415. package/dist/core/engine/ledger/sizing.js +223 -0
  416. package/dist/core/engine/ledger/sizing.js.map +1 -0
  417. package/dist/core/engine/library/arrays.d.ts +14 -0
  418. package/dist/core/engine/library/arrays.d.ts.map +1 -0
  419. package/dist/core/engine/library/arrays.js +285 -0
  420. package/dist/core/engine/library/arrays.js.map +1 -0
  421. package/dist/core/engine/library/averages.d.ts +9 -0
  422. package/dist/core/engine/library/averages.d.ts.map +1 -0
  423. package/dist/core/engine/library/averages.js +41 -0
  424. package/dist/core/engine/library/averages.js.map +1 -0
  425. package/dist/core/engine/library/binding.d.ts +230 -0
  426. package/dist/core/engine/library/binding.d.ts.map +1 -0
  427. package/dist/core/engine/library/binding.js +109 -0
  428. package/dist/core/engine/library/binding.js.map +1 -0
  429. package/dist/core/engine/library/chart.d.ts +3 -0
  430. package/dist/core/engine/library/chart.d.ts.map +1 -0
  431. package/dist/core/engine/library/chart.js +83 -0
  432. package/dist/core/engine/library/chart.js.map +1 -0
  433. package/dist/core/engine/library/colours.d.ts +26 -0
  434. package/dist/core/engine/library/colours.d.ts.map +1 -0
  435. package/dist/core/engine/library/colours.js +81 -0
  436. package/dist/core/engine/library/colours.js.map +1 -0
  437. package/dist/core/engine/library/dates.d.ts +3 -0
  438. package/dist/core/engine/library/dates.d.ts.map +1 -0
  439. package/dist/core/engine/library/dates.js +75 -0
  440. package/dist/core/engine/library/dates.js.map +1 -0
  441. package/dist/core/engine/library/index.d.ts +13 -0
  442. package/dist/core/engine/library/index.d.ts.map +1 -0
  443. package/dist/core/engine/library/index.js +86 -0
  444. package/dist/core/engine/library/index.js.map +1 -0
  445. package/dist/core/engine/library/maths.d.ts +3 -0
  446. package/dist/core/engine/library/maths.d.ts.map +1 -0
  447. package/dist/core/engine/library/maths.js +89 -0
  448. package/dist/core/engine/library/maths.js.map +1 -0
  449. package/dist/core/engine/library/objects.d.ts +3 -0
  450. package/dist/core/engine/library/objects.d.ts.map +1 -0
  451. package/dist/core/engine/library/objects.js +199 -0
  452. package/dist/core/engine/library/objects.js.map +1 -0
  453. package/dist/core/engine/library/oscillators.d.ts +3 -0
  454. package/dist/core/engine/library/oscillators.d.ts.map +1 -0
  455. package/dist/core/engine/library/oscillators.js +29 -0
  456. package/dist/core/engine/library/oscillators.js.map +1 -0
  457. package/dist/core/engine/library/ranges.d.ts +3 -0
  458. package/dist/core/engine/library/ranges.d.ts.map +1 -0
  459. package/dist/core/engine/library/ranges.js +23 -0
  460. package/dist/core/engine/library/ranges.js.map +1 -0
  461. package/dist/core/engine/library/series.d.ts +3 -0
  462. package/dist/core/engine/library/series.d.ts.map +1 -0
  463. package/dist/core/engine/library/series.js +46 -0
  464. package/dist/core/engine/library/series.js.map +1 -0
  465. package/dist/core/engine/library/state.d.ts +35 -0
  466. package/dist/core/engine/library/state.d.ts.map +1 -0
  467. package/dist/core/engine/library/state.js +19 -0
  468. package/dist/core/engine/library/state.js.map +1 -0
  469. package/dist/core/engine/library/studies.d.ts +3 -0
  470. package/dist/core/engine/library/studies.d.ts.map +1 -0
  471. package/dist/core/engine/library/studies.js +35 -0
  472. package/dist/core/engine/library/studies.js.map +1 -0
  473. package/dist/core/engine/library/text.d.ts +6 -0
  474. package/dist/core/engine/library/text.d.ts.map +1 -0
  475. package/dist/core/engine/library/text.js +280 -0
  476. package/dist/core/engine/library/text.js.map +1 -0
  477. package/dist/core/engine/library/trend.d.ts +3 -0
  478. package/dist/core/engine/library/trend.d.ts.map +1 -0
  479. package/dist/core/engine/library/trend.js +29 -0
  480. package/dist/core/engine/library/trend.js.map +1 -0
  481. package/dist/core/engine/library/volume.d.ts +3 -0
  482. package/dist/core/engine/library/volume.d.ts.map +1 -0
  483. package/dist/core/engine/library/volume.js +51 -0
  484. package/dist/core/engine/library/volume.js.map +1 -0
  485. package/dist/core/engine/load.d.ts +45 -0
  486. package/dist/core/engine/load.d.ts.map +1 -0
  487. package/dist/core/engine/load.js +60 -0
  488. package/dist/core/engine/load.js.map +1 -0
  489. package/dist/core/engine/machine.d.ts +107 -0
  490. package/dist/core/engine/machine.d.ts.map +1 -0
  491. package/dist/core/engine/machine.js +337 -0
  492. package/dist/core/engine/machine.js.map +1 -0
  493. package/dist/core/engine/memory.d.ts +60 -0
  494. package/dist/core/engine/memory.d.ts.map +1 -0
  495. package/dist/core/engine/memory.js +92 -0
  496. package/dist/core/engine/memory.js.map +1 -0
  497. package/dist/core/engine/operations.d.ts +62 -0
  498. package/dist/core/engine/operations.d.ts.map +1 -0
  499. package/dist/core/engine/operations.js +149 -0
  500. package/dist/core/engine/operations.js.map +1 -0
  501. package/dist/core/engine/orders.d.ts +56 -0
  502. package/dist/core/engine/orders.d.ts.map +1 -0
  503. package/dist/core/engine/orders.js +83 -0
  504. package/dist/core/engine/orders.js.map +1 -0
  505. package/dist/core/engine/registers.d.ts +50 -0
  506. package/dist/core/engine/registers.d.ts.map +1 -0
  507. package/dist/core/engine/registers.js +85 -0
  508. package/dist/core/engine/registers.js.map +1 -0
  509. package/dist/core/engine/request-body.d.ts +138 -0
  510. package/dist/core/engine/request-body.d.ts.map +1 -0
  511. package/dist/core/engine/request-body.js +227 -0
  512. package/dist/core/engine/request-body.js.map +1 -0
  513. package/dist/core/engine/request-plan.d.ts +79 -0
  514. package/dist/core/engine/request-plan.d.ts.map +1 -0
  515. package/dist/core/engine/request-plan.js +228 -0
  516. package/dist/core/engine/request-plan.js.map +1 -0
  517. package/dist/core/engine/requests.d.ts +105 -0
  518. package/dist/core/engine/requests.d.ts.map +1 -0
  519. package/dist/core/engine/requests.js +260 -0
  520. package/dist/core/engine/requests.js.map +1 -0
  521. package/dist/core/engine/results.d.ts +40 -0
  522. package/dist/core/engine/results.d.ts.map +1 -0
  523. package/dist/core/engine/results.js +2 -0
  524. package/dist/core/engine/results.js.map +1 -0
  525. package/dist/core/engine/series.d.ts +61 -0
  526. package/dist/core/engine/series.d.ts.map +1 -0
  527. package/dist/core/engine/series.js +41 -0
  528. package/dist/core/engine/series.js.map +1 -0
  529. package/dist/core/engine/session/hours.d.ts +49 -0
  530. package/dist/core/engine/session/hours.d.ts.map +1 -0
  531. package/dist/core/engine/session/hours.js +31 -0
  532. package/dist/core/engine/session/hours.js.map +1 -0
  533. package/dist/core/engine/session/index.d.ts +17 -0
  534. package/dist/core/engine/session/index.d.ts.map +1 -0
  535. package/dist/core/engine/session/index.js +3 -0
  536. package/dist/core/engine/session/index.js.map +1 -0
  537. package/dist/core/engine/session/record.d.ts +56 -0
  538. package/dist/core/engine/session/record.d.ts.map +1 -0
  539. package/dist/core/engine/session/record.js +165 -0
  540. package/dist/core/engine/session/record.js.map +1 -0
  541. package/dist/core/engine/session/spec.d.ts +19 -0
  542. package/dist/core/engine/session/spec.d.ts.map +1 -0
  543. package/dist/core/engine/session/spec.js +31 -0
  544. package/dist/core/engine/session/spec.js.map +1 -0
  545. package/dist/core/engine/timeframe.d.ts +59 -0
  546. package/dist/core/engine/timeframe.d.ts.map +1 -0
  547. package/dist/core/engine/timeframe.js +140 -0
  548. package/dist/core/engine/timeframe.js.map +1 -0
  549. package/dist/core/engine/types.d.ts +15 -0
  550. package/dist/core/engine/types.d.ts.map +1 -0
  551. package/dist/core/engine/types.js +2 -0
  552. package/dist/core/engine/types.js.map +1 -0
  553. package/dist/core/engine/values/heap.d.ts +134 -0
  554. package/dist/core/engine/values/heap.d.ts.map +1 -0
  555. package/dist/core/engine/values/heap.js +230 -0
  556. package/dist/core/engine/values/heap.js.map +1 -0
  557. package/dist/core/engine/values/index.d.ts +13 -0
  558. package/dist/core/engine/values/index.d.ts.map +1 -0
  559. package/dist/core/engine/values/index.js +3 -0
  560. package/dist/core/engine/values/index.js.map +1 -0
  561. package/dist/core/engine/values/value.d.ts +82 -0
  562. package/dist/core/engine/values/value.d.ts.map +1 -0
  563. package/dist/core/engine/values/value.js +134 -0
  564. package/dist/core/engine/values/value.js.map +1 -0
  565. package/dist/core/engine/verify-budgets.d.ts +35 -0
  566. package/dist/core/engine/verify-budgets.d.ts.map +1 -0
  567. package/dist/core/engine/verify-budgets.js +172 -0
  568. package/dist/core/engine/verify-budgets.js.map +1 -0
  569. package/dist/core/engine/verify-code.d.ts +32 -0
  570. package/dist/core/engine/verify-code.d.ts.map +1 -0
  571. package/dist/core/engine/verify-code.js +278 -0
  572. package/dist/core/engine/verify-code.js.map +1 -0
  573. package/dist/core/engine/verify-requests.d.ts +44 -0
  574. package/dist/core/engine/verify-requests.d.ts.map +1 -0
  575. package/dist/core/engine/verify-requests.js +220 -0
  576. package/dist/core/engine/verify-requests.js.map +1 -0
  577. package/dist/core/engine/verify-shape.d.ts +46 -0
  578. package/dist/core/engine/verify-shape.d.ts.map +1 -0
  579. package/dist/core/engine/verify-shape.js +147 -0
  580. package/dist/core/engine/verify-shape.js.map +1 -0
  581. package/dist/core/engine/verify-tables.d.ts +19 -0
  582. package/dist/core/engine/verify-tables.d.ts.map +1 -0
  583. package/dist/core/engine/verify-tables.js +171 -0
  584. package/dist/core/engine/verify-tables.js.map +1 -0
  585. package/dist/core/engine/verify.d.ts +19 -0
  586. package/dist/core/engine/verify.d.ts.map +1 -0
  587. package/dist/core/engine/verify.js +309 -0
  588. package/dist/core/engine/verify.js.map +1 -0
  589. package/dist/core/index.d.ts +61 -6
  590. package/dist/core/index.d.ts.map +1 -1
  591. package/dist/core/index.js +48 -6
  592. package/dist/core/index.js.map +1 -1
  593. package/dist/core/parse/expressions.js +1 -1
  594. package/dist/core/parse/expressions.js.map +1 -1
  595. package/dist/core/parse/names.d.ts +7 -1
  596. package/dist/core/parse/names.d.ts.map +1 -1
  597. package/dist/core/parse/names.js +28 -2
  598. package/dist/core/parse/names.js.map +1 -1
  599. package/dist/core/stdlib/averages/exponential.d.ts +51 -0
  600. package/dist/core/stdlib/averages/exponential.d.ts.map +1 -0
  601. package/dist/core/stdlib/averages/exponential.js +72 -0
  602. package/dist/core/stdlib/averages/exponential.js.map +1 -0
  603. package/dist/core/stdlib/averages/index.d.ts +7 -0
  604. package/dist/core/stdlib/averages/index.d.ts.map +1 -0
  605. package/dist/core/stdlib/averages/index.js +5 -0
  606. package/dist/core/stdlib/averages/index.js.map +1 -0
  607. package/dist/core/stdlib/averages/select.d.ts +35 -0
  608. package/dist/core/stdlib/averages/select.d.ts.map +1 -0
  609. package/dist/core/stdlib/averages/select.js +43 -0
  610. package/dist/core/stdlib/averages/select.js.map +1 -0
  611. package/dist/core/stdlib/averages/shaped.d.ts +61 -0
  612. package/dist/core/stdlib/averages/shaped.d.ts.map +1 -0
  613. package/dist/core/stdlib/averages/shaped.js +126 -0
  614. package/dist/core/stdlib/averages/shaped.js.map +1 -0
  615. package/dist/core/stdlib/averages/simple.d.ts +58 -0
  616. package/dist/core/stdlib/averages/simple.d.ts.map +1 -0
  617. package/dist/core/stdlib/averages/simple.js +92 -0
  618. package/dist/core/stdlib/averages/simple.js.map +1 -0
  619. package/dist/core/stdlib/calendar/civil.d.ts +56 -0
  620. package/dist/core/stdlib/calendar/civil.d.ts.map +1 -0
  621. package/dist/core/stdlib/calendar/civil.js +70 -0
  622. package/dist/core/stdlib/calendar/civil.js.map +1 -0
  623. package/dist/core/stdlib/calendar/fields.d.ts +36 -0
  624. package/dist/core/stdlib/calendar/fields.d.ts.map +1 -0
  625. package/dist/core/stdlib/calendar/fields.js +93 -0
  626. package/dist/core/stdlib/calendar/fields.js.map +1 -0
  627. package/dist/core/stdlib/calendar/format.d.ts +19 -0
  628. package/dist/core/stdlib/calendar/format.d.ts.map +1 -0
  629. package/dist/core/stdlib/calendar/format.js +51 -0
  630. package/dist/core/stdlib/calendar/format.js.map +1 -0
  631. package/dist/core/stdlib/calendar/index.d.ts +7 -0
  632. package/dist/core/stdlib/calendar/index.d.ts.map +1 -0
  633. package/dist/core/stdlib/calendar/index.js +5 -0
  634. package/dist/core/stdlib/calendar/index.js.map +1 -0
  635. package/dist/core/stdlib/calendar/zone.d.ts +53 -0
  636. package/dist/core/stdlib/calendar/zone.d.ts.map +1 -0
  637. package/dist/core/stdlib/calendar/zone.js +138 -0
  638. package/dist/core/stdlib/calendar/zone.js.map +1 -0
  639. package/dist/core/stdlib/index.d.ts +57 -0
  640. package/dist/core/stdlib/index.d.ts.map +1 -0
  641. package/dist/core/stdlib/index.js +51 -0
  642. package/dist/core/stdlib/index.js.map +1 -0
  643. package/dist/core/stdlib/maths/arithmetic.d.ts +38 -0
  644. package/dist/core/stdlib/maths/arithmetic.d.ts.map +1 -0
  645. package/dist/core/stdlib/maths/arithmetic.js +66 -0
  646. package/dist/core/stdlib/maths/arithmetic.js.map +1 -0
  647. package/dist/core/stdlib/maths/elementary.d.ts +65 -0
  648. package/dist/core/stdlib/maths/elementary.d.ts.map +1 -0
  649. package/dist/core/stdlib/maths/elementary.js +93 -0
  650. package/dist/core/stdlib/maths/elementary.js.map +1 -0
  651. package/dist/core/stdlib/maths/index.d.ts +4 -0
  652. package/dist/core/stdlib/maths/index.d.ts.map +1 -0
  653. package/dist/core/stdlib/maths/index.js +4 -0
  654. package/dist/core/stdlib/maths/index.js.map +1 -0
  655. package/dist/core/stdlib/maths/rounding.d.ts +43 -0
  656. package/dist/core/stdlib/maths/rounding.d.ts.map +1 -0
  657. package/dist/core/stdlib/maths/rounding.js +62 -0
  658. package/dist/core/stdlib/maths/rounding.js.map +1 -0
  659. package/dist/core/stdlib/momentum/convergence.d.ts +36 -0
  660. package/dist/core/stdlib/momentum/convergence.d.ts.map +1 -0
  661. package/dist/core/stdlib/momentum/convergence.js +48 -0
  662. package/dist/core/stdlib/momentum/convergence.js.map +1 -0
  663. package/dist/core/stdlib/momentum/index.d.ts +6 -0
  664. package/dist/core/stdlib/momentum/index.d.ts.map +1 -0
  665. package/dist/core/stdlib/momentum/index.js +6 -0
  666. package/dist/core/stdlib/momentum/index.js.map +1 -0
  667. package/dist/core/stdlib/momentum/pressure.d.ts +43 -0
  668. package/dist/core/stdlib/momentum/pressure.d.ts.map +1 -0
  669. package/dist/core/stdlib/momentum/pressure.js +103 -0
  670. package/dist/core/stdlib/momentum/pressure.js.map +1 -0
  671. package/dist/core/stdlib/momentum/rates.d.ts +74 -0
  672. package/dist/core/stdlib/momentum/rates.d.ts.map +1 -0
  673. package/dist/core/stdlib/momentum/rates.js +134 -0
  674. package/dist/core/stdlib/momentum/rates.js.map +1 -0
  675. package/dist/core/stdlib/momentum/rsi.d.ts +21 -0
  676. package/dist/core/stdlib/momentum/rsi.d.ts.map +1 -0
  677. package/dist/core/stdlib/momentum/rsi.js +30 -0
  678. package/dist/core/stdlib/momentum/rsi.js.map +1 -0
  679. package/dist/core/stdlib/momentum/stochastic.d.ts +44 -0
  680. package/dist/core/stdlib/momentum/stochastic.d.ts.map +1 -0
  681. package/dist/core/stdlib/momentum/stochastic.js +97 -0
  682. package/dist/core/stdlib/momentum/stochastic.js.map +1 -0
  683. package/dist/core/stdlib/series/changes.d.ts +59 -0
  684. package/dist/core/stdlib/series/changes.d.ts.map +1 -0
  685. package/dist/core/stdlib/series/changes.js +129 -0
  686. package/dist/core/stdlib/series/changes.js.map +1 -0
  687. package/dist/core/stdlib/series/conditions.d.ts +34 -0
  688. package/dist/core/stdlib/series/conditions.d.ts.map +1 -0
  689. package/dist/core/stdlib/series/conditions.js +52 -0
  690. package/dist/core/stdlib/series/conditions.js.map +1 -0
  691. package/dist/core/stdlib/series/extremes.d.ts +29 -0
  692. package/dist/core/stdlib/series/extremes.d.ts.map +1 -0
  693. package/dist/core/stdlib/series/extremes.js +62 -0
  694. package/dist/core/stdlib/series/extremes.js.map +1 -0
  695. package/dist/core/stdlib/series/index.d.ts +9 -0
  696. package/dist/core/stdlib/series/index.d.ts.map +1 -0
  697. package/dist/core/stdlib/series/index.js +7 -0
  698. package/dist/core/stdlib/series/index.js.map +1 -0
  699. package/dist/core/stdlib/series/pivots.d.ts +25 -0
  700. package/dist/core/stdlib/series/pivots.d.ts.map +1 -0
  701. package/dist/core/stdlib/series/pivots.js +42 -0
  702. package/dist/core/stdlib/series/pivots.js.map +1 -0
  703. package/dist/core/stdlib/series/statistics.d.ts +64 -0
  704. package/dist/core/stdlib/series/statistics.d.ts.map +1 -0
  705. package/dist/core/stdlib/series/statistics.js +148 -0
  706. package/dist/core/stdlib/series/statistics.js.map +1 -0
  707. package/dist/core/stdlib/series/totals.d.ts +68 -0
  708. package/dist/core/stdlib/series/totals.d.ts.map +1 -0
  709. package/dist/core/stdlib/series/totals.js +115 -0
  710. package/dist/core/stdlib/series/totals.js.map +1 -0
  711. package/dist/core/stdlib/trend/directional.d.ts +69 -0
  712. package/dist/core/stdlib/trend/directional.d.ts.map +1 -0
  713. package/dist/core/stdlib/trend/directional.js +151 -0
  714. package/dist/core/stdlib/trend/directional.js.map +1 -0
  715. package/dist/core/stdlib/trend/index.d.ts +4 -0
  716. package/dist/core/stdlib/trend/index.d.ts.map +1 -0
  717. package/dist/core/stdlib/trend/index.js +4 -0
  718. package/dist/core/stdlib/trend/index.js.map +1 -0
  719. package/dist/core/stdlib/trend/psar.d.ts +33 -0
  720. package/dist/core/stdlib/trend/psar.d.ts.map +1 -0
  721. package/dist/core/stdlib/trend/psar.js +86 -0
  722. package/dist/core/stdlib/trend/psar.js.map +1 -0
  723. package/dist/core/stdlib/trend/supertrend.d.ts +30 -0
  724. package/dist/core/stdlib/trend/supertrend.d.ts.map +1 -0
  725. package/dist/core/stdlib/trend/supertrend.js +65 -0
  726. package/dist/core/stdlib/trend/supertrend.js.map +1 -0
  727. package/dist/core/stdlib/values/bar.d.ts +39 -0
  728. package/dist/core/stdlib/values/bar.d.ts.map +1 -0
  729. package/dist/core/stdlib/values/bar.js +33 -0
  730. package/dist/core/stdlib/values/bar.js.map +1 -0
  731. package/dist/core/stdlib/values/index.d.ts +11 -0
  732. package/dist/core/stdlib/values/index.d.ts.map +1 -0
  733. package/dist/core/stdlib/values/index.js +6 -0
  734. package/dist/core/stdlib/values/index.js.map +1 -0
  735. package/dist/core/stdlib/values/lookback.d.ts +83 -0
  736. package/dist/core/stdlib/values/lookback.d.ts.map +1 -0
  737. package/dist/core/stdlib/values/lookback.js +134 -0
  738. package/dist/core/stdlib/values/lookback.js.map +1 -0
  739. package/dist/core/stdlib/values/region.d.ts +55 -0
  740. package/dist/core/stdlib/values/region.d.ts.map +1 -0
  741. package/dist/core/stdlib/values/region.js +73 -0
  742. package/dist/core/stdlib/values/region.js.map +1 -0
  743. package/dist/core/stdlib/values/tail.d.ts +44 -0
  744. package/dist/core/stdlib/values/tail.d.ts.map +1 -0
  745. package/dist/core/stdlib/values/tail.js +23 -0
  746. package/dist/core/stdlib/values/tail.js.map +1 -0
  747. package/dist/core/stdlib/values/value.d.ts +64 -0
  748. package/dist/core/stdlib/values/value.d.ts.map +1 -0
  749. package/dist/core/stdlib/values/value.js +61 -0
  750. package/dist/core/stdlib/values/value.js.map +1 -0
  751. package/dist/core/stdlib/volatility/bands.d.ts +50 -0
  752. package/dist/core/stdlib/volatility/bands.d.ts.map +1 -0
  753. package/dist/core/stdlib/volatility/bands.js +101 -0
  754. package/dist/core/stdlib/volatility/bands.js.map +1 -0
  755. package/dist/core/stdlib/volatility/deviation.d.ts +43 -0
  756. package/dist/core/stdlib/volatility/deviation.d.ts.map +1 -0
  757. package/dist/core/stdlib/volatility/deviation.js +75 -0
  758. package/dist/core/stdlib/volatility/deviation.js.map +1 -0
  759. package/dist/core/stdlib/volatility/index.d.ts +6 -0
  760. package/dist/core/stdlib/volatility/index.d.ts.map +1 -0
  761. package/dist/core/stdlib/volatility/index.js +5 -0
  762. package/dist/core/stdlib/volatility/index.js.map +1 -0
  763. package/dist/core/stdlib/volatility/measures.d.ts +48 -0
  764. package/dist/core/stdlib/volatility/measures.d.ts.map +1 -0
  765. package/dist/core/stdlib/volatility/measures.js +73 -0
  766. package/dist/core/stdlib/volatility/measures.js.map +1 -0
  767. package/dist/core/stdlib/volatility/range.d.ts +69 -0
  768. package/dist/core/stdlib/volatility/range.d.ts.map +1 -0
  769. package/dist/core/stdlib/volatility/range.js +86 -0
  770. package/dist/core/stdlib/volatility/range.js.map +1 -0
  771. package/dist/core/stdlib/volume/accumulation.d.ts +61 -0
  772. package/dist/core/stdlib/volume/accumulation.d.ts.map +1 -0
  773. package/dist/core/stdlib/volume/accumulation.js +127 -0
  774. package/dist/core/stdlib/volume/accumulation.js.map +1 -0
  775. package/dist/core/stdlib/volume/flow.d.ts +60 -0
  776. package/dist/core/stdlib/volume/flow.d.ts.map +1 -0
  777. package/dist/core/stdlib/volume/flow.js +125 -0
  778. package/dist/core/stdlib/volume/flow.js.map +1 -0
  779. package/dist/core/stdlib/volume/index.d.ts +5 -0
  780. package/dist/core/stdlib/volume/index.d.ts.map +1 -0
  781. package/dist/core/stdlib/volume/index.js +4 -0
  782. package/dist/core/stdlib/volume/index.js.map +1 -0
  783. package/dist/core/stdlib/volume/weighted.d.ts +52 -0
  784. package/dist/core/stdlib/volume/weighted.d.ts.map +1 -0
  785. package/dist/core/stdlib/volume/weighted.js +64 -0
  786. package/dist/core/stdlib/volume/weighted.js.map +1 -0
  787. package/dist/core/version/version.generated.d.ts +2 -2
  788. package/dist/core/version/version.generated.d.ts.map +1 -1
  789. package/dist/core/version/version.generated.js +2 -2
  790. package/dist/core/version/version.generated.js.map +1 -1
  791. package/package.json +38 -14
  792. package/spec/errors.json +382 -183
  793. package/src/adapters/charts/alerts.ts +116 -0
  794. package/src/adapters/charts/bars.ts +63 -0
  795. package/src/adapters/charts/candles.ts +137 -0
  796. package/src/adapters/charts/colours.ts +113 -0
  797. package/src/adapters/charts/columns.ts +99 -0
  798. package/src/adapters/charts/contract.ts +320 -0
  799. package/src/adapters/charts/descriptor.ts +199 -0
  800. package/src/adapters/charts/drawings.ts +213 -0
  801. package/src/adapters/charts/errors.ts +45 -0
  802. package/src/adapters/charts/fields.ts +74 -0
  803. package/src/adapters/charts/fills.ts +71 -0
  804. package/src/adapters/charts/index.ts +78 -0
  805. package/src/adapters/charts/levels.ts +92 -0
  806. package/src/adapters/charts/markers.ts +119 -0
  807. package/src/adapters/charts/paint.ts +101 -0
  808. package/src/adapters/charts/plots.ts +185 -0
  809. package/src/adapters/charts/produced.ts +68 -0
  810. package/src/adapters/charts/requests.ts +357 -0
  811. package/src/adapters/charts/run.ts +327 -0
  812. package/src/adapters/charts/settings.ts +273 -0
  813. package/src/adapters/charts/surfaces.ts +238 -0
  814. package/src/adapters/charts/tables.ts +155 -0
  815. package/src/core/catalogue/catalogue.generated.ts +17 -9
  816. package/src/core/catalogue/values.generated.ts +8 -0
  817. package/src/core/check/arguments.ts +126 -0
  818. package/src/core/check/call-sites.ts +385 -0
  819. package/src/core/check/call-warmup.ts +121 -0
  820. package/src/core/check/calls.ts +412 -0
  821. package/src/core/check/check.ts +183 -0
  822. package/src/core/check/checked.ts +228 -0
  823. package/src/core/check/checker.ts +393 -0
  824. package/src/core/check/conditional.ts +143 -0
  825. package/src/core/check/constant.ts +127 -0
  826. package/src/core/check/declaration.ts +230 -0
  827. package/src/core/check/expressions.ts +471 -0
  828. package/src/core/check/functions.ts +283 -0
  829. package/src/core/check/handles.ts +75 -0
  830. package/src/core/check/index.ts +67 -0
  831. package/src/core/check/library-bars.ts +194 -0
  832. package/src/core/check/library-orders.ts +290 -0
  833. package/src/core/check/library-output.ts +241 -0
  834. package/src/core/check/library-series.ts +457 -0
  835. package/src/core/check/library.ts +374 -0
  836. package/src/core/check/literals.ts +35 -0
  837. package/src/core/check/outputs.ts +152 -0
  838. package/src/core/check/statements.ts +465 -0
  839. package/src/core/check/suggest.ts +63 -0
  840. package/src/core/check/surface.ts +115 -0
  841. package/src/core/check/tags.ts +94 -0
  842. package/src/core/check/types.ts +260 -0
  843. package/src/core/check/warmup.ts +100 -0
  844. package/src/core/diagnostics/collector.ts +27 -1
  845. package/src/core/emit/calls.ts +415 -0
  846. package/src/core/emit/canonical.ts +81 -0
  847. package/src/core/emit/channels.ts +144 -0
  848. package/src/core/emit/code.ts +155 -0
  849. package/src/core/emit/colours.ts +75 -0
  850. package/src/core/emit/context.ts +461 -0
  851. package/src/core/emit/defaults.ts +150 -0
  852. package/src/core/emit/emit.ts +313 -0
  853. package/src/core/emit/events.ts +141 -0
  854. package/src/core/emit/expressions.ts +292 -0
  855. package/src/core/emit/functions.ts +195 -0
  856. package/src/core/emit/gaps.ts +44 -0
  857. package/src/core/emit/index.ts +74 -0
  858. package/src/core/emit/inputs.ts +179 -0
  859. package/src/core/emit/layout.ts +165 -0
  860. package/src/core/emit/meta.ts +104 -0
  861. package/src/core/emit/opcodes.ts +160 -0
  862. package/src/core/emit/outputs.ts +357 -0
  863. package/src/core/emit/pool.ts +102 -0
  864. package/src/core/emit/program.ts +385 -0
  865. package/src/core/emit/registers.ts +179 -0
  866. package/src/core/emit/request-scope.ts +52 -0
  867. package/src/core/emit/requests.ts +258 -0
  868. package/src/core/emit/requires.ts +91 -0
  869. package/src/core/emit/sha256.ts +119 -0
  870. package/src/core/emit/statements.ts +438 -0
  871. package/src/core/emit/values.ts +284 -0
  872. package/src/core/engine/alerts.ts +152 -0
  873. package/src/core/engine/arithmetic.ts +165 -0
  874. package/src/core/engine/bars.ts +224 -0
  875. package/src/core/engine/budget.ts +284 -0
  876. package/src/core/engine/channels.ts +171 -0
  877. package/src/core/engine/drawings.ts +127 -0
  878. package/src/core/engine/engine.ts +498 -0
  879. package/src/core/engine/errors.ts +100 -0
  880. package/src/core/engine/frames.ts +85 -0
  881. package/src/core/engine/grids.ts +98 -0
  882. package/src/core/engine/guard.ts +71 -0
  883. package/src/core/engine/host.ts +251 -0
  884. package/src/core/engine/index.ts +93 -0
  885. package/src/core/engine/inputs.ts +263 -0
  886. package/src/core/engine/ledger/call.ts +218 -0
  887. package/src/core/engine/ledger/closable.ts +269 -0
  888. package/src/core/engine/ledger/holdings.ts +354 -0
  889. package/src/core/engine/ledger/index.ts +28 -0
  890. package/src/core/engine/ledger/intent.ts +112 -0
  891. package/src/core/engine/ledger/ledger.ts +314 -0
  892. package/src/core/engine/ledger/place.ts +277 -0
  893. package/src/core/engine/ledger/positions.ts +123 -0
  894. package/src/core/engine/ledger/refuse.ts +378 -0
  895. package/src/core/engine/ledger/row.ts +318 -0
  896. package/src/core/engine/ledger/sizing.ts +292 -0
  897. package/src/core/engine/library/arrays.ts +316 -0
  898. package/src/core/engine/library/averages.ts +97 -0
  899. package/src/core/engine/library/binding.ts +325 -0
  900. package/src/core/engine/library/chart.ts +115 -0
  901. package/src/core/engine/library/colours.ts +111 -0
  902. package/src/core/engine/library/dates.ts +109 -0
  903. package/src/core/engine/library/index.ts +103 -0
  904. package/src/core/engine/library/maths.ts +134 -0
  905. package/src/core/engine/library/objects.ts +265 -0
  906. package/src/core/engine/library/oscillators.ts +124 -0
  907. package/src/core/engine/library/ranges.ts +51 -0
  908. package/src/core/engine/library/series.ts +236 -0
  909. package/src/core/engine/library/state.ts +47 -0
  910. package/src/core/engine/library/studies.ts +150 -0
  911. package/src/core/engine/library/text.ts +303 -0
  912. package/src/core/engine/library/trend.ts +79 -0
  913. package/src/core/engine/library/volume.ts +101 -0
  914. package/src/core/engine/load.ts +104 -0
  915. package/src/core/engine/machine.ts +446 -0
  916. package/src/core/engine/memory.ts +129 -0
  917. package/src/core/engine/operations.ts +171 -0
  918. package/src/core/engine/orders.ts +121 -0
  919. package/src/core/engine/registers.ts +104 -0
  920. package/src/core/engine/request-body.ts +328 -0
  921. package/src/core/engine/request-plan.ts +270 -0
  922. package/src/core/engine/requests.ts +382 -0
  923. package/src/core/engine/results.ts +41 -0
  924. package/src/core/engine/series.ts +82 -0
  925. package/src/core/engine/session/hours.ts +86 -0
  926. package/src/core/engine/session/index.ts +17 -0
  927. package/src/core/engine/session/record.ts +191 -0
  928. package/src/core/engine/session/spec.ts +45 -0
  929. package/src/core/engine/timeframe.ts +161 -0
  930. package/src/core/engine/types.ts +47 -0
  931. package/src/core/engine/values/heap.ts +295 -0
  932. package/src/core/engine/values/index.ts +34 -0
  933. package/src/core/engine/values/value.ts +158 -0
  934. package/src/core/engine/verify-budgets.ts +202 -0
  935. package/src/core/engine/verify-code.ts +332 -0
  936. package/src/core/engine/verify-requests.ts +255 -0
  937. package/src/core/engine/verify-shape.ts +164 -0
  938. package/src/core/engine/verify-tables.ts +176 -0
  939. package/src/core/engine/verify.ts +341 -0
  940. package/src/core/index.ts +128 -6
  941. package/src/core/parse/expressions.ts +1 -1
  942. package/src/core/parse/names.ts +29 -2
  943. package/src/core/stdlib/averages/exponential.ts +119 -0
  944. package/src/core/stdlib/averages/index.ts +45 -0
  945. package/src/core/stdlib/averages/select.ts +71 -0
  946. package/src/core/stdlib/averages/shaped.ts +161 -0
  947. package/src/core/stdlib/averages/simple.ts +139 -0
  948. package/src/core/stdlib/calendar/civil.ts +89 -0
  949. package/src/core/stdlib/calendar/fields.ts +124 -0
  950. package/src/core/stdlib/calendar/format.ts +71 -0
  951. package/src/core/stdlib/calendar/index.ts +15 -0
  952. package/src/core/stdlib/calendar/zone.ts +161 -0
  953. package/src/core/stdlib/index.ts +400 -0
  954. package/src/core/stdlib/maths/arithmetic.ts +74 -0
  955. package/src/core/stdlib/maths/elementary.ts +124 -0
  956. package/src/core/stdlib/maths/index.ts +43 -0
  957. package/src/core/stdlib/maths/rounding.ts +78 -0
  958. package/src/core/stdlib/momentum/convergence.ts +82 -0
  959. package/src/core/stdlib/momentum/index.ts +47 -0
  960. package/src/core/stdlib/momentum/pressure.ts +141 -0
  961. package/src/core/stdlib/momentum/rates.ts +188 -0
  962. package/src/core/stdlib/momentum/rsi.ts +49 -0
  963. package/src/core/stdlib/momentum/stochastic.ts +147 -0
  964. package/src/core/stdlib/series/changes.ts +177 -0
  965. package/src/core/stdlib/series/conditions.ts +74 -0
  966. package/src/core/stdlib/series/extremes.ts +92 -0
  967. package/src/core/stdlib/series/index.ts +83 -0
  968. package/src/core/stdlib/series/pivots.ts +63 -0
  969. package/src/core/stdlib/series/statistics.ts +207 -0
  970. package/src/core/stdlib/series/totals.ts +164 -0
  971. package/src/core/stdlib/trend/directional.ts +196 -0
  972. package/src/core/stdlib/trend/index.ts +13 -0
  973. package/src/core/stdlib/trend/psar.ts +131 -0
  974. package/src/core/stdlib/trend/supertrend.ts +100 -0
  975. package/src/core/stdlib/values/bar.ts +54 -0
  976. package/src/core/stdlib/values/index.ts +14 -0
  977. package/src/core/stdlib/values/lookback.ts +198 -0
  978. package/src/core/stdlib/values/region.ts +86 -0
  979. package/src/core/stdlib/values/tail.ts +58 -0
  980. package/src/core/stdlib/values/value.ts +82 -0
  981. package/src/core/stdlib/volatility/bands.ts +178 -0
  982. package/src/core/stdlib/volatility/deviation.ts +111 -0
  983. package/src/core/stdlib/volatility/index.ts +48 -0
  984. package/src/core/stdlib/volatility/measures.ts +96 -0
  985. package/src/core/stdlib/volatility/range.ts +143 -0
  986. package/src/core/stdlib/volume/accumulation.ts +152 -0
  987. package/src/core/stdlib/volume/flow.ts +173 -0
  988. package/src/core/stdlib/volume/index.ts +43 -0
  989. package/src/core/stdlib/volume/weighted.ts +101 -0
  990. package/src/core/version/version.generated.ts +2 -2
@@ -0,0 +1,138 @@
1
+ /**
2
+ * A request expression, executed over the requested bars,
3
+ * `compiled-program.md` 2.16.1.
4
+ *
5
+ * **The body is a program the machine already knows how to run.** It holds the
6
+ * tables a program holds for the machine of section 3 and none of the tables
7
+ * that describe a chart, so the whole of this file is: build a program-shaped
8
+ * view whose code, frame, registers, cells, states, functions and loops are the
9
+ * body's own, keep the constant pool and the library manifest the program's,
10
+ * and drive the same interpreter over it once per requested bar. Nothing new is
11
+ * asked of the instruction loop, which is why the body ends in `RET` rather
12
+ * than in an opcode of its own.
13
+ *
14
+ * **Every table is counted from zero and none of them is the program's.** The
15
+ * registers are the requested instrument's bars and the cells and state regions
16
+ * step once per requested bar, so an engine that reached into the program's
17
+ * tables would put this chart's history behind another chart's name. The two
18
+ * that are shared, `consts` and `lib.functions`, hold nothing that depends on a
19
+ * bar.
20
+ *
21
+ * **A requested bar moves exactly as the chart's newest bar does.** `settle` is
22
+ * a bar that has closed and `peek` is the one still forming, and `peek` rolls
23
+ * the state back before it runs so that peeking the same bucket on ten chart
24
+ * bars gives the same answer as peeking it once. That is the mechanism of
25
+ * section 6 applied one level down, and it is what makes a `"developing"` read
26
+ * mean the bucket so far rather than the bucket in full.
27
+ */
28
+ import type { Span } from '../span/index.js';
29
+ import type { HostBar } from './bars.js';
30
+ import type { Clock, EngineLimits } from './budget.js';
31
+ import { Registers } from './registers.js';
32
+ import type { HostFacts, ManifestEntry, PositionFacts } from './library/index.js';
33
+ import type { CompiledProgram, Request } from './types.js';
34
+ import { Heap } from './values/index.js';
35
+ import type { Value } from './values/index.js';
36
+ /** One setting the body reads, resolved once at load like every other input. */
37
+ export interface BodyInput {
38
+ readonly series: number;
39
+ readonly value: Value;
40
+ }
41
+ /**
42
+ * The reads written inside this one, as the body drives them.
43
+ *
44
+ * Declared here rather than imported, so the dependency points one way: the
45
+ * fold knows about a body and a body knows only the shape of what it has to
46
+ * step. A nested read folds the bars this body is running on, which are handed
47
+ * over one requested bar at a time, so a nested `"lookahead"` read sees no
48
+ * further than the requested bar being executed. That is the same thing the
49
+ * mode does on a live chart's newest bucket, one level down.
50
+ */
51
+ export interface NestedRequests {
52
+ readonly empty: boolean;
53
+ fill(registers: Registers, bars: readonly HostBar[], index: number, fresh: boolean): void;
54
+ }
55
+ export interface BodyParts {
56
+ /** The program-shaped view of the body, built by `bodyProgram`. */
57
+ readonly program: CompiledProgram;
58
+ readonly limits: EngineLimits;
59
+ readonly clock: Clock | undefined;
60
+ readonly host: HostFacts;
61
+ readonly position: PositionFacts;
62
+ readonly library: readonly ManifestEntry[];
63
+ readonly inputs: readonly BodyInput[];
64
+ readonly nested: NestedRequests | undefined;
65
+ spanAt(line: number, column: number): Span;
66
+ }
67
+ /**
68
+ * The body's tables wearing a program's shape.
69
+ *
70
+ * A copy of the parent with nine fields replaced, rather than a second
71
+ * declaration, so that the one thing the two share by design, the constant pool
72
+ * and the manifest, is shared by construction and cannot drift.
73
+ */
74
+ export declare function bodyProgram(parent: CompiledProgram, request: Request): CompiledProgram;
75
+ export declare class RequestBody {
76
+ private readonly parts;
77
+ private readonly registers;
78
+ private readonly memory;
79
+ private readonly heap;
80
+ private readonly budget;
81
+ private readonly machine;
82
+ /** Requested bars that have closed, which is the index the next one takes. */
83
+ private settled;
84
+ /** Executions of the requested bar currently forming, for `bar.updates`. */
85
+ private touches;
86
+ /** The previous requested bar's close, which `trueRange` inside a body needs. */
87
+ private lastClose;
88
+ /** The requested bars themselves, kept only when a read inside folds them. */
89
+ private readonly history;
90
+ /**
91
+ * The value the last closed requested bar handed back.
92
+ *
93
+ * Held so that the sweep does not reclaim it. A confirmed read takes the last
94
+ * closed bucket's value on every chart bar of the next bucket, so the value
95
+ * outlives the execution that produced it, and if it is an object the object
96
+ * has to outlive it too.
97
+ */
98
+ private handed;
99
+ constructor(parts: BodyParts);
100
+ /** How many requested bars have closed, which a warmup is counted against. */
101
+ get closed(): number;
102
+ /** The body's own heap, which a read written inside it lands its value in. */
103
+ get objects(): Heap;
104
+ /**
105
+ * The requested bar still forming.
106
+ *
107
+ * Rolls back to the last closed bar first, so a bucket peeked on every chart
108
+ * bar inside it costs one execution each and leaves no trace of the previous
109
+ * one. Nothing is committed: the bucket is still moving.
110
+ */
111
+ peek(bar: HostBar): Value;
112
+ /**
113
+ * The requested bar has closed.
114
+ *
115
+ * The last execution of that bar is the one that counts, and the state it
116
+ * leaves becomes the checkpoint the next bar starts from. `settle` is
117
+ * idempotent only in the sense every checkpoint is: it is called once per
118
+ * requested bar, by the one place that knows a bucket has ended.
119
+ */
120
+ settle(bar: HostBar): Value;
121
+ private execute;
122
+ /**
123
+ * A value the body produced, as a value of the machine that asked for it.
124
+ *
125
+ * A number, a string, a colour or absence is the same value in both, and
126
+ * nothing is copied. An object is not: a reference is an index into one heap,
127
+ * and the body's heap is its own, so handing the index over would name
128
+ * whatever the other heap happens to hold at that index. So the object is
129
+ * copied, and copied again on every bar that reads it, because the copy lives
130
+ * in a heap whose rollback undoes the bar it was made on.
131
+ *
132
+ * Only an array can arrive here. A read that declared a grid or drew an object
133
+ * is refused at the call (OS3006), so those two kinds cannot exist in a body.
134
+ */
135
+ carry(value: Value, into: Heap): Value;
136
+ private viewOf;
137
+ }
138
+ //# sourceMappingURL=request-body.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request-body.d.ts","sourceRoot":"","sources":["../../../src/core/engine/request-body.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,227 @@
1
+ import { barField, factsFor } from './bars.js';
2
+ import { Budget, stepBound } from './budget.js';
3
+ import { Channels } from './channels.js';
4
+ import { guardFor } from './guard.js';
5
+ import { Machine } from './machine.js';
6
+ import { NO_SESSION } from './session/index.js';
7
+ import { Memory } from './memory.js';
8
+ import { Registers } from './registers.js';
9
+ import { ABSENT, Heap, isRef, reference } from './values/index.js';
10
+ /**
11
+ * The body's tables wearing a program's shape.
12
+ *
13
+ * A copy of the parent with nine fields replaced, rather than a second
14
+ * declaration, so that the one thing the two share by design, the constant pool
15
+ * and the manifest, is shared by construction and cannot drift.
16
+ */
17
+ export function bodyProgram(parent, request) {
18
+ const body = request.body;
19
+ return {
20
+ ...parent,
21
+ frame: body.frame,
22
+ series: body.series,
23
+ cells: body.cells,
24
+ states: body.states,
25
+ functions: body.functions,
26
+ callSites: body.callSites,
27
+ loops: body.loops,
28
+ code: body.code,
29
+ requests: body.requests,
30
+ debug: { ...parent.debug, pos: body.pos, fnPos: body.fnPos },
31
+ };
32
+ }
33
+ export class RequestBody {
34
+ parts;
35
+ registers;
36
+ memory;
37
+ heap = new Heap();
38
+ budget;
39
+ machine;
40
+ /** Requested bars that have closed, which is the index the next one takes. */
41
+ settled = 0;
42
+ /** Executions of the requested bar currently forming, for `bar.updates`. */
43
+ touches = 0;
44
+ /** The previous requested bar's close, which `trueRange` inside a body needs. */
45
+ lastClose = null;
46
+ /** The requested bars themselves, kept only when a read inside folds them. */
47
+ history = [];
48
+ /**
49
+ * The value the last closed requested bar handed back.
50
+ *
51
+ * Held so that the sweep does not reclaim it. A confirmed read takes the last
52
+ * closed bucket's value on every chart bar of the next bucket, so the value
53
+ * outlives the execution that produced it, and if it is an object the object
54
+ * has to outlive it too.
55
+ */
56
+ handed = ABSENT;
57
+ constructor(parts) {
58
+ this.parts = parts;
59
+ const { program } = parts;
60
+ this.registers = new Registers(program.series.length);
61
+ this.memory = new Memory(program.cells, program.states);
62
+ this.budget = new Budget(parts.limits, parts.limits.steps ?? stepBound(program), program.limits.loops, parts.clock);
63
+ const fnPositions = program.functions.map(() => []);
64
+ for (const [fn, positions] of program.debug.fnPos)
65
+ fnPositions[fn] = positions;
66
+ this.machine = new Machine({
67
+ program,
68
+ registers: this.registers,
69
+ memory: this.memory,
70
+ // A read carries no channel, no plot and no declaration: those are the
71
+ // calls the language refuses inside a request expression, so nothing in
72
+ // a body can write a column and verification refuses an `EMIT` against
73
+ // an empty table.
74
+ channels: new Channels([]),
75
+ heap: this.heap,
76
+ budget: this.budget,
77
+ guard: guardFor(this.budget),
78
+ host: parts.host,
79
+ position: parts.position,
80
+ library: parts.library,
81
+ fnPositions,
82
+ spanAt: parts.spanAt,
83
+ }, this.viewOf({ open: null, high: null, low: null, close: null, time: null }, 0, false));
84
+ }
85
+ /** How many requested bars have closed, which a warmup is counted against. */
86
+ get closed() {
87
+ return this.settled;
88
+ }
89
+ /** The body's own heap, which a read written inside it lands its value in. */
90
+ get objects() {
91
+ return this.heap;
92
+ }
93
+ /**
94
+ * The requested bar still forming.
95
+ *
96
+ * Rolls back to the last closed bar first, so a bucket peeked on every chart
97
+ * bar inside it costs one execution each and leaves no trace of the previous
98
+ * one. Nothing is committed: the bucket is still moving.
99
+ */
100
+ peek(bar) {
101
+ const value = this.execute(bar, false);
102
+ this.touches += 1;
103
+ return value;
104
+ }
105
+ /**
106
+ * The requested bar has closed.
107
+ *
108
+ * The last execution of that bar is the one that counts, and the state it
109
+ * leaves becomes the checkpoint the next bar starts from. `settle` is
110
+ * idempotent only in the sense every checkpoint is: it is called once per
111
+ * requested bar, by the one place that knows a bucket has ended.
112
+ */
113
+ settle(bar) {
114
+ const value = this.execute(bar, true);
115
+ this.handed = value;
116
+ this.memory.commit();
117
+ this.heap.commit();
118
+ this.heap.sweep((visit) => {
119
+ this.memory.walk(visit);
120
+ this.registers.walk(visit);
121
+ visit(this.handed);
122
+ });
123
+ this.registers.trim(this.settled, this.parts.program.limits.history);
124
+ this.lastClose = bar.close ?? null;
125
+ this.settled += 1;
126
+ this.touches = 0;
127
+ return value;
128
+ }
129
+ execute(bar, closed) {
130
+ const index = this.settled;
131
+ // Steps 1 and 2 of the bar cycle, one level down: the checkpoint from the
132
+ // end of the previous requested bar, and the history entry this bar may
133
+ // already have written.
134
+ this.memory.rollback();
135
+ this.heap.rollback();
136
+ this.registers.truncate(index);
137
+ this.registers.clearCurrent();
138
+ this.budget.begin(index);
139
+ const view = this.viewOf(bar, index, closed);
140
+ this.machine.begin(view, index);
141
+ const facts = factsFor(index,
142
+ // A bar that has closed is not the last one: something later is what
143
+ // closed it. The one still forming is.
144
+ index + (closed ? 2 : 1), { isConfirmed: closed }, this.touches === 0, this.touches + 1, NO_SESSION);
145
+ for (const register of this.parts.program.series) {
146
+ if (register.kind !== 'bar' || register.field === null)
147
+ continue;
148
+ this.registers.set(register.id, barField(register.field, bar, facts));
149
+ }
150
+ // A body is one expression with no statement to write a slot from, so a
151
+ // setting it reads arrives as a register rather than as a slot (2.16.1).
152
+ for (const input of this.parts.inputs)
153
+ this.registers.set(input.series, input.value);
154
+ const nested = this.parts.nested;
155
+ if (nested !== undefined && !nested.empty) {
156
+ this.history[index] = bar;
157
+ nested.fill(this.registers, this.history, index, this.touches === 0);
158
+ }
159
+ this.machine.run();
160
+ this.registers.close(index);
161
+ return this.machine.result();
162
+ }
163
+ /**
164
+ * A value the body produced, as a value of the machine that asked for it.
165
+ *
166
+ * A number, a string, a colour or absence is the same value in both, and
167
+ * nothing is copied. An object is not: a reference is an index into one heap,
168
+ * and the body's heap is its own, so handing the index over would name
169
+ * whatever the other heap happens to hold at that index. So the object is
170
+ * copied, and copied again on every bar that reads it, because the copy lives
171
+ * in a heap whose rollback undoes the bar it was made on.
172
+ *
173
+ * Only an array can arrive here. A read that declared a grid or drew an object
174
+ * is refused at the call (OS3006), so those two kinds cannot exist in a body.
175
+ */
176
+ carry(value, into) {
177
+ return copyInto(value, this.heap, into, new Map());
178
+ }
179
+ viewOf(bar, index, closed) {
180
+ return {
181
+ index,
182
+ open: bar.open ?? null,
183
+ high: bar.high ?? null,
184
+ low: bar.low ?? null,
185
+ close: bar.close ?? null,
186
+ volume: bar.volume ?? null,
187
+ time: bar.time ?? null,
188
+ previousClose: this.lastClose,
189
+ isConfirmed: closed,
190
+ isRealtime: false,
191
+ isNew: this.touches === 0,
192
+ isLast: !closed,
193
+ updates: this.touches + 1,
194
+ // The instrument record describes the chart's instrument, not the one a
195
+ // read names, and a requested bar is not on the chart's own grid either.
196
+ // So a body has no session, and it is told absence rather than false: a
197
+ // false would say this bar closes no session, which is a claim about an
198
+ // instrument whose hours the engine was never given.
199
+ isSessionFirst: null,
200
+ isSessionLast: null,
201
+ };
202
+ }
203
+ }
204
+ /**
205
+ * One value copied from one heap into another, sharing what it shared.
206
+ *
207
+ * The map is what keeps two references to one array two references to one copy,
208
+ * and it is what stops a value that refers to itself from recursing forever.
209
+ */
210
+ function copyInto(value, from, into, copied) {
211
+ if (!isRef(value))
212
+ return value;
213
+ const already = copied.get(value.id);
214
+ if (already !== undefined)
215
+ return reference(already);
216
+ const object = from.get(value.id);
217
+ if (object === undefined || object.kind !== 'array')
218
+ return ABSENT;
219
+ const items = [];
220
+ const id = into.allocate({ kind: 'array', items });
221
+ copied.set(value.id, id);
222
+ for (const item of object.items)
223
+ items.push(copyInto(item, from, into, copied));
224
+ into.countElements(items.length);
225
+ return reference(id);
226
+ }
227
+ //# sourceMappingURL=request-body.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request-body.js","sourceRoot":"","sources":["../../../src/core/engine/request-body.ts"],"names":[],"mappings":"AA4BA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAE/C,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAG3C,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AA0CnE;;;;;;GAMG;AACH,MAAM,UAAU,WAAW,CAAC,MAAuB,EAAE,OAAgB;IACnE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAC1B,OAAO;QACL,GAAG,MAAM;QACT,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,KAAK,EAAE,EAAE,GAAG,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE;KAC7D,CAAC;AACJ,CAAC;AAED,MAAM,OAAO,WAAW;IACL,KAAK,CAAY;IACjB,SAAS,CAAY;IACrB,MAAM,CAAS;IACf,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;IAClB,MAAM,CAAS;IACf,OAAO,CAAU;IAElC,8EAA8E;IACtE,OAAO,GAAG,CAAC,CAAC;IACpB,4EAA4E;IACpE,OAAO,GAAG,CAAC,CAAC;IACpB,iFAAiF;IACzE,SAAS,GAAkB,IAAI,CAAC;IACxC,8EAA8E;IAC7D,OAAO,GAAc,EAAE,CAAC;IACzC;;;;;;;OAOG;IACK,MAAM,GAAU,MAAM,CAAC;IAE/B,YAAY,KAAgB;QAC1B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;QAC1B,IAAI,CAAC,SAAS,GAAG,IAAI,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACtD,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QACxD,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,CACtB,KAAK,CAAC,MAAM,EACZ,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,SAAS,CAAC,OAAO,CAAC,EACxC,OAAO,CAAC,MAAM,CAAC,KAAK,EACpB,KAAK,CAAC,KAAK,CACZ,CAAC;QAEF,MAAM,WAAW,GAA4B,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;QAC7E,KAAK,MAAM,CAAC,EAAE,EAAE,SAAS,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK;YAAE,WAAW,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC;QAE/E,IAAI,CAAC,OAAO,GAAG,IAAI,OAAO,CACxB;YACE,OAAO;YACP,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,uEAAuE;YACvE,wEAAwE;YACxE,uEAAuE;YACvE,kBAAkB;YAClB,QAAQ,EAAE,IAAI,QAAQ,CAAC,EAAE,CAAC;YAC1B,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;YAC5B,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,WAAW;YACX,MAAM,EAAE,KAAK,CAAC,MAAM;SACrB,EACD,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,CACtF,CAAC;IACJ,CAAC;IAED,8EAA8E;IAC9E,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,8EAA8E;IAC9E,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED;;;;;;OAMG;IACH,IAAI,CAAC,GAAY;QACf,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACvC,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC;QAClB,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;;;;OAOG;IACH,MAAM,CAAC,GAAY;QACjB,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACtC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACrB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QACnB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;YACxB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACxB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC3B,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACrB,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACrE,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC,KAAK,IAAI,IAAI,CAAC;QACnC,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC;QAClB,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;QACjB,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,OAAO,CAAC,GAAY,EAAE,MAAe;QAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC;QAC3B,0EAA0E;QAC1E,wEAAwE;QACxE,wBAAwB;QACxB,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QACvB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACrB,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC/B,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC;QAC9B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAEzB,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QAC7C,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAEhC,MAAM,KAAK,GAAG,QAAQ,CACpB,KAAK;QACL,qEAAqE;QACrE,uCAAuC;QACvC,KAAK,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACxB,EAAE,WAAW,EAAE,MAAM,EAAE,EACvB,IAAI,CAAC,OAAO,KAAK,CAAC,EAClB,IAAI,CAAC,OAAO,GAAG,CAAC,EAChB,UAAU,CACX,CAAC;QACF,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACjD,IAAI,QAAQ,CAAC,IAAI,KAAK,KAAK,IAAI,QAAQ,CAAC,KAAK,KAAK,IAAI;gBAAE,SAAS;YACjE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;QACxE,CAAC;QACD,wEAAwE;QACxE,yEAAyE;QACzE,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM;YAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QAErF,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;QACjC,IAAI,MAAM,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YAC1C,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC;YAC1B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC;QACvE,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC5B,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;IAC/B,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,KAAK,CAAC,KAAY,EAAE,IAAU;QAC5B,OAAO,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,GAAG,EAAkB,CAAC,CAAC;IACrE,CAAC;IAEO,MAAM,CAAC,GAAY,EAAE,KAAa,EAAE,MAAe;QACzD,OAAO;YACL,KAAK;YACL,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,IAAI;YACtB,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,IAAI;YACtB,GAAG,EAAE,GAAG,CAAC,GAAG,IAAI,IAAI;YACpB,KAAK,EAAE,GAAG,CAAC,KAAK,IAAI,IAAI;YACxB,MAAM,EAAE,GAAG,CAAC,MAAM,IAAI,IAAI;YAC1B,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,IAAI;YACtB,aAAa,EAAE,IAAI,CAAC,SAAS;YAC7B,WAAW,EAAE,MAAM;YACnB,UAAU,EAAE,KAAK;YACjB,KAAK,EAAE,IAAI,CAAC,OAAO,KAAK,CAAC;YACzB,MAAM,EAAE,CAAC,MAAM;YACf,OAAO,EAAE,IAAI,CAAC,OAAO,GAAG,CAAC;YACzB,wEAAwE;YACxE,yEAAyE;YACzE,wEAAwE;YACxE,wEAAwE;YACxE,qDAAqD;YACrD,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,IAAI;SACpB,CAAC;IACJ,CAAC;CACF;AAED;;;;;GAKG;AACH,SAAS,QAAQ,CACf,KAAY,EACZ,IAAU,EACV,IAAU,EACV,MAA2B;IAE3B,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAChC,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACrC,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC,OAAO,CAAC,CAAC;IACrD,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAClC,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO;QAAE,OAAO,MAAM,CAAC;IACnE,MAAM,KAAK,GAAY,EAAE,CAAC;IAC1B,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;IACnD,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IACzB,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK;QAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;IAChF,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACjC,OAAO,SAAS,CAAC,EAAE,CAAC,CAAC;AACvB,CAAC"}
@@ -0,0 +1,79 @@
1
+ import type { Diagnostic } from '../diagnostics/index.js';
2
+ import type { EngineHost, RequestAnswer, RequestQuery, RequestRefusal } from './host.js';
3
+ import type { ResolvedInput } from './inputs.js';
4
+ import type { Request, RequestField } from './types.js';
5
+ import type { Timeframe } from './timeframe.js';
6
+ /** What a read holds once its identity, its timeframe and its source are fixed. */
7
+ export interface RequestPlan {
8
+ readonly request: Request;
9
+ readonly query: RequestQuery;
10
+ readonly timeframe: Timeframe;
11
+ /** The zone a calendar bucket is dated in, or nothing when none was stated. */
12
+ readonly zone: string | null;
13
+ }
14
+ export type PlanResult = {
15
+ readonly ok: true;
16
+ readonly plans: readonly RequestPlan[];
17
+ } | {
18
+ readonly ok: false;
19
+ readonly diagnostic: Diagnostic;
20
+ };
21
+ /**
22
+ * One of the three identity fields, resolved.
23
+ *
24
+ * Three forms and no fourth: the string the script wrote, the value of the
25
+ * setting it named, and one of the three chart facts that identify a chart
26
+ * rather than describe it.
27
+ */
28
+ export declare function identityOf(field: RequestField, inputs: readonly ResolvedInput[], host: EngineHost): string | null;
29
+ /**
30
+ * Every read the program makes, with its identity settled.
31
+ *
32
+ * Walks the nested reads as well, because a read written inside another is part
33
+ * of the program and a host handed a list with one missing would fetch less
34
+ * than the file asks for.
35
+ */
36
+ export declare function planRequests(requests: readonly Request[], inputs: readonly ResolvedInput[], host: EngineHost): PlanResult;
37
+ /**
38
+ * What the host says about one read.
39
+ *
40
+ * A host with no provider is not asked. A read of the chart's own instrument is
41
+ * then folded from the bars the engine already holds, and a read of another
42
+ * instrument cannot be: the engine holds none of that instrument's bars, so
43
+ * nothing to serve is the same answer as an instrument the host does not know.
44
+ */
45
+ export declare function askHost(plan: RequestPlan, host: EngineHost): RequestAnswer | undefined;
46
+ /**
47
+ * Whether this read can date a bucket at all.
48
+ *
49
+ * A day, week or month request is folded by the calendar, and a calendar
50
+ * boundary is a civil date read in a zone (`timeframe.ts`). A host that stated
51
+ * no timezone leaves the fold with no key for any bar, so the read is absent on
52
+ * every bar of the run and will be on every future one: nothing that arrives
53
+ * later supplies a fact the instrument record does not hold.
54
+ *
55
+ * That is a dead read, and a dead read a study cannot explain is the worst of
56
+ * the three: the trader has already looked at the blank pane. So it is answered
57
+ * here rather than left as absence, and `req.isReady` and `req.error` say it.
58
+ */
59
+ export declare function undatable(plan: RequestPlan): boolean;
60
+ /**
61
+ * What `req.error(read)` says about a read with no zone to date its buckets.
62
+ *
63
+ * OS6012's own message, because the zone is an instrument fact the host did not
64
+ * supply and that is exactly what this read needs and cannot default. Nothing
65
+ * is raised: a fact the host did not state leaves the read absent, and this is
66
+ * the sentence that explains the absence rather than a second answer to the
67
+ * question `host-interface.md` 4.5 leaves open.
68
+ */
69
+ export declare function undatableReason(query: RequestQuery): string;
70
+ /**
71
+ * The reason a refusal reads as through `req.error(read)`.
72
+ *
73
+ * The catalogue's own message, filled with the identity the read asked for and
74
+ * with the host's own words where it gave them. The host's words are carried
75
+ * and not paraphrased, because "the account's data subscription does not cover
76
+ * this instrument" is actionable and "the request failed" is not.
77
+ */
78
+ export declare function reasonFor(refusal: RequestRefusal, query: RequestQuery): string;
79
+ //# sourceMappingURL=request-plan.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request-plan.d.ts","sourceRoot":"","sources":["../../../src/core/engine/request-plan.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAE1D,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AACzF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAExD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD,mFAAmF;AACnF,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,+EAA+E;IAC/E,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED,MAAM,MAAM,UAAU,GAClB;IAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,WAAW,EAAE,CAAA;CAAE,GAC7D;IAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAA;CAAE,CAAC;AAE5D;;;;;;GAMG;AACH,wBAAgB,UAAU,CACxB,KAAK,EAAE,YAAY,EACnB,MAAM,EAAE,SAAS,aAAa,EAAE,EAChC,IAAI,EAAE,UAAU,GACf,MAAM,GAAG,IAAI,CAaf;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,SAAS,OAAO,EAAE,EAC5B,MAAM,EAAE,SAAS,aAAa,EAAE,EAChC,IAAI,EAAE,UAAU,GACf,UAAU,CAMZ;AAkGD;;;;;;;GAOG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,GAAG,aAAa,GAAG,SAAS,CAKtF;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAEpD;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,CAE3D;AAOD;;;;;;;GAOG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,YAAY,GAAG,MAAM,CA4B9E"}