@quantform/core 0.6.6 → 0.7.0-beta.4

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 (521) hide show
  1. package/dist/as-readonly.d.ts +3 -0
  2. package/dist/as-readonly.d.ts.map +1 -0
  3. package/dist/as-readonly.js +8 -0
  4. package/dist/{domain → asset}/asset.d.ts +6 -1
  5. package/dist/asset/asset.d.ts.map +1 -0
  6. package/dist/{domain → asset}/asset.js +16 -7
  7. package/dist/asset/asset.spec.d.ts +2 -0
  8. package/dist/asset/asset.spec.d.ts.map +1 -0
  9. package/dist/asset/asset.spec.js +54 -0
  10. package/dist/asset/index.d.ts +2 -0
  11. package/dist/asset/index.d.ts.map +1 -0
  12. package/dist/{adapter/paper → asset}/index.js +1 -2
  13. package/dist/cli/build.js +1 -1
  14. package/dist/cli/dev.d.ts.map +1 -1
  15. package/dist/cli/dev.js +15 -11
  16. package/dist/cli/index.js +8 -8
  17. package/dist/cli/internal/workspace.js +1 -1
  18. package/dist/cli/pull.d.ts.map +1 -1
  19. package/dist/cli/pull.js +50 -20
  20. package/dist/cli/{test.d.ts → replay.d.ts} +1 -1
  21. package/dist/cli/replay.d.ts.map +1 -0
  22. package/dist/cli/{test.js → replay.js} +18 -20
  23. package/dist/cli/run.d.ts.map +1 -1
  24. package/dist/cli/run.js +16 -11
  25. package/dist/component/distinct-until-timesamp-changed.d.ts +5 -0
  26. package/dist/component/distinct-until-timesamp-changed.d.ts.map +1 -0
  27. package/dist/component/distinct-until-timesamp-changed.js +9 -0
  28. package/dist/component/error.d.ts +17 -0
  29. package/dist/component/error.d.ts.map +1 -0
  30. package/dist/component/error.js +33 -0
  31. package/dist/component/index.d.ts +8 -0
  32. package/dist/component/index.d.ts.map +1 -0
  33. package/dist/{store → component}/index.js +7 -9
  34. package/dist/{domain → component}/ohlc-operator.d.ts +1 -1
  35. package/dist/component/ohlc-operator.d.ts.map +1 -0
  36. package/dist/{domain → component}/ohlc-operator.js +4 -5
  37. package/dist/component/ohlc-operator.spec.d.ts +2 -0
  38. package/dist/component/ohlc-operator.spec.d.ts.map +1 -0
  39. package/dist/component/ohlc-operator.spec.js +110 -0
  40. package/dist/component/ohlc.d.ts.map +1 -0
  41. package/dist/component/ohlc.spec.d.ts +2 -0
  42. package/dist/component/ohlc.spec.d.ts.map +1 -0
  43. package/dist/component/ohlc.spec.js +25 -0
  44. package/dist/component/timeframe.d.ts.map +1 -0
  45. package/dist/core.d.ts +3 -0
  46. package/dist/core.d.ts.map +1 -0
  47. package/dist/core.js +15 -0
  48. package/dist/defined.d.ts +3 -0
  49. package/dist/defined.d.ts.map +1 -0
  50. package/dist/defined.js +8 -0
  51. package/dist/exclude.d.ts +3 -0
  52. package/dist/exclude.d.ts.map +1 -0
  53. package/dist/exclude.js +8 -0
  54. package/dist/index.d.ts +25 -27
  55. package/dist/index.d.ts.map +1 -1
  56. package/dist/index.js +25 -66
  57. package/dist/{domain → instrument/commission}/commission.d.ts +1 -1
  58. package/dist/instrument/commission/commission.d.ts.map +1 -0
  59. package/dist/{domain → instrument/commission}/commission.js +2 -2
  60. package/dist/instrument/commission/commission.spec.d.ts +2 -0
  61. package/dist/instrument/commission/commission.spec.d.ts.map +1 -0
  62. package/dist/instrument/commission/commission.spec.js +30 -0
  63. package/dist/instrument/index.d.ts +3 -0
  64. package/dist/instrument/index.d.ts.map +1 -0
  65. package/dist/{adapter → instrument}/index.js +2 -4
  66. package/dist/{domain → instrument}/instrument.d.ts +4 -4
  67. package/dist/instrument/instrument.d.ts.map +1 -0
  68. package/dist/{domain → instrument}/instrument.js +8 -5
  69. package/dist/instrument/instrument.spec.d.ts +2 -0
  70. package/dist/instrument/instrument.spec.d.ts.map +1 -0
  71. package/dist/instrument/instrument.spec.js +51 -0
  72. package/dist/make-test-module.d.ts +13 -0
  73. package/dist/make-test-module.d.ts.map +1 -0
  74. package/dist/make-test-module.js +46 -0
  75. package/dist/module.d.ts +57 -0
  76. package/dist/module.d.ts.map +1 -0
  77. package/dist/module.js +136 -0
  78. package/dist/module.spec.d.ts +2 -0
  79. package/dist/module.spec.d.ts.map +1 -0
  80. package/dist/module.spec.js +86 -0
  81. package/dist/not-found.d.ts +2 -0
  82. package/dist/not-found.d.ts.map +1 -0
  83. package/dist/{domain/component.js → not-found.js} +2 -0
  84. package/dist/replay/index.d.ts +7 -0
  85. package/dist/replay/index.d.ts.map +1 -0
  86. package/dist/replay/index.js +22 -0
  87. package/dist/replay/use-replay-coordinator.d.ts +10 -0
  88. package/dist/replay/use-replay-coordinator.d.ts.map +1 -0
  89. package/dist/replay/use-replay-coordinator.js +119 -0
  90. package/dist/replay/use-replay-options.d.ts +15 -0
  91. package/dist/replay/use-replay-options.d.ts.map +1 -0
  92. package/dist/replay/use-replay-options.js +20 -0
  93. package/dist/replay/use-replay-reader.d.ts +7 -0
  94. package/dist/replay/use-replay-reader.d.ts.map +1 -0
  95. package/dist/replay/use-replay-reader.js +32 -0
  96. package/dist/replay/use-replay-reader.spec.d.ts +2 -0
  97. package/dist/replay/use-replay-reader.spec.d.ts.map +1 -0
  98. package/dist/replay/use-replay-reader.spec.js +58 -0
  99. package/dist/replay/use-replay-storage.d.ts +10 -0
  100. package/dist/replay/use-replay-storage.d.ts.map +1 -0
  101. package/dist/replay/use-replay-storage.js +10 -0
  102. package/dist/replay/use-replay-writer.d.ts +6 -0
  103. package/dist/replay/use-replay-writer.d.ts.map +1 -0
  104. package/dist/replay/use-replay-writer.js +14 -0
  105. package/dist/replay/use-replay-writer.spec.d.ts +2 -0
  106. package/dist/replay/use-replay-writer.spec.d.ts.map +1 -0
  107. package/dist/replay/use-replay-writer.spec.js +53 -0
  108. package/dist/replay/use-replay.d.ts +10 -0
  109. package/dist/replay/use-replay.d.ts.map +1 -0
  110. package/dist/replay/use-replay.js +32 -0
  111. package/dist/replay/use-replay.spec.d.ts +2 -0
  112. package/dist/replay/use-replay.spec.d.ts.map +1 -0
  113. package/dist/replay/use-replay.spec.js +106 -0
  114. package/dist/replay/with-replay.d.ts +4 -0
  115. package/dist/replay/with-replay.d.ts.map +1 -0
  116. package/dist/replay/with-replay.js +8 -0
  117. package/dist/session/index.d.ts +4 -0
  118. package/dist/session/index.d.ts.map +1 -0
  119. package/dist/session/index.js +19 -0
  120. package/dist/session/use-session-object.d.ts +18 -0
  121. package/dist/session/use-session-object.d.ts.map +1 -0
  122. package/dist/session/use-session-object.js +13 -0
  123. package/dist/session/use-session-storage.d.ts +2 -0
  124. package/dist/session/use-session-storage.d.ts.map +1 -0
  125. package/dist/session/use-session-storage.js +10 -0
  126. package/dist/session/use-session.d.ts +4 -0
  127. package/dist/session/use-session.d.ts.map +1 -0
  128. package/dist/session/use-session.js +7 -0
  129. package/dist/shared/datetime.d.ts +1 -1
  130. package/dist/shared/datetime.d.ts.map +1 -1
  131. package/dist/shared/decimals.d.ts.map +1 -1
  132. package/dist/shared/decimals.js +5 -0
  133. package/dist/shared/decimals.spec.d.ts +2 -0
  134. package/dist/shared/decimals.spec.d.ts.map +1 -0
  135. package/dist/shared/decimals.spec.js +28 -0
  136. package/dist/shared/index.d.ts +3 -7
  137. package/dist/shared/index.d.ts.map +1 -1
  138. package/dist/shared/index.js +3 -7
  139. package/dist/simulator/index.d.ts +2 -0
  140. package/dist/simulator/index.d.ts.map +1 -0
  141. package/dist/{adapter/backtester → simulator}/index.js +1 -2
  142. package/dist/simulator/use-simulator.d.ts +2 -0
  143. package/dist/simulator/use-simulator.d.ts.map +1 -0
  144. package/dist/simulator/use-simulator.js +9 -0
  145. package/dist/simulator/use-simulator.spec.d.ts +2 -0
  146. package/dist/simulator/use-simulator.spec.d.ts.map +1 -0
  147. package/dist/simulator/use-simulator.spec.js +49 -0
  148. package/dist/storage/in-memory/in-memory-storage.d.ts +9 -0
  149. package/dist/storage/in-memory/in-memory-storage.d.ts.map +1 -0
  150. package/dist/storage/in-memory/in-memory-storage.factory.d.ts +6 -0
  151. package/dist/storage/in-memory/in-memory-storage.factory.d.ts.map +1 -0
  152. package/dist/storage/in-memory/in-memory-storage.factory.js +23 -0
  153. package/dist/storage/in-memory/in-memory-storage.js +72 -0
  154. package/dist/storage/in-memory/in-memory-storage.spec.d.ts +2 -0
  155. package/dist/storage/in-memory/in-memory-storage.spec.d.ts.map +1 -0
  156. package/dist/storage/in-memory/in-memory-storage.spec.js +167 -0
  157. package/dist/storage/in-memory/index.d.ts +3 -0
  158. package/dist/storage/in-memory/index.d.ts.map +1 -0
  159. package/dist/storage/in-memory/index.js +18 -0
  160. package/dist/storage/index.d.ts +3 -3
  161. package/dist/storage/index.d.ts.map +1 -1
  162. package/dist/storage/index.js +3 -3
  163. package/dist/storage/storage.d.ts +51 -61
  164. package/dist/storage/storage.d.ts.map +1 -1
  165. package/dist/storage/storage.js +20 -85
  166. package/dist/storage/use-cache.d.ts +4 -0
  167. package/dist/storage/use-cache.d.ts.map +1 -0
  168. package/dist/storage/use-cache.js +34 -0
  169. package/dist/storage/use-cache.spec.d.ts +2 -0
  170. package/dist/storage/use-cache.spec.d.ts.map +1 -0
  171. package/dist/storage/use-cache.spec.js +36 -0
  172. package/dist/storage/use-storage-factory.d.ts +10 -0
  173. package/dist/storage/use-storage-factory.d.ts.map +1 -0
  174. package/dist/storage/use-storage-factory.js +14 -0
  175. package/dist/storage/use-storage.d.ts +3 -0
  176. package/dist/storage/use-storage.d.ts.map +1 -0
  177. package/dist/storage/use-storage.js +11 -0
  178. package/dist/strat.d.ts +7 -0
  179. package/dist/strat.d.ts.map +1 -0
  180. package/dist/strat.js +7 -0
  181. package/dist/use-execution-mode.d.ts +29 -0
  182. package/dist/use-execution-mode.d.ts.map +1 -0
  183. package/dist/use-execution-mode.js +37 -0
  184. package/dist/use-hash.d.ts +5 -0
  185. package/dist/use-hash.d.ts.map +1 -0
  186. package/dist/use-hash.js +7 -0
  187. package/dist/use-hash.spec.d.ts +2 -0
  188. package/dist/use-hash.spec.d.ts.map +1 -0
  189. package/dist/use-hash.spec.js +16 -0
  190. package/dist/use-lock.d.ts +9 -0
  191. package/dist/use-lock.d.ts.map +1 -0
  192. package/dist/use-lock.js +40 -0
  193. package/dist/use-logger.d.ts +10 -0
  194. package/dist/use-logger.d.ts.map +1 -0
  195. package/dist/use-logger.js +37 -0
  196. package/dist/use-memo.d.ts +21 -0
  197. package/dist/use-memo.d.ts.map +1 -0
  198. package/dist/use-memo.js +35 -0
  199. package/dist/use-memo.spec.d.ts +2 -0
  200. package/dist/use-memo.spec.d.ts.map +1 -0
  201. package/dist/use-memo.spec.js +35 -0
  202. package/dist/use-request.d.ts +16 -0
  203. package/dist/use-request.d.ts.map +1 -0
  204. package/dist/use-request.js +27 -0
  205. package/dist/use-socket.d.ts +6 -0
  206. package/dist/use-socket.d.ts.map +1 -0
  207. package/dist/use-socket.js +52 -0
  208. package/dist/use-state.d.ts +4 -0
  209. package/dist/use-state.d.ts.map +1 -0
  210. package/dist/use-state.js +24 -0
  211. package/dist/use-state.spec.d.ts +2 -0
  212. package/dist/use-state.spec.d.ts.map +1 -0
  213. package/dist/use-state.spec.js +36 -0
  214. package/dist/use-timestamp.d.ts +2 -0
  215. package/dist/use-timestamp.d.ts.map +1 -0
  216. package/dist/use-timestamp.js +13 -0
  217. package/dist/use.d.ts +5 -0
  218. package/dist/use.d.ts.map +1 -0
  219. package/dist/use.js +20 -0
  220. package/dist/use.spec.d.ts +2 -0
  221. package/dist/use.spec.d.ts.map +1 -0
  222. package/dist/use.spec.js +47 -0
  223. package/jest.config.ts +23 -2
  224. package/package.json +14 -11
  225. package/src/as-readonly.ts +5 -0
  226. package/src/{domain → asset}/asset.spec.ts +4 -4
  227. package/src/{domain → asset}/asset.ts +17 -6
  228. package/src/asset/index.ts +1 -0
  229. package/src/cli/build.ts +1 -1
  230. package/src/cli/dev.ts +18 -13
  231. package/src/cli/index.ts +7 -7
  232. package/src/cli/internal/workspace.ts +1 -1
  233. package/src/cli/pull.ts +22 -10
  234. package/src/cli/replay.ts +31 -0
  235. package/src/cli/run.ts +17 -13
  236. package/src/component/distinct-until-timesamp-changed.ts +11 -0
  237. package/src/component/error.ts +32 -0
  238. package/src/component/index.ts +7 -0
  239. package/src/{domain → component}/ohlc-operator.spec.ts +5 -6
  240. package/src/{domain → component}/ohlc-operator.ts +2 -3
  241. package/src/{domain → component}/ohlc.spec.ts +2 -2
  242. package/src/{domain → component}/ohlc.ts +2 -2
  243. package/src/core.ts +14 -0
  244. package/src/defined.ts +6 -0
  245. package/src/exclude.ts +9 -0
  246. package/src/index.ts +27 -80
  247. package/src/{domain → instrument/commission}/commission.spec.ts +4 -3
  248. package/src/{domain → instrument/commission}/commission.ts +1 -1
  249. package/src/instrument/index.ts +2 -0
  250. package/src/{domain → instrument}/instrument.spec.ts +11 -6
  251. package/src/{domain → instrument}/instrument.ts +12 -8
  252. package/src/make-test-module.ts +46 -0
  253. package/src/module.spec.ts +74 -0
  254. package/src/module.ts +156 -0
  255. package/src/not-found.ts +1 -0
  256. package/src/replay/index.ts +6 -0
  257. package/src/replay/use-replay-coordinator.ts +142 -0
  258. package/src/replay/use-replay-options.ts +23 -0
  259. package/src/replay/use-replay-reader.spec.ts +64 -0
  260. package/src/replay/use-replay-reader.ts +23 -0
  261. package/src/replay/use-replay-storage.ts +8 -0
  262. package/src/replay/use-replay-writer.spec.ts +56 -0
  263. package/src/replay/use-replay-writer.ts +17 -0
  264. package/src/replay/use-replay.spec.ts +132 -0
  265. package/src/replay/use-replay.ts +34 -0
  266. package/src/replay/with-replay.ts +10 -0
  267. package/src/session/index.ts +3 -0
  268. package/src/session/use-session-object.ts +26 -0
  269. package/src/session/use-session-storage.ts +9 -0
  270. package/src/session/use-session.ts +5 -0
  271. package/src/shared/decimals.spec.ts +1 -1
  272. package/src/shared/decimals.ts +5 -0
  273. package/src/shared/index.ts +3 -7
  274. package/src/simulator/index.ts +1 -0
  275. package/src/simulator/use-simulator.spec.ts +54 -0
  276. package/src/simulator/use-simulator.ts +7 -0
  277. package/src/storage/in-memory/in-memory-storage.factory.ts +16 -0
  278. package/src/storage/in-memory/in-memory-storage.spec.ts +193 -0
  279. package/src/storage/in-memory/in-memory-storage.ts +80 -0
  280. package/src/storage/in-memory/index.ts +2 -0
  281. package/src/storage/index.ts +3 -3
  282. package/src/storage/storage.ts +63 -119
  283. package/src/storage/use-cache.spec.ts +31 -0
  284. package/src/storage/use-cache.ts +50 -0
  285. package/src/storage/use-storage-factory.ts +17 -0
  286. package/src/storage/use-storage.ts +11 -0
  287. package/src/strat.ts +7 -0
  288. package/src/use-execution-mode.ts +41 -0
  289. package/src/use-hash.spec.ts +16 -0
  290. package/src/use-hash.ts +5 -0
  291. package/src/use-lock.ts +52 -0
  292. package/src/use-logger.ts +47 -0
  293. package/src/use-memo.spec.ts +30 -0
  294. package/src/use-memo.ts +35 -0
  295. package/src/use-request.ts +47 -0
  296. package/src/use-socket.ts +59 -0
  297. package/src/use-state.spec.ts +31 -0
  298. package/src/use-state.ts +30 -0
  299. package/src/use-timestamp.ts +12 -0
  300. package/src/use.spec.ts +46 -0
  301. package/src/use.ts +33 -0
  302. package/tsconfig.json +7 -4
  303. package/dist/adapter/adapter-aggregate.d.ts +0 -57
  304. package/dist/adapter/adapter-aggregate.d.ts.map +0 -1
  305. package/dist/adapter/adapter-aggregate.js +0 -157
  306. package/dist/adapter/adapter.d.ts +0 -54
  307. package/dist/adapter/adapter.d.ts.map +0 -1
  308. package/dist/adapter/adapter.js +0 -20
  309. package/dist/adapter/backtester/backtester-adapter.d.ts +0 -30
  310. package/dist/adapter/backtester/backtester-adapter.d.ts.map +0 -1
  311. package/dist/adapter/backtester/backtester-adapter.js +0 -67
  312. package/dist/adapter/backtester/backtester-cursor.d.ts +0 -16
  313. package/dist/adapter/backtester/backtester-cursor.d.ts.map +0 -1
  314. package/dist/adapter/backtester/backtester-cursor.js +0 -52
  315. package/dist/adapter/backtester/backtester-streamer.d.ts +0 -50
  316. package/dist/adapter/backtester/backtester-streamer.d.ts.map +0 -1
  317. package/dist/adapter/backtester/backtester-streamer.js +0 -119
  318. package/dist/adapter/backtester/error.d.ts +0 -3
  319. package/dist/adapter/backtester/error.d.ts.map +0 -1
  320. package/dist/adapter/backtester/error.js +0 -11
  321. package/dist/adapter/backtester/index.d.ts +0 -3
  322. package/dist/adapter/backtester/index.d.ts.map +0 -1
  323. package/dist/adapter/error.d.ts +0 -4
  324. package/dist/adapter/error.d.ts.map +0 -1
  325. package/dist/adapter/error.js +0 -15
  326. package/dist/adapter/index.d.ts +0 -5
  327. package/dist/adapter/index.d.ts.map +0 -1
  328. package/dist/adapter/paper/engine/paper-engine.d.ts +0 -12
  329. package/dist/adapter/paper/engine/paper-engine.d.ts.map +0 -1
  330. package/dist/adapter/paper/engine/paper-engine.js +0 -109
  331. package/dist/adapter/paper/index.d.ts +0 -3
  332. package/dist/adapter/paper/index.d.ts.map +0 -1
  333. package/dist/adapter/paper/paper-adapter.d.ts +0 -30
  334. package/dist/adapter/paper/paper-adapter.d.ts.map +0 -1
  335. package/dist/adapter/paper/paper-adapter.js +0 -87
  336. package/dist/cli/error.d.ts +0 -2
  337. package/dist/cli/error.d.ts.map +0 -1
  338. package/dist/cli/error.js +0 -7
  339. package/dist/cli/test.d.ts.map +0 -1
  340. package/dist/domain/asset.d.ts.map +0 -1
  341. package/dist/domain/balance-operator.d.ts +0 -7
  342. package/dist/domain/balance-operator.d.ts.map +0 -1
  343. package/dist/domain/balance-operator.js +0 -9
  344. package/dist/domain/balance.d.ts +0 -47
  345. package/dist/domain/balance.d.ts.map +0 -1
  346. package/dist/domain/balance.js +0 -97
  347. package/dist/domain/commission.d.ts.map +0 -1
  348. package/dist/domain/component.d.ts +0 -6
  349. package/dist/domain/component.d.ts.map +0 -1
  350. package/dist/domain/error.d.ts +0 -7
  351. package/dist/domain/error.d.ts.map +0 -1
  352. package/dist/domain/error.js +0 -23
  353. package/dist/domain/index.d.ts +0 -22
  354. package/dist/domain/index.d.ts.map +0 -1
  355. package/dist/domain/index.js +0 -37
  356. package/dist/domain/instrument-operator.d.ts +0 -7
  357. package/dist/domain/instrument-operator.d.ts.map +0 -1
  358. package/dist/domain/instrument-operator.js +0 -13
  359. package/dist/domain/instrument.d.ts.map +0 -1
  360. package/dist/domain/ohlc-operator.d.ts.map +0 -1
  361. package/dist/domain/ohlc.d.ts.map +0 -1
  362. package/dist/domain/order-operator.d.ts +0 -8
  363. package/dist/domain/order-operator.d.ts.map +0 -1
  364. package/dist/domain/order-operator.js +0 -16
  365. package/dist/domain/order.d.ts +0 -24
  366. package/dist/domain/order.d.ts.map +0 -1
  367. package/dist/domain/order.js +0 -49
  368. package/dist/domain/orderbook-operator.d.ts +0 -7
  369. package/dist/domain/orderbook-operator.d.ts.map +0 -1
  370. package/dist/domain/orderbook-operator.js +0 -9
  371. package/dist/domain/orderbook.d.ts +0 -30
  372. package/dist/domain/orderbook.d.ts.map +0 -1
  373. package/dist/domain/orderbook.js +0 -20
  374. package/dist/domain/position-operator.d.ts +0 -13
  375. package/dist/domain/position-operator.d.ts.map +0 -1
  376. package/dist/domain/position-operator.js +0 -45
  377. package/dist/domain/position.d.ts +0 -18
  378. package/dist/domain/position.d.ts.map +0 -1
  379. package/dist/domain/position.js +0 -23
  380. package/dist/domain/session-builder.d.ts +0 -54
  381. package/dist/domain/session-builder.d.ts.map +0 -1
  382. package/dist/domain/session-builder.js +0 -106
  383. package/dist/domain/session.d.ts +0 -77
  384. package/dist/domain/session.d.ts.map +0 -1
  385. package/dist/domain/session.js +0 -162
  386. package/dist/domain/timeframe.d.ts.map +0 -1
  387. package/dist/domain/trade-operator.d.ts +0 -7
  388. package/dist/domain/trade-operator.d.ts.map +0 -1
  389. package/dist/domain/trade-operator.js +0 -9
  390. package/dist/domain/trade.d.ts +0 -16
  391. package/dist/domain/trade.d.ts.map +0 -1
  392. package/dist/domain/trade.js +0 -17
  393. package/dist/shared/collections.d.ts +0 -29
  394. package/dist/shared/collections.d.ts.map +0 -1
  395. package/dist/shared/collections.js +0 -123
  396. package/dist/shared/logger.d.ts +0 -8
  397. package/dist/shared/logger.d.ts.map +0 -1
  398. package/dist/shared/logger.js +0 -33
  399. package/dist/shared/pipe.d.ts +0 -5
  400. package/dist/shared/pipe.d.ts.map +0 -1
  401. package/dist/shared/pipe.js +0 -8
  402. package/dist/shared/policy.d.ts +0 -2
  403. package/dist/shared/policy.d.ts.map +0 -1
  404. package/dist/shared/policy.js +0 -8
  405. package/dist/storage/cache.d.ts +0 -10
  406. package/dist/storage/cache.d.ts.map +0 -1
  407. package/dist/storage/cache.js +0 -43
  408. package/dist/storage/feed.d.ts +0 -38
  409. package/dist/storage/feed.d.ts.map +0 -1
  410. package/dist/storage/feed.js +0 -108
  411. package/dist/storage/measurement.d.ts +0 -34
  412. package/dist/storage/measurement.d.ts.map +0 -1
  413. package/dist/storage/measurement.js +0 -59
  414. package/dist/store/error.d.ts +0 -9
  415. package/dist/store/error.d.ts.map +0 -1
  416. package/dist/store/error.js +0 -31
  417. package/dist/store/index.d.ts +0 -10
  418. package/dist/store/index.d.ts.map +0 -1
  419. package/dist/store/store-balance-event.d.ts +0 -46
  420. package/dist/store/store-balance-event.d.ts.map +0 -1
  421. package/dist/store/store-balance-event.js +0 -134
  422. package/dist/store/store-event.d.ts +0 -7
  423. package/dist/store/store-event.d.ts.map +0 -1
  424. package/dist/store/store-event.js +0 -2
  425. package/dist/store/store-instrument-event.d.ts +0 -22
  426. package/dist/store/store-instrument-event.d.ts.map +0 -1
  427. package/dist/store/store-instrument-event.js +0 -60
  428. package/dist/store/store-order-event.d.ts +0 -64
  429. package/dist/store/store-order-event.d.ts.map +0 -1
  430. package/dist/store/store-order-event.js +0 -185
  431. package/dist/store/store-orderbook-event.d.ts +0 -13
  432. package/dist/store/store-orderbook-event.d.ts.map +0 -1
  433. package/dist/store/store-orderbook-event.js +0 -43
  434. package/dist/store/store-position-event.d.ts +0 -22
  435. package/dist/store/store-position-event.d.ts.map +0 -1
  436. package/dist/store/store-position-event.js +0 -96
  437. package/dist/store/store-state.d.ts +0 -28
  438. package/dist/store/store-state.d.ts.map +0 -1
  439. package/dist/store/store-state.js +0 -29
  440. package/dist/store/store-trade-event.d.ts +0 -17
  441. package/dist/store/store-trade-event.d.ts.map +0 -1
  442. package/dist/store/store-trade-event.js +0 -34
  443. package/dist/store/store.d.ts +0 -15
  444. package/dist/store/store.d.ts.map +0 -1
  445. package/dist/store/store.js +0 -32
  446. package/src/adapter/adapter-aggregate.ts +0 -171
  447. package/src/adapter/adapter.ts +0 -83
  448. package/src/adapter/backtester/backtester-adapter.ts +0 -96
  449. package/src/adapter/backtester/backtester-cursor.spec.ts +0 -44
  450. package/src/adapter/backtester/backtester-cursor.ts +0 -47
  451. package/src/adapter/backtester/backtester-streamer.spec.ts +0 -60
  452. package/src/adapter/backtester/backtester-streamer.ts +0 -155
  453. package/src/adapter/backtester/error.ts +0 -7
  454. package/src/adapter/backtester/index.ts +0 -2
  455. package/src/adapter/error.ts +0 -13
  456. package/src/adapter/index.ts +0 -4
  457. package/src/adapter/paper/engine/paper-engine.spec.ts +0 -116
  458. package/src/adapter/paper/engine/paper-engine.ts +0 -151
  459. package/src/adapter/paper/index.ts +0 -2
  460. package/src/adapter/paper/paper-adapter.ts +0 -111
  461. package/src/cli/error.ts +0 -5
  462. package/src/cli/test.ts +0 -40
  463. package/src/domain/balance-operator.spec.ts +0 -26
  464. package/src/domain/balance-operator.ts +0 -15
  465. package/src/domain/balance.spec.ts +0 -116
  466. package/src/domain/balance.ts +0 -123
  467. package/src/domain/component.ts +0 -6
  468. package/src/domain/error.ts +0 -27
  469. package/src/domain/index.ts +0 -21
  470. package/src/domain/instrument-operator.spec.ts +0 -35
  471. package/src/domain/instrument-operator.ts +0 -25
  472. package/src/domain/order-operator.spec.ts +0 -85
  473. package/src/domain/order-operator.ts +0 -23
  474. package/src/domain/order.spec.ts +0 -43
  475. package/src/domain/order.ts +0 -68
  476. package/src/domain/orderbook-operator.spec.ts +0 -40
  477. package/src/domain/orderbook-operator.ts +0 -15
  478. package/src/domain/orderbook.spec.ts +0 -26
  479. package/src/domain/orderbook.ts +0 -30
  480. package/src/domain/position-operator.spec.ts +0 -64
  481. package/src/domain/position-operator.ts +0 -71
  482. package/src/domain/position.spec.ts +0 -43
  483. package/src/domain/position.ts +0 -31
  484. package/src/domain/session-builder.ts +0 -158
  485. package/src/domain/session.spec.ts +0 -33
  486. package/src/domain/session.ts +0 -256
  487. package/src/domain/trade-operator.spec.ts +0 -35
  488. package/src/domain/trade-operator.ts +0 -15
  489. package/src/domain/trade.spec.ts +0 -21
  490. package/src/domain/trade.ts +0 -20
  491. package/src/shared/collections.spec.ts +0 -34
  492. package/src/shared/collections.ts +0 -154
  493. package/src/shared/logger.ts +0 -39
  494. package/src/shared/pipe.ts +0 -12
  495. package/src/shared/policy.ts +0 -5
  496. package/src/storage/cache.spec.ts +0 -18
  497. package/src/storage/cache.ts +0 -37
  498. package/src/storage/feed.ts +0 -124
  499. package/src/storage/measurement.ts +0 -56
  500. package/src/store/error.ts +0 -36
  501. package/src/store/index.ts +0 -9
  502. package/src/store/store-balance-event.spec.ts +0 -30
  503. package/src/store/store-balance-event.ts +0 -167
  504. package/src/store/store-event.ts +0 -8
  505. package/src/store/store-instrument-event.spec.ts +0 -26
  506. package/src/store/store-instrument-event.ts +0 -83
  507. package/src/store/store-order-event.spec.ts +0 -32
  508. package/src/store/store-order-event.ts +0 -219
  509. package/src/store/store-orderbook-event.spec.ts +0 -39
  510. package/src/store/store-orderbook-event.ts +0 -56
  511. package/src/store/store-position-event.ts +0 -121
  512. package/src/store/store-state.ts +0 -48
  513. package/src/store/store-trade-event.spec.ts +0 -62
  514. package/src/store/store-trade-event.ts +0 -42
  515. package/src/store/store.spec.ts +0 -182
  516. package/src/store/store.ts +0 -37
  517. package/dist/{domain → component}/ohlc.d.ts +0 -0
  518. package/dist/{domain → component}/ohlc.js +0 -0
  519. package/dist/{domain → component}/timeframe.d.ts +0 -0
  520. package/dist/{domain → component}/timeframe.js +1 -1
  521. /package/src/{domain → component}/timeframe.ts +0 -0
@@ -0,0 +1,3 @@
1
+ import { Observable } from 'rxjs';
2
+ export declare function asReadonly<T>(): (input: Observable<T>) => Observable<Readonly<T>>;
3
+ //# sourceMappingURL=as-readonly.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"as-readonly.d.ts","sourceRoot":"","sources":["../src/as-readonly.ts"],"names":[],"mappings":"AAAA,OAAO,EAAO,UAAU,EAAE,MAAM,MAAM,CAAC;AAEvC,wBAAgB,UAAU,CAAC,CAAC,aACX,WAAW,CAAC,CAAC,6BAC7B"}
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.asReadonly = void 0;
4
+ const rxjs_1 = require("rxjs");
5
+ function asReadonly() {
6
+ return (input) => input.pipe((0, rxjs_1.map)(it => it));
7
+ }
8
+ exports.asReadonly = asReadonly;
@@ -1,4 +1,4 @@
1
- import { decimal } from './../shared/decimals';
1
+ import { decimal } from '../shared';
2
2
  export declare const AssetSelectorSeparator = ":";
3
3
  /**
4
4
  * Supposed to query specific @see Asset based on string notation.
@@ -8,6 +8,7 @@ export declare class AssetSelector {
8
8
  readonly name: string;
9
9
  readonly adapterName: string;
10
10
  constructor(name: string, adapterName: string);
11
+ toString(): string;
11
12
  }
12
13
  /**
13
14
  * Creates @see AssetSelector based on unified string notation.
@@ -21,6 +22,10 @@ export declare class Asset extends AssetSelector {
21
22
  readonly scale: number;
22
23
  readonly tickSize: decimal;
23
24
  constructor(name: string, adapterName: string, scale: number);
25
+ /**
26
+ * Formats a number to string with fixed number of decimal places.
27
+ */
28
+ fixed(number: decimal): string;
24
29
  /**
25
30
  * Rounds down a number to the asset precision.
26
31
  */
@@ -0,0 +1 @@
1
+ {"version":3,"file":"asset.d.ts","sourceRoot":"","sources":["../../src/asset/asset.ts"],"names":[],"mappings":"AACA,OAAO,EAAK,OAAO,EAAE,MAAM,aAAa,CAAC;AAEzC,eAAO,MAAM,sBAAsB,MAAM,CAAC;AAE1C;;GAEG;AACH,qBAAa,aAAa;IACxB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;gBAEjB,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAc7C,QAAQ;CAGT;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,aAAa,CAQvD;AAED;;;GAGG;AACH,qBAAa,KAAM,SAAQ,aAAa;aAGyB,KAAK,EAAE,MAAM;IAF5E,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;gBAEf,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAkB,KAAK,EAAE,MAAM;IAU5E;;OAEG;IACH,KAAK,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM;IAI9B;;OAEG;IACH,KAAK,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO;IAI/B;;OAEG;IACH,IAAI,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO;CAG/B"}
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Asset = exports.assetOf = exports.AssetSelector = exports.AssetSelectorSeparator = void 0;
4
- const decimals_1 = require("./../shared/decimals");
5
- const error_1 = require("./error");
4
+ const component_1 = require("../component");
5
+ const shared_1 = require("../shared");
6
6
  exports.AssetSelectorSeparator = ':';
7
7
  /**
8
8
  * Supposed to query specific @see Asset based on string notation.
@@ -10,15 +10,18 @@ exports.AssetSelectorSeparator = ':';
10
10
  class AssetSelector {
11
11
  constructor(name, adapterName) {
12
12
  if (!(name === null || name === void 0 ? void 0 : name.length)) {
13
- throw (0, error_1.invalidArgumentError)(name);
13
+ throw new component_1.InvalidArgumentsError({ name });
14
14
  }
15
15
  if (!(adapterName === null || adapterName === void 0 ? void 0 : adapterName.length)) {
16
- throw (0, error_1.invalidArgumentError)(adapterName);
16
+ throw new component_1.InvalidArgumentsError({ adapterName });
17
17
  }
18
18
  this.name = name.toLowerCase();
19
19
  this.adapterName = adapterName.toLowerCase();
20
20
  this.id = `${this.adapterName}${exports.AssetSelectorSeparator}${this.name}`;
21
21
  }
22
+ toString() {
23
+ return this.id;
24
+ }
22
25
  }
23
26
  exports.AssetSelector = AssetSelector;
24
27
  /**
@@ -27,7 +30,7 @@ exports.AssetSelector = AssetSelector;
27
30
  function assetOf(selector) {
28
31
  const [adapterName, name, ...rest] = selector.split(exports.AssetSelectorSeparator);
29
32
  if (!adapterName || !name || rest.length) {
30
- throw (0, error_1.invalidAssetSelectorError)(selector);
33
+ throw new component_1.InvalidAssetSelectorError(selector);
31
34
  }
32
35
  return new AssetSelector(name, adapterName);
33
36
  }
@@ -41,9 +44,15 @@ class Asset extends AssetSelector {
41
44
  super(name, adapterName);
42
45
  this.scale = scale;
43
46
  if (scale && (scale < 0 || Number.isNaN(scale))) {
44
- throw (0, error_1.invalidArgumentError)(scale);
47
+ throw new component_1.InvalidArgumentsError({ scale });
45
48
  }
46
- this.tickSize = (0, decimals_1.d)(1.0).div(Math.pow(10, this.scale));
49
+ this.tickSize = (0, shared_1.d)(1.0).div(Math.pow(10, this.scale));
50
+ }
51
+ /**
52
+ * Formats a number to string with fixed number of decimal places.
53
+ */
54
+ fixed(number) {
55
+ return number.toFixed(this.scale);
47
56
  }
48
57
  /**
49
58
  * Rounds down a number to the asset precision.
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=asset.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"asset.spec.d.ts","sourceRoot":"","sources":["../../src/asset/asset.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const component_1 = require("../component");
4
+ const shared_1 = require("../shared");
5
+ describe(component_1.Asset.name, () => {
6
+ test('should construct a new asset', () => {
7
+ const sut = new component_1.Asset('abc', 'xyz', 4);
8
+ expect(sut.name).toEqual('abc');
9
+ expect(sut.adapterName).toEqual('xyz');
10
+ expect(sut.scale).toEqual(4);
11
+ expect(sut.tickSize).toEqual((0, shared_1.d)(0.0001));
12
+ expect(sut.floor((0, shared_1.d)(1.1234567))).toEqual((0, shared_1.d)(1.1234));
13
+ expect(sut.ceil((0, shared_1.d)(1.1234567))).toEqual((0, shared_1.d)(1.1235));
14
+ expect(sut.id).toEqual('xyz:abc');
15
+ });
16
+ test('should throw for missing asset name', () => {
17
+ const fn = () => new component_1.Asset('xyz', '', 5);
18
+ expect(fn).toThrowError();
19
+ });
20
+ test('should throw for missing adapter name', () => {
21
+ const fn = () => new component_1.Asset('', 'xyz', 5);
22
+ expect(fn).toThrowError();
23
+ });
24
+ });
25
+ describe(component_1.AssetSelector.name, () => {
26
+ test('should construct a new asset selector from unified string', () => {
27
+ const sut = (0, component_1.assetOf)('xyz:abc');
28
+ expect(sut.name).toEqual('abc');
29
+ expect(sut.adapterName).toEqual('xyz');
30
+ expect(sut.id).toEqual('xyz:abc');
31
+ });
32
+ test('should instantiate proper asset selector capital case', () => {
33
+ const sut = (0, component_1.assetOf)('XYZ:ABC');
34
+ expect(sut.name).toEqual('abc');
35
+ expect(sut.adapterName).toEqual('xyz');
36
+ expect(sut.id).toEqual('xyz:abc');
37
+ });
38
+ test('should throw invalid format message for missing separator', () => {
39
+ const fn = () => (0, component_1.assetOf)('xyzabc');
40
+ expect(fn).toThrowError();
41
+ });
42
+ test('should throw for multiple separators', () => {
43
+ const fn = () => (0, component_1.assetOf)('xyz:abc:');
44
+ expect(fn).toThrowError();
45
+ });
46
+ test('should throw for missing asset name', () => {
47
+ const fn = () => (0, component_1.assetOf)('xyz:');
48
+ expect(fn).toThrowError();
49
+ });
50
+ test('should throw for missing adapter name', () => {
51
+ const fn = () => (0, component_1.assetOf)(':abc');
52
+ expect(fn).toThrowError();
53
+ });
54
+ });
@@ -0,0 +1,2 @@
1
+ export * from '../asset/asset';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/asset/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC"}
@@ -14,5 +14,4 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./paper-adapter"), exports);
18
- __exportStar(require("./engine/paper-engine"), exports);
17
+ __exportStar(require("../asset/asset"), exports);
package/dist/cli/build.js CHANGED
@@ -10,7 +10,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  const child_process_1 = require("child_process");
13
- const workspace_1 = require("./internal/workspace");
13
+ const workspace_1 = require("../cli/internal/workspace");
14
14
  function default_1() {
15
15
  return __awaiter(this, void 0, void 0, function* () {
16
16
  return new Promise((resolve, reject) => {
@@ -1 +1 @@
1
- {"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../../src/cli/dev.ts"],"names":[],"mappings":"AAQA,yBAA+B,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,iBAiBxD"}
1
+ {"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../../src/cli/dev.ts"],"names":[],"mappings":"AAUA,yBAA+B,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,iBAoBxD"}
package/dist/cli/dev.js CHANGED
@@ -36,22 +36,26 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
36
36
  };
37
37
  Object.defineProperty(exports, "__esModule", { value: true });
38
38
  const path_1 = require("path");
39
- const __1 = require("..");
40
- const session_builder_1 = require("../domain/session-builder");
41
- const shared_1 = require("../shared");
42
- const build_1 = __importDefault(require("./build"));
43
- const workspace_1 = require("./internal/workspace");
39
+ const rxjs_1 = require("rxjs");
40
+ const build_1 = __importDefault(require("../cli/build"));
41
+ const workspace_1 = require("../cli/internal/workspace");
42
+ const core_1 = require("../core");
43
+ const module_1 = require("../module");
44
+ const use_execution_mode_1 = require("../use-execution-mode");
44
45
  function default_1(name, options) {
45
46
  return __awaiter(this, void 0, void 0, function* () {
46
47
  if (yield (0, build_1.default)()) {
47
48
  return;
48
49
  }
49
- yield Promise.resolve().then(() => __importStar(require((0, path_1.join)((0, workspace_1.buildDirectory)(), 'index'))));
50
- const builder = new session_builder_1.SessionBuilder().useSessionId(options.id ? Number(options.id) : (0, shared_1.now)());
51
- const rules = yield (0, __1.spawn)(name, builder);
52
- const session = builder.paper();
53
- yield session.awake();
54
- rules(session).subscribe();
50
+ const script = (yield Promise.resolve(`${(0, path_1.join)((0, workspace_1.buildDirectory)(), name)}`).then(s => __importStar(require(s)))).default;
51
+ const module = new module_1.Module([
52
+ ...(0, core_1.core)(),
53
+ ...script.dependencies,
54
+ (0, use_execution_mode_1.paperExecutionMode)({ recording: false })
55
+ ]);
56
+ const { act } = yield module.awake();
57
+ const output = yield act(() => (0, rxjs_1.lastValueFrom)(script.fn()));
58
+ console.log(output);
55
59
  });
56
60
  }
57
61
  exports.default = default_1;
package/dist/cli/index.js CHANGED
@@ -16,11 +16,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
16
16
  const child_process_1 = require("child_process");
17
17
  const commander_1 = require("commander");
18
18
  const node_watch_1 = __importDefault(require("node-watch"));
19
- const build_1 = __importDefault(require("./build"));
20
- const dev_1 = __importDefault(require("./dev"));
21
- const pull_1 = __importDefault(require("./pull"));
22
- const run_1 = __importDefault(require("./run"));
23
- const test_1 = __importDefault(require("./test"));
19
+ const build_1 = __importDefault(require("../cli/build"));
20
+ const dev_1 = __importDefault(require("../cli/dev"));
21
+ const pull_1 = __importDefault(require("../cli/pull"));
22
+ const replay_1 = __importDefault(require("../cli/replay"));
23
+ const run_1 = __importDefault(require("../cli/run"));
24
24
  commander_1.program
25
25
  .command('build')
26
26
  .description('builds a production version of the app')
@@ -42,13 +42,13 @@ commander_1.program
42
42
  .description('executes strategy in paper e.g. simulation mode')
43
43
  .action(dev_1.default);
44
44
  commander_1.program
45
- .command('test')
45
+ .command('replay')
46
46
  .description('executes strategy in backtesting mode for specified period')
47
47
  .argument('<name>', 'strategy to execute')
48
48
  .option('-f, --from <from>', 'date from')
49
49
  .option('-t, --to <to>', 'date to')
50
50
  .option('-w', 'watch mode')
51
- .action(test_1.default);
51
+ .action(replay_1.default);
52
52
  commander_1.program
53
53
  .command('pull')
54
54
  .description('pulls instrument historical data to storage')
@@ -74,7 +74,7 @@ else {
74
74
  child.kill();
75
75
  }
76
76
  child = (0, child_process_1.spawn)('node', argv, {
77
- stdio: ['inherit', 'inherit', 'inherit', 'ipc']
77
+ stdio: 'pipe'
78
78
  });
79
79
  };
80
80
  spawnChildProcess();
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.buildDirectory = void 0;
4
4
  const path_1 = require("path");
5
- const shared_1 = require("./../../shared");
5
+ const shared_1 = require("../../shared");
6
6
  function buildDirectory() {
7
7
  return (0, path_1.join)(process.cwd(), (0, shared_1.workingDirectory)(), 'build');
8
8
  }
@@ -1 +1 @@
1
- {"version":3,"file":"pull.d.ts","sourceRoot":"","sources":["../../src/cli/pull.ts"],"names":[],"mappings":"AAWA,yBAA+B,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,iBAmD5E"}
1
+ {"version":3,"file":"pull.d.ts","sourceRoot":"","sources":["../../src/cli/pull.ts"],"names":[],"mappings":"AAUA,yBAA+B,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,iBAgE5E"}
package/dist/cli/pull.js CHANGED
@@ -35,43 +35,73 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
35
35
  return (mod && mod.__esModule) ? mod : { "default": mod };
36
36
  };
37
37
  Object.defineProperty(exports, "__esModule", { value: true });
38
- const cli_progress_1 = require("cli-progress");
39
38
  const path_1 = require("path");
40
- const __1 = require("..");
41
- const domain_1 = require("../domain");
42
- const session_builder_1 = require("../domain/session-builder");
43
- const shared_1 = require("../shared");
44
- const storage_1 = require("../storage");
45
- const build_1 = __importDefault(require("./build"));
46
- const workspace_1 = require("./internal/workspace");
39
+ const build_1 = __importDefault(require("../cli/build"));
40
+ const workspace_1 = require("../cli/internal/workspace");
41
+ const core_1 = require("../core");
42
+ const module_1 = require("../module");
43
+ const use_execution_mode_1 = require("../use-execution-mode");
44
+ const use_memo_1 = require("../use-memo");
47
45
  function default_1(name, instrument, options) {
48
46
  return __awaiter(this, void 0, void 0, function* () {
49
47
  if (yield (0, build_1.default)()) {
50
48
  return;
51
49
  }
52
- yield Promise.resolve().then(() => __importStar(require((0, path_1.join)((0, workspace_1.buildDirectory)(), 'index'))));
53
- const builder = new session_builder_1.SessionBuilder().useSessionId(options.id ? Number(options.id) : (0, shared_1.now)());
54
- yield (0, __1.spawn)(name, builder);
50
+ yield Promise.resolve(`${(0, path_1.join)((0, workspace_1.buildDirectory)(), 'index')}`).then(s => __importStar(require(s)));
51
+ const script = (yield Promise.resolve(`${(0, path_1.join)((0, workspace_1.buildDirectory)(), name)}`).then(s => __importStar(require(s))));
52
+ const module = new module_1.Module([
53
+ ...(0, core_1.core)(),
54
+ ...script.dependencies,
55
+ (0, use_execution_mode_1.paperExecutionMode)({ recording: false })
56
+ ]);
57
+ const { act } = yield module.awake();
58
+ const o = yield act(() => script.fn());
59
+ console.log(module.get(use_memo_1.token));
60
+ /*const builder = new SessionBuilder().useSessionId(
61
+ options.id ? Number(options.id) : now()
62
+ );
63
+
64
+ await spawn(name, builder);
65
+
55
66
  const session = builder.paper();
67
+
56
68
  console.time('Pulling completed in');
57
- yield session.awake();
58
- const bar = new cli_progress_1.SingleBar({
69
+
70
+ await session.awake();
71
+
72
+ const bar = new SingleBar(
73
+ {
59
74
  format: `Pulling ${instrument} [{bar}] {percentage}% | ETA: {eta}s | {value}/{total}`
60
- }, cli_progress_1.Presets.rect);
61
- const feed = new storage_1.Feed(builder.storage('feed'));
75
+ },
76
+ Presets.rect
77
+ );
78
+
79
+ const feed = new Feed(builder.storage('feed'));
62
80
  const from = options.from ? Date.parse(options.from) : builder.period.from;
63
81
  const to = options.to ? Date.parse(options.to) : builder.period.to;
82
+
64
83
  bar.start(100, 0);
65
- yield session.aggregate.feed((0, domain_1.instrumentOf)(instrument), from, to, (timestamp, events) => __awaiter(this, void 0, void 0, function* () {
84
+
85
+ await session.aggregate.feed(
86
+ instrumentOf(instrument),
87
+ from,
88
+ to,
89
+ async (timestamp, events) => {
66
90
  const duration = to - from;
67
91
  const completed = timestamp - from;
68
- yield feed.save(events);
92
+
93
+ await feed.save(events);
94
+
69
95
  bar.update(Math.floor((completed / duration) * 100));
70
- }));
96
+ }
97
+ );
98
+
71
99
  bar.update(100);
72
100
  bar.stop();
73
- yield session.dispose();
74
- console.timeLog('Pulling completed in');
101
+
102
+ await session.dispose();
103
+
104
+ console.timeLog('Pulling completed in');*/
75
105
  });
76
106
  }
77
107
  exports.default = default_1;
@@ -1,2 +1,2 @@
1
1
  export default function (name: string, options: any): Promise<void>;
2
- //# sourceMappingURL=test.d.ts.map
2
+ //# sourceMappingURL=replay.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"replay.d.ts","sourceRoot":"","sources":["../../src/cli/replay.ts"],"names":[],"mappings":"AAUA,yBAA+B,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,iBAoBxD"}
@@ -36,31 +36,29 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
36
36
  };
37
37
  Object.defineProperty(exports, "__esModule", { value: true });
38
38
  const path_1 = require("path");
39
- const session_builder_1 = require("../domain/session-builder");
40
- const shared_1 = require("../shared");
41
- const __1 = require("..");
42
- const build_1 = __importDefault(require("./build"));
43
- const workspace_1 = require("./internal/workspace");
39
+ const rxjs_1 = require("rxjs");
40
+ const build_1 = __importDefault(require("../cli/build"));
41
+ const workspace_1 = require("../cli/internal/workspace");
42
+ const core_1 = require("../core");
43
+ const module_1 = require("../module");
44
+ const replay_1 = require("../replay");
45
+ const use_execution_mode_1 = require("../use-execution-mode");
44
46
  function default_1(name, options) {
45
47
  return __awaiter(this, void 0, void 0, function* () {
46
48
  if (yield (0, build_1.default)()) {
47
49
  return;
48
50
  }
49
- yield Promise.resolve().then(() => __importStar(require((0, path_1.join)((0, workspace_1.buildDirectory)(), 'index'))));
50
- const builder = new session_builder_1.SessionBuilder().useSessionId(options.id ? Number(options.id) : (0, shared_1.now)());
51
- const rules = yield (0, __1.spawn)(name, builder);
52
- const startTime = performance.now();
53
- const [session, backtester] = builder.backtest({
54
- onBacktestStarted: () => shared_1.Logger.info('backtest', `new session ${session.id} started`),
55
- onBacktestCompleted: () => __awaiter(this, void 0, void 0, function* () {
56
- yield session.dispose();
57
- const seconds = ((performance.now() - startTime) / 1000).toFixed(3);
58
- shared_1.Logger.info('backtest', `session ${session.id} completed in ${seconds}s`);
59
- })
60
- });
61
- yield session.awake();
62
- rules(session).subscribe();
63
- backtester.tryContinue();
51
+ const script = yield Promise.resolve(`${(0, path_1.join)((0, workspace_1.buildDirectory)(), name)}`).then(s => __importStar(require(s)));
52
+ const dependencies = script.module2;
53
+ const module = new module_1.Module([
54
+ ...(0, core_1.core)(),
55
+ ...dependencies,
56
+ (0, replay_1.replayOptions)({ from: 0, to: Number.MAX_VALUE }),
57
+ (0, use_execution_mode_1.replayExecutionMode)()
58
+ ]);
59
+ const { act } = yield module.awake();
60
+ const output = yield act(() => (0, rxjs_1.lastValueFrom)(script.default(options)));
61
+ console.log(output);
64
62
  });
65
63
  }
66
64
  exports.default = default_1;
@@ -1 +1 @@
1
- {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/cli/run.ts"],"names":[],"mappings":"AAQA,yBAA+B,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,iBAgBxD"}
1
+ {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/cli/run.ts"],"names":[],"mappings":"AASA,yBAA+B,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,iBAmBxD"}
package/dist/cli/run.js CHANGED
@@ -36,22 +36,27 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
36
36
  };
37
37
  Object.defineProperty(exports, "__esModule", { value: true });
38
38
  const path_1 = require("path");
39
- const __1 = require("..");
40
- const session_builder_1 = require("../domain/session-builder");
41
- const shared_1 = require("../shared");
42
- const build_1 = __importDefault(require("./build"));
43
- const workspace_1 = require("./internal/workspace");
39
+ const rxjs_1 = require("rxjs");
40
+ const build_1 = __importDefault(require("../cli/build"));
41
+ const workspace_1 = require("../cli/internal/workspace");
42
+ const core_1 = require("../core");
43
+ const module_1 = require("../module");
44
+ const use_execution_mode_1 = require("../use-execution-mode");
44
45
  function default_1(name, options) {
45
46
  return __awaiter(this, void 0, void 0, function* () {
46
47
  if (yield (0, build_1.default)()) {
47
48
  return;
48
49
  }
49
- yield Promise.resolve().then(() => __importStar(require((0, path_1.join)((0, workspace_1.buildDirectory)(), 'index'))));
50
- const builder = new session_builder_1.SessionBuilder().useSessionId(options.id ? Number(options.id) : (0, shared_1.now)());
51
- const rules = yield (0, __1.spawn)(name, builder);
52
- const session = builder.live();
53
- yield session.awake();
54
- rules(session).subscribe();
50
+ const script = yield Promise.resolve(`${(0, path_1.join)((0, workspace_1.buildDirectory)(), name)}`).then(s => __importStar(require(s)));
51
+ const dependencies = script.module2;
52
+ const module = new module_1.Module([
53
+ ...(0, core_1.core)(),
54
+ ...dependencies,
55
+ (0, use_execution_mode_1.liveExecutionMode)({ recording: true })
56
+ ]);
57
+ const { act } = yield module.awake();
58
+ const output = yield act(() => (0, rxjs_1.lastValueFrom)(script.default(options)));
59
+ console.log(output);
55
60
  });
56
61
  }
57
62
  exports.default = default_1;
@@ -0,0 +1,5 @@
1
+ import { Observable } from 'rxjs';
2
+ export declare function distinctUntilTimestampChanged<T extends {
3
+ timestamp: number;
4
+ }>(): (stream: Observable<T>) => Observable<T>;
5
+ //# sourceMappingURL=distinct-until-timesamp-changed.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"distinct-until-timesamp-changed.d.ts","sourceRoot":"","sources":["../../src/component/distinct-until-timesamp-changed.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,UAAU,EAAO,MAAM,MAAM,CAAC;AAE/C,wBAAgB,6BAA6B,CAAC,CAAC,SAAS;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,cAG3D,WAAW,CAAC,CAAC,mBAK9B"}
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.distinctUntilTimestampChanged = void 0;
4
+ const rxjs_1 = require("rxjs");
5
+ function distinctUntilTimestampChanged() {
6
+ let prevTimestamp;
7
+ return (stream) => stream.pipe((0, rxjs_1.filter)(it => prevTimestamp === undefined || it.timestamp > prevTimestamp), (0, rxjs_1.tap)(it => (prevTimestamp = it.timestamp)));
8
+ }
9
+ exports.distinctUntilTimestampChanged = distinctUntilTimestampChanged;
@@ -0,0 +1,17 @@
1
+ import { decimal } from '../shared';
2
+ export declare class InsufficientFundsError extends Error {
3
+ constructor(assetName: string, requiredAmount: decimal, availableAmount: decimal);
4
+ }
5
+ export declare class InvalidArgumentsError extends Error {
6
+ constructor(argName: Record<string, unknown>);
7
+ }
8
+ export declare class InvalidAssetSelectorError extends Error {
9
+ constructor(selector: string);
10
+ }
11
+ export declare class InvalidInstrumentSelectorError extends Error {
12
+ constructor(selector: string);
13
+ }
14
+ export declare class AdapterMismatchError extends Error {
15
+ constructor();
16
+ }
17
+ //# sourceMappingURL=error.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../src/component/error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAEtC,qBAAa,sBAAuB,SAAQ,KAAK;gBACnC,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,eAAe,EAAE,OAAO;CAKjF;AAED,qBAAa,qBAAsB,SAAQ,KAAK;gBAClC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAG7C;AAED,qBAAa,yBAA0B,SAAQ,KAAK;gBACtC,QAAQ,EAAE,MAAM;CAG7B;AACD,qBAAa,8BAA+B,SAAQ,KAAK;gBAC3C,QAAQ,EAAE,MAAM;CAG7B;AAED,qBAAa,oBAAqB,SAAQ,KAAK;;CAI9C"}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AdapterMismatchError = exports.InvalidInstrumentSelectorError = exports.InvalidAssetSelectorError = exports.InvalidArgumentsError = exports.InsufficientFundsError = void 0;
4
+ class InsufficientFundsError extends Error {
5
+ constructor(assetName, requiredAmount, availableAmount) {
6
+ super(`insufficient funds of ${assetName} has: ${availableAmount.toString()} requires: ${requiredAmount.toString()}`);
7
+ }
8
+ }
9
+ exports.InsufficientFundsError = InsufficientFundsError;
10
+ class InvalidArgumentsError extends Error {
11
+ constructor(argName) {
12
+ super(`invalid arguments: ${argName}`);
13
+ }
14
+ }
15
+ exports.InvalidArgumentsError = InvalidArgumentsError;
16
+ class InvalidAssetSelectorError extends Error {
17
+ constructor(selector) {
18
+ super(`invalid asset selector: ${selector}`);
19
+ }
20
+ }
21
+ exports.InvalidAssetSelectorError = InvalidAssetSelectorError;
22
+ class InvalidInstrumentSelectorError extends Error {
23
+ constructor(selector) {
24
+ super(`invalid instrument selector: ${selector}`);
25
+ }
26
+ }
27
+ exports.InvalidInstrumentSelectorError = InvalidInstrumentSelectorError;
28
+ class AdapterMismatchError extends Error {
29
+ constructor() {
30
+ super('adapters must be the same');
31
+ }
32
+ }
33
+ exports.AdapterMismatchError = AdapterMismatchError;
@@ -0,0 +1,8 @@
1
+ export * from '../asset';
2
+ export * from '../component/error';
3
+ export * from '../component/ohlc';
4
+ export * from '../component/ohlc-operator';
5
+ export * from '../instrument';
6
+ export * from '../component/timeframe';
7
+ export * from '../component/distinct-until-timesamp-changed';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/component/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,iBAAiB,CAAC;AAChC,cAAc,0BAA0B,CAAC;AACzC,cAAc,gDAAgD,CAAC"}
@@ -14,12 +14,10 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./store"), exports);
18
- __exportStar(require("./store-state"), exports);
19
- __exportStar(require("./store-balance-event"), exports);
20
- __exportStar(require("./store-instrument-event"), exports);
21
- __exportStar(require("./store-order-event"), exports);
22
- __exportStar(require("./store-orderbook-event"), exports);
23
- __exportStar(require("./store-position-event"), exports);
24
- __exportStar(require("./store-trade-event"), exports);
25
- __exportStar(require("./store-event"), exports);
17
+ __exportStar(require("../asset"), exports);
18
+ __exportStar(require("../component/error"), exports);
19
+ __exportStar(require("../component/ohlc"), exports);
20
+ __exportStar(require("../component/ohlc-operator"), exports);
21
+ __exportStar(require("../instrument"), exports);
22
+ __exportStar(require("../component/timeframe"), exports);
23
+ __exportStar(require("../component/distinct-until-timesamp-changed"), exports);
@@ -1,6 +1,6 @@
1
1
  import { Observable } from 'rxjs';
2
+ import { Ohlc } from '../component';
2
3
  import { decimal } from '../shared';
3
- import { Ohlc } from './ohlc';
4
4
  export declare function ohlc<T extends {
5
5
  timestamp: number;
6
6
  }>(timeframe: number, fn: (x: T) => decimal, candleToStartWith?: Ohlc): (source: Observable<T>) => Observable<Ohlc>;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ohlc-operator.d.ts","sourceRoot":"","sources":["../../src/component/ohlc-operator.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,UAAU,EAKX,MAAM,MAAM,CAAC;AAEd,OAAO,EAAE,IAAI,EAAM,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAsBtC,wBAAgB,IAAI,CAAC,CAAC,SAAS;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,EAClD,SAAS,EAAE,MAAM,EACjB,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,EACrB,iBAAiB,CAAC,EAAE,IAAI,YAEC,WAAW,CAAC,CAAC,KAAG,WAAW,IAAI,CAAC,CAmC1D;AAED,wBAAgB,SAAS,CAAC,CAAC,SAAS;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,EACvD,SAAS,EAAE,MAAM,EACjB,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,EACrB,QAAQ,EAAE,UAAU,CAAC,IAAI,CAAC,aAEA,WAAW,CAAC,CAAC,KAAG,WAAW,IAAI,CAAC,CAY3D;AAED,wBAAgB,aAAa,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,IAAI,CAAC,KAAK,UAAU,CAAC,IAAI,CAAC,CAwB9E"}