@vuu-ui/vuu-data-test 2.1.18 → 2.1.19-beta.2

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 (277) hide show
  1. package/package.json +10 -13
  2. package/src/ArrayProxy.js +38 -0
  3. package/src/RuntimeVisualLink.js +45 -0
  4. package/src/SessionTable.js +49 -0
  5. package/src/Table.js +96 -0
  6. package/src/TickingArrayDataSource.js +208 -0
  7. package/src/UpdateGenerator.js +72 -0
  8. package/src/basket/BasketModule.js +272 -0
  9. package/src/basket/basket-schemas.js +355 -0
  10. package/src/basket/index.js +2 -0
  11. package/src/basket/reference-data/constituents.js +76 -0
  12. package/src/basket/reference-data/ftse100.js +686 -0
  13. package/src/basket/reference-data/hsi.js +1047 -0
  14. package/src/basket/reference-data/nasdaq100.js +812 -0
  15. package/src/basket/reference-data/prices.js +43 -0
  16. package/src/basket/reference-data/sp500.js +315 -0
  17. package/src/core/module/ModuleContainer.js +21 -0
  18. package/src/core/module/VuuModule.js +476 -0
  19. package/src/core/table/TableContainer.js +97 -0
  20. package/src/data-utils.js +53 -0
  21. package/src/index.js +13 -0
  22. package/src/local-datasource-provider/LocalDatasourceProvider.js +44 -0
  23. package/src/makeSuggestions.js +20 -0
  24. package/src/rowUpdates.js +0 -0
  25. package/src/schemas.js +19 -0
  26. package/src/session-table-utils.js +16 -0
  27. package/src/simul/SimulModule.js +175 -0
  28. package/src/simul/index.js +2 -0
  29. package/src/simul/reference-data/accounts.js +23 -0
  30. package/src/simul/reference-data/algos.js +9 -0
  31. package/src/simul/reference-data/currencies.js +8 -0
  32. package/src/simul/reference-data/index.js +5 -0
  33. package/src/simul/reference-data/instrument-prices.js +48 -0
  34. package/src/simul/reference-data/instruments-extended.js +12 -0
  35. package/src/simul/reference-data/instruments.js +67 -0
  36. package/src/simul/reference-data/isin-generator/convert-string-to-base-ten-number.js +2 -0
  37. package/src/simul/reference-data/isin-generator/fixtures/alphabet.js +27 -0
  38. package/src/simul/reference-data/isin-generator/fixtures/alphanumeric-values.js +7 -0
  39. package/src/simul/reference-data/isin-generator/fixtures/base-ten-numbers.js +13 -0
  40. package/src/simul/reference-data/isin-generator/generate-cusip-check-code.js +17 -0
  41. package/src/simul/reference-data/isin-generator/generate-cusip-without-check-code.js +8 -0
  42. package/src/simul/reference-data/isin-generator/generate-cusip.js +8 -0
  43. package/src/simul/reference-data/isin-generator/generate-random-alphanumeric.js +3 -0
  44. package/src/simul/reference-data/isin-generator/generate-random-base-ten-number.js +2 -0
  45. package/src/simul/reference-data/isin-generator/generate-random-string-of-alphanumeric-chars.js +7 -0
  46. package/src/simul/reference-data/isin-generator/generate-random-string-of-base-ten-chars.js +7 -0
  47. package/src/simul/reference-data/isin-generator/index.js +280 -0
  48. package/src/simul/reference-data/isin-generator/is-odd.js +2 -0
  49. package/src/simul/reference-data/locations.js +45 -0
  50. package/src/simul/reference-data/lotsizes.js +24 -0
  51. package/src/simul/reference-data/orderStatus.js +6 -0
  52. package/src/simul/reference-data/orders.js +64 -0
  53. package/src/simul/reference-data/parent-child-orders.js +117 -0
  54. package/src/simul/reference-data/priceStrategies.js +8 -0
  55. package/src/simul/reference-data/prices.js +78 -0
  56. package/src/simul/reference-data/sides.js +5 -0
  57. package/src/simul/simul-schemas.js +428 -0
  58. package/src/test/TestModule.js +95 -0
  59. package/src/test/index.js +1 -0
  60. package/src/test/test-schemas.js +74 -0
  61. package/src/vuu-row-generator.js +71 -0
  62. package/types/TickingArrayDataSource.d.ts +1 -1
  63. package/types/basket/BasketModule.d.ts +9 -9
  64. package/types/basket/reference-data/prices.d.ts +1 -1
  65. package/types/simul/reference-data/instruments-extended.d.ts +1 -1
  66. package/types/simul/reference-data/instruments.d.ts +1 -1
  67. package/types/simul/reference-data/orders.d.ts +1 -1
  68. package/types/simul/reference-data/parent-child-orders.d.ts +2 -2
  69. package/types/simul/reference-data/prices.d.ts +1 -1
  70. package/cjs/ArrayProxy.js +0 -72
  71. package/cjs/ArrayProxy.js.map +0 -1
  72. package/cjs/RuntimeVisualLink.js +0 -73
  73. package/cjs/RuntimeVisualLink.js.map +0 -1
  74. package/cjs/SessionTable.js +0 -68
  75. package/cjs/SessionTable.js.map +0 -1
  76. package/cjs/Table.js +0 -128
  77. package/cjs/Table.js.map +0 -1
  78. package/cjs/TickingArrayDataSource.js +0 -316
  79. package/cjs/TickingArrayDataSource.js.map +0 -1
  80. package/cjs/UpdateGenerator.js +0 -94
  81. package/cjs/UpdateGenerator.js.map +0 -1
  82. package/cjs/basket/BasketModule.js +0 -282
  83. package/cjs/basket/BasketModule.js.map +0 -1
  84. package/cjs/basket/basket-schemas.js +0 -123
  85. package/cjs/basket/basket-schemas.js.map +0 -1
  86. package/cjs/basket/reference-data/constituents.js +0 -40
  87. package/cjs/basket/reference-data/constituents.js.map +0 -1
  88. package/cjs/basket/reference-data/ftse100.js +0 -105
  89. package/cjs/basket/reference-data/ftse100.js.map +0 -1
  90. package/cjs/basket/reference-data/hsi.js +0 -87
  91. package/cjs/basket/reference-data/hsi.js.map +0 -1
  92. package/cjs/basket/reference-data/nasdaq100.js +0 -108
  93. package/cjs/basket/reference-data/nasdaq100.js.map +0 -1
  94. package/cjs/basket/reference-data/sp500.js +0 -46
  95. package/cjs/basket/reference-data/sp500.js.map +0 -1
  96. package/cjs/core/module/ModuleContainer.js +0 -43
  97. package/cjs/core/module/ModuleContainer.js.map +0 -1
  98. package/cjs/core/module/VuuModule.js +0 -660
  99. package/cjs/core/module/VuuModule.js.map +0 -1
  100. package/cjs/core/table/TableContainer.js +0 -139
  101. package/cjs/core/table/TableContainer.js.map +0 -1
  102. package/cjs/data-utils.js +0 -47
  103. package/cjs/data-utils.js.map +0 -1
  104. package/cjs/index.js +0 -46
  105. package/cjs/index.js.map +0 -1
  106. package/cjs/local-datasource-provider/LocalDatasourceProvider.js +0 -70
  107. package/cjs/local-datasource-provider/LocalDatasourceProvider.js.map +0 -1
  108. package/cjs/makeSuggestions.js +0 -26
  109. package/cjs/makeSuggestions.js.map +0 -1
  110. package/cjs/schemas.js +0 -28
  111. package/cjs/schemas.js.map +0 -1
  112. package/cjs/session-table-utils.js +0 -12
  113. package/cjs/session-table-utils.js.map +0 -1
  114. package/cjs/simul/SimulModule.js +0 -187
  115. package/cjs/simul/SimulModule.js.map +0 -1
  116. package/cjs/simul/reference-data/accounts.js +0 -27
  117. package/cjs/simul/reference-data/accounts.js.map +0 -1
  118. package/cjs/simul/reference-data/algos.js +0 -6
  119. package/cjs/simul/reference-data/algos.js.map +0 -1
  120. package/cjs/simul/reference-data/currencies.js +0 -6
  121. package/cjs/simul/reference-data/currencies.js.map +0 -1
  122. package/cjs/simul/reference-data/instruments-extended.js +0 -19
  123. package/cjs/simul/reference-data/instruments-extended.js.map +0 -1
  124. package/cjs/simul/reference-data/instruments.js +0 -85
  125. package/cjs/simul/reference-data/instruments.js.map +0 -1
  126. package/cjs/simul/reference-data/isin-generator/convert-string-to-base-ten-number.js +0 -6
  127. package/cjs/simul/reference-data/isin-generator/convert-string-to-base-ten-number.js.map +0 -1
  128. package/cjs/simul/reference-data/isin-generator/fixtures/alphabet.js +0 -31
  129. package/cjs/simul/reference-data/isin-generator/fixtures/alphabet.js.map +0 -1
  130. package/cjs/simul/reference-data/isin-generator/fixtures/alphanumeric-values.js +0 -9
  131. package/cjs/simul/reference-data/isin-generator/fixtures/alphanumeric-values.js.map +0 -1
  132. package/cjs/simul/reference-data/isin-generator/fixtures/base-ten-numbers.js +0 -17
  133. package/cjs/simul/reference-data/isin-generator/fixtures/base-ten-numbers.js.map +0 -1
  134. package/cjs/simul/reference-data/isin-generator/generate-cusip-check-code.js +0 -24
  135. package/cjs/simul/reference-data/isin-generator/generate-cusip-check-code.js.map +0 -1
  136. package/cjs/simul/reference-data/isin-generator/generate-cusip-without-check-code.js +0 -13
  137. package/cjs/simul/reference-data/isin-generator/generate-cusip-without-check-code.js.map +0 -1
  138. package/cjs/simul/reference-data/isin-generator/generate-cusip.js +0 -13
  139. package/cjs/simul/reference-data/isin-generator/generate-cusip.js.map +0 -1
  140. package/cjs/simul/reference-data/isin-generator/generate-random-alphanumeric.js +0 -8
  141. package/cjs/simul/reference-data/isin-generator/generate-random-alphanumeric.js.map +0 -1
  142. package/cjs/simul/reference-data/isin-generator/generate-random-base-ten-number.js +0 -6
  143. package/cjs/simul/reference-data/isin-generator/generate-random-base-ten-number.js.map +0 -1
  144. package/cjs/simul/reference-data/isin-generator/generate-random-string-of-alphanumeric-chars.js +0 -14
  145. package/cjs/simul/reference-data/isin-generator/generate-random-string-of-alphanumeric-chars.js.map +0 -1
  146. package/cjs/simul/reference-data/isin-generator/generate-random-string-of-base-ten-chars.js +0 -14
  147. package/cjs/simul/reference-data/isin-generator/generate-random-string-of-base-ten-chars.js.map +0 -1
  148. package/cjs/simul/reference-data/isin-generator/index.js +0 -295
  149. package/cjs/simul/reference-data/isin-generator/index.js.map +0 -1
  150. package/cjs/simul/reference-data/isin-generator/is-odd.js +0 -6
  151. package/cjs/simul/reference-data/isin-generator/is-odd.js.map +0 -1
  152. package/cjs/simul/reference-data/locations.js +0 -17
  153. package/cjs/simul/reference-data/locations.js.map +0 -1
  154. package/cjs/simul/reference-data/lotsizes.js +0 -28
  155. package/cjs/simul/reference-data/lotsizes.js.map +0 -1
  156. package/cjs/simul/reference-data/orderStatus.js +0 -6
  157. package/cjs/simul/reference-data/orderStatus.js.map +0 -1
  158. package/cjs/simul/reference-data/orders.js +0 -55
  159. package/cjs/simul/reference-data/orders.js.map +0 -1
  160. package/cjs/simul/reference-data/parent-child-orders.js +0 -144
  161. package/cjs/simul/reference-data/parent-child-orders.js.map +0 -1
  162. package/cjs/simul/reference-data/prices.js +0 -89
  163. package/cjs/simul/reference-data/prices.js.map +0 -1
  164. package/cjs/simul/reference-data/sides.js +0 -6
  165. package/cjs/simul/reference-data/sides.js.map +0 -1
  166. package/cjs/simul/simul-schemas.js +0 -150
  167. package/cjs/simul/simul-schemas.js.map +0 -1
  168. package/cjs/test/TestModule.js +0 -86
  169. package/cjs/test/TestModule.js.map +0 -1
  170. package/cjs/test/test-schemas.js +0 -52
  171. package/cjs/test/test-schemas.js.map +0 -1
  172. package/cjs/vuu-row-generator.js +0 -74
  173. package/cjs/vuu-row-generator.js.map +0 -1
  174. package/esm/ArrayProxy.js +0 -70
  175. package/esm/ArrayProxy.js.map +0 -1
  176. package/esm/RuntimeVisualLink.js +0 -71
  177. package/esm/RuntimeVisualLink.js.map +0 -1
  178. package/esm/SessionTable.js +0 -65
  179. package/esm/SessionTable.js.map +0 -1
  180. package/esm/Table.js +0 -124
  181. package/esm/Table.js.map +0 -1
  182. package/esm/TickingArrayDataSource.js +0 -314
  183. package/esm/TickingArrayDataSource.js.map +0 -1
  184. package/esm/UpdateGenerator.js +0 -92
  185. package/esm/UpdateGenerator.js.map +0 -1
  186. package/esm/basket/BasketModule.js +0 -278
  187. package/esm/basket/BasketModule.js.map +0 -1
  188. package/esm/basket/basket-schemas.js +0 -120
  189. package/esm/basket/basket-schemas.js.map +0 -1
  190. package/esm/basket/reference-data/constituents.js +0 -38
  191. package/esm/basket/reference-data/constituents.js.map +0 -1
  192. package/esm/basket/reference-data/ftse100.js +0 -103
  193. package/esm/basket/reference-data/ftse100.js.map +0 -1
  194. package/esm/basket/reference-data/hsi.js +0 -85
  195. package/esm/basket/reference-data/hsi.js.map +0 -1
  196. package/esm/basket/reference-data/nasdaq100.js +0 -106
  197. package/esm/basket/reference-data/nasdaq100.js.map +0 -1
  198. package/esm/basket/reference-data/sp500.js +0 -44
  199. package/esm/basket/reference-data/sp500.js.map +0 -1
  200. package/esm/core/module/ModuleContainer.js +0 -41
  201. package/esm/core/module/ModuleContainer.js.map +0 -1
  202. package/esm/core/module/VuuModule.js +0 -658
  203. package/esm/core/module/VuuModule.js.map +0 -1
  204. package/esm/core/table/TableContainer.js +0 -137
  205. package/esm/core/table/TableContainer.js.map +0 -1
  206. package/esm/data-utils.js +0 -43
  207. package/esm/data-utils.js.map +0 -1
  208. package/esm/index.js +0 -16
  209. package/esm/index.js.map +0 -1
  210. package/esm/local-datasource-provider/LocalDatasourceProvider.js +0 -68
  211. package/esm/local-datasource-provider/LocalDatasourceProvider.js.map +0 -1
  212. package/esm/makeSuggestions.js +0 -24
  213. package/esm/makeSuggestions.js.map +0 -1
  214. package/esm/schemas.js +0 -24
  215. package/esm/schemas.js.map +0 -1
  216. package/esm/session-table-utils.js +0 -10
  217. package/esm/session-table-utils.js.map +0 -1
  218. package/esm/simul/SimulModule.js +0 -184
  219. package/esm/simul/SimulModule.js.map +0 -1
  220. package/esm/simul/reference-data/accounts.js +0 -25
  221. package/esm/simul/reference-data/accounts.js.map +0 -1
  222. package/esm/simul/reference-data/algos.js +0 -4
  223. package/esm/simul/reference-data/algos.js.map +0 -1
  224. package/esm/simul/reference-data/currencies.js +0 -4
  225. package/esm/simul/reference-data/currencies.js.map +0 -1
  226. package/esm/simul/reference-data/instruments-extended.js +0 -17
  227. package/esm/simul/reference-data/instruments-extended.js.map +0 -1
  228. package/esm/simul/reference-data/instruments.js +0 -80
  229. package/esm/simul/reference-data/instruments.js.map +0 -1
  230. package/esm/simul/reference-data/isin-generator/convert-string-to-base-ten-number.js +0 -4
  231. package/esm/simul/reference-data/isin-generator/convert-string-to-base-ten-number.js.map +0 -1
  232. package/esm/simul/reference-data/isin-generator/fixtures/alphabet.js +0 -29
  233. package/esm/simul/reference-data/isin-generator/fixtures/alphabet.js.map +0 -1
  234. package/esm/simul/reference-data/isin-generator/fixtures/alphanumeric-values.js +0 -7
  235. package/esm/simul/reference-data/isin-generator/fixtures/alphanumeric-values.js.map +0 -1
  236. package/esm/simul/reference-data/isin-generator/fixtures/base-ten-numbers.js +0 -15
  237. package/esm/simul/reference-data/isin-generator/fixtures/base-ten-numbers.js.map +0 -1
  238. package/esm/simul/reference-data/isin-generator/generate-cusip-check-code.js +0 -22
  239. package/esm/simul/reference-data/isin-generator/generate-cusip-check-code.js.map +0 -1
  240. package/esm/simul/reference-data/isin-generator/generate-cusip-without-check-code.js +0 -11
  241. package/esm/simul/reference-data/isin-generator/generate-cusip-without-check-code.js.map +0 -1
  242. package/esm/simul/reference-data/isin-generator/generate-cusip.js +0 -11
  243. package/esm/simul/reference-data/isin-generator/generate-cusip.js.map +0 -1
  244. package/esm/simul/reference-data/isin-generator/generate-random-alphanumeric.js +0 -6
  245. package/esm/simul/reference-data/isin-generator/generate-random-alphanumeric.js.map +0 -1
  246. package/esm/simul/reference-data/isin-generator/generate-random-base-ten-number.js +0 -4
  247. package/esm/simul/reference-data/isin-generator/generate-random-base-ten-number.js.map +0 -1
  248. package/esm/simul/reference-data/isin-generator/generate-random-string-of-alphanumeric-chars.js +0 -12
  249. package/esm/simul/reference-data/isin-generator/generate-random-string-of-alphanumeric-chars.js.map +0 -1
  250. package/esm/simul/reference-data/isin-generator/generate-random-string-of-base-ten-chars.js +0 -12
  251. package/esm/simul/reference-data/isin-generator/generate-random-string-of-base-ten-chars.js.map +0 -1
  252. package/esm/simul/reference-data/isin-generator/index.js +0 -293
  253. package/esm/simul/reference-data/isin-generator/index.js.map +0 -1
  254. package/esm/simul/reference-data/isin-generator/is-odd.js +0 -4
  255. package/esm/simul/reference-data/isin-generator/is-odd.js.map +0 -1
  256. package/esm/simul/reference-data/locations.js +0 -14
  257. package/esm/simul/reference-data/locations.js.map +0 -1
  258. package/esm/simul/reference-data/lotsizes.js +0 -26
  259. package/esm/simul/reference-data/lotsizes.js.map +0 -1
  260. package/esm/simul/reference-data/orderStatus.js +0 -4
  261. package/esm/simul/reference-data/orderStatus.js.map +0 -1
  262. package/esm/simul/reference-data/orders.js +0 -52
  263. package/esm/simul/reference-data/orders.js.map +0 -1
  264. package/esm/simul/reference-data/parent-child-orders.js +0 -139
  265. package/esm/simul/reference-data/parent-child-orders.js.map +0 -1
  266. package/esm/simul/reference-data/prices.js +0 -86
  267. package/esm/simul/reference-data/prices.js.map +0 -1
  268. package/esm/simul/reference-data/sides.js +0 -4
  269. package/esm/simul/reference-data/sides.js.map +0 -1
  270. package/esm/simul/simul-schemas.js +0 -147
  271. package/esm/simul/simul-schemas.js.map +0 -1
  272. package/esm/test/TestModule.js +0 -84
  273. package/esm/test/TestModule.js.map +0 -1
  274. package/esm/test/test-schemas.js +0 -50
  275. package/esm/test/test-schemas.js.map +0 -1
  276. package/esm/vuu-row-generator.js +0 -68
  277. package/esm/vuu-row-generator.js.map +0 -1
@@ -0,0 +1,272 @@
1
+ import { VuuModule } from "../core/module/VuuModule.js";
2
+ import TableContainer from "../core/table/TableContainer.js";
3
+ import { schemas } from "./basket-schemas.js";
4
+ import reference_data_constituents from "./reference-data/constituents.js";
5
+ const { createTable: createTable } = TableContainer;
6
+ let basketIncrement = 1;
7
+ const createBasketTradingRow = (basketId, basketName, side = "BUY", status = "OFF MARKET")=>[
8
+ basketId,
9
+ basketName,
10
+ 0,
11
+ 1.25,
12
+ `steve-${basketIncrement++}`,
13
+ side,
14
+ status,
15
+ 1000000,
16
+ 1250000,
17
+ 100
18
+ ];
19
+ const undefinedTables = {
20
+ algoType: void 0,
21
+ basket: void 0,
22
+ basketTrading: void 0,
23
+ basketTradingConstituent: void 0,
24
+ basketConstituent: void 0,
25
+ basketTradingConstituentJoin: void 0,
26
+ priceStrategyType: void 0
27
+ };
28
+ const buildDataColumnMap = (tableName)=>Object.values(schemas[tableName].columns).reduce((map, col, index)=>{
29
+ map[col.name] = index;
30
+ return map;
31
+ }, {});
32
+ const tableMaps = {
33
+ algoType: buildDataColumnMap("algoType"),
34
+ basket: buildDataColumnMap("basket"),
35
+ basketTrading: buildDataColumnMap("basketTrading"),
36
+ basketTradingConstituent: buildDataColumnMap("basketTradingConstituent"),
37
+ basketConstituent: buildDataColumnMap("basketConstituent"),
38
+ basketTradingConstituentJoin: buildDataColumnMap("basketTradingConstituentJoin"),
39
+ priceStrategyType: buildDataColumnMap("priceStrategyType")
40
+ };
41
+ const basketTradingConstituent = TableContainer.createTable(schemas.basketTradingConstituent, [], tableMaps.basketTradingConstituent);
42
+ class BasketModule extends VuuModule {
43
+ #tables = {
44
+ algoType: createTable(schemas.algoType, [
45
+ [
46
+ "Sniper",
47
+ 0
48
+ ],
49
+ [
50
+ "Dark Liquidity",
51
+ 1
52
+ ],
53
+ [
54
+ "VWAP",
55
+ 2
56
+ ],
57
+ [
58
+ "POV",
59
+ 3
60
+ ],
61
+ [
62
+ "Dynamic Close",
63
+ 4
64
+ ]
65
+ ], tableMaps.algoType),
66
+ basket: createTable(schemas.basket, [
67
+ [
68
+ ".NASDAQ100",
69
+ ".NASDAQ100",
70
+ 0,
71
+ 0
72
+ ],
73
+ [
74
+ ".HSI",
75
+ ".HSI",
76
+ 0,
77
+ 0
78
+ ],
79
+ [
80
+ ".FTSE100",
81
+ ".FTSE100",
82
+ 0,
83
+ 0
84
+ ],
85
+ [
86
+ ".SP500",
87
+ ".SP500",
88
+ 0,
89
+ 0
90
+ ]
91
+ ], tableMaps.basket),
92
+ basketConstituent: createTable(schemas.basketConstituent, reference_data_constituents, tableMaps.basketConstituent),
93
+ basketTrading: createTable(schemas.basketTrading, [], tableMaps.basketTrading),
94
+ basketTradingConstituent: basketTradingConstituent,
95
+ basketTradingConstituentJoin: TableContainer.createJoinTable({
96
+ module: "BASKET",
97
+ table: "basketTradingConstituentJoin"
98
+ }, {
99
+ module: "BASKET",
100
+ table: "basketTradingConstituent"
101
+ }, {
102
+ module: "SIMUL",
103
+ table: "prices"
104
+ }, "ric"),
105
+ priceStrategyType: createTable(schemas.priceStrategyType, [
106
+ [
107
+ "Peg to Near Touch",
108
+ 0
109
+ ],
110
+ [
111
+ "Far Touch",
112
+ 1
113
+ ],
114
+ [
115
+ "Limit",
116
+ 2
117
+ ],
118
+ [
119
+ "Algo",
120
+ 3
121
+ ]
122
+ ], tableMaps.priceStrategyType)
123
+ };
124
+ constructor(){
125
+ super("BASKET");
126
+ }
127
+ get menus() {
128
+ return {
129
+ ...undefinedTables,
130
+ basket: {
131
+ name: "ROOT",
132
+ menus: [
133
+ {
134
+ context: "selected-rows",
135
+ filter: "",
136
+ name: "Add Basket",
137
+ rpcName: "CREATE_NEW_BASKET"
138
+ }
139
+ ]
140
+ }
141
+ };
142
+ }
143
+ get schemas() {
144
+ return schemas;
145
+ }
146
+ get services() {
147
+ return {
148
+ ...undefinedTables,
149
+ basket: [
150
+ {
151
+ rpcName: "createBasket",
152
+ service: this.createNewBasket
153
+ }
154
+ ],
155
+ basketTrading: [
156
+ {
157
+ rpcName: "sendToMarket",
158
+ service: this.sendToMarket
159
+ },
160
+ {
161
+ rpcName: "takeOffMarket",
162
+ service: this.takeOffMarket
163
+ }
164
+ ],
165
+ basketTradingConstituentJoin: [
166
+ {
167
+ rpcName: "addConstituent",
168
+ service: this.addConstituent
169
+ }
170
+ ]
171
+ };
172
+ }
173
+ get menuServices() {
174
+ return {
175
+ ...undefinedTables
176
+ };
177
+ }
178
+ get tables() {
179
+ return this.#tables;
180
+ }
181
+ get visualLinks() {
182
+ return {
183
+ ...undefinedTables,
184
+ basketConstituent: [
185
+ {
186
+ fromColumn: "basketId",
187
+ toColumn: "id",
188
+ toTable: "basket"
189
+ }
190
+ ]
191
+ };
192
+ }
193
+ createTradingBasket(basketId, basketName) {
194
+ const basketTradingRow = createBasketTradingRow(basketId, basketName);
195
+ this.tables.basketTrading.insert(basketTradingRow);
196
+ const { basketId: key } = buildDataColumnMap("basketConstituent");
197
+ const constituents = this.tables.basketConstituent.data.filter((c)=>c[key] === basketId);
198
+ const { instanceId } = tableMaps.basketTrading;
199
+ constituents.forEach(([, , description, , ric, , , quantity, weighting])=>{
200
+ const algo = "";
201
+ const algoParams = "";
202
+ const limitPrice = 95;
203
+ const notionalLocal = 0;
204
+ const notionalUsd = 0;
205
+ const pctFilled = 0;
206
+ const priceSpread = 0;
207
+ const priceStrategyId = "";
208
+ const side = "BUY";
209
+ const venue = "venue";
210
+ const basketInstanceId = basketTradingRow[instanceId];
211
+ const basketTradingConstituentRow = [
212
+ algo,
213
+ algoParams,
214
+ basketId,
215
+ description,
216
+ basketInstanceId,
217
+ `${basketInstanceId}-${ric}`,
218
+ limitPrice,
219
+ notionalLocal,
220
+ notionalUsd,
221
+ pctFilled,
222
+ priceSpread,
223
+ priceStrategyId,
224
+ quantity,
225
+ ric,
226
+ side,
227
+ venue,
228
+ weighting
229
+ ];
230
+ basketTradingConstituent.insert(basketTradingConstituentRow);
231
+ });
232
+ return basketTradingRow[instanceId];
233
+ }
234
+ createNewBasket = async (rpcRequest)=>{
235
+ if ("VIEWPORT_CONTEXT" === rpcRequest.context.type) {
236
+ const { sourceBasketId, tradeBasketName } = rpcRequest.params;
237
+ const key = this.createTradingBasket(sourceBasketId, tradeBasketName);
238
+ return {
239
+ type: "SUCCESS_RESULT",
240
+ data: key
241
+ };
242
+ }
243
+ throw Error("[BasketModule] createNewBasket invalid request type");
244
+ };
245
+ sendToMarket = async (rpcRequest)=>{
246
+ if ("VIEWPORT_CONTEXT" === rpcRequest.context.type) {
247
+ const { basketInstanceId } = rpcRequest.params;
248
+ this.tables.basketTrading.update(basketInstanceId, "status", "ON_MARKET");
249
+ return {
250
+ type: "SUCCESS_RESULT",
251
+ data: void 0
252
+ };
253
+ }
254
+ throw Error("[BasketModule] createNewBasket invalid request type");
255
+ };
256
+ takeOffMarket = async (rpcRequest)=>{
257
+ if ("VIEWPORT_CONTEXT" === rpcRequest.context.type) {
258
+ const { basketInstanceId } = rpcRequest.params;
259
+ this.tables.basketTrading.update(basketInstanceId, "status", "OFF-MARKET");
260
+ return {
261
+ type: "SUCCESS_RESULT",
262
+ data: void 0
263
+ };
264
+ }
265
+ throw Error("[BasketModule] createNewBasket invalid request type");
266
+ };
267
+ addConstituent = async ()=>{
268
+ throw Error("addConstituent not implemented");
269
+ };
270
+ }
271
+ const basketModule = new BasketModule();
272
+ export { BasketModule, basketModule, createBasketTradingRow };
@@ -0,0 +1,355 @@
1
+ const schemas = {
2
+ algoType: {
3
+ columns: [
4
+ {
5
+ name: "algoType",
6
+ serverDataType: "string"
7
+ },
8
+ {
9
+ name: "id",
10
+ serverDataType: "int"
11
+ }
12
+ ],
13
+ key: "id",
14
+ table: {
15
+ module: "BASKET",
16
+ table: "algoType"
17
+ }
18
+ },
19
+ basket: {
20
+ columns: [
21
+ {
22
+ name: "id",
23
+ serverDataType: "string"
24
+ },
25
+ {
26
+ name: "name",
27
+ serverDataType: "string"
28
+ },
29
+ {
30
+ name: "notionalValue",
31
+ serverDataType: "double"
32
+ },
33
+ {
34
+ name: "notionalValueUsd",
35
+ serverDataType: "double"
36
+ }
37
+ ],
38
+ key: "id",
39
+ table: {
40
+ module: "BASKET",
41
+ table: "basket"
42
+ }
43
+ },
44
+ basketConstituent: {
45
+ columns: [
46
+ {
47
+ name: "basketId",
48
+ serverDataType: "string"
49
+ },
50
+ {
51
+ name: "change",
52
+ serverDataType: "string"
53
+ },
54
+ {
55
+ name: "description",
56
+ serverDataType: "string"
57
+ },
58
+ {
59
+ name: "lastTrade",
60
+ serverDataType: "string"
61
+ },
62
+ {
63
+ name: "ric",
64
+ serverDataType: "string"
65
+ },
66
+ {
67
+ name: "ricBasketId",
68
+ serverDataType: "string"
69
+ },
70
+ {
71
+ name: "side",
72
+ serverDataType: "string"
73
+ },
74
+ {
75
+ name: "volume",
76
+ serverDataType: "string"
77
+ },
78
+ {
79
+ name: "weighting",
80
+ serverDataType: "double"
81
+ }
82
+ ],
83
+ key: "ricBasketId",
84
+ table: {
85
+ module: "BASKET",
86
+ table: "basketConstituent"
87
+ }
88
+ },
89
+ basketTrading: {
90
+ columns: [
91
+ {
92
+ name: "basketId",
93
+ serverDataType: "string"
94
+ },
95
+ {
96
+ name: "basketName",
97
+ serverDataType: "string"
98
+ },
99
+ {
100
+ name: "filledPct",
101
+ serverDataType: "double"
102
+ },
103
+ {
104
+ name: "fxRateToUsd",
105
+ serverDataType: "double"
106
+ },
107
+ {
108
+ name: "instanceId",
109
+ serverDataType: "string"
110
+ },
111
+ {
112
+ name: "side",
113
+ serverDataType: "string"
114
+ },
115
+ {
116
+ name: "status",
117
+ serverDataType: "string"
118
+ },
119
+ {
120
+ name: "totalNotional",
121
+ serverDataType: "double"
122
+ },
123
+ {
124
+ name: "totalNotionalUsd",
125
+ serverDataType: "double"
126
+ },
127
+ {
128
+ name: "units",
129
+ serverDataType: "int"
130
+ }
131
+ ],
132
+ key: "instanceId",
133
+ table: {
134
+ module: "BASKET",
135
+ table: "basketTrading"
136
+ }
137
+ },
138
+ basketTradingConstituent: {
139
+ columns: [
140
+ {
141
+ name: "algo",
142
+ serverDataType: "string"
143
+ },
144
+ {
145
+ name: "algoParams",
146
+ serverDataType: "string"
147
+ },
148
+ {
149
+ name: "basketId",
150
+ serverDataType: "string"
151
+ },
152
+ {
153
+ name: "description",
154
+ serverDataType: "string"
155
+ },
156
+ {
157
+ name: "instanceId",
158
+ serverDataType: "string"
159
+ },
160
+ {
161
+ name: "instanceIdRic",
162
+ serverDataType: "string"
163
+ },
164
+ {
165
+ name: "limitPrice",
166
+ serverDataType: "double"
167
+ },
168
+ {
169
+ name: "notionalLocal",
170
+ serverDataType: "double"
171
+ },
172
+ {
173
+ name: "notionalUsd",
174
+ serverDataType: "double"
175
+ },
176
+ {
177
+ name: "pctFilled",
178
+ serverDataType: "double"
179
+ },
180
+ {
181
+ name: "priceSpread",
182
+ serverDataType: "int"
183
+ },
184
+ {
185
+ name: "priceStrategyId",
186
+ serverDataType: "int"
187
+ },
188
+ {
189
+ name: "quantity",
190
+ serverDataType: "long"
191
+ },
192
+ {
193
+ name: "ric",
194
+ serverDataType: "string"
195
+ },
196
+ {
197
+ name: "side",
198
+ serverDataType: "string"
199
+ },
200
+ {
201
+ name: "status",
202
+ serverDataType: "string"
203
+ },
204
+ {
205
+ name: "venue",
206
+ serverDataType: "string"
207
+ },
208
+ {
209
+ name: "weighting",
210
+ serverDataType: "double"
211
+ }
212
+ ],
213
+ key: "instanceIdRic",
214
+ table: {
215
+ module: "BASKET",
216
+ table: "basketTradingConstituent"
217
+ }
218
+ },
219
+ basketTradingConstituentJoin: {
220
+ columns: [
221
+ {
222
+ name: "algo",
223
+ serverDataType: "string"
224
+ },
225
+ {
226
+ name: "algoParams",
227
+ serverDataType: "string"
228
+ },
229
+ {
230
+ name: "ask",
231
+ serverDataType: "double"
232
+ },
233
+ {
234
+ name: "askSize",
235
+ serverDataType: "double"
236
+ },
237
+ {
238
+ name: "basketId",
239
+ serverDataType: "string"
240
+ },
241
+ {
242
+ name: "bid",
243
+ serverDataType: "double"
244
+ },
245
+ {
246
+ name: "bidSize",
247
+ serverDataType: "double"
248
+ },
249
+ {
250
+ name: "close",
251
+ serverDataType: "double"
252
+ },
253
+ {
254
+ name: "description",
255
+ serverDataType: "string"
256
+ },
257
+ {
258
+ name: "instanceId",
259
+ serverDataType: "string"
260
+ },
261
+ {
262
+ name: "instanceIdRic",
263
+ serverDataType: "string"
264
+ },
265
+ {
266
+ name: "last",
267
+ serverDataType: "double"
268
+ },
269
+ {
270
+ name: "limitPrice",
271
+ serverDataType: "double"
272
+ },
273
+ {
274
+ name: "notionalLocal",
275
+ serverDataType: "double"
276
+ },
277
+ {
278
+ name: "notionalUsd",
279
+ serverDataType: "double"
280
+ },
281
+ {
282
+ name: "open",
283
+ serverDataType: "double"
284
+ },
285
+ {
286
+ name: "pctFilled",
287
+ serverDataType: "double"
288
+ },
289
+ {
290
+ name: "phase",
291
+ serverDataType: "string"
292
+ },
293
+ {
294
+ name: "priceSpread",
295
+ serverDataType: "int"
296
+ },
297
+ {
298
+ name: "priceStrategyId",
299
+ serverDataType: "int"
300
+ },
301
+ {
302
+ name: "quantity",
303
+ serverDataType: "long"
304
+ },
305
+ {
306
+ name: "ric",
307
+ serverDataType: "string"
308
+ },
309
+ {
310
+ name: "scenario",
311
+ serverDataType: "string"
312
+ },
313
+ {
314
+ name: "side",
315
+ serverDataType: "string"
316
+ },
317
+ {
318
+ name: "status",
319
+ serverDataType: "string"
320
+ },
321
+ {
322
+ name: "venue",
323
+ serverDataType: "string"
324
+ },
325
+ {
326
+ name: "weighting",
327
+ serverDataType: "double"
328
+ }
329
+ ],
330
+ key: "instanceIdRic",
331
+ table: {
332
+ module: "BASKET",
333
+ table: "basketTradingConstituentJoin"
334
+ }
335
+ },
336
+ priceStrategyType: {
337
+ columns: [
338
+ {
339
+ name: "priceStrategy",
340
+ serverDataType: "string"
341
+ },
342
+ {
343
+ name: "id",
344
+ serverDataType: "int"
345
+ }
346
+ ],
347
+ key: "",
348
+ table: {
349
+ module: "BASKET",
350
+ table: "priceStrategyType"
351
+ }
352
+ }
353
+ };
354
+ const isBasketTable = (table)=>"BASKET" === table.module;
355
+ export { isBasketTable, schemas };
@@ -0,0 +1,2 @@
1
+ export { isBasketTable, schemas as basketSchemas } from "./basket-schemas.js";
2
+ export { basketModule } from "./BasketModule.js";
@@ -0,0 +1,76 @@
1
+ import ftse100 from "./ftse100.js";
2
+ import nasdaq100 from "./nasdaq100.js";
3
+ import sp500 from "./sp500.js";
4
+ import hsi from "./hsi.js";
5
+ const basketConstituentData = [];
6
+ for (const row of ftse100){
7
+ const [ric, name, lastTrade, change, volume] = row;
8
+ const basketId = ".FTSE100";
9
+ const side = "BUY";
10
+ const weighting = 1;
11
+ basketConstituentData.push([
12
+ basketId,
13
+ change,
14
+ name,
15
+ lastTrade,
16
+ ric,
17
+ `${ric}-${basketId}`,
18
+ side,
19
+ volume,
20
+ weighting
21
+ ]);
22
+ }
23
+ for (const row of hsi){
24
+ const [name, ric, lastTrade, change, , volume] = row;
25
+ const basketId = ".HSI";
26
+ const side = "BUY";
27
+ const weighting = 1;
28
+ basketConstituentData.push([
29
+ basketId,
30
+ change,
31
+ name,
32
+ lastTrade,
33
+ ric,
34
+ `${ric}-${basketId}`,
35
+ side,
36
+ volume,
37
+ weighting
38
+ ]);
39
+ }
40
+ for (const row of nasdaq100){
41
+ const [name, ric, weighting, lastTrade, change] = row;
42
+ const basketId = ".NASDAQ100";
43
+ const side = "BUY";
44
+ const volume = 1000;
45
+ basketConstituentData.push([
46
+ basketId,
47
+ change,
48
+ name,
49
+ lastTrade,
50
+ ric,
51
+ `${ric}-${basketId}`,
52
+ side,
53
+ volume,
54
+ weighting
55
+ ]);
56
+ }
57
+ for (const row of sp500){
58
+ const [name, ric, weighting, , change] = row;
59
+ const basketId = ".SP500";
60
+ const side = "BUY";
61
+ const volume = 1000;
62
+ const lastTrade = 0;
63
+ basketConstituentData.push([
64
+ basketId,
65
+ change,
66
+ name,
67
+ lastTrade,
68
+ ric,
69
+ `${ric}-${basketId}`,
70
+ side,
71
+ volume,
72
+ weighting
73
+ ]);
74
+ }
75
+ var constituents = basketConstituentData;
76
+ export default constituents;