openalgo-script 0.1.0-alpha.0 → 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 (997) hide show
  1. package/CHANGELOG.md +1249 -0
  2. package/README.md +288 -255
  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 +62 -6
  590. package/dist/core/index.d.ts.map +1 -1
  591. package/dist/core/index.js +49 -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/index.d.ts +2 -0
  788. package/dist/core/version/index.d.ts.map +1 -0
  789. package/dist/core/version/index.js +2 -0
  790. package/dist/core/version/index.js.map +1 -0
  791. package/dist/core/version/version.generated.d.ts +10 -0
  792. package/dist/core/version/version.generated.d.ts.map +1 -0
  793. package/dist/core/version/version.generated.js +14 -0
  794. package/dist/core/version/version.generated.js.map +1 -0
  795. package/package.json +88 -52
  796. package/spec/errors.json +3403 -3204
  797. package/src/adapters/charts/alerts.ts +116 -0
  798. package/src/adapters/charts/bars.ts +63 -0
  799. package/src/adapters/charts/candles.ts +137 -0
  800. package/src/adapters/charts/colours.ts +113 -0
  801. package/src/adapters/charts/columns.ts +99 -0
  802. package/src/adapters/charts/contract.ts +320 -0
  803. package/src/adapters/charts/descriptor.ts +199 -0
  804. package/src/adapters/charts/drawings.ts +213 -0
  805. package/src/adapters/charts/errors.ts +45 -0
  806. package/src/adapters/charts/fields.ts +74 -0
  807. package/src/adapters/charts/fills.ts +71 -0
  808. package/src/adapters/charts/index.ts +78 -0
  809. package/src/adapters/charts/levels.ts +92 -0
  810. package/src/adapters/charts/markers.ts +119 -0
  811. package/src/adapters/charts/paint.ts +101 -0
  812. package/src/adapters/charts/plots.ts +185 -0
  813. package/src/adapters/charts/produced.ts +68 -0
  814. package/src/adapters/charts/requests.ts +357 -0
  815. package/src/adapters/charts/run.ts +327 -0
  816. package/src/adapters/charts/settings.ts +273 -0
  817. package/src/adapters/charts/surfaces.ts +238 -0
  818. package/src/adapters/charts/tables.ts +155 -0
  819. package/src/core/catalogue/catalogue.generated.ts +17 -9
  820. package/src/core/catalogue/values.generated.ts +8 -0
  821. package/src/core/check/arguments.ts +126 -0
  822. package/src/core/check/call-sites.ts +385 -0
  823. package/src/core/check/call-warmup.ts +121 -0
  824. package/src/core/check/calls.ts +412 -0
  825. package/src/core/check/check.ts +183 -0
  826. package/src/core/check/checked.ts +228 -0
  827. package/src/core/check/checker.ts +393 -0
  828. package/src/core/check/conditional.ts +143 -0
  829. package/src/core/check/constant.ts +127 -0
  830. package/src/core/check/declaration.ts +230 -0
  831. package/src/core/check/expressions.ts +471 -0
  832. package/src/core/check/functions.ts +283 -0
  833. package/src/core/check/handles.ts +75 -0
  834. package/src/core/check/index.ts +67 -0
  835. package/src/core/check/library-bars.ts +194 -0
  836. package/src/core/check/library-orders.ts +290 -0
  837. package/src/core/check/library-output.ts +241 -0
  838. package/src/core/check/library-series.ts +457 -0
  839. package/src/core/check/library.ts +374 -0
  840. package/src/core/check/literals.ts +35 -0
  841. package/src/core/check/outputs.ts +152 -0
  842. package/src/core/check/statements.ts +465 -0
  843. package/src/core/check/suggest.ts +63 -0
  844. package/src/core/check/surface.ts +115 -0
  845. package/src/core/check/tags.ts +94 -0
  846. package/src/core/check/types.ts +260 -0
  847. package/src/core/check/warmup.ts +100 -0
  848. package/src/core/diagnostics/collector.ts +27 -1
  849. package/src/core/emit/calls.ts +415 -0
  850. package/src/core/emit/canonical.ts +81 -0
  851. package/src/core/emit/channels.ts +144 -0
  852. package/src/core/emit/code.ts +155 -0
  853. package/src/core/emit/colours.ts +75 -0
  854. package/src/core/emit/context.ts +461 -0
  855. package/src/core/emit/defaults.ts +150 -0
  856. package/src/core/emit/emit.ts +313 -0
  857. package/src/core/emit/events.ts +141 -0
  858. package/src/core/emit/expressions.ts +292 -0
  859. package/src/core/emit/functions.ts +195 -0
  860. package/src/core/emit/gaps.ts +44 -0
  861. package/src/core/emit/index.ts +74 -0
  862. package/src/core/emit/inputs.ts +179 -0
  863. package/src/core/emit/layout.ts +165 -0
  864. package/src/core/emit/meta.ts +104 -0
  865. package/src/core/emit/opcodes.ts +160 -0
  866. package/src/core/emit/outputs.ts +357 -0
  867. package/src/core/emit/pool.ts +102 -0
  868. package/src/core/emit/program.ts +385 -0
  869. package/src/core/emit/registers.ts +179 -0
  870. package/src/core/emit/request-scope.ts +52 -0
  871. package/src/core/emit/requests.ts +258 -0
  872. package/src/core/emit/requires.ts +91 -0
  873. package/src/core/emit/sha256.ts +119 -0
  874. package/src/core/emit/statements.ts +438 -0
  875. package/src/core/emit/values.ts +284 -0
  876. package/src/core/engine/alerts.ts +152 -0
  877. package/src/core/engine/arithmetic.ts +165 -0
  878. package/src/core/engine/bars.ts +224 -0
  879. package/src/core/engine/budget.ts +284 -0
  880. package/src/core/engine/channels.ts +171 -0
  881. package/src/core/engine/drawings.ts +127 -0
  882. package/src/core/engine/engine.ts +498 -0
  883. package/src/core/engine/errors.ts +100 -0
  884. package/src/core/engine/frames.ts +85 -0
  885. package/src/core/engine/grids.ts +98 -0
  886. package/src/core/engine/guard.ts +71 -0
  887. package/src/core/engine/host.ts +251 -0
  888. package/src/core/engine/index.ts +93 -0
  889. package/src/core/engine/inputs.ts +263 -0
  890. package/src/core/engine/ledger/call.ts +218 -0
  891. package/src/core/engine/ledger/closable.ts +269 -0
  892. package/src/core/engine/ledger/holdings.ts +354 -0
  893. package/src/core/engine/ledger/index.ts +28 -0
  894. package/src/core/engine/ledger/intent.ts +112 -0
  895. package/src/core/engine/ledger/ledger.ts +314 -0
  896. package/src/core/engine/ledger/place.ts +277 -0
  897. package/src/core/engine/ledger/positions.ts +123 -0
  898. package/src/core/engine/ledger/refuse.ts +378 -0
  899. package/src/core/engine/ledger/row.ts +318 -0
  900. package/src/core/engine/ledger/sizing.ts +292 -0
  901. package/src/core/engine/library/arrays.ts +316 -0
  902. package/src/core/engine/library/averages.ts +97 -0
  903. package/src/core/engine/library/binding.ts +325 -0
  904. package/src/core/engine/library/chart.ts +115 -0
  905. package/src/core/engine/library/colours.ts +111 -0
  906. package/src/core/engine/library/dates.ts +109 -0
  907. package/src/core/engine/library/index.ts +103 -0
  908. package/src/core/engine/library/maths.ts +134 -0
  909. package/src/core/engine/library/objects.ts +265 -0
  910. package/src/core/engine/library/oscillators.ts +124 -0
  911. package/src/core/engine/library/ranges.ts +51 -0
  912. package/src/core/engine/library/series.ts +236 -0
  913. package/src/core/engine/library/state.ts +47 -0
  914. package/src/core/engine/library/studies.ts +150 -0
  915. package/src/core/engine/library/text.ts +303 -0
  916. package/src/core/engine/library/trend.ts +79 -0
  917. package/src/core/engine/library/volume.ts +101 -0
  918. package/src/core/engine/load.ts +104 -0
  919. package/src/core/engine/machine.ts +446 -0
  920. package/src/core/engine/memory.ts +129 -0
  921. package/src/core/engine/operations.ts +171 -0
  922. package/src/core/engine/orders.ts +121 -0
  923. package/src/core/engine/registers.ts +104 -0
  924. package/src/core/engine/request-body.ts +328 -0
  925. package/src/core/engine/request-plan.ts +270 -0
  926. package/src/core/engine/requests.ts +382 -0
  927. package/src/core/engine/results.ts +41 -0
  928. package/src/core/engine/series.ts +82 -0
  929. package/src/core/engine/session/hours.ts +86 -0
  930. package/src/core/engine/session/index.ts +17 -0
  931. package/src/core/engine/session/record.ts +191 -0
  932. package/src/core/engine/session/spec.ts +45 -0
  933. package/src/core/engine/timeframe.ts +161 -0
  934. package/src/core/engine/types.ts +47 -0
  935. package/src/core/engine/values/heap.ts +295 -0
  936. package/src/core/engine/values/index.ts +34 -0
  937. package/src/core/engine/values/value.ts +158 -0
  938. package/src/core/engine/verify-budgets.ts +202 -0
  939. package/src/core/engine/verify-code.ts +332 -0
  940. package/src/core/engine/verify-requests.ts +255 -0
  941. package/src/core/engine/verify-shape.ts +164 -0
  942. package/src/core/engine/verify-tables.ts +176 -0
  943. package/src/core/engine/verify.ts +341 -0
  944. package/src/core/index.ts +129 -6
  945. package/src/core/parse/expressions.ts +1 -1
  946. package/src/core/parse/functions.ts +109 -109
  947. package/src/core/parse/names.ts +29 -2
  948. package/src/core/parse/switches.ts +105 -105
  949. package/src/core/stdlib/averages/exponential.ts +119 -0
  950. package/src/core/stdlib/averages/index.ts +45 -0
  951. package/src/core/stdlib/averages/select.ts +71 -0
  952. package/src/core/stdlib/averages/shaped.ts +161 -0
  953. package/src/core/stdlib/averages/simple.ts +139 -0
  954. package/src/core/stdlib/calendar/civil.ts +89 -0
  955. package/src/core/stdlib/calendar/fields.ts +124 -0
  956. package/src/core/stdlib/calendar/format.ts +71 -0
  957. package/src/core/stdlib/calendar/index.ts +15 -0
  958. package/src/core/stdlib/calendar/zone.ts +161 -0
  959. package/src/core/stdlib/index.ts +400 -0
  960. package/src/core/stdlib/maths/arithmetic.ts +74 -0
  961. package/src/core/stdlib/maths/elementary.ts +124 -0
  962. package/src/core/stdlib/maths/index.ts +43 -0
  963. package/src/core/stdlib/maths/rounding.ts +78 -0
  964. package/src/core/stdlib/momentum/convergence.ts +82 -0
  965. package/src/core/stdlib/momentum/index.ts +47 -0
  966. package/src/core/stdlib/momentum/pressure.ts +141 -0
  967. package/src/core/stdlib/momentum/rates.ts +188 -0
  968. package/src/core/stdlib/momentum/rsi.ts +49 -0
  969. package/src/core/stdlib/momentum/stochastic.ts +147 -0
  970. package/src/core/stdlib/series/changes.ts +177 -0
  971. package/src/core/stdlib/series/conditions.ts +74 -0
  972. package/src/core/stdlib/series/extremes.ts +92 -0
  973. package/src/core/stdlib/series/index.ts +83 -0
  974. package/src/core/stdlib/series/pivots.ts +63 -0
  975. package/src/core/stdlib/series/statistics.ts +207 -0
  976. package/src/core/stdlib/series/totals.ts +164 -0
  977. package/src/core/stdlib/trend/directional.ts +196 -0
  978. package/src/core/stdlib/trend/index.ts +13 -0
  979. package/src/core/stdlib/trend/psar.ts +131 -0
  980. package/src/core/stdlib/trend/supertrend.ts +100 -0
  981. package/src/core/stdlib/values/bar.ts +54 -0
  982. package/src/core/stdlib/values/index.ts +14 -0
  983. package/src/core/stdlib/values/lookback.ts +198 -0
  984. package/src/core/stdlib/values/region.ts +86 -0
  985. package/src/core/stdlib/values/tail.ts +58 -0
  986. package/src/core/stdlib/values/value.ts +82 -0
  987. package/src/core/stdlib/volatility/bands.ts +178 -0
  988. package/src/core/stdlib/volatility/deviation.ts +111 -0
  989. package/src/core/stdlib/volatility/index.ts +48 -0
  990. package/src/core/stdlib/volatility/measures.ts +96 -0
  991. package/src/core/stdlib/volatility/range.ts +143 -0
  992. package/src/core/stdlib/volume/accumulation.ts +152 -0
  993. package/src/core/stdlib/volume/flow.ts +173 -0
  994. package/src/core/stdlib/volume/index.ts +43 -0
  995. package/src/core/stdlib/volume/weighted.ts +101 -0
  996. package/src/core/version/index.ts +1 -0
  997. package/src/core/version/version.generated.ts +15 -0
@@ -0,0 +1,223 @@
1
+ /**
2
+ * How much each order of a call sends, and which position it is sent against,
3
+ * `stdlib.md` 17.1.
4
+ *
5
+ * **This is the half of a call that is arithmetic.** `place.ts` says what each
6
+ * call means and dispatches to the two functions here; these two decide how many
7
+ * orders the call becomes, how large each is, and which position reference each
8
+ * one carries. They were one file with the dispatch until the second question
9
+ * arrived: issue 0018 is about attachment rather than about quantity, and the
10
+ * two answers are long enough written down that keeping them beside the
11
+ * vocabulary of the calls made one file out of two subjects.
12
+ *
13
+ * The two entry points are `entering`, for a call that states a side and a size,
14
+ * and `flattening`, for one that reduces what the leg holds. What they differ
15
+ * about is not the split but the budget, and the difference is the whole of
16
+ * `holdings.ts`: an entry sends the size the script wrote whatever the leg holds,
17
+ * so the only question is where its units land; a close chooses its own number,
18
+ * so it may only choose one that has settled.
19
+ */
20
+ import { closableUnits } from './closable.js';
21
+ import { divide, holdings, joining, opposing, outgoingFor } from './holdings.js';
22
+ /** An order that adds to a position, or whose size the engine cannot count. */
23
+ export function adding(placement) {
24
+ return { placement, reduces: null };
25
+ }
26
+ /** The fields every placement states, so each case below states only its own. */
27
+ export const NOTHING = {
28
+ side: null,
29
+ qty: null,
30
+ qtyType: 'units',
31
+ type: null,
32
+ limit: null,
33
+ trigger: null,
34
+ target: null,
35
+ stop: null,
36
+ profit: null,
37
+ loss: null,
38
+ };
39
+ /** One order of an entry, at the quantity and the position it is given. */
40
+ function placing(entry, qty, qtyType, positionRef) {
41
+ return {
42
+ ...NOTHING,
43
+ kind: 'place',
44
+ side: entry.side,
45
+ qty,
46
+ qtyType,
47
+ type: entry.type,
48
+ limit: entry.limit,
49
+ trigger: entry.trigger,
50
+ tag: entry.tag,
51
+ positionRef,
52
+ };
53
+ }
54
+ /**
55
+ * The orders an entry sends, which is two where it crosses zero.
56
+ *
57
+ * **An instruction that would take a leg from long to short is sent as two
58
+ * orders** (`stdlib.md` 17.1), one that closes the outgoing position and one
59
+ * that opens the replacement, each carrying its own position reference. The
60
+ * reason is not tidiness: a single order that crossed zero would leave a late
61
+ * fill with no way to say which of the two positions it settled, and during a
62
+ * flip a leg holds both at once. `sell(qty = abs(pos.size) + more)` is the
63
+ * spelling the documentation teaches, and it is `order.reverse` with the
64
+ * arithmetic written out.
65
+ *
66
+ * **The closing half is what is left to close, not what the leg holds.** An
67
+ * order the destination has not answered has filled nothing, so a leg with a
68
+ * close already going has nothing left for the outgoing half to take, whether
69
+ * that close was sent on this bar or on one before it.
70
+ *
71
+ * **What it crosses is decided per position, not from the leg's net.** The net
72
+ * is folded from settled fills, so on a silent destination it reads zero while
73
+ * an entry is still going and an opposing entry is not seen as opposing
74
+ * anything at all: `buy(qty = 6)` and then `sell(qty = 9)` a bar later put both
75
+ * orders on reference 1, which opened six long and settled three short. The
76
+ * question is about one position rather than about the leg, so it is asked of
77
+ * one position (`holdings.ts`), and the answer is the same whether or not the
78
+ * destination has answered yet.
79
+ *
80
+ * **An order that spans two positions is that many orders.** A leg holds more
81
+ * than one position whenever an order that opposes it is outstanding, and each
82
+ * of them is reduced by an order of its own, oldest first, for the same reason
83
+ * the flip is two orders: a late fill has to be able to say which position it
84
+ * settled.
85
+ *
86
+ * **The reference is minted in every unit; only the arithmetic waits.** The
87
+ * split subtracts a position folded from filled quantities from a quantity the
88
+ * script stated, and those are the same kind of number only in a declaration
89
+ * counting in units: in lots, cash or an equity percent the engine cannot say
90
+ * how much of the instruction closes and how much opens, and the lot size that
91
+ * would tell it is the fact OS7005 is deferred on. Minting a reference needs
92
+ * none of that arithmetic. So an order the engine cannot size against the leg
93
+ * is still sent on a position of its own rather than on the outgoing one:
94
+ * `buy(qty = 3)` then `sell(qty = 9)` under a declaration counting in lots took
95
+ * reference 1 from seventy five units to minus one hundred and fifty, which is
96
+ * the crossing 17.1 is unconditional about and the late fill with no owner the
97
+ * split exists to prevent. What does not hold, and what has to exist before it
98
+ * can, is written where a reader meets it: `stdlib.md` 17.1 and OS7005.
99
+ */
100
+ export function entering(ctx, entry, qty) {
101
+ // The declaration's own size where the call named none, `stdlib.md` 17.2.
102
+ const wanted = qty ?? ctx.declaredQty;
103
+ const book = holdings(ctx);
104
+ // Nothing to cross: the leg holds no position this order opposes, so it opens
105
+ // one or joins the one it is on the side of.
106
+ if (opposing(book, entry.side).length === 0) {
107
+ return [adding(placing(entry, wanted, ctx.qtyType, openingOn(ctx, book, entry.side)))];
108
+ }
109
+ if (ctx.qtyType !== 'units') {
110
+ return [
111
+ {
112
+ // A position of its own, in every unit, because minting one needs no
113
+ // lot size. On the outgoing reference this order was the crossing
114
+ // 17.1 refuses outright: one order taking one position from one sign
115
+ // to the other, with a late fill on the entry it replaced settling
116
+ // against a book that had already gone the other way.
117
+ placement: placing(entry, wanted, ctx.qtyType, ctx.mint()),
118
+ // Unreadable in units, so it is taken to have reduced the whole of what
119
+ // was left: see `closable.ts` on why that is the only safe reading.
120
+ reduces: { part: null, claimed: closableUnits(ctx, null), counted: false },
121
+ },
122
+ ];
123
+ }
124
+ // What each position it opposes can absorb, oldest first. A position holding
125
+ // six is sent six of the nine, whether those six have settled or are still
126
+ // going, because six of this order is what brings that position back to zero.
127
+ const split = divide(book, entry.side, wanted, (one) => one.units);
128
+ const out = split.shares.map((share) => ({
129
+ placement: placing(entry, share.units, 'units', share.ref),
130
+ reduces: { part: null, claimed: share.units, counted: true },
131
+ }));
132
+ if (split.left === 0)
133
+ return out;
134
+ // The replacement is a position of its own where the leg holds none on this
135
+ // side, so that a fill on an outgoing order settles the position it
136
+ // belonged to.
137
+ out.push(adding(placing(entry, split.left, 'units', openingOn(ctx, book, entry.side))));
138
+ return out;
139
+ }
140
+ /** The reference an order that opens or adds to a position carries. */
141
+ function openingOn(ctx, book, side) {
142
+ return joining(book, side) ?? ctx.mint();
143
+ }
144
+ /** One order of a flattening call, at the quantity and position it is given. */
145
+ function reducing(side, qty, qtyType, tag, positionRef) {
146
+ return { ...NOTHING, kind: 'place', side, qty, qtyType, type: 'market', tag, positionRef };
147
+ }
148
+ /**
149
+ * The orders a flattening call sends, which is one per position it reduces.
150
+ *
151
+ * A quantity the script stated is in the declaration's own unit and is passed
152
+ * through as written. A quantity the engine worked out is in units, because a
153
+ * filled quantity is what it was folded from.
154
+ *
155
+ * **It is divided across the positions holding it, oldest first.** A leg holds
156
+ * more than one position whenever an order that opposes it is outstanding, and
157
+ * this sized against the whole leg and attached the result to a single
158
+ * reference with nothing asking whether that reference could absorb it: a leg
159
+ * holding two positions was flattened by one order large enough to take the
160
+ * first of them through zero and out the other side. Each position gets an
161
+ * order of its own, bounded by what has settled on it and is not already
162
+ * working against it, which is `closable.ts`'s rule read per position.
163
+ *
164
+ * **Only what has settled on a position**, never what is working into it. A
165
+ * close chooses its own quantity, so a close counting an entry that has not
166
+ * settled would send units that may never exist. That is the one place this
167
+ * differs from an opposing entry, which is sent at the size the script wrote
168
+ * whatever the leg holds, and whose only open question is where its units land.
169
+ *
170
+ * **A quantity the engine cannot read is one order.** It cannot be divided at
171
+ * all, so it goes on the position it is closing, oldest first, and that
172
+ * position is what it may take past zero: the one shape of 17.1 an engine does
173
+ * not keep, named there and in OS7005 and waiting on the same lot size. Which
174
+ * position that is, is not the question the two numbers above answer, and
175
+ * `outgoingFor` is where it is asked: an order that is not choosing a quantity
176
+ * is not held back by a position having no quantity left to give.
177
+ *
178
+ * `part` is what the order is counted against afterwards: the tag a close
179
+ * named, or the leg as a whole. A stated quantity is counted only where the
180
+ * declaration counts in units, for the reason `Reduction` gives.
181
+ */
182
+ export function flattening(ctx, units, side, qty, tag, part) {
183
+ // Nothing to flatten and no size named: an instruction about a position the
184
+ // strategy does not hold, which is not an error and is not an order either.
185
+ if (units <= 0 && qty === null)
186
+ return [];
187
+ const sending = qty ?? units;
188
+ // A quantity the engine worked out is counted as itself. One the script
189
+ // stated in a unit the engine cannot read is counted as the whole of what was
190
+ // left, which is what keeps a close after it from sending the position again.
191
+ const counted = qty === null || ctx.qtyType === 'units';
192
+ const book = holdings(ctx);
193
+ if (!counted) {
194
+ // The position it is closing, which is the oldest one holding the side this
195
+ // order reduces (`holdings.ts`). **Where the leg holds no such position the
196
+ // call sends nothing**, which is the same answer the division below gives
197
+ // for the same reason: a close is never minted a position of its own
198
+ // (`stdlib.md` 17.1), and an order sent against a position on its own side
199
+ // would be a close adding to one. A part can read as holding something
200
+ // while no reference does, because a part is netted over the rows carrying
201
+ // one tag and a reference is not.
202
+ const outgoing = outgoingFor(ctx, book, side);
203
+ if (outgoing === null)
204
+ return [];
205
+ return [
206
+ {
207
+ placement: reducing(side, sending, ctx.qtyType, tag, outgoing),
208
+ reduces: { part, claimed: units, counted: false },
209
+ },
210
+ ];
211
+ }
212
+ // Anything left when every position it reduces is full is left unsent rather
213
+ // than pushed onto one of them past its own size. A close states no quantity
214
+ // of its own, so the next one measures what is left and sends it, which is
215
+ // 17.2's idempotence and not a silence. By construction there is nothing
216
+ // left: what a close may send is the leg's settled net less what is working
217
+ // against it, and that is never more than the positions on that side hold.
218
+ return divide(book, side, sending, (one) => one.settled).shares.map((share) => ({
219
+ placement: reducing(side, share.units, 'units', tag, share.ref),
220
+ reduces: { part, claimed: share.units, counted: true },
221
+ }));
222
+ }
223
+ //# sourceMappingURL=sizing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sizing.js","sourceRoot":"","sources":["../../../../src/core/engine/ledger/sizing.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import type { Value } from '../values/index.js';
2
+ import type { CallContext, ManifestEntry } from './binding.js';
3
+ export declare const ARRAY_ENTRIES: readonly ManifestEntry[];
4
+ /**
5
+ * Emptying an array, which shares its name and its arity with emptying a grid.
6
+ *
7
+ * `stdlib.md` 14.3 gives `clear` two signatures, and both take one argument, so
8
+ * the compiled program's `lib.functions` carries one entry for the pair and the
9
+ * engine is the place that tells them apart. It does it by asking the heap what
10
+ * the handle points at, which is the only run-time dispatch in the whole
11
+ * library and is here because the format leaves it nowhere else to be.
12
+ */
13
+ export declare function clearArray(ctx: CallContext, args: readonly Value[]): boolean;
14
+ //# sourceMappingURL=arrays.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"arrays.d.ts","sourceRoot":"","sources":["../../../../src/core/engine/library/arrays.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAGhD,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AA8H/D,eAAO,MAAM,aAAa,EAAE,SAAS,aAAa,EAqJjD,CAAC;AAEF;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,KAAK,EAAE,GAAG,OAAO,CAM5E"}
@@ -0,0 +1,285 @@
1
+ import { isNumber, reference, valuesEqual } from '../values/index.js';
2
+ import { entry, refAt, stringAt, valueAt, wholeAt } from './binding.js';
3
+ import { result } from '../../stdlib/index.js';
4
+ /** The array a handle names, or nothing when the handle is absent or stale. */
5
+ function held(ctx, args, index) {
6
+ const handle = refAt(args, index);
7
+ if (handle === null)
8
+ return undefined;
9
+ const object = ctx.heap.get(handle.id);
10
+ return object !== undefined && object.kind === 'array' ? object : undefined;
11
+ }
12
+ /** Announces a change before making it, so the bar's undo journal has the old one. */
13
+ function changing(ctx, args, index) {
14
+ const handle = refAt(args, index);
15
+ if (handle === null)
16
+ return undefined;
17
+ const object = ctx.heap.get(handle.id);
18
+ if (object === undefined || object.kind !== 'array')
19
+ return undefined;
20
+ ctx.heap.touch(handle.id);
21
+ return object;
22
+ }
23
+ function grew(ctx, array, args, by) {
24
+ ctx.heap.countElements(by);
25
+ ctx.guard.array(ctx.span, ctx.nameOf(valueAt(args, 0)), array.items.length);
26
+ }
27
+ /** The index an array call was given, checked against the array's own extent. */
28
+ function within(ctx, args, at, array, limit) {
29
+ const index = args[at];
30
+ if (index === undefined || index === null || !isNumber(index) || !Number.isInteger(index) ||
31
+ index < 0 || index >= limit) {
32
+ ctx.guard.badIndex(ctx.span, ctx.nameOf(valueAt(args, 0)), index === undefined || index === null ? 'none' : String(index), array.items.length);
33
+ }
34
+ return index;
35
+ }
36
+ /** The order `sort` uses, written down so two engines cannot differ. */
37
+ function rank(a, b) {
38
+ if (a === null)
39
+ return b === null ? 0 : 1;
40
+ if (b === null)
41
+ return -1;
42
+ if (typeof a === 'number' && typeof b === 'number')
43
+ return a < b ? -1 : a > b ? 1 : 0;
44
+ if (typeof a === 'string' && typeof b === 'string')
45
+ return a < b ? -1 : a > b ? 1 : 0;
46
+ if (typeof a === 'boolean' && typeof b === 'boolean')
47
+ return a === b ? 0 : a ? 1 : -1;
48
+ return 0;
49
+ }
50
+ function numbersOf(array) {
51
+ return array.items.map((item) => (isNumber(item) ? item : null));
52
+ }
53
+ /**
54
+ * The five reductions over an array's contents.
55
+ *
56
+ * These are the array forms of names the numeric library also carries over a
57
+ * series, and they are written here rather than called through because the
58
+ * library's forms take a length and a lookback and these take an extent the
59
+ * script chose. The accumulation order is the same one: index order, oldest
60
+ * first, summed fresh.
61
+ *
62
+ * An absent element makes the answer absent rather than being skipped, on the
63
+ * same rule as every lookback: a mean over an array with a hole in it is a mean
64
+ * over fewer values than the script thinks it has. `sum` of an empty array is
65
+ * zero, and `avg`, `min`, `max` and `stdev` of one are absent, because there is
66
+ * a sum of nothing and there is no mean of nothing.
67
+ */
68
+ function reduce(array) {
69
+ const values = numbersOf(array);
70
+ for (const value of values)
71
+ if (value === null)
72
+ return null;
73
+ return values;
74
+ }
75
+ function sumOf(array) {
76
+ const values = reduce(array);
77
+ if (values === null)
78
+ return null;
79
+ let total = 0;
80
+ for (const value of values)
81
+ total += value;
82
+ return result(total);
83
+ }
84
+ function extremeOf(array, wantHigh) {
85
+ const values = reduce(array);
86
+ if (values === null || values.length === 0)
87
+ return null;
88
+ let best = values[0];
89
+ for (const value of values) {
90
+ const one = value;
91
+ if (wantHigh ? one > best : one < best)
92
+ best = one;
93
+ }
94
+ return result(best);
95
+ }
96
+ function meanOf(array) {
97
+ const values = reduce(array);
98
+ if (values === null || values.length === 0)
99
+ return null;
100
+ const total = sumOf(array);
101
+ return total === null ? null : result(total / values.length);
102
+ }
103
+ function spreadOf(array) {
104
+ const values = reduce(array);
105
+ const mean = meanOf(array);
106
+ if (values === null || mean === null)
107
+ return null;
108
+ let squares = 0;
109
+ for (const value of values) {
110
+ const deviation = value - mean;
111
+ squares += deviation * deviation;
112
+ }
113
+ const variance = result(squares / values.length);
114
+ return variance === null || variance < 0 ? null : result(Math.sqrt(variance));
115
+ }
116
+ function newArray(ctx, items) {
117
+ ctx.guard.array(ctx.span, 'the array', items.length);
118
+ return reference(ctx.heap.allocate({ kind: 'array', items }));
119
+ }
120
+ export const ARRAY_ENTRIES = [
121
+ entry('size', 'arr', (ctx, args) => held(ctx, args, 0)?.items.length ?? null),
122
+ entry('element', 'arr i', (ctx, args) => {
123
+ const array = held(ctx, args, 0);
124
+ if (array === undefined)
125
+ return null;
126
+ return array.items[within(ctx, args, 1, array, array.items.length)] ?? null;
127
+ }),
128
+ entry('set', 'arr i v', (ctx, args) => {
129
+ const array = changing(ctx, args, 0);
130
+ if (array === undefined)
131
+ return null;
132
+ array.items[within(ctx, args, 1, array, array.items.length)] = valueAt(args, 2);
133
+ return null;
134
+ }),
135
+ entry('push', 'arr v', (ctx, args) => {
136
+ const array = changing(ctx, args, 0);
137
+ if (array === undefined)
138
+ return null;
139
+ array.items.push(valueAt(args, 1));
140
+ grew(ctx, array, args, 1);
141
+ return null;
142
+ }),
143
+ entry('pop', 'arr', (ctx, args) => {
144
+ const array = changing(ctx, args, 0);
145
+ if (array === undefined)
146
+ return null;
147
+ if (array.items.length === 0) {
148
+ ctx.guard.badIndex(ctx.span, ctx.nameOf(valueAt(args, 0)), 'the last element', 0);
149
+ }
150
+ const value = array.items.pop() ?? null;
151
+ ctx.heap.countElements(-1);
152
+ return value;
153
+ }),
154
+ entry('shift', 'arr', (ctx, args) => {
155
+ const array = changing(ctx, args, 0);
156
+ if (array === undefined)
157
+ return null;
158
+ if (array.items.length === 0) {
159
+ ctx.guard.badIndex(ctx.span, ctx.nameOf(valueAt(args, 0)), 'the first element', 0);
160
+ }
161
+ const value = array.items.shift() ?? null;
162
+ ctx.heap.countElements(-1);
163
+ return value;
164
+ }),
165
+ entry('unshift', 'arr v', (ctx, args) => {
166
+ const array = changing(ctx, args, 0);
167
+ if (array === undefined)
168
+ return null;
169
+ array.items.unshift(valueAt(args, 1));
170
+ grew(ctx, array, args, 1);
171
+ return null;
172
+ }),
173
+ // Insert accepts the position one past the end, which is an append: a loop
174
+ // that inserts at `size(arr)` is how a script builds a list in order, and
175
+ // refusing it would make the last element a special case.
176
+ entry('insert', 'arr i v', (ctx, args) => {
177
+ const array = changing(ctx, args, 0);
178
+ if (array === undefined)
179
+ return null;
180
+ const at = within(ctx, args, 1, array, array.items.length + 1);
181
+ array.items.splice(at, 0, valueAt(args, 2));
182
+ grew(ctx, array, args, 1);
183
+ return null;
184
+ }),
185
+ entry('remove', 'arr i', (ctx, args) => {
186
+ const array = changing(ctx, args, 0);
187
+ if (array === undefined)
188
+ return null;
189
+ const at = within(ctx, args, 1, array, array.items.length);
190
+ const removed = array.items.splice(at, 1)[0] ?? null;
191
+ ctx.heap.countElements(-1);
192
+ return removed;
193
+ }),
194
+ entry('slice', 'arr from to', (ctx, args) => {
195
+ const array = held(ctx, args, 0);
196
+ if (array === undefined)
197
+ return null;
198
+ const from = wholeAt(ctx, 'slice', 'from', args, 1);
199
+ const to = wholeAt(ctx, 'slice', 'to', args, 2);
200
+ if (from === null || to === null)
201
+ return null;
202
+ return newArray(ctx, array.items.slice(from, to));
203
+ }),
204
+ entry('copy', 'arr', (ctx, args) => {
205
+ const array = held(ctx, args, 0);
206
+ return array === undefined ? null : newArray(ctx, [...array.items]);
207
+ }),
208
+ entry('indexOf', 'arr v', (ctx, args) => {
209
+ const array = held(ctx, args, 0);
210
+ if (array === undefined)
211
+ return null;
212
+ const wanted = valueAt(args, 1);
213
+ for (let i = 0; i < array.items.length; i += 1) {
214
+ if (valuesEqual(array.items[i] ?? null, wanted))
215
+ return i;
216
+ }
217
+ return -1;
218
+ }),
219
+ entry('arrayEqual', 'a b', (ctx, args) => {
220
+ const a = held(ctx, args, 0);
221
+ const b = held(ctx, args, 1);
222
+ if (a === undefined || b === undefined)
223
+ return null;
224
+ if (a.items.length !== b.items.length)
225
+ return false;
226
+ for (let i = 0; i < a.items.length; i += 1) {
227
+ if (!valuesEqual(a.items[i] ?? null, b.items[i] ?? null))
228
+ return false;
229
+ }
230
+ return true;
231
+ }),
232
+ entry('sort', 'arr order', (ctx, args) => {
233
+ const array = changing(ctx, args, 0);
234
+ if (array === undefined)
235
+ return null;
236
+ const descending = stringAt(args, 1) === 'desc';
237
+ array.items.sort((a, b) => (descending ? rank(b, a) : rank(a, b)));
238
+ return null;
239
+ }),
240
+ entry('reverse', 'arr', (ctx, args) => {
241
+ const array = changing(ctx, args, 0);
242
+ if (array === undefined)
243
+ return null;
244
+ array.items.reverse();
245
+ return null;
246
+ }),
247
+ entry('sum', 'arr', (ctx, args) => {
248
+ const array = held(ctx, args, 0);
249
+ return array === undefined ? null : sumOf(array);
250
+ }),
251
+ entry('avg', 'arr', (ctx, args) => {
252
+ const array = held(ctx, args, 0);
253
+ return array === undefined ? null : meanOf(array);
254
+ }),
255
+ entry('min', 'arr', (ctx, args) => {
256
+ const array = held(ctx, args, 0);
257
+ return array === undefined ? null : extremeOf(array, false);
258
+ }),
259
+ entry('max', 'arr', (ctx, args) => {
260
+ const array = held(ctx, args, 0);
261
+ return array === undefined ? null : extremeOf(array, true);
262
+ }),
263
+ entry('stdev', 'arr', (ctx, args) => {
264
+ const array = held(ctx, args, 0);
265
+ return array === undefined ? null : spreadOf(array);
266
+ }),
267
+ ];
268
+ /**
269
+ * Emptying an array, which shares its name and its arity with emptying a grid.
270
+ *
271
+ * `stdlib.md` 14.3 gives `clear` two signatures, and both take one argument, so
272
+ * the compiled program's `lib.functions` carries one entry for the pair and the
273
+ * engine is the place that tells them apart. It does it by asking the heap what
274
+ * the handle points at, which is the only run-time dispatch in the whole
275
+ * library and is here because the format leaves it nowhere else to be.
276
+ */
277
+ export function clearArray(ctx, args) {
278
+ const array = changing(ctx, args, 0);
279
+ if (array === undefined)
280
+ return false;
281
+ ctx.heap.countElements(-array.items.length);
282
+ array.items.length = 0;
283
+ return true;
284
+ }
285
+ //# sourceMappingURL=arrays.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"arrays.js","sourceRoot":"","sources":["../../../../src/core/engine/library/arrays.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import type { MaType, Weighted } from '../../stdlib/index.js';
2
+ import type { CallContext, ManifestEntry } from './binding.js';
3
+ import type { Value } from '../values/index.js';
4
+ /** The named average, or absence for a string that is not one of the six. */
5
+ export declare function typeAt(args: readonly Value[], index: number): MaType | null;
6
+ /** A source paired with the bar's volume, which is what the weighted forms take. */
7
+ export declare function weighted(ctx: CallContext, src: number | null): Weighted;
8
+ export declare const AVERAGE_ENTRIES: readonly ManifestEntry[];
9
+ //# sourceMappingURL=averages.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"averages.d.ts","sourceRoot":"","sources":["../../../../src/core/engine/library/averages.ts"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAE9D,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAGhD,6EAA6E;AAC7E,wBAAgB,MAAM,CAAC,IAAI,EAAE,SAAS,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAG3E;AAED,oFAAoF;AACpF,wBAAgB,QAAQ,CAAC,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,QAAQ,CAEvE;AAED,eAAO,MAAM,eAAe,EAAE,SAAS,aAAa,EAuDnD,CAAC"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * The moving averages that take more than a source and a length, `stdlib.md`
3
+ * section 4.
4
+ *
5
+ * **Every number here is the numeric library's**, for the reason `series.ts`
6
+ * sets out beside the same wiring. This file is a table of call sites: it hands
7
+ * each step the arguments a call supplied and the state region the machine
8
+ * holds for that call site, and nothing more.
9
+ *
10
+ * Two of them read the bar as well as their arguments. `vwma` weights by the
11
+ * bar's volume and `ma` may be switched to it, so both are given the volume
12
+ * from the bar being executed rather than from a source argument; a script
13
+ * cannot pass a volume to either, and `stdlib.md` writes neither with one.
14
+ */
15
+ import { almaStep, demaStep, isMaType, linregStep, maStep, swmaStep, temaStep, vwmaStep, } from '../../stdlib/index.js';
16
+ import { lengthAt, numberAt, stringAt } from './binding.js';
17
+ import { stateful } from './state.js';
18
+ /** The named average, or absence for a string that is not one of the six. */
19
+ export function typeAt(args, index) {
20
+ const named = stringAt(args, index);
21
+ return isMaType(named) ? named : null;
22
+ }
23
+ /** A source paired with the bar's volume, which is what the weighted forms take. */
24
+ export function weighted(ctx, src) {
25
+ return { src, volume: ctx.bar.volume };
26
+ }
27
+ export const AVERAGE_ENTRIES = [
28
+ stateful('dema', 'src len', (ctx, args) => demaStep(ctx.state, '', numberAt(args, 0), lengthAt(ctx, 'dema', 'len', args, 1))),
29
+ stateful('tema', 'src len', (ctx, args) => temaStep(ctx.state, '', numberAt(args, 0), lengthAt(ctx, 'tema', 'len', args, 1))),
30
+ stateful('vwma', 'src len', (ctx, args) => vwmaStep(ctx.state, '', weighted(ctx, numberAt(args, 0)), lengthAt(ctx, 'vwma', 'len', args, 1))),
31
+ stateful('swma', 'src', (ctx, args) => swmaStep(ctx.state, 'q', numberAt(args, 0))),
32
+ stateful('alma', 'src len offset sigma', (ctx, args) => almaStep(ctx.state, 'q', numberAt(args, 0), lengthAt(ctx, 'alma', 'len', args, 1), numberAt(args, 2), numberAt(args, 3))),
33
+ stateful('linreg', 'src len offset', (ctx, args) => linregStep(ctx.state, 'q', numberAt(args, 0), lengthAt(ctx, 'linreg', 'len', args, 1), numberAt(args, 2))),
34
+ // An unrecognised type is absence on every bar rather than a fall back to the
35
+ // simple mean, which `select.ts` gives the reason for: a study that quietly
36
+ // drew a different average from the one its settings name would be wrong in a
37
+ // way nobody could see. A literal is refused at compile time (OS3008); this
38
+ // is the computed case.
39
+ stateful('ma', 'src len type', (ctx, args) => maStep(ctx.state, '', weighted(ctx, numberAt(args, 0)), lengthAt(ctx, 'ma', 'len', args, 1), typeAt(args, 2))),
40
+ ];
41
+ //# sourceMappingURL=averages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"averages.js","sourceRoot":"","sources":["../../../../src/core/engine/library/averages.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EACL,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,QAAQ,GACT,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAG5D,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,6EAA6E;AAC7E,MAAM,UAAU,MAAM,CAAC,IAAsB,EAAE,KAAa;IAC1D,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACpC,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AACxC,CAAC;AAED,oFAAoF;AACpF,MAAM,UAAU,QAAQ,CAAC,GAAgB,EAAE,GAAkB;IAC3D,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;AACzC,CAAC;AAED,MAAM,CAAC,MAAM,eAAe,GAA6B;IACvD,QAAQ,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CACxC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAClF;IAED,QAAQ,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CACxC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAClF;IAED,QAAQ,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CACxC,QAAQ,CACN,GAAG,CAAC,KAAK,EACT,EAAE,EACF,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAChC,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CACtC,CACF;IAED,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAEnF,QAAQ,CAAC,MAAM,EAAE,sBAAsB,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CACrD,QAAQ,CACN,GAAG,CAAC,KAAK,EACT,GAAG,EACH,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,EACjB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,EACrC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,EACjB,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAClB,CACF;IAED,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CACjD,UAAU,CACR,GAAG,CAAC,KAAK,EACT,GAAG,EACH,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,EACjB,QAAQ,CAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,EACvC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAClB,CACF;IAED,8EAA8E;IAC9E,4EAA4E;IAC5E,8EAA8E;IAC9E,4EAA4E;IAC5E,wBAAwB;IACxB,QAAQ,CAAC,IAAI,EAAE,cAAc,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAC3C,MAAM,CACJ,GAAG,CAAC,KAAK,EACT,EAAE,EACF,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAChC,QAAQ,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,EACnC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAChB,CACF;CACF,CAAC"}