@vuu-ui/vuu-data-test 3.0.0-beta.3 → 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 -344
  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 -846
  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 -342
  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 -844
  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,27 @@
1
+ const alphabet = [
2
+ "A",
3
+ "B",
4
+ "C",
5
+ "D",
6
+ "E",
7
+ "F",
8
+ "G",
9
+ "H",
10
+ "J",
11
+ "K",
12
+ "L",
13
+ "M",
14
+ "N",
15
+ "P",
16
+ "Q",
17
+ "R",
18
+ "S",
19
+ "T",
20
+ "U",
21
+ "V",
22
+ "W",
23
+ "X",
24
+ "Y",
25
+ "Z"
26
+ ];
27
+ export { alphabet };
@@ -0,0 +1,7 @@
1
+ import { alphabet } from "./alphabet.mjs";
2
+ import { baseTenNumbers } from "./base-ten-numbers.mjs";
3
+ const alphanumeric = [
4
+ ...alphabet,
5
+ ...baseTenNumbers
6
+ ];
7
+ export { alphanumeric };
@@ -0,0 +1,13 @@
1
+ const baseTenNumbers = [
2
+ 0,
3
+ 1,
4
+ 2,
5
+ 3,
6
+ 4,
7
+ 5,
8
+ 6,
9
+ 7,
10
+ 8,
11
+ 9
12
+ ];
13
+ export { baseTenNumbers };
@@ -0,0 +1,17 @@
1
+ import { convertStringToBaseTenNumber } from "./convert-string-to-base-ten-number.mjs";
2
+ import { isOdd } from "./is-odd.mjs";
3
+ const generateCusipCheckCode = (cusip)=>{
4
+ const cusipLength = cusip.length;
5
+ let currentValue;
6
+ let total = 0;
7
+ for(let i = 0; i < cusipLength; i++){
8
+ currentValue = cusip[i];
9
+ const currentNumberToBaseTen = convertStringToBaseTenNumber(currentValue);
10
+ let currentNumberOrPosition = isNaN(currentNumberToBaseTen) ? currentValue.charCodeAt(0) - "A".charCodeAt(0) + 10 : parseInt(currentValue);
11
+ if (isOdd(i)) currentNumberOrPosition *= 2;
12
+ total = total + Math.floor(currentNumberOrPosition / 10) + currentNumberOrPosition % 10;
13
+ }
14
+ const check = (10 - total % 10) % 10;
15
+ return check;
16
+ };
17
+ export { generateCusipCheckCode };
@@ -0,0 +1,8 @@
1
+ import { generateRandomStringOfAlphanumericChars } from "./generate-random-string-of-alphanumeric-chars.mjs";
2
+ import { generateRandomStringOfBaseTenChars } from "./generate-random-string-of-base-ten-chars.mjs";
3
+ const generateCusipWithoutCheckCode = ()=>{
4
+ const randomBaseTenString = generateRandomStringOfBaseTenChars();
5
+ const randomAlphanumericString = generateRandomStringOfAlphanumericChars();
6
+ return randomBaseTenString + randomAlphanumericString;
7
+ };
8
+ export { generateCusipWithoutCheckCode };
@@ -0,0 +1,8 @@
1
+ import { generateCusipCheckCode } from "./generate-cusip-check-code.mjs";
2
+ import { generateCusipWithoutCheckCode } from "./generate-cusip-without-check-code.mjs";
3
+ const generateCusip = ()=>{
4
+ const cusip = generateCusipWithoutCheckCode();
5
+ const check = generateCusipCheckCode(cusip);
6
+ return cusip + check;
7
+ };
8
+ export { generateCusip };
@@ -0,0 +1,3 @@
1
+ import { alphanumeric } from "./fixtures/alphanumeric-values.mjs";
2
+ const generateRandomAlphanumeric = ()=>alphanumeric[Math.floor(Math.random() * alphanumeric.length)];
3
+ export { generateRandomAlphanumeric };
@@ -0,0 +1,2 @@
1
+ const generateRandomBaseTenNumber = ()=>Math.floor(10 * Math.random());
2
+ export { generateRandomBaseTenNumber };
@@ -0,0 +1,7 @@
1
+ import { generateRandomAlphanumeric } from "./generate-random-alphanumeric.mjs";
2
+ const generateRandomStringOfAlphanumericChars = ()=>{
3
+ let string = "";
4
+ for(let i = 0; i < 2; i++)string += generateRandomAlphanumeric();
5
+ return string;
6
+ };
7
+ export { generateRandomStringOfAlphanumericChars };
@@ -0,0 +1,7 @@
1
+ import { generateRandomBaseTenNumber } from "./generate-random-base-ten-number.mjs";
2
+ const generateRandomStringOfBaseTenChars = ()=>{
3
+ let string = "";
4
+ for(let i = 0; i < 6; i++)string += generateRandomBaseTenNumber();
5
+ return string;
6
+ };
7
+ export { generateRandomStringOfBaseTenChars };
@@ -0,0 +1,280 @@
1
+ import { generateCusip } from "./generate-cusip.mjs";
2
+ const countryCodes = [
3
+ "AD",
4
+ "AE",
5
+ "AF",
6
+ "AG",
7
+ "AI",
8
+ "AL",
9
+ "AM",
10
+ "AO",
11
+ "AQ",
12
+ "AR",
13
+ "AS",
14
+ "AT",
15
+ "AU",
16
+ "AW",
17
+ "AX",
18
+ "AZ",
19
+ "BA",
20
+ "BB",
21
+ "BD",
22
+ "BE",
23
+ "BF",
24
+ "BG",
25
+ "BH",
26
+ "BI",
27
+ "BJ",
28
+ "BL",
29
+ "BM",
30
+ "BN",
31
+ "BO",
32
+ "BQ",
33
+ "BR",
34
+ "BS",
35
+ "BT",
36
+ "BV",
37
+ "BW",
38
+ "BY",
39
+ "BZ",
40
+ "CA",
41
+ "CC",
42
+ "CD",
43
+ "CF",
44
+ "CG",
45
+ "CH",
46
+ "CI",
47
+ "CK",
48
+ "CL",
49
+ "CM",
50
+ "CN",
51
+ "CO",
52
+ "CR",
53
+ "CU",
54
+ "CV",
55
+ "CW",
56
+ "CX",
57
+ "CY",
58
+ "CZ",
59
+ "DE",
60
+ "DJ",
61
+ "DK",
62
+ "DM",
63
+ "DO",
64
+ "DZ",
65
+ "EC",
66
+ "EE",
67
+ "EG",
68
+ "EH",
69
+ "ER",
70
+ "ES",
71
+ "ET",
72
+ "FI",
73
+ "FJ",
74
+ "FK",
75
+ "FM",
76
+ "FO",
77
+ "FR",
78
+ "GA",
79
+ "GB",
80
+ "GD",
81
+ "GE",
82
+ "GF",
83
+ "GG",
84
+ "GH",
85
+ "GI",
86
+ "GL",
87
+ "GM",
88
+ "GN",
89
+ "GP",
90
+ "GQ",
91
+ "GR",
92
+ "GS",
93
+ "GT",
94
+ "GU",
95
+ "GW",
96
+ "GY",
97
+ "HK",
98
+ "HM",
99
+ "HN",
100
+ "HR",
101
+ "HT",
102
+ "HU",
103
+ "ID",
104
+ "IE",
105
+ "IL",
106
+ "IM",
107
+ "IN",
108
+ "IO",
109
+ "IQ",
110
+ "IR",
111
+ "IS",
112
+ "IT",
113
+ "JE",
114
+ "JM",
115
+ "JO",
116
+ "JP",
117
+ "KE",
118
+ "KG",
119
+ "KH",
120
+ "KI",
121
+ "KM",
122
+ "KN",
123
+ "KP",
124
+ "KR",
125
+ "KW",
126
+ "KY",
127
+ "KZ",
128
+ "LA",
129
+ "LB",
130
+ "LC",
131
+ "LI",
132
+ "LK",
133
+ "LR",
134
+ "LS",
135
+ "LT",
136
+ "LU",
137
+ "LV",
138
+ "LY",
139
+ "MA",
140
+ "MC",
141
+ "MD",
142
+ "ME",
143
+ "MF",
144
+ "MG",
145
+ "MH",
146
+ "MK",
147
+ "ML",
148
+ "MM",
149
+ "MN",
150
+ "MO",
151
+ "MP",
152
+ "MQ",
153
+ "MR",
154
+ "MS",
155
+ "MT",
156
+ "MU",
157
+ "MV",
158
+ "MW",
159
+ "MX",
160
+ "MY",
161
+ "MZ",
162
+ "NA",
163
+ "NC",
164
+ "NE",
165
+ "NF",
166
+ "NG",
167
+ "NI",
168
+ "NL",
169
+ "NO",
170
+ "NP",
171
+ "NR",
172
+ "NU",
173
+ "NZ",
174
+ "OM",
175
+ "PA",
176
+ "PE",
177
+ "PF",
178
+ "PG",
179
+ "PH",
180
+ "PK",
181
+ "PL",
182
+ "PM",
183
+ "PN",
184
+ "PR",
185
+ "PS",
186
+ "PT",
187
+ "PW",
188
+ "PY",
189
+ "QA",
190
+ "RE",
191
+ "RO",
192
+ "RS",
193
+ "RU",
194
+ "RW",
195
+ "SA",
196
+ "SB",
197
+ "SC",
198
+ "SD",
199
+ "SE",
200
+ "SG",
201
+ "SH",
202
+ "SI",
203
+ "SJ",
204
+ "SK",
205
+ "SL",
206
+ "SM",
207
+ "SN",
208
+ "SO",
209
+ "SR",
210
+ "SS",
211
+ "ST",
212
+ "SV",
213
+ "SX",
214
+ "SY",
215
+ "SZ",
216
+ "TC",
217
+ "TD",
218
+ "TF",
219
+ "TG",
220
+ "TH",
221
+ "TJ",
222
+ "TK",
223
+ "TL",
224
+ "TM",
225
+ "TN",
226
+ "TO",
227
+ "TR",
228
+ "TT",
229
+ "TV",
230
+ "TW",
231
+ "TZ",
232
+ "UA",
233
+ "UG",
234
+ "UM",
235
+ "US",
236
+ "UY",
237
+ "UZ",
238
+ "VA",
239
+ "VC",
240
+ "VE",
241
+ "VG",
242
+ "VI",
243
+ "VN",
244
+ "VU",
245
+ "WF",
246
+ "WS",
247
+ "YE",
248
+ "YT",
249
+ "ZA",
250
+ "ZM",
251
+ "ZW"
252
+ ];
253
+ const isin_generator_cusip = generateCusip();
254
+ const generateIsin = (cusip)=>{
255
+ const code = countryCodes[Math.floor(Math.random() * countryCodes.length)];
256
+ const isin = code + cusip + generateIsinCheckDigit(code + cusip + "0");
257
+ return isin;
258
+ };
259
+ const generateIsinCheckDigit = (isin)=>{
260
+ if (12 != isin.length) return false;
261
+ const v = [];
262
+ for(let i = isin.length - 2; i >= 0; i--){
263
+ const c = isin.charAt(i);
264
+ if (isNaN(parseInt(c))) {
265
+ const letterCode = isin.charCodeAt(i) - 55;
266
+ v.push(letterCode % 10);
267
+ if (letterCode > 9) v.push(Math.floor(letterCode / 10));
268
+ } else v.push(Number(c));
269
+ }
270
+ let sum = 0;
271
+ const l = v.length;
272
+ for(let i = 0; i < l; i++)if (i % 2 == 0) {
273
+ const d = 2 * v[i];
274
+ sum += Math.floor(d / 10);
275
+ sum += d % 10;
276
+ } else sum += v[i];
277
+ return (10 - sum % 10) % 10;
278
+ };
279
+ const isinGenerator = ()=>generateIsin(isin_generator_cusip);
280
+ export { isinGenerator };
@@ -0,0 +1,2 @@
1
+ const isOdd = (value)=>value % 2 === 1;
2
+ export { isOdd };
@@ -0,0 +1,45 @@
1
+ const locations = {
2
+ L: [
3
+ "London PLC",
4
+ "XLON/LSE-SETS"
5
+ ],
6
+ N: [
7
+ "Corporation",
8
+ "XNGS/NAS-GSM"
9
+ ],
10
+ AS: [
11
+ "B.V.",
12
+ "XAMS/ENA-MAIN"
13
+ ],
14
+ OQ: [
15
+ "Co.",
16
+ "XNYS/NYS-MAIN"
17
+ ],
18
+ PA: [
19
+ "Paris",
20
+ "PAR/EUR_FR"
21
+ ],
22
+ MI: [
23
+ "Milan",
24
+ "MIL/EUR_IT"
25
+ ],
26
+ FR: [
27
+ "Frankfurt",
28
+ "FR/EUR_DE"
29
+ ],
30
+ AT: [
31
+ "Athens",
32
+ "AT/EUR_GR"
33
+ ]
34
+ };
35
+ const suffixes = [
36
+ "L",
37
+ "N",
38
+ "OQ",
39
+ "AS",
40
+ "PA",
41
+ "MI",
42
+ "FR",
43
+ "AT"
44
+ ];
45
+ export { locations, suffixes };
@@ -0,0 +1,24 @@
1
+ const lotsizes = [
2
+ 1,
3
+ 2,
4
+ 5,
5
+ 10,
6
+ 50,
7
+ 50,
8
+ 70,
9
+ 100,
10
+ 100,
11
+ 100,
12
+ 120,
13
+ 150,
14
+ 150,
15
+ 200,
16
+ 500,
17
+ 700,
18
+ 1000,
19
+ 2000,
20
+ 2500,
21
+ 5000,
22
+ 10000
23
+ ];
24
+ export { lotsizes };
@@ -0,0 +1,6 @@
1
+ const orderStatus = [
2
+ "NEW",
3
+ "CANCELLED",
4
+ "FILLED"
5
+ ];
6
+ export { orderStatus };
@@ -0,0 +1,64 @@
1
+ import { currencies } from "./currencies.mjs";
2
+ import { getRic } from "./instruments.mjs";
3
+ import { random } from "../../data-utils.mjs";
4
+ import { buildDataColumnMap } from "../../Table.mjs";
5
+ import { schemas } from "../simul-schemas.mjs";
6
+ import { sides } from "./sides.mjs";
7
+ import TableContainer from "../../core/table/TableContainer.mjs";
8
+ const traders = [
9
+ "Trader A",
10
+ "Trader B",
11
+ "Trader C"
12
+ ];
13
+ const orderStatus = [
14
+ "Filled",
15
+ "Cancelled",
16
+ "New",
17
+ "Partial Exec",
18
+ "Booked",
19
+ "All Done"
20
+ ];
21
+ const isComplete = (status)=>[
22
+ "Filled",
23
+ "All Done",
24
+ "Booked"
25
+ ].includes(status);
26
+ const OrderColumnMap = {
27
+ ccy: 0,
28
+ created: 1,
29
+ filledQuantity: 2,
30
+ lastUpdate: 3,
31
+ orderId: 4,
32
+ quantity: 5,
33
+ ric: 6,
34
+ side: 7,
35
+ trader: 8
36
+ };
37
+ const ordersData = [];
38
+ const now = +new Date();
39
+ for(let i = 0; i < 100; i++){
40
+ const status = orderStatus[random(0, orderStatus.length - 1)];
41
+ const ccy = currencies[random(0, currencies.length - 1)];
42
+ const created = now;
43
+ const lastUpdate = now;
44
+ const orderId = `ORD${("0000" + i).slice(-4)}`;
45
+ const quantity = random(1000, 10000);
46
+ const filledQuantity = isComplete(status) ? quantity : "New" === status ? 0 : random(0, quantity);
47
+ const ric = getRic("AAP.L");
48
+ const side = sides[random(0, sides.length - 1)];
49
+ const trader = traders[random(0, traders.length - 1)];
50
+ ordersData.push([
51
+ status,
52
+ ccy,
53
+ created,
54
+ filledQuantity,
55
+ lastUpdate,
56
+ orderId,
57
+ quantity,
58
+ ric,
59
+ side,
60
+ trader
61
+ ]);
62
+ }
63
+ const ordersTable = TableContainer.createTable(schemas.orders, ordersData, buildDataColumnMap(schemas, "orders"));
64
+ export { OrderColumnMap, ordersData, ordersTable };
@@ -0,0 +1,119 @@
1
+ import { Clock } from "@vuu-ui/vuu-utils";
2
+ import TableContainer from "../../core/table/TableContainer.mjs";
3
+ import { random } from "../../data-utils.mjs";
4
+ import { buildDataColumnMap } from "../../Table.mjs";
5
+ import { schemas } from "../simul-schemas.mjs";
6
+ import { accounts } from "./accounts.mjs";
7
+ import { algos } from "./algos.mjs";
8
+ import { instrumentsData } from "./instruments.mjs";
9
+ import { orderStatus as external_orderStatus_mjs_orderStatus } from "./orderStatus.mjs";
10
+ import { sides } from "./sides.mjs";
11
+ const instrumentMap = buildDataColumnMap(schemas, "instruments");
12
+ const PARENT_ORDER_COUNT = 5000;
13
+ const CHILD_ORDER_COUNT = 20000;
14
+ const avgChildOrderPerOrder = Math.round(CHILD_ORDER_COUNT / PARENT_ORDER_COUNT);
15
+ const childMaxMultiple = 10;
16
+ const clock = new Clock().goBack(120, "minutes");
17
+ const parentOrdersTable = TableContainer.createTable(schemas.parentOrders, [], buildDataColumnMap(schemas, "parentOrders"));
18
+ const childOrdersTable = TableContainer.createTable(schemas.childOrders, [], buildDataColumnMap(schemas, "childOrders"));
19
+ let parentOrderCount = 0;
20
+ let childOrderCount = 0;
21
+ let notifyNewOrders = false;
22
+ function createParentAndChildOrders() {
23
+ parentOrderCount += 1;
24
+ const instrument = instrumentsData[random(0, instrumentsData.length - 1)];
25
+ const orderQuantity = 1000 * random(1, 100);
26
+ const orderStatus = external_orderStatus_mjs_orderStatus[random(0, external_orderStatus_mjs_orderStatus.length - 1)];
27
+ const filledQty = "FILLED" === orderStatus ? orderQuantity : "NEW" === orderStatus ? 0 : orderQuantity - random(100, orderQuantity);
28
+ const openQty = orderQuantity - filledQty;
29
+ const account = accounts[random(0, accounts.length - 1)];
30
+ const algo = algos[random(0, algos.length - 1)];
31
+ const averagePrice = 0;
32
+ const ccy = "GBP";
33
+ const exchange = instrument[instrumentMap.exchange];
34
+ const parentOrderIdAsInt = parentOrderCount;
35
+ const parentOrderId = parentOrderCount.toString().padStart(10, "0");
36
+ const price = 100;
37
+ const quantity = orderQuantity;
38
+ const ric = instrument[instrumentMap.ric];
39
+ const side = sides[random(0, sides.length - 1)];
40
+ const status = orderStatus;
41
+ const volLimit = 100;
42
+ const lastUpdate = clock.now;
43
+ const created = clock.now;
44
+ const numberOfChildOrders = random(0, avgChildOrderPerOrder * random(1, childMaxMultiple));
45
+ let remainingQty = orderQuantity;
46
+ for(let j = 0; j < numberOfChildOrders; j++){
47
+ childOrderCount += 1;
48
+ const childOrderQuantity = Math.round(remainingQty / (childOrderCount - j));
49
+ remainingQty -= childOrderQuantity;
50
+ const childOrderStatus = external_orderStatus_mjs_orderStatus[random(0, external_orderStatus_mjs_orderStatus.length - 1)];
51
+ const childFilledQty = "FILLED" === orderStatus ? childOrderQuantity : "NEW" === childOrderStatus ? 0 : childOrderQuantity - random(100, childOrderQuantity);
52
+ const childOpenQty = childOrderQuantity - childFilledQty;
53
+ const averagePrice = 0;
54
+ const childIdAsInt = childOrderCount;
55
+ const childId = childOrderCount.toString().padStart(10, "0");
56
+ const lastUpdate = 0;
57
+ const price = 100;
58
+ const strategy = 0;
59
+ childOrdersTable.insert([
60
+ account,
61
+ averagePrice,
62
+ ccy,
63
+ exchange,
64
+ childFilledQty,
65
+ childId,
66
+ childIdAsInt,
67
+ childOpenQty,
68
+ parentOrderId,
69
+ price,
70
+ childOrderQuantity,
71
+ ric,
72
+ side,
73
+ childOrderStatus,
74
+ strategy,
75
+ volLimit,
76
+ lastUpdate,
77
+ created,
78
+ ''
79
+ ], notifyNewOrders);
80
+ }
81
+ parentOrdersTable.insert([
82
+ account,
83
+ algo,
84
+ averagePrice,
85
+ ccy,
86
+ childOrderCount,
87
+ exchange,
88
+ filledQty,
89
+ parentOrderId,
90
+ parentOrderIdAsInt,
91
+ openQty,
92
+ price,
93
+ quantity,
94
+ ric,
95
+ side,
96
+ status,
97
+ volLimit,
98
+ lastUpdate,
99
+ created,
100
+ ''
101
+ ], notifyNewOrders);
102
+ }
103
+ function createInitialOrders() {
104
+ for(let i = 0; i < PARENT_ORDER_COUNT; i++){
105
+ clock.advance(random(0, 100));
106
+ createParentAndChildOrders();
107
+ }
108
+ }
109
+ let newOrderInterval;
110
+ function startGeneratingNewOrders() {
111
+ newOrderInterval = setInterval(createParentAndChildOrders, 100);
112
+ }
113
+ function stopGeneratingNewOrders() {
114
+ clearInterval(newOrderInterval);
115
+ }
116
+ createInitialOrders();
117
+ clock.showCurrentTime = true;
118
+ notifyNewOrders = true;
119
+ export { childOrdersTable, parentOrdersTable, startGeneratingNewOrders, stopGeneratingNewOrders };
@@ -0,0 +1,8 @@
1
+ const priceStrategies = [
2
+ "Peg to near touch",
3
+ "Limit",
4
+ "Strategy 3",
5
+ "Strategy 4",
6
+ "Strategy 5"
7
+ ];
8
+ export { priceStrategies };