@vuu-ui/vuu-data-test 3.0.0 → 3.1.0-beta.1

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