@vuu-ui/vuu-data-test 0.13.13 → 0.13.15

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 (112) hide show
  1. package/cjs/ArrayProxy.js.map +1 -1
  2. package/cjs/RuntimeVisualLink.js.map +1 -1
  3. package/cjs/Table.js +4 -2
  4. package/cjs/Table.js.map +1 -1
  5. package/cjs/TickingArrayDataSource.js +6 -0
  6. package/cjs/TickingArrayDataSource.js.map +1 -1
  7. package/cjs/UpdateGenerator.js.map +1 -1
  8. package/cjs/VuuModule.js.map +1 -1
  9. package/cjs/basket/basket-module.js.map +1 -1
  10. package/cjs/basket/basket-schemas.js.map +1 -1
  11. package/cjs/basket/reference-data/constituents.js.map +1 -1
  12. package/cjs/basket/reference-data/ftse100.js.map +1 -1
  13. package/cjs/basket/reference-data/hsi.js.map +1 -1
  14. package/cjs/basket/reference-data/nasdaq100.js.map +1 -1
  15. package/cjs/basket/reference-data/prices.js.map +1 -1
  16. package/cjs/basket/reference-data/sp500.js.map +1 -1
  17. package/cjs/data-utils.js.map +1 -1
  18. package/cjs/local-datasource-provider/LocalDatasourceProvider.js.map +1 -1
  19. package/cjs/makeSuggestions.js.map +1 -1
  20. package/cjs/schemas.js.map +1 -1
  21. package/cjs/simul/SimulModule.js.map +1 -1
  22. package/cjs/simul/reference-data/accounts.js.map +1 -1
  23. package/cjs/simul/reference-data/algos.js.map +1 -1
  24. package/cjs/simul/reference-data/currencies.js.map +1 -1
  25. package/cjs/simul/reference-data/instruments-extended.js.map +1 -1
  26. package/cjs/simul/reference-data/instruments.js.map +1 -1
  27. package/cjs/simul/reference-data/isin-generator/convert-string-to-base-ten-number.js.map +1 -1
  28. package/cjs/simul/reference-data/isin-generator/fixtures/alphabet.js.map +1 -1
  29. package/cjs/simul/reference-data/isin-generator/fixtures/alphanumeric-values.js.map +1 -1
  30. package/cjs/simul/reference-data/isin-generator/fixtures/base-ten-numbers.js.map +1 -1
  31. package/cjs/simul/reference-data/isin-generator/generate-cusip-check-code.js.map +1 -1
  32. package/cjs/simul/reference-data/isin-generator/generate-cusip-without-check-code.js.map +1 -1
  33. package/cjs/simul/reference-data/isin-generator/generate-cusip.js.map +1 -1
  34. package/cjs/simul/reference-data/isin-generator/generate-random-alphanumeric.js.map +1 -1
  35. package/cjs/simul/reference-data/isin-generator/generate-random-base-ten-number.js.map +1 -1
  36. package/cjs/simul/reference-data/isin-generator/generate-random-string-of-alphanumeric-chars.js.map +1 -1
  37. package/cjs/simul/reference-data/isin-generator/generate-random-string-of-base-ten-chars.js.map +1 -1
  38. package/cjs/simul/reference-data/isin-generator/index.js.map +1 -1
  39. package/cjs/simul/reference-data/isin-generator/is-odd.js.map +1 -1
  40. package/cjs/simul/reference-data/locations.js.map +1 -1
  41. package/cjs/simul/reference-data/lotsizes.js.map +1 -1
  42. package/cjs/simul/reference-data/orderStatus.js.map +1 -1
  43. package/cjs/simul/reference-data/orders.js.map +1 -1
  44. package/cjs/simul/reference-data/parent-child-orders.js +87 -65
  45. package/cjs/simul/reference-data/parent-child-orders.js.map +1 -1
  46. package/cjs/simul/reference-data/prices.js.map +1 -1
  47. package/cjs/simul/reference-data/sides.js.map +1 -1
  48. package/cjs/simul/simul-module.js +36 -0
  49. package/cjs/simul/simul-module.js.map +1 -1
  50. package/cjs/simul/simul-schemas.js.map +1 -1
  51. package/cjs/test/test-module.js.map +1 -1
  52. package/cjs/test/test-schemas.js.map +1 -1
  53. package/cjs/vuu-modules.js.map +1 -1
  54. package/cjs/vuu-row-generator.js.map +1 -1
  55. package/esm/ArrayProxy.js.map +1 -1
  56. package/esm/RuntimeVisualLink.js.map +1 -1
  57. package/esm/Table.js +4 -2
  58. package/esm/Table.js.map +1 -1
  59. package/esm/TickingArrayDataSource.js +6 -0
  60. package/esm/TickingArrayDataSource.js.map +1 -1
  61. package/esm/UpdateGenerator.js.map +1 -1
  62. package/esm/VuuModule.js.map +1 -1
  63. package/esm/basket/basket-module.js.map +1 -1
  64. package/esm/basket/basket-schemas.js.map +1 -1
  65. package/esm/basket/reference-data/constituents.js.map +1 -1
  66. package/esm/basket/reference-data/ftse100.js.map +1 -1
  67. package/esm/basket/reference-data/hsi.js.map +1 -1
  68. package/esm/basket/reference-data/nasdaq100.js.map +1 -1
  69. package/esm/basket/reference-data/prices.js.map +1 -1
  70. package/esm/basket/reference-data/sp500.js.map +1 -1
  71. package/esm/data-utils.js.map +1 -1
  72. package/esm/local-datasource-provider/LocalDatasourceProvider.js.map +1 -1
  73. package/esm/makeSuggestions.js.map +1 -1
  74. package/esm/schemas.js.map +1 -1
  75. package/esm/simul/SimulModule.js.map +1 -1
  76. package/esm/simul/reference-data/accounts.js.map +1 -1
  77. package/esm/simul/reference-data/algos.js.map +1 -1
  78. package/esm/simul/reference-data/currencies.js.map +1 -1
  79. package/esm/simul/reference-data/instruments-extended.js.map +1 -1
  80. package/esm/simul/reference-data/instruments.js.map +1 -1
  81. package/esm/simul/reference-data/isin-generator/convert-string-to-base-ten-number.js.map +1 -1
  82. package/esm/simul/reference-data/isin-generator/fixtures/alphabet.js.map +1 -1
  83. package/esm/simul/reference-data/isin-generator/fixtures/alphanumeric-values.js.map +1 -1
  84. package/esm/simul/reference-data/isin-generator/fixtures/base-ten-numbers.js.map +1 -1
  85. package/esm/simul/reference-data/isin-generator/generate-cusip-check-code.js.map +1 -1
  86. package/esm/simul/reference-data/isin-generator/generate-cusip-without-check-code.js.map +1 -1
  87. package/esm/simul/reference-data/isin-generator/generate-cusip.js.map +1 -1
  88. package/esm/simul/reference-data/isin-generator/generate-random-alphanumeric.js.map +1 -1
  89. package/esm/simul/reference-data/isin-generator/generate-random-base-ten-number.js.map +1 -1
  90. package/esm/simul/reference-data/isin-generator/generate-random-string-of-alphanumeric-chars.js.map +1 -1
  91. package/esm/simul/reference-data/isin-generator/generate-random-string-of-base-ten-chars.js.map +1 -1
  92. package/esm/simul/reference-data/isin-generator/index.js.map +1 -1
  93. package/esm/simul/reference-data/isin-generator/is-odd.js.map +1 -1
  94. package/esm/simul/reference-data/locations.js.map +1 -1
  95. package/esm/simul/reference-data/lotsizes.js.map +1 -1
  96. package/esm/simul/reference-data/orderStatus.js.map +1 -1
  97. package/esm/simul/reference-data/orders.js.map +1 -1
  98. package/esm/simul/reference-data/parent-child-orders.js +86 -64
  99. package/esm/simul/reference-data/parent-child-orders.js.map +1 -1
  100. package/esm/simul/reference-data/prices.js.map +1 -1
  101. package/esm/simul/reference-data/sides.js.map +1 -1
  102. package/esm/simul/simul-module.js +37 -1
  103. package/esm/simul/simul-module.js.map +1 -1
  104. package/esm/simul/simul-schemas.js.map +1 -1
  105. package/esm/test/test-module.js.map +1 -1
  106. package/esm/test/test-schemas.js.map +1 -1
  107. package/esm/vuu-modules.js.map +1 -1
  108. package/esm/vuu-row-generator.js.map +1 -1
  109. package/package.json +6 -6
  110. package/types/Table.d.ts +1 -1
  111. package/types/TickingArrayDataSource.d.ts +2 -0
  112. package/types/simul/reference-data/parent-child-orders.d.ts +2 -4
@@ -8,20 +8,30 @@ import { orderStatus } from './orderStatus.js';
8
8
  import { sides } from './sides.js';
9
9
  import { algos } from './algos.js';
10
10
 
11
- const childOrderData = [];
12
- const parentOrderData = [];
13
11
  const instrumentMap = buildDataColumnMap(schemas, "instruments");
14
- const PARENT_ORDER_COUNT = 75e3;
15
- const CHILD_ORDER_COUNT = 2e5;
12
+ const PARENT_ORDER_COUNT = 5e3;
13
+ const CHILD_ORDER_COUNT = 2e4;
16
14
  const avgChildOrderPerOrder = Math.round(
17
15
  CHILD_ORDER_COUNT / PARENT_ORDER_COUNT
18
16
  );
19
17
  const childMaxMultiple = 10;
20
- const clock = new Clock({ year: 2025, month: 4, day: 15, hours: 8 });
21
- const start = performance.now();
22
- let childOrderId = 0;
23
- for (let i = 0; i < PARENT_ORDER_COUNT; i++) {
24
- clock.advance(random(0, 100));
18
+ const clock = new Clock().goBack(120, "minutes");
19
+ console.log(`starting order generation at ${clock}`);
20
+ const parentOrdersTable = new Table(
21
+ schemas.parentOrders,
22
+ [],
23
+ buildDataColumnMap(schemas, "parentOrders")
24
+ );
25
+ const childOrdersTable = new Table(
26
+ schemas.childOrders,
27
+ [],
28
+ buildDataColumnMap(schemas, "childOrders")
29
+ );
30
+ let parentOrderCount = 0;
31
+ let childOrderCount = 0;
32
+ let notifyNewOrders = false;
33
+ function createParentAndChildOrders() {
34
+ parentOrderCount += 1;
25
35
  const instrument = instrumentsData[random(0, instrumentsData.length - 1)];
26
36
  const orderQuantity = 1e3 * random(1, 100);
27
37
  const orderStatus$1 = orderStatus[random(0, orderStatus.length - 1)];
@@ -32,8 +42,8 @@ for (let i = 0; i < PARENT_ORDER_COUNT; i++) {
32
42
  const averagePrice = 0;
33
43
  const ccy = "GBP";
34
44
  const exchange = instrument[instrumentMap.exchange];
35
- const parentOrderIdAsInt = i;
36
- const parentOrderId = `${parentOrderIdAsInt}`;
45
+ const parentOrderIdAsInt = parentOrderCount;
46
+ const parentOrderId = parentOrderCount.toString().padStart(10, "0");
37
47
  const price = 100;
38
48
  const quantity = orderQuantity;
39
49
  const ric = instrument[instrumentMap.ric];
@@ -42,81 +52,93 @@ for (let i = 0; i < PARENT_ORDER_COUNT; i++) {
42
52
  const volLimit = 100;
43
53
  const lastUpdate = clock.now;
44
54
  const created = clock.now;
45
- const childOrderCount = random(
55
+ const numberOfChildOrders = random(
46
56
  0,
47
57
  avgChildOrderPerOrder * random(1, childMaxMultiple)
48
58
  );
49
59
  let remainingQty = orderQuantity;
50
- for (let j = 0; j < childOrderCount; j++) {
60
+ for (let j = 0; j < numberOfChildOrders; j++) {
61
+ childOrderCount += 1;
51
62
  const childOrderQuantity = Math.round(remainingQty / (childOrderCount - j));
52
63
  remainingQty -= childOrderQuantity;
53
64
  const childOrderStatus = orderStatus[random(0, orderStatus.length - 1)];
54
65
  const childFilledQty = orderStatus$1 === "FILLED" ? childOrderQuantity : childOrderStatus === "NEW" ? 0 : childOrderQuantity - random(100, childOrderQuantity);
55
66
  const childOpenQty = childOrderQuantity - childFilledQty;
56
67
  const averagePrice2 = 0;
57
- const childIdAsInt = childOrderId++;
58
- const childId = `${childIdAsInt}`;
68
+ const childIdAsInt = childOrderCount;
69
+ const childId = childOrderCount.toString().padStart(10, "0");
59
70
  const lastUpdate2 = 0;
60
71
  const price2 = 100;
61
72
  const strategy = 0;
62
- const row2 = [
73
+ childOrdersTable.insert(
74
+ [
75
+ account,
76
+ averagePrice2,
77
+ ccy,
78
+ exchange,
79
+ childFilledQty,
80
+ childId,
81
+ childIdAsInt,
82
+ childOpenQty,
83
+ parentOrderId,
84
+ price2,
85
+ childOrderQuantity,
86
+ ric,
87
+ side,
88
+ childOrderStatus,
89
+ strategy,
90
+ volLimit,
91
+ lastUpdate2,
92
+ created
93
+ ],
94
+ notifyNewOrders
95
+ );
96
+ }
97
+ parentOrdersTable.insert(
98
+ [
63
99
  account,
64
- averagePrice2,
100
+ algo,
101
+ averagePrice,
65
102
  ccy,
103
+ childOrderCount,
66
104
  exchange,
67
- childFilledQty,
68
- childId,
69
- childIdAsInt,
70
- childOpenQty,
105
+ filledQty,
71
106
  parentOrderId,
72
- price2,
73
- childOrderQuantity,
107
+ parentOrderIdAsInt,
108
+ openQty,
109
+ price,
110
+ quantity,
74
111
  ric,
75
112
  side,
76
- childOrderStatus,
77
- strategy,
113
+ status,
78
114
  volLimit,
79
- lastUpdate2,
115
+ lastUpdate,
80
116
  created
81
- ];
82
- childOrderData.push(row2);
117
+ ],
118
+ notifyNewOrders
119
+ );
120
+ }
121
+ function createInitialOrders() {
122
+ const start = performance.now();
123
+ for (let i = 0; i < PARENT_ORDER_COUNT; i++) {
124
+ clock.advance(random(0, 100));
125
+ createParentAndChildOrders();
83
126
  }
84
- const row = [
85
- account,
86
- algo,
87
- averagePrice,
88
- ccy,
89
- childOrderCount,
90
- exchange,
91
- filledQty,
92
- parentOrderId,
93
- parentOrderIdAsInt,
94
- openQty,
95
- price,
96
- quantity,
97
- ric,
98
- side,
99
- status,
100
- volLimit,
101
- lastUpdate,
102
- created
103
- ];
104
- parentOrderData.push(row);
127
+ const end = performance.now();
128
+ console.log(
129
+ `took ${end - start} to create ${parentOrdersTable.data.length} orders and ${childOrdersTable.data.length} child orders, last order created at ${clock}`
130
+ );
105
131
  }
106
- const end = performance.now();
107
- console.log(
108
- `took ${end - start} to create ${parentOrderData.length} orders and ${childOrderData.length} child orders`
109
- );
110
- const parentOrdersTable = new Table(
111
- schemas.parentOrders,
112
- parentOrderData,
113
- buildDataColumnMap(schemas, "parentOrders")
114
- );
115
- const childOrdersTable = new Table(
116
- schemas.childOrders,
117
- childOrderData,
118
- buildDataColumnMap(schemas, "childOrders")
119
- );
132
+ let newOrderInterval = void 0;
133
+ function startGeneratingNewOrders() {
134
+ newOrderInterval = setInterval(createParentAndChildOrders, 100);
135
+ }
136
+ function stopGeneratingNewOrders() {
137
+ clearInterval(newOrderInterval);
138
+ }
139
+ createInitialOrders();
140
+ clock.showCurrentTime = true;
141
+ notifyNewOrders = true;
120
142
 
121
- export { childOrderData, childOrdersTable, parentOrderData, parentOrdersTable };
143
+ export { childOrdersTable, parentOrdersTable, startGeneratingNewOrders, stopGeneratingNewOrders };
122
144
  //# sourceMappingURL=parent-child-orders.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"parent-child-orders.js","sources":["../../../src/simul/reference-data/parent-child-orders.ts"],"sourcesContent":["import { VuuRowDataItemType } from \"@vuu-ui/vuu-protocol-types\";\nimport { Clock } from \"@vuu-ui/vuu-utils\";\nimport { random } from \"../../data-utils\";\nimport { buildDataColumnMap, Table } from \"../../Table\";\nimport { schemas } from \"../simul-schemas\";\nimport { accounts } from \"./accounts\";\nimport { instrumentsData } from \"./instruments\";\nimport { orderStatus as statusValues } from \"./orderStatus\";\nimport { sides } from \"./sides\";\nimport { algos } from \"./algos\";\n\nconst childOrderData: VuuRowDataItemType[][] = [];\nconst parentOrderData: VuuRowDataItemType[][] = [];\n\nconst instrumentMap = buildDataColumnMap(schemas, \"instruments\");\n\nconst PARENT_ORDER_COUNT = 75_000;\nconst CHILD_ORDER_COUNT = 200_000;\n\nconst avgChildOrderPerOrder = Math.round(\n CHILD_ORDER_COUNT / PARENT_ORDER_COUNT,\n);\nconst childMaxMultiple = 10;\n\nconst clock = new Clock({ year: 2025, month: 4, day: 15, hours: 8 });\n\nconst start = performance.now();\n\nlet childOrderId = 0;\n\nfor (let i = 0; i < PARENT_ORDER_COUNT; i++) {\n clock.advance(random(0, 100));\n const instrument = instrumentsData[random(0, instrumentsData.length - 1)];\n\n const orderQuantity = 1000 * random(1, 100);\n const orderStatus = statusValues[random(0, statusValues.length - 1)];\n const filledQty =\n orderStatus === \"FILLED\"\n ? orderQuantity\n : orderStatus === \"NEW\"\n ? 0\n : orderQuantity - random(100, orderQuantity);\n const openQty = orderQuantity - filledQty;\n\n const account = accounts[random(0, accounts.length - 1)];\n const algo = algos[random(0, algos.length - 1)];\n const averagePrice = 0;\n const ccy = \"GBP\";\n const exchange = instrument[instrumentMap.exchange];\n const parentOrderIdAsInt = i;\n const parentOrderId = `${parentOrderIdAsInt}`;\n const price = 100;\n const quantity = orderQuantity;\n const ric = instrument[instrumentMap.ric];\n const side = sides[random(0, sides.length - 1)];\n const status = orderStatus;\n const volLimit = 100;\n const lastUpdate = clock.now;\n const created = clock.now;\n\n const childOrderCount = random(\n 0,\n avgChildOrderPerOrder * random(1, childMaxMultiple),\n );\n\n let remainingQty = orderQuantity;\n for (let j = 0; j < childOrderCount; j++) {\n // console.log(`create child`);\n\n const childOrderQuantity = Math.round(remainingQty / (childOrderCount - j));\n remainingQty -= childOrderQuantity;\n const childOrderStatus = statusValues[random(0, statusValues.length - 1)];\n const childFilledQty =\n orderStatus === \"FILLED\"\n ? childOrderQuantity\n : childOrderStatus === \"NEW\"\n ? 0\n : childOrderQuantity - random(100, childOrderQuantity);\n const childOpenQty = childOrderQuantity - childFilledQty;\n\n const averagePrice = 0;\n const childIdAsInt = childOrderId++;\n const childId = `${childIdAsInt}`;\n const lastUpdate = 0;\n const price = 100;\n const strategy = 0;\n\n const row: VuuRowDataItemType[] = [\n account,\n averagePrice,\n ccy,\n exchange,\n childFilledQty,\n childId,\n childIdAsInt,\n childOpenQty,\n parentOrderId,\n price,\n childOrderQuantity,\n ric,\n side,\n childOrderStatus,\n strategy,\n volLimit,\n lastUpdate,\n created,\n ];\n\n childOrderData.push(row);\n }\n\n const row: VuuRowDataItemType[] = [\n account,\n algo,\n averagePrice,\n ccy,\n childOrderCount,\n exchange,\n filledQty,\n parentOrderId,\n parentOrderIdAsInt,\n openQty,\n price,\n quantity,\n ric,\n side,\n status,\n volLimit,\n lastUpdate,\n created,\n ];\n\n parentOrderData.push(row);\n}\nconst end = performance.now();\n\nconsole.log(\n `took ${end - start} to create ${parentOrderData.length} orders and ${childOrderData.length} child orders`,\n);\n\nexport const parentOrdersTable = new Table(\n schemas.parentOrders,\n parentOrderData,\n buildDataColumnMap(schemas, \"parentOrders\"),\n);\n\nexport const childOrdersTable = new Table(\n schemas.childOrders,\n childOrderData,\n buildDataColumnMap(schemas, \"childOrders\"),\n);\n\nexport { childOrderData, parentOrderData };\n"],"names":["orderStatus","statusValues","averagePrice","lastUpdate","price","row"],"mappings":"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"}
1
+ {"version":3,"file":"parent-child-orders.js","sources":["../../../../../packages/vuu-data-test/src/simul/reference-data/parent-child-orders.ts"],"sourcesContent":["import { Clock } from \"@vuu-ui/vuu-utils\";\nimport { random } from \"../../data-utils\";\nimport { buildDataColumnMap, Table } from \"../../Table\";\nimport { schemas } from \"../simul-schemas\";\nimport { accounts } from \"./accounts\";\nimport { instrumentsData } from \"./instruments\";\nimport { orderStatus as statusValues } from \"./orderStatus\";\nimport { sides } from \"./sides\";\nimport { algos } from \"./algos\";\n\nconst instrumentMap = buildDataColumnMap(schemas, \"instruments\");\n\n// const PARENT_ORDER_COUNT = 75_000;\nconst PARENT_ORDER_COUNT = 5_000;\nconst CHILD_ORDER_COUNT = 20_000;\n// const CHILD_ORDER_COUNT = 200_000;\n\nconst avgChildOrderPerOrder = Math.round(\n CHILD_ORDER_COUNT / PARENT_ORDER_COUNT,\n);\nconst childMaxMultiple = 10;\n\nconst clock = new Clock().goBack(120, \"minutes\");\nconsole.log(`starting order generation at ${clock}`);\n\nexport const parentOrdersTable = new Table(\n schemas.parentOrders,\n [],\n buildDataColumnMap(schemas, \"parentOrders\"),\n);\n\nexport const childOrdersTable = new Table(\n schemas.childOrders,\n [],\n buildDataColumnMap(schemas, \"childOrders\"),\n);\n\nlet parentOrderCount = 0;\nlet childOrderCount = 0;\nlet notifyNewOrders = false;\n\nfunction createParentAndChildOrders() {\n parentOrderCount += 1;\n const instrument = instrumentsData[random(0, instrumentsData.length - 1)];\n const orderQuantity = 1000 * random(1, 100);\n const orderStatus = statusValues[random(0, statusValues.length - 1)];\n const filledQty =\n orderStatus === \"FILLED\"\n ? orderQuantity\n : orderStatus === \"NEW\"\n ? 0\n : orderQuantity - random(100, orderQuantity);\n const openQty = orderQuantity - filledQty;\n const account = accounts[random(0, accounts.length - 1)];\n const algo = algos[random(0, algos.length - 1)];\n const averagePrice = 0;\n const ccy = \"GBP\";\n const exchange = instrument[instrumentMap.exchange];\n const parentOrderIdAsInt = parentOrderCount;\n const parentOrderId = parentOrderCount.toString().padStart(10, \"0\");\n const price = 100;\n const quantity = orderQuantity;\n const ric = instrument[instrumentMap.ric];\n const side = sides[random(0, sides.length - 1)];\n const status = orderStatus;\n const volLimit = 100;\n const lastUpdate = clock.now;\n const created = clock.now;\n\n const numberOfChildOrders = random(\n 0,\n avgChildOrderPerOrder * random(1, childMaxMultiple),\n );\n\n let remainingQty = orderQuantity;\n for (let j = 0; j < numberOfChildOrders; j++) {\n childOrderCount += 1;\n\n const childOrderQuantity = Math.round(remainingQty / (childOrderCount - j));\n remainingQty -= childOrderQuantity;\n const childOrderStatus = statusValues[random(0, statusValues.length - 1)];\n const childFilledQty =\n orderStatus === \"FILLED\"\n ? childOrderQuantity\n : childOrderStatus === \"NEW\"\n ? 0\n : childOrderQuantity - random(100, childOrderQuantity);\n const childOpenQty = childOrderQuantity - childFilledQty;\n const averagePrice = 0;\n const childIdAsInt = childOrderCount;\n const childId = childOrderCount.toString().padStart(10, \"0\");\n const lastUpdate = 0;\n const price = 100;\n const strategy = 0;\n\n childOrdersTable.insert(\n [\n account,\n averagePrice,\n ccy,\n exchange,\n childFilledQty,\n childId,\n childIdAsInt,\n childOpenQty,\n parentOrderId,\n price,\n childOrderQuantity,\n ric,\n side,\n childOrderStatus,\n strategy,\n volLimit,\n lastUpdate,\n created,\n ],\n notifyNewOrders,\n );\n }\n\n parentOrdersTable.insert(\n [\n account,\n algo,\n averagePrice,\n ccy,\n childOrderCount,\n exchange,\n filledQty,\n parentOrderId,\n parentOrderIdAsInt,\n openQty,\n price,\n quantity,\n ric,\n side,\n status,\n volLimit,\n lastUpdate,\n created,\n ],\n notifyNewOrders,\n );\n}\n\nfunction createInitialOrders() {\n const start = performance.now();\n for (let i = 0; i < PARENT_ORDER_COUNT; i++) {\n clock.advance(random(0, 100));\n createParentAndChildOrders();\n }\n const end = performance.now();\n console.log(\n `took ${end - start} to create ${parentOrdersTable.data.length} orders and ${childOrdersTable.data.length} child orders, last order created at ${clock}`,\n );\n}\n\nlet newOrderInterval: undefined | ReturnType<typeof setInterval> = undefined;\n\nexport function startGeneratingNewOrders() {\n newOrderInterval = setInterval(createParentAndChildOrders, 100);\n}\n\nexport function stopGeneratingNewOrders() {\n clearInterval(newOrderInterval);\n}\n\ncreateInitialOrders();\n\nclock.showCurrentTime = true;\nnotifyNewOrders = true;\n\n// startGeneratingNewOrders();\n"],"names":["orderStatus","statusValues","averagePrice","lastUpdate","price"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"prices.js","sources":["../../../src/simul/reference-data/prices.ts"],"sourcesContent":["import { buildDataColumnMap, Table } from \"../../Table\";\nimport { BaseUpdateGenerator } from \"../../UpdateGenerator\";\nimport { schemas } from \"../simul-schemas\";\nimport { instrumentsData, InstrumentColumnMap } from \"./instruments\";\nimport { random } from \"../../data-utils\";\nimport basketConstituentData from \"../../basket/reference-data/constituents\";\n\ntype ask = number;\ntype askSize = number;\ntype bid = number;\ntype bidSize = number;\ntype close = number;\ntype last = number;\ntype open = number;\ntype phase = \"C\";\ntype ric = string;\ntype scenario = \"close\";\ntype lastUpdate = number;\ntype created = number;\n\nexport type PricesDataRow = [\n ask,\n askSize,\n bid,\n bidSize,\n close,\n last,\n open,\n phase,\n ric,\n scenario,\n lastUpdate,\n created,\n];\n\nconst { bid, bidSize, ask, askSize } = buildDataColumnMap(schemas, \"prices\");\nconst pricesUpdateGenerator = new BaseUpdateGenerator({\n bid,\n bidSize,\n ask,\n askSize,\n});\n\nconst now = Date.now();\nconst lastUpdate = now;\nconst created = now;\n\n// const start = performance.now();\n// Create 100_000 Instruments\nconst requiredInstrumentFields = [\"ric\", \"price\"] as const;\nconst pricesData: Array<PricesDataRow> = instrumentsData.map((instrument) => {\n const { ric, price: priceSeed } = requiredInstrumentFields.reduce(\n (obj, f) => ({ ...obj, [f]: instrument[InstrumentColumnMap[f]] }),\n {} as { ric: string; price: number },\n );\n const spread = random(0, 10);\n\n const ask = priceSeed + spread / 2;\n const askSize = random(1000, 3000);\n const bid = priceSeed - spread / 2;\n const bidSize = random(1000, 3000);\n const close = priceSeed + random(0, 1) / 10;\n const last = priceSeed + random(0, 1) / 10;\n const open = priceSeed + random(0, 1) / 10;\n const phase = \"C\";\n const scenario = \"close\";\n const lastUpdate = now;\n const created = now;\n return [\n ask,\n askSize,\n bid,\n bidSize,\n close,\n last,\n open,\n phase,\n ric,\n scenario,\n lastUpdate,\n created,\n ];\n});\n\n// prettier-ignore\nfor (const [,,,lastTrade,ric] of basketConstituentData) {\n const priceSeed = parseFloat(String(lastTrade));\n if (!isNaN(priceSeed)) {\n const spread = random(0, 10);\n const ask = priceSeed + spread / 2;\n const askSize = random(1000, 3000);\n const bid = priceSeed - spread / 2;\n const bidSize = random(1000, 3000);\n const close = priceSeed + random(0, 1) / 10;\n const last = priceSeed + random(0, 1) / 10;\n const open = priceSeed + random(0, 1) / 10;\n const phase = \"C\";\n const scenario = \"close\";\n pricesData.push([\n ask,\n askSize,\n bid,\n bidSize,\n close,\n last,\n open,\n phase,\n ric as string,\n scenario,\n lastUpdate,\n created\n ]);\n }\n}\n\n// const end = performance.now();\n// console.log(`generating 100,000 prices took ${end - start} ms`);\n\nexport const pricesTable = new Table(\n schemas.prices,\n pricesData,\n buildDataColumnMap(schemas, \"prices\"),\n pricesUpdateGenerator,\n);\n\nexport { pricesData };\n"],"names":["ask","askSize","bid","bidSize","lastUpdate","created"],"mappings":"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"}
1
+ {"version":3,"file":"prices.js","sources":["../../../../../packages/vuu-data-test/src/simul/reference-data/prices.ts"],"sourcesContent":["import { buildDataColumnMap, Table } from \"../../Table\";\nimport { BaseUpdateGenerator } from \"../../UpdateGenerator\";\nimport { schemas } from \"../simul-schemas\";\nimport { instrumentsData, InstrumentColumnMap } from \"./instruments\";\nimport { random } from \"../../data-utils\";\nimport basketConstituentData from \"../../basket/reference-data/constituents\";\n\ntype ask = number;\ntype askSize = number;\ntype bid = number;\ntype bidSize = number;\ntype close = number;\ntype last = number;\ntype open = number;\ntype phase = \"C\";\ntype ric = string;\ntype scenario = \"close\";\ntype lastUpdate = number;\ntype created = number;\n\nexport type PricesDataRow = [\n ask,\n askSize,\n bid,\n bidSize,\n close,\n last,\n open,\n phase,\n ric,\n scenario,\n lastUpdate,\n created,\n];\n\nconst { bid, bidSize, ask, askSize } = buildDataColumnMap(schemas, \"prices\");\nconst pricesUpdateGenerator = new BaseUpdateGenerator({\n bid,\n bidSize,\n ask,\n askSize,\n});\n\nconst now = Date.now();\nconst lastUpdate = now;\nconst created = now;\n\n// const start = performance.now();\n// Create 100_000 Instruments\nconst requiredInstrumentFields = [\"ric\", \"price\"] as const;\nconst pricesData: Array<PricesDataRow> = instrumentsData.map((instrument) => {\n const { ric, price: priceSeed } = requiredInstrumentFields.reduce(\n (obj, f) => ({ ...obj, [f]: instrument[InstrumentColumnMap[f]] }),\n {} as { ric: string; price: number },\n );\n const spread = random(0, 10);\n\n const ask = priceSeed + spread / 2;\n const askSize = random(1000, 3000);\n const bid = priceSeed - spread / 2;\n const bidSize = random(1000, 3000);\n const close = priceSeed + random(0, 1) / 10;\n const last = priceSeed + random(0, 1) / 10;\n const open = priceSeed + random(0, 1) / 10;\n const phase = \"C\";\n const scenario = \"close\";\n const lastUpdate = now;\n const created = now;\n return [\n ask,\n askSize,\n bid,\n bidSize,\n close,\n last,\n open,\n phase,\n ric,\n scenario,\n lastUpdate,\n created,\n ];\n});\n\n// prettier-ignore\nfor (const [,,,lastTrade,ric] of basketConstituentData) {\n const priceSeed = parseFloat(String(lastTrade));\n if (!isNaN(priceSeed)) {\n const spread = random(0, 10);\n const ask = priceSeed + spread / 2;\n const askSize = random(1000, 3000);\n const bid = priceSeed - spread / 2;\n const bidSize = random(1000, 3000);\n const close = priceSeed + random(0, 1) / 10;\n const last = priceSeed + random(0, 1) / 10;\n const open = priceSeed + random(0, 1) / 10;\n const phase = \"C\";\n const scenario = \"close\";\n pricesData.push([\n ask,\n askSize,\n bid,\n bidSize,\n close,\n last,\n open,\n phase,\n ric as string,\n scenario,\n lastUpdate,\n created\n ]);\n }\n}\n\n// const end = performance.now();\n// console.log(`generating 100,000 prices took ${end - start} ms`);\n\nexport const pricesTable = new Table(\n schemas.prices,\n pricesData,\n buildDataColumnMap(schemas, \"prices\"),\n pricesUpdateGenerator,\n);\n\nexport { pricesData };\n"],"names":["ask","askSize","bid","bidSize","lastUpdate","created"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"sides.js","sources":["../../../src/simul/reference-data/sides.ts"],"sourcesContent":["export const sides = [\"BUY\", \"SELL\"];\n"],"names":[],"mappings":"AAAa,MAAA,KAAA,GAAQ,CAAC,KAAA,EAAO,MAAM;;;;"}
1
+ {"version":3,"file":"sides.js","sources":["../../../../../packages/vuu-data-test/src/simul/reference-data/sides.ts"],"sourcesContent":["export const sides = [\"BUY\", \"SELL\"];\n"],"names":[],"mappings":"AAAa,MAAA,KAAA,GAAQ,CAAC,KAAA,EAAO,MAAM;;;;"}
@@ -5,7 +5,7 @@ import { instrumentsTable } from './reference-data/instruments.js';
5
5
  import { instrumentsExtendedTable } from './reference-data/instruments-extended.js';
6
6
  import { ordersTable } from './reference-data/orders.js';
7
7
  import { pricesTable } from './reference-data/prices.js';
8
- import { childOrdersTable, parentOrdersTable } from './reference-data/parent-child-orders.js';
8
+ import { childOrdersTable, parentOrdersTable, startGeneratingNewOrders, stopGeneratingNewOrders } from './reference-data/parent-child-orders.js';
9
9
  import { schemas } from './simul-schemas.js';
10
10
 
11
11
  const undefinedTables = {
@@ -102,6 +102,32 @@ const cancelOrder = async (rpcRequest) => {
102
102
  throw Error("cancelOrder invalid rpcRequest");
103
103
  }
104
104
  };
105
+ const startOrders = async () => {
106
+ startGeneratingNewOrders();
107
+ return {
108
+ type: "VIEW_PORT_RPC_REPONSE",
109
+ action: {
110
+ type: "VP_RPC_SUCCESS"
111
+ },
112
+ method: "???",
113
+ namedParams: {},
114
+ params: [],
115
+ vpId: ""
116
+ };
117
+ };
118
+ const stopOrders = async () => {
119
+ stopGeneratingNewOrders();
120
+ return {
121
+ type: "VIEW_PORT_RPC_REPONSE",
122
+ action: {
123
+ type: "VP_RPC_SUCCESS"
124
+ },
125
+ method: "???",
126
+ namedParams: {},
127
+ params: [],
128
+ vpId: ""
129
+ };
130
+ };
105
131
  const services = {
106
132
  ...undefinedTables,
107
133
  orders: [
@@ -109,6 +135,16 @@ const services = {
109
135
  rpcName: "CANCEL_ORDER",
110
136
  service: cancelOrder
111
137
  }
138
+ ],
139
+ parentOrders: [
140
+ {
141
+ rpcName: "startGeneratingNewOrders",
142
+ service: startOrders
143
+ },
144
+ {
145
+ rpcName: "stopGeneratingNewOrders",
146
+ service: stopOrders
147
+ }
112
148
  ]
113
149
  };
114
150
  const simulModule = new SimulModule({
@@ -1 +1 @@
1
- {"version":3,"file":"simul-module.js","sources":["../../src/simul/simul-module.ts"],"sourcesContent":["import {\n ClientToServerMenuRowRPC,\n VuuLink,\n VuuMenu,\n} from \"@vuu-ui/vuu-protocol-types\";\nimport { isVuuMenuRpcRequest } from \"@vuu-ui/vuu-utils\";\nimport { Table, joinTables } from \"../Table\";\nimport { RpcService, ServiceHandler } from \"../VuuModule\";\nimport { SimulModule } from \"./SimulModule\";\nimport { instrumentsTable } from \"./reference-data/instruments\";\nimport { instrumentsExtendedTable } from \"./reference-data/instruments-extended\";\nimport { ordersTable } from \"./reference-data/orders\";\nimport { pricesTable } from \"./reference-data/prices\";\nimport {\n parentOrdersTable,\n childOrdersTable,\n} from \"./reference-data/parent-child-orders\";\nimport { schemas, type SimulTableName } from \"./simul-schemas\";\n\nconst undefinedTables = {\n childOrders: undefined,\n instruments: undefined,\n instrumentsExtended: undefined,\n instrumentPrices: undefined,\n orders: undefined,\n parentOrders: undefined,\n prices: undefined,\n};\n\nconst tables: Record<SimulTableName, Table> = {\n childOrders: childOrdersTable,\n instruments: instrumentsTable,\n instrumentsExtended: instrumentsExtendedTable,\n instrumentPrices: joinTables(\n { module: \"SIMUL\", table: \"instrumentPrices\" },\n instrumentsTable,\n pricesTable,\n \"ric\",\n ),\n orders: ordersTable,\n parentOrders: parentOrdersTable,\n prices: pricesTable,\n};\n\nconst vuuLinks: Record<SimulTableName, VuuLink[] | undefined> = {\n ...undefinedTables,\n childOrders: [\n { fromColumn: \"parentOrderId\", toColumn: \"id\", toTable: \"parentOrders\" },\n ],\n parentOrders: [\n { fromColumn: \"ric\", toColumn: \"ric\", toTable: \"instruments\" },\n ],\n};\n\nconst menus: Record<SimulTableName, VuuMenu | undefined> = {\n childOrders: undefined,\n instruments: {\n name: \"ROOT\",\n menus: [\n {\n context: \"selected-rows\",\n filter: \"\",\n name: \"Add Instruments To Order\",\n rpcName: \"ADD_INSTRUMENTS_TO_ORDER\",\n },\n {\n context: \"selected-rows\",\n filter: \"\",\n name: \"Edit Row\",\n rpcName: \"EDIT_ROW\",\n },\n {\n context: \"selected-rows\",\n filter: \"\",\n name: \"Edit Rows\",\n rpcName: \"VP_BULK_EDIT_BEGIN_RPC\",\n },\n ],\n },\n instrumentsExtended: undefined,\n instrumentPrices: undefined,\n orders: {\n name: \"ROOT\",\n menus: [\n {\n context: \"row\",\n filter: `status in [\"New\",\"Partial Exec\"]`,\n name: \"Cancel Order\",\n rpcName: \"CANCEL_ORDER\",\n },\n ],\n },\n parentOrders: undefined,\n prices: undefined,\n};\n\nconst cancelOrder: ServiceHandler = async (rpcRequest) => {\n if (isVuuMenuRpcRequest(rpcRequest)) {\n const { rowKey, vpId } = rpcRequest as ClientToServerMenuRowRPC;\n const table = tables.orders;\n const row = table.findByKey(rowKey);\n row[table.map.status] = \"Cancelled\";\n table.updateRow(row);\n\n return {\n action: {\n type: \"SHOW_NOTIFICATION_ACTION\",\n message: `Order id: ${rowKey}`,\n title: \"Order cancelled\",\n },\n rpcName: \"CANCEL_ORDER\",\n type: \"VIEW_PORT_MENU_RESP\",\n vpId,\n };\n } else {\n throw Error(\"cancelOrder invalid rpcRequest\");\n }\n};\n\nconst services: Record<SimulTableName, RpcService[] | undefined> = {\n ...undefinedTables,\n orders: [\n {\n rpcName: \"CANCEL_ORDER\",\n service: cancelOrder,\n },\n ],\n};\n\nexport const simulModule = new SimulModule({\n menus,\n name: \"SIMUL\",\n schemas,\n services,\n tables,\n vuuLinks,\n});\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"simul-module.js","sources":["../../../../packages/vuu-data-test/src/simul/simul-module.ts"],"sourcesContent":["import {\n ClientToServerMenuRowRPC,\n VuuLink,\n VuuMenu,\n VuuRpcViewportResponse,\n} from \"@vuu-ui/vuu-protocol-types\";\nimport { isVuuMenuRpcRequest } from \"@vuu-ui/vuu-utils\";\nimport { Table, joinTables } from \"../Table\";\nimport { RpcService, ServiceHandler } from \"../VuuModule\";\nimport { SimulModule } from \"./SimulModule\";\nimport { instrumentsTable } from \"./reference-data/instruments\";\nimport { instrumentsExtendedTable } from \"./reference-data/instruments-extended\";\nimport { ordersTable } from \"./reference-data/orders\";\nimport { pricesTable } from \"./reference-data/prices\";\nimport {\n parentOrdersTable,\n childOrdersTable,\n startGeneratingNewOrders,\n stopGeneratingNewOrders,\n} from \"./reference-data/parent-child-orders\";\nimport { schemas, type SimulTableName } from \"./simul-schemas\";\n\nconst undefinedTables = {\n childOrders: undefined,\n instruments: undefined,\n instrumentsExtended: undefined,\n instrumentPrices: undefined,\n orders: undefined,\n parentOrders: undefined,\n prices: undefined,\n};\n\nconst tables: Record<SimulTableName, Table> = {\n childOrders: childOrdersTable,\n instruments: instrumentsTable,\n instrumentsExtended: instrumentsExtendedTable,\n instrumentPrices: joinTables(\n { module: \"SIMUL\", table: \"instrumentPrices\" },\n instrumentsTable,\n pricesTable,\n \"ric\",\n ),\n orders: ordersTable,\n parentOrders: parentOrdersTable,\n prices: pricesTable,\n};\n\nconst vuuLinks: Record<SimulTableName, VuuLink[] | undefined> = {\n ...undefinedTables,\n childOrders: [\n { fromColumn: \"parentOrderId\", toColumn: \"id\", toTable: \"parentOrders\" },\n ],\n parentOrders: [\n { fromColumn: \"ric\", toColumn: \"ric\", toTable: \"instruments\" },\n ],\n};\n\nconst menus: Record<SimulTableName, VuuMenu | undefined> = {\n childOrders: undefined,\n instruments: {\n name: \"ROOT\",\n menus: [\n {\n context: \"selected-rows\",\n filter: \"\",\n name: \"Add Instruments To Order\",\n rpcName: \"ADD_INSTRUMENTS_TO_ORDER\",\n },\n {\n context: \"selected-rows\",\n filter: \"\",\n name: \"Edit Row\",\n rpcName: \"EDIT_ROW\",\n },\n {\n context: \"selected-rows\",\n filter: \"\",\n name: \"Edit Rows\",\n rpcName: \"VP_BULK_EDIT_BEGIN_RPC\",\n },\n ],\n },\n instrumentsExtended: undefined,\n instrumentPrices: undefined,\n orders: {\n name: \"ROOT\",\n menus: [\n {\n context: \"row\",\n filter: `status in [\"New\",\"Partial Exec\"]`,\n name: \"Cancel Order\",\n rpcName: \"CANCEL_ORDER\",\n },\n ],\n },\n parentOrders: undefined,\n prices: undefined,\n};\n\nconst cancelOrder: ServiceHandler = async (rpcRequest) => {\n if (isVuuMenuRpcRequest(rpcRequest)) {\n const { rowKey, vpId } = rpcRequest as ClientToServerMenuRowRPC;\n const table = tables.orders;\n const row = table.findByKey(rowKey);\n row[table.map.status] = \"Cancelled\";\n table.updateRow(row);\n\n return {\n action: {\n type: \"SHOW_NOTIFICATION_ACTION\",\n message: `Order id: ${rowKey}`,\n title: \"Order cancelled\",\n },\n rpcName: \"CANCEL_ORDER\",\n type: \"VIEW_PORT_MENU_RESP\",\n vpId,\n };\n } else {\n throw Error(\"cancelOrder invalid rpcRequest\");\n }\n};\n\nconst startOrders = async () => {\n startGeneratingNewOrders();\n return {\n type: \"VIEW_PORT_RPC_REPONSE\",\n action: {\n type: \"VP_RPC_SUCCESS\",\n },\n method: \"???\",\n namedParams: {},\n params: [],\n vpId: \"\",\n } as VuuRpcViewportResponse;\n};\nconst stopOrders = async () => {\n stopGeneratingNewOrders();\n return {\n type: \"VIEW_PORT_RPC_REPONSE\",\n action: {\n type: \"VP_RPC_SUCCESS\",\n },\n method: \"???\",\n namedParams: {},\n params: [],\n vpId: \"\",\n } as VuuRpcViewportResponse;\n};\n\nconst services: Record<SimulTableName, RpcService[] | undefined> = {\n ...undefinedTables,\n orders: [\n {\n rpcName: \"CANCEL_ORDER\",\n service: cancelOrder,\n },\n ],\n parentOrders: [\n {\n rpcName: \"startGeneratingNewOrders\",\n service: startOrders,\n },\n {\n rpcName: \"stopGeneratingNewOrders\",\n service: stopOrders,\n },\n ],\n};\n\nexport const simulModule = new SimulModule({\n menus,\n name: \"SIMUL\",\n schemas,\n services,\n tables,\n vuuLinks,\n});\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"simul-schemas.js","sources":["../../src/simul/simul-schemas.ts"],"sourcesContent":["import { TableSchema } from \"@vuu-ui/vuu-data-types\";\nimport { VuuTable } from \"@vuu-ui/vuu-protocol-types\";\n\nexport type SimulTableName =\n | \"instruments\"\n | \"instrumentsExtended\"\n | \"instrumentPrices\"\n | \"orders\"\n | \"childOrders\"\n | \"parentOrders\"\n | \"prices\";\n\n// These Schemas take the form of the schemas that we create\n// with TABLE_META returned by Vuu.\nexport const schemas: Readonly<Record<SimulTableName, Readonly<TableSchema>>> =\n {\n instruments: {\n columns: [\n { name: \"bbg\", serverDataType: \"string\" },\n { name: \"currency\", serverDataType: \"string\" },\n { name: \"description\", serverDataType: \"string\" },\n { name: \"exchange\", serverDataType: \"string\" },\n { name: \"isin\", serverDataType: \"string\" },\n { name: \"lotSize\", serverDataType: \"int\" },\n { name: \"ric\", serverDataType: \"string\" },\n ],\n key: \"ric\",\n table: { module: \"SIMUL\", table: \"instruments\" },\n },\n instrumentsExtended: {\n columns: [\n { name: \"bbg\", serverDataType: \"string\" },\n { name: \"currency\", serverDataType: \"string\" },\n { name: \"description\", serverDataType: \"string\" },\n { name: \"exchange\", serverDataType: \"string\" },\n { name: \"isin\", serverDataType: \"string\" },\n { name: \"lotSize\", serverDataType: \"int\" },\n { name: \"ric\", serverDataType: \"string\" },\n { name: \"supported\", serverDataType: \"boolean\" },\n { name: \"wishlist\", serverDataType: \"boolean\" },\n { name: \"lastUpdated\", serverDataType: \"long\" },\n { name: \"price\", serverDataType: \"double\" },\n { name: \"date\", serverDataType: \"long\" },\n ],\n key: \"ric\",\n table: { module: \"SIMUL\", table: \"instrumentsExtended\" },\n },\n instrumentPrices: {\n columns: [\n { name: \"ask\", serverDataType: \"double\" },\n { name: \"askSize\", serverDataType: \"double\" }, // type: \"int\"\n { name: \"bbg\", serverDataType: \"string\" },\n { name: \"bid\", serverDataType: \"double\" },\n { name: \"bidSize\", serverDataType: \"double\" },\n { name: \"close\", serverDataType: \"double\" },\n { name: \"currency\", serverDataType: \"string\" },\n { name: \"description\", serverDataType: \"string\" },\n { name: \"exchange\", serverDataType: \"string\" },\n { name: \"isin\", serverDataType: \"string\" },\n { name: \"last\", serverDataType: \"double\" },\n { name: \"lotSize\", serverDataType: \"int\" },\n { name: \"open\", serverDataType: \"double\" },\n { name: \"phase\", serverDataType: \"string\" },\n { name: \"ric\", serverDataType: \"string\" },\n { name: \"scenario\", serverDataType: \"string\" },\n ],\n key: \"ric\",\n table: { module: \"SIMUL\", table: \"instrumentPrices\" },\n },\n orders: {\n columns: [\n { name: \"status\", serverDataType: \"string\" },\n { name: \"ccy\", serverDataType: \"string\" },\n { name: \"created\", serverDataType: \"long\" },\n { name: \"filledQuantity\", serverDataType: \"double\" },\n { name: \"lastUpdate\", serverDataType: \"long\" },\n { name: \"orderId\", serverDataType: \"string\" },\n { name: \"quantity\", serverDataType: \"double\" },\n { name: \"ric\", serverDataType: \"string\" },\n { name: \"side\", serverDataType: \"string\" },\n { name: \"trader\", serverDataType: \"string\" },\n ],\n key: \"orderId\",\n table: { module: \"SIMUL\", table: \"orders\" },\n },\n childOrders: {\n columns: [\n { name: \"account\", serverDataType: \"string\" },\n { name: \"averagePrice\", serverDataType: \"double\" },\n { name: \"ccy\", serverDataType: \"string\" },\n { name: \"exchange\", serverDataType: \"string\" },\n { name: \"filledQty\", serverDataType: \"double\" },\n { name: \"id\", serverDataType: \"string\" },\n { name: \"idAsInt\", serverDataType: \"int\" },\n { name: \"openQty\", serverDataType: \"double\" },\n { name: \"parentOrderId\", serverDataType: \"string\" },\n { name: \"price\", serverDataType: \"double\" },\n { name: \"quantity\", serverDataType: \"double\" },\n { name: \"ric\", serverDataType: \"string\" },\n { name: \"side\", serverDataType: \"string\" },\n { name: \"status\", serverDataType: \"string\" },\n { name: \"strategy\", serverDataType: \"string\" },\n { name: \"volLimit\", serverDataType: \"int\" },\n { name: \"lastUpdate\", serverDataType: \"long\" },\n { name: \"created\", serverDataType: \"long\" },\n ],\n key: \"id\",\n table: { module: \"SIMUL\", table: \"childOrders\" },\n },\n parentOrders: {\n columns: [\n { name: \"account\", serverDataType: \"string\" },\n { name: \"algo\", serverDataType: \"string\" },\n { name: \"averagePrice\", serverDataType: \"double\" },\n { name: \"ccy\", serverDataType: \"string\" },\n { name: \"childCount\", serverDataType: \"int\" },\n { name: \"exchange\", serverDataType: \"string\" },\n { name: \"filledQty\", serverDataType: \"double\" },\n { name: \"id\", serverDataType: \"string\" },\n { name: \"idAsInt\", serverDataType: \"int\" },\n { name: \"openQty\", serverDataType: \"double\" },\n { name: \"price\", serverDataType: \"double\" },\n { name: \"quantity\", serverDataType: \"double\" },\n { name: \"ric\", serverDataType: \"string\" },\n { name: \"side\", serverDataType: \"string\" },\n { name: \"status\", serverDataType: \"string\" },\n { name: \"volLimit\", serverDataType: \"int\" },\n { name: \"lastUpdate\", serverDataType: \"long\" },\n { name: \"created\", serverDataType: \"long\" },\n ],\n key: \"id\",\n table: { module: \"SIMUL\", table: \"parentOrders\" },\n },\n prices: {\n columns: [\n { name: \"ask\", serverDataType: \"double\" },\n { name: \"askSize\", serverDataType: \"double\" }, // type: \"int\"\n { name: \"bid\", serverDataType: \"double\" },\n { name: \"bidSize\", serverDataType: \"double\" },\n { name: \"close\", serverDataType: \"double\" },\n { name: \"last\", serverDataType: \"double\" },\n { name: \"open\", serverDataType: \"double\" },\n { name: \"phase\", serverDataType: \"string\" },\n { name: \"ric\", serverDataType: \"string\" },\n { name: \"scenario\", serverDataType: \"string\" },\n { name: \"lastUpdate\", serverDataType: \"long\" },\n { name: \"created\", serverDataType: \"long\" },\n ],\n key: \"ric\",\n table: { module: \"SIMUL\", table: \"prices\" },\n },\n };\n\nexport type SimulVuuTable = {\n module: \"SIMUL\";\n table: SimulTableName;\n};\n\nexport const isSimulTable = (table: VuuTable): table is SimulVuuTable =>\n table.module === \"SIMUL\";\n"],"names":[],"mappings":"AAcO,MAAM,OACX,GAAA;AAAA,EACE,WAAa,EAAA;AAAA,IACX,OAAS,EAAA;AAAA,MACP,EAAE,IAAA,EAAM,KAAO,EAAA,cAAA,EAAgB,QAAS,EAAA;AAAA,MACxC,EAAE,IAAA,EAAM,UAAY,EAAA,cAAA,EAAgB,QAAS,EAAA;AAAA,MAC7C,EAAE,IAAA,EAAM,aAAe,EAAA,cAAA,EAAgB,QAAS,EAAA;AAAA,MAChD,EAAE,IAAA,EAAM,UAAY,EAAA,cAAA,EAAgB,QAAS,EAAA;AAAA,MAC7C,EAAE,IAAA,EAAM,MAAQ,EAAA,cAAA,EAAgB,QAAS,EAAA;AAAA,MACzC,EAAE,IAAA,EAAM,SAAW,EAAA,cAAA,EAAgB,KAAM,EAAA;AAAA,MACzC,EAAE,IAAA,EAAM,KAAO,EAAA,cAAA,EAAgB,QAAS;AAAA,KAC1C;AAAA,IACA,GAAK,EAAA,KAAA;AAAA,IACL,KAAO,EAAA,EAAE,MAAQ,EAAA,OAAA,EAAS,OAAO,aAAc;AAAA,GACjD;AAAA,EACA,mBAAqB,EAAA;AAAA,IACnB,OAAS,EAAA;AAAA,MACP,EAAE,IAAA,EAAM,KAAO,EAAA,cAAA,EAAgB,QAAS,EAAA;AAAA,MACxC,EAAE,IAAA,EAAM,UAAY,EAAA,cAAA,EAAgB,QAAS,EAAA;AAAA,MAC7C,EAAE,IAAA,EAAM,aAAe,EAAA,cAAA,EAAgB,QAAS,EAAA;AAAA,MAChD,EAAE,IAAA,EAAM,UAAY,EAAA,cAAA,EAAgB,QAAS,EAAA;AAAA,MAC7C,EAAE,IAAA,EAAM,MAAQ,EAAA,cAAA,EAAgB,QAAS,EAAA;AAAA,MACzC,EAAE,IAAA,EAAM,SAAW,EAAA,cAAA,EAAgB,KAAM,EAAA;AAAA,MACzC,EAAE,IAAA,EAAM,KAAO,EAAA,cAAA,EAAgB,QAAS,EAAA;AAAA,MACxC,EAAE,IAAA,EAAM,WAAa,EAAA,cAAA,EAAgB,SAAU,EAAA;AAAA,MAC/C,EAAE,IAAA,EAAM,UAAY,EAAA,cAAA,EAAgB,SAAU,EAAA;AAAA,MAC9C,EAAE,IAAA,EAAM,aAAe,EAAA,cAAA,EAAgB,MAAO,EAAA;AAAA,MAC9C,EAAE,IAAA,EAAM,OAAS,EAAA,cAAA,EAAgB,QAAS,EAAA;AAAA,MAC1C,EAAE,IAAA,EAAM,MAAQ,EAAA,cAAA,EAAgB,MAAO;AAAA,KACzC;AAAA,IACA,GAAK,EAAA,KAAA;AAAA,IACL,KAAO,EAAA,EAAE,MAAQ,EAAA,OAAA,EAAS,OAAO,qBAAsB;AAAA,GACzD;AAAA,EACA,gBAAkB,EAAA;AAAA,IAChB,OAAS,EAAA;AAAA,MACP,EAAE,IAAA,EAAM,KAAO,EAAA,cAAA,EAAgB,QAAS,EAAA;AAAA,MACxC,EAAE,IAAA,EAAM,SAAW,EAAA,cAAA,EAAgB,QAAS,EAAA;AAAA;AAAA,MAC5C,EAAE,IAAA,EAAM,KAAO,EAAA,cAAA,EAAgB,QAAS,EAAA;AAAA,MACxC,EAAE,IAAA,EAAM,KAAO,EAAA,cAAA,EAAgB,QAAS,EAAA;AAAA,MACxC,EAAE,IAAA,EAAM,SAAW,EAAA,cAAA,EAAgB,QAAS,EAAA;AAAA,MAC5C,EAAE,IAAA,EAAM,OAAS,EAAA,cAAA,EAAgB,QAAS,EAAA;AAAA,MAC1C,EAAE,IAAA,EAAM,UAAY,EAAA,cAAA,EAAgB,QAAS,EAAA;AAAA,MAC7C,EAAE,IAAA,EAAM,aAAe,EAAA,cAAA,EAAgB,QAAS,EAAA;AAAA,MAChD,EAAE,IAAA,EAAM,UAAY,EAAA,cAAA,EAAgB,QAAS,EAAA;AAAA,MAC7C,EAAE,IAAA,EAAM,MAAQ,EAAA,cAAA,EAAgB,QAAS,EAAA;AAAA,MACzC,EAAE,IAAA,EAAM,MAAQ,EAAA,cAAA,EAAgB,QAAS,EAAA;AAAA,MACzC,EAAE,IAAA,EAAM,SAAW,EAAA,cAAA,EAAgB,KAAM,EAAA;AAAA,MACzC,EAAE,IAAA,EAAM,MAAQ,EAAA,cAAA,EAAgB,QAAS,EAAA;AAAA,MACzC,EAAE,IAAA,EAAM,OAAS,EAAA,cAAA,EAAgB,QAAS,EAAA;AAAA,MAC1C,EAAE,IAAA,EAAM,KAAO,EAAA,cAAA,EAAgB,QAAS,EAAA;AAAA,MACxC,EAAE,IAAA,EAAM,UAAY,EAAA,cAAA,EAAgB,QAAS;AAAA,KAC/C;AAAA,IACA,GAAK,EAAA,KAAA;AAAA,IACL,KAAO,EAAA,EAAE,MAAQ,EAAA,OAAA,EAAS,OAAO,kBAAmB;AAAA,GACtD;AAAA,EACA,MAAQ,EAAA;AAAA,IACN,OAAS,EAAA;AAAA,MACP,EAAE,IAAA,EAAM,QAAU,EAAA,cAAA,EAAgB,QAAS,EAAA;AAAA,MAC3C,EAAE,IAAA,EAAM,KAAO,EAAA,cAAA,EAAgB,QAAS,EAAA;AAAA,MACxC,EAAE,IAAA,EAAM,SAAW,EAAA,cAAA,EAAgB,MAAO,EAAA;AAAA,MAC1C,EAAE,IAAA,EAAM,gBAAkB,EAAA,cAAA,EAAgB,QAAS,EAAA;AAAA,MACnD,EAAE,IAAA,EAAM,YAAc,EAAA,cAAA,EAAgB,MAAO,EAAA;AAAA,MAC7C,EAAE,IAAA,EAAM,SAAW,EAAA,cAAA,EAAgB,QAAS,EAAA;AAAA,MAC5C,EAAE,IAAA,EAAM,UAAY,EAAA,cAAA,EAAgB,QAAS,EAAA;AAAA,MAC7C,EAAE,IAAA,EAAM,KAAO,EAAA,cAAA,EAAgB,QAAS,EAAA;AAAA,MACxC,EAAE,IAAA,EAAM,MAAQ,EAAA,cAAA,EAAgB,QAAS,EAAA;AAAA,MACzC,EAAE,IAAA,EAAM,QAAU,EAAA,cAAA,EAAgB,QAAS;AAAA,KAC7C;AAAA,IACA,GAAK,EAAA,SAAA;AAAA,IACL,KAAO,EAAA,EAAE,MAAQ,EAAA,OAAA,EAAS,OAAO,QAAS;AAAA,GAC5C;AAAA,EACA,WAAa,EAAA;AAAA,IACX,OAAS,EAAA;AAAA,MACP,EAAE,IAAA,EAAM,SAAW,EAAA,cAAA,EAAgB,QAAS,EAAA;AAAA,MAC5C,EAAE,IAAA,EAAM,cAAgB,EAAA,cAAA,EAAgB,QAAS,EAAA;AAAA,MACjD,EAAE,IAAA,EAAM,KAAO,EAAA,cAAA,EAAgB,QAAS,EAAA;AAAA,MACxC,EAAE,IAAA,EAAM,UAAY,EAAA,cAAA,EAAgB,QAAS,EAAA;AAAA,MAC7C,EAAE,IAAA,EAAM,WAAa,EAAA,cAAA,EAAgB,QAAS,EAAA;AAAA,MAC9C,EAAE,IAAA,EAAM,IAAM,EAAA,cAAA,EAAgB,QAAS,EAAA;AAAA,MACvC,EAAE,IAAA,EAAM,SAAW,EAAA,cAAA,EAAgB,KAAM,EAAA;AAAA,MACzC,EAAE,IAAA,EAAM,SAAW,EAAA,cAAA,EAAgB,QAAS,EAAA;AAAA,MAC5C,EAAE,IAAA,EAAM,eAAiB,EAAA,cAAA,EAAgB,QAAS,EAAA;AAAA,MAClD,EAAE,IAAA,EAAM,OAAS,EAAA,cAAA,EAAgB,QAAS,EAAA;AAAA,MAC1C,EAAE,IAAA,EAAM,UAAY,EAAA,cAAA,EAAgB,QAAS,EAAA;AAAA,MAC7C,EAAE,IAAA,EAAM,KAAO,EAAA,cAAA,EAAgB,QAAS,EAAA;AAAA,MACxC,EAAE,IAAA,EAAM,MAAQ,EAAA,cAAA,EAAgB,QAAS,EAAA;AAAA,MACzC,EAAE,IAAA,EAAM,QAAU,EAAA,cAAA,EAAgB,QAAS,EAAA;AAAA,MAC3C,EAAE,IAAA,EAAM,UAAY,EAAA,cAAA,EAAgB,QAAS,EAAA;AAAA,MAC7C,EAAE,IAAA,EAAM,UAAY,EAAA,cAAA,EAAgB,KAAM,EAAA;AAAA,MAC1C,EAAE,IAAA,EAAM,YAAc,EAAA,cAAA,EAAgB,MAAO,EAAA;AAAA,MAC7C,EAAE,IAAA,EAAM,SAAW,EAAA,cAAA,EAAgB,MAAO;AAAA,KAC5C;AAAA,IACA,GAAK,EAAA,IAAA;AAAA,IACL,KAAO,EAAA,EAAE,MAAQ,EAAA,OAAA,EAAS,OAAO,aAAc;AAAA,GACjD;AAAA,EACA,YAAc,EAAA;AAAA,IACZ,OAAS,EAAA;AAAA,MACP,EAAE,IAAA,EAAM,SAAW,EAAA,cAAA,EAAgB,QAAS,EAAA;AAAA,MAC5C,EAAE,IAAA,EAAM,MAAQ,EAAA,cAAA,EAAgB,QAAS,EAAA;AAAA,MACzC,EAAE,IAAA,EAAM,cAAgB,EAAA,cAAA,EAAgB,QAAS,EAAA;AAAA,MACjD,EAAE,IAAA,EAAM,KAAO,EAAA,cAAA,EAAgB,QAAS,EAAA;AAAA,MACxC,EAAE,IAAA,EAAM,YAAc,EAAA,cAAA,EAAgB,KAAM,EAAA;AAAA,MAC5C,EAAE,IAAA,EAAM,UAAY,EAAA,cAAA,EAAgB,QAAS,EAAA;AAAA,MAC7C,EAAE,IAAA,EAAM,WAAa,EAAA,cAAA,EAAgB,QAAS,EAAA;AAAA,MAC9C,EAAE,IAAA,EAAM,IAAM,EAAA,cAAA,EAAgB,QAAS,EAAA;AAAA,MACvC,EAAE,IAAA,EAAM,SAAW,EAAA,cAAA,EAAgB,KAAM,EAAA;AAAA,MACzC,EAAE,IAAA,EAAM,SAAW,EAAA,cAAA,EAAgB,QAAS,EAAA;AAAA,MAC5C,EAAE,IAAA,EAAM,OAAS,EAAA,cAAA,EAAgB,QAAS,EAAA;AAAA,MAC1C,EAAE,IAAA,EAAM,UAAY,EAAA,cAAA,EAAgB,QAAS,EAAA;AAAA,MAC7C,EAAE,IAAA,EAAM,KAAO,EAAA,cAAA,EAAgB,QAAS,EAAA;AAAA,MACxC,EAAE,IAAA,EAAM,MAAQ,EAAA,cAAA,EAAgB,QAAS,EAAA;AAAA,MACzC,EAAE,IAAA,EAAM,QAAU,EAAA,cAAA,EAAgB,QAAS,EAAA;AAAA,MAC3C,EAAE,IAAA,EAAM,UAAY,EAAA,cAAA,EAAgB,KAAM,EAAA;AAAA,MAC1C,EAAE,IAAA,EAAM,YAAc,EAAA,cAAA,EAAgB,MAAO,EAAA;AAAA,MAC7C,EAAE,IAAA,EAAM,SAAW,EAAA,cAAA,EAAgB,MAAO;AAAA,KAC5C;AAAA,IACA,GAAK,EAAA,IAAA;AAAA,IACL,KAAO,EAAA,EAAE,MAAQ,EAAA,OAAA,EAAS,OAAO,cAAe;AAAA,GAClD;AAAA,EACA,MAAQ,EAAA;AAAA,IACN,OAAS,EAAA;AAAA,MACP,EAAE,IAAA,EAAM,KAAO,EAAA,cAAA,EAAgB,QAAS,EAAA;AAAA,MACxC,EAAE,IAAA,EAAM,SAAW,EAAA,cAAA,EAAgB,QAAS,EAAA;AAAA;AAAA,MAC5C,EAAE,IAAA,EAAM,KAAO,EAAA,cAAA,EAAgB,QAAS,EAAA;AAAA,MACxC,EAAE,IAAA,EAAM,SAAW,EAAA,cAAA,EAAgB,QAAS,EAAA;AAAA,MAC5C,EAAE,IAAA,EAAM,OAAS,EAAA,cAAA,EAAgB,QAAS,EAAA;AAAA,MAC1C,EAAE,IAAA,EAAM,MAAQ,EAAA,cAAA,EAAgB,QAAS,EAAA;AAAA,MACzC,EAAE,IAAA,EAAM,MAAQ,EAAA,cAAA,EAAgB,QAAS,EAAA;AAAA,MACzC,EAAE,IAAA,EAAM,OAAS,EAAA,cAAA,EAAgB,QAAS,EAAA;AAAA,MAC1C,EAAE,IAAA,EAAM,KAAO,EAAA,cAAA,EAAgB,QAAS,EAAA;AAAA,MACxC,EAAE,IAAA,EAAM,UAAY,EAAA,cAAA,EAAgB,QAAS,EAAA;AAAA,MAC7C,EAAE,IAAA,EAAM,YAAc,EAAA,cAAA,EAAgB,MAAO,EAAA;AAAA,MAC7C,EAAE,IAAA,EAAM,SAAW,EAAA,cAAA,EAAgB,MAAO;AAAA,KAC5C;AAAA,IACA,GAAK,EAAA,KAAA;AAAA,IACL,KAAO,EAAA,EAAE,MAAQ,EAAA,OAAA,EAAS,OAAO,QAAS;AAAA;AAE9C;AAOK,MAAM,YAAe,GAAA,CAAC,KAC3B,KAAA,KAAA,CAAM,MAAW,KAAA;;;;"}
1
+ {"version":3,"file":"simul-schemas.js","sources":["../../../../packages/vuu-data-test/src/simul/simul-schemas.ts"],"sourcesContent":["import { TableSchema } from \"@vuu-ui/vuu-data-types\";\nimport { VuuTable } from \"@vuu-ui/vuu-protocol-types\";\n\nexport type SimulTableName =\n | \"instruments\"\n | \"instrumentsExtended\"\n | \"instrumentPrices\"\n | \"orders\"\n | \"childOrders\"\n | \"parentOrders\"\n | \"prices\";\n\n// These Schemas take the form of the schemas that we create\n// with TABLE_META returned by Vuu.\nexport const schemas: Readonly<Record<SimulTableName, Readonly<TableSchema>>> =\n {\n instruments: {\n columns: [\n { name: \"bbg\", serverDataType: \"string\" },\n { name: \"currency\", serverDataType: \"string\" },\n { name: \"description\", serverDataType: \"string\" },\n { name: \"exchange\", serverDataType: \"string\" },\n { name: \"isin\", serverDataType: \"string\" },\n { name: \"lotSize\", serverDataType: \"int\" },\n { name: \"ric\", serverDataType: \"string\" },\n ],\n key: \"ric\",\n table: { module: \"SIMUL\", table: \"instruments\" },\n },\n instrumentsExtended: {\n columns: [\n { name: \"bbg\", serverDataType: \"string\" },\n { name: \"currency\", serverDataType: \"string\" },\n { name: \"description\", serverDataType: \"string\" },\n { name: \"exchange\", serverDataType: \"string\" },\n { name: \"isin\", serverDataType: \"string\" },\n { name: \"lotSize\", serverDataType: \"int\" },\n { name: \"ric\", serverDataType: \"string\" },\n { name: \"supported\", serverDataType: \"boolean\" },\n { name: \"wishlist\", serverDataType: \"boolean\" },\n { name: \"lastUpdated\", serverDataType: \"long\" },\n { name: \"price\", serverDataType: \"double\" },\n { name: \"date\", serverDataType: \"long\" },\n ],\n key: \"ric\",\n table: { module: \"SIMUL\", table: \"instrumentsExtended\" },\n },\n instrumentPrices: {\n columns: [\n { name: \"ask\", serverDataType: \"double\" },\n { name: \"askSize\", serverDataType: \"double\" }, // type: \"int\"\n { name: \"bbg\", serverDataType: \"string\" },\n { name: \"bid\", serverDataType: \"double\" },\n { name: \"bidSize\", serverDataType: \"double\" },\n { name: \"close\", serverDataType: \"double\" },\n { name: \"currency\", serverDataType: \"string\" },\n { name: \"description\", serverDataType: \"string\" },\n { name: \"exchange\", serverDataType: \"string\" },\n { name: \"isin\", serverDataType: \"string\" },\n { name: \"last\", serverDataType: \"double\" },\n { name: \"lotSize\", serverDataType: \"int\" },\n { name: \"open\", serverDataType: \"double\" },\n { name: \"phase\", serverDataType: \"string\" },\n { name: \"ric\", serverDataType: \"string\" },\n { name: \"scenario\", serverDataType: \"string\" },\n ],\n key: \"ric\",\n table: { module: \"SIMUL\", table: \"instrumentPrices\" },\n },\n orders: {\n columns: [\n { name: \"status\", serverDataType: \"string\" },\n { name: \"ccy\", serverDataType: \"string\" },\n { name: \"created\", serverDataType: \"long\" },\n { name: \"filledQuantity\", serverDataType: \"double\" },\n { name: \"lastUpdate\", serverDataType: \"long\" },\n { name: \"orderId\", serverDataType: \"string\" },\n { name: \"quantity\", serverDataType: \"double\" },\n { name: \"ric\", serverDataType: \"string\" },\n { name: \"side\", serverDataType: \"string\" },\n { name: \"trader\", serverDataType: \"string\" },\n ],\n key: \"orderId\",\n table: { module: \"SIMUL\", table: \"orders\" },\n },\n childOrders: {\n columns: [\n { name: \"account\", serverDataType: \"string\" },\n { name: \"averagePrice\", serverDataType: \"double\" },\n { name: \"ccy\", serverDataType: \"string\" },\n { name: \"exchange\", serverDataType: \"string\" },\n { name: \"filledQty\", serverDataType: \"double\" },\n { name: \"id\", serverDataType: \"string\" },\n { name: \"idAsInt\", serverDataType: \"int\" },\n { name: \"openQty\", serverDataType: \"double\" },\n { name: \"parentOrderId\", serverDataType: \"string\" },\n { name: \"price\", serverDataType: \"double\" },\n { name: \"quantity\", serverDataType: \"double\" },\n { name: \"ric\", serverDataType: \"string\" },\n { name: \"side\", serverDataType: \"string\" },\n { name: \"status\", serverDataType: \"string\" },\n { name: \"strategy\", serverDataType: \"string\" },\n { name: \"volLimit\", serverDataType: \"int\" },\n { name: \"lastUpdate\", serverDataType: \"long\" },\n { name: \"created\", serverDataType: \"long\" },\n ],\n key: \"id\",\n table: { module: \"SIMUL\", table: \"childOrders\" },\n },\n parentOrders: {\n columns: [\n { name: \"account\", serverDataType: \"string\" },\n { name: \"algo\", serverDataType: \"string\" },\n { name: \"averagePrice\", serverDataType: \"double\" },\n { name: \"ccy\", serverDataType: \"string\" },\n { name: \"childCount\", serverDataType: \"int\" },\n { name: \"exchange\", serverDataType: \"string\" },\n { name: \"filledQty\", serverDataType: \"double\" },\n { name: \"id\", serverDataType: \"string\" },\n { name: \"idAsInt\", serverDataType: \"int\" },\n { name: \"openQty\", serverDataType: \"double\" },\n { name: \"price\", serverDataType: \"double\" },\n { name: \"quantity\", serverDataType: \"double\" },\n { name: \"ric\", serverDataType: \"string\" },\n { name: \"side\", serverDataType: \"string\" },\n { name: \"status\", serverDataType: \"string\" },\n { name: \"volLimit\", serverDataType: \"int\" },\n { name: \"lastUpdate\", serverDataType: \"long\" },\n { name: \"created\", serverDataType: \"long\" },\n ],\n key: \"id\",\n table: { module: \"SIMUL\", table: \"parentOrders\" },\n },\n prices: {\n columns: [\n { name: \"ask\", serverDataType: \"double\" },\n { name: \"askSize\", serverDataType: \"double\" }, // type: \"int\"\n { name: \"bid\", serverDataType: \"double\" },\n { name: \"bidSize\", serverDataType: \"double\" },\n { name: \"close\", serverDataType: \"double\" },\n { name: \"last\", serverDataType: \"double\" },\n { name: \"open\", serverDataType: \"double\" },\n { name: \"phase\", serverDataType: \"string\" },\n { name: \"ric\", serverDataType: \"string\" },\n { name: \"scenario\", serverDataType: \"string\" },\n { name: \"lastUpdate\", serverDataType: \"long\" },\n { name: \"created\", serverDataType: \"long\" },\n ],\n key: \"ric\",\n table: { module: \"SIMUL\", table: \"prices\" },\n },\n };\n\nexport type SimulVuuTable = {\n module: \"SIMUL\";\n table: SimulTableName;\n};\n\nexport const isSimulTable = (table: VuuTable): table is SimulVuuTable =>\n table.module === \"SIMUL\";\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"test-module.js","sources":["../../src/test/test-module.ts"],"sourcesContent":["import { buildDataColumnMap, Table } from \"../Table\";\nimport { defaultGenerators } from \"../vuu-row-generator\";\nimport { schemas, TestTableName } from \"./test-schemas\";\nimport { VuuModule } from \"../VuuModule\";\n\nconst { RowGenerator } = defaultGenerators;\n\nconst manyColumnGenerator = RowGenerator(\n schemas.TwoHundredColumns.columns.map((c) => c.name)\n);\n\nconst tables: Record<TestTableName, Table> = {\n TwoHundredColumns: new Table(\n schemas.TwoHundredColumns,\n new Array(100).fill(1).map((_, i) => manyColumnGenerator(i)),\n buildDataColumnMap(schemas, \"TwoHundredColumns\")\n ),\n};\n\nexport const testModule = new VuuModule<TestTableName>({\n name: \"TEST\",\n schemas,\n tables,\n});\n"],"names":[],"mappings":";;;;;AAKA,MAAM,EAAE,cAAiB,GAAA,iBAAA;AAEzB,MAAM,mBAAsB,GAAA,YAAA;AAAA,EAC1B,QAAQ,iBAAkB,CAAA,OAAA,CAAQ,IAAI,CAAC,CAAA,KAAM,EAAE,IAAI;AACrD,CAAA;AAEA,MAAM,MAAuC,GAAA;AAAA,EAC3C,mBAAmB,IAAI,KAAA;AAAA,IACrB,OAAQ,CAAA,iBAAA;AAAA,IACR,IAAI,KAAA,CAAM,GAAG,CAAA,CAAE,IAAK,CAAA,CAAC,CAAE,CAAA,GAAA,CAAI,CAAC,CAAA,EAAG,CAAM,KAAA,mBAAA,CAAoB,CAAC,CAAC,CAAA;AAAA,IAC3D,kBAAA,CAAmB,SAAS,mBAAmB;AAAA;AAEnD,CAAA;AAEa,MAAA,UAAA,GAAa,IAAI,SAAyB,CAAA;AAAA,EACrD,IAAM,EAAA,MAAA;AAAA,EACN,OAAA;AAAA,EACA;AACF,CAAC;;;;"}
1
+ {"version":3,"file":"test-module.js","sources":["../../../../packages/vuu-data-test/src/test/test-module.ts"],"sourcesContent":["import { buildDataColumnMap, Table } from \"../Table\";\nimport { defaultGenerators } from \"../vuu-row-generator\";\nimport { schemas, TestTableName } from \"./test-schemas\";\nimport { VuuModule } from \"../VuuModule\";\n\nconst { RowGenerator } = defaultGenerators;\n\nconst manyColumnGenerator = RowGenerator(\n schemas.TwoHundredColumns.columns.map((c) => c.name)\n);\n\nconst tables: Record<TestTableName, Table> = {\n TwoHundredColumns: new Table(\n schemas.TwoHundredColumns,\n new Array(100).fill(1).map((_, i) => manyColumnGenerator(i)),\n buildDataColumnMap(schemas, \"TwoHundredColumns\")\n ),\n};\n\nexport const testModule = new VuuModule<TestTableName>({\n name: \"TEST\",\n schemas,\n tables,\n});\n"],"names":[],"mappings":";;;;;AAKA,MAAM,EAAE,cAAiB,GAAA,iBAAA;AAEzB,MAAM,mBAAsB,GAAA,YAAA;AAAA,EAC1B,QAAQ,iBAAkB,CAAA,OAAA,CAAQ,IAAI,CAAC,CAAA,KAAM,EAAE,IAAI;AACrD,CAAA;AAEA,MAAM,MAAuC,GAAA;AAAA,EAC3C,mBAAmB,IAAI,KAAA;AAAA,IACrB,OAAQ,CAAA,iBAAA;AAAA,IACR,IAAI,KAAA,CAAM,GAAG,CAAA,CAAE,IAAK,CAAA,CAAC,CAAE,CAAA,GAAA,CAAI,CAAC,CAAA,EAAG,CAAM,KAAA,mBAAA,CAAoB,CAAC,CAAC,CAAA;AAAA,IAC3D,kBAAA,CAAmB,SAAS,mBAAmB;AAAA;AAEnD,CAAA;AAEa,MAAA,UAAA,GAAa,IAAI,SAAyB,CAAA;AAAA,EACrD,IAAM,EAAA,MAAA;AAAA,EACN,OAAA;AAAA,EACA;AACF,CAAC;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"test-schemas.js","sources":["../../src/test/test-schemas.ts"],"sourcesContent":["import { TableSchema } from \"@vuu-ui/vuu-data-types\";\nimport { DefaultColumnGenerator } from \"../vuu-row-generator\";\n\nexport type TestTableName = \"TwoHundredColumns\";\n\nexport const schemas: Readonly<Record<TestTableName, Readonly<TableSchema>>> = {\n TwoHundredColumns: {\n columns: DefaultColumnGenerator(200).map((col) => ({\n ...col,\n serverDataType: \"string\",\n })),\n key: \"column01\",\n table: { module: \"TEST\", table: \"TwoHundredColumns\" },\n },\n};\n"],"names":[],"mappings":";;AAKO,MAAM,OAAkE,GAAA;AAAA,EAC7E,iBAAmB,EAAA;AAAA,IACjB,SAAS,sBAAuB,CAAA,GAAG,CAAE,CAAA,GAAA,CAAI,CAAC,GAAS,MAAA;AAAA,MACjD,GAAG,GAAA;AAAA,MACH,cAAgB,EAAA;AAAA,KAChB,CAAA,CAAA;AAAA,IACF,GAAK,EAAA,UAAA;AAAA,IACL,KAAO,EAAA,EAAE,MAAQ,EAAA,MAAA,EAAQ,OAAO,mBAAoB;AAAA;AAExD;;;;"}
1
+ {"version":3,"file":"test-schemas.js","sources":["../../../../packages/vuu-data-test/src/test/test-schemas.ts"],"sourcesContent":["import { TableSchema } from \"@vuu-ui/vuu-data-types\";\nimport { DefaultColumnGenerator } from \"../vuu-row-generator\";\n\nexport type TestTableName = \"TwoHundredColumns\";\n\nexport const schemas: Readonly<Record<TestTableName, Readonly<TableSchema>>> = {\n TwoHundredColumns: {\n columns: DefaultColumnGenerator(200).map((col) => ({\n ...col,\n serverDataType: \"string\",\n })),\n key: \"column01\",\n table: { module: \"TEST\", table: \"TwoHundredColumns\" },\n },\n};\n"],"names":[],"mappings":";;AAKO,MAAM,OAAkE,GAAA;AAAA,EAC7E,iBAAmB,EAAA;AAAA,IACjB,SAAS,sBAAuB,CAAA,GAAG,CAAE,CAAA,GAAA,CAAI,CAAC,GAAS,MAAA;AAAA,MACjD,GAAG,GAAA;AAAA,MACH,cAAgB,EAAA;AAAA,KAChB,CAAA,CAAA;AAAA,IACF,GAAK,EAAA,UAAA;AAAA,IACL,KAAO,EAAA,EAAE,MAAQ,EAAA,MAAA,EAAQ,OAAO,mBAAoB;AAAA;AAExD;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"vuu-modules.js","sources":["../src/vuu-modules.ts"],"sourcesContent":["import { VuuModule } from \"./VuuModule\";\nimport { basketModule } from \"./basket/basket-module\";\nimport { BasketsTableName } from \"./basket/basket-schemas\";\nimport { simulModule } from \"./simul/simul-module\";\nimport { SimulTableName } from \"./simul/simul-schemas\";\nimport { testModule } from \"./test/test-module\";\nimport { TestTableName } from \"./test/test-schemas\";\n\nexport type VuuModuleName = \"BASKET\" | \"SIMUL\" | \"TEST\";\n\nconst vuuModules: Record<\n VuuModuleName,\n | VuuModule<BasketsTableName>\n | VuuModule<SimulTableName>\n | VuuModule<TestTableName>\n> = {\n BASKET: basketModule,\n SIMUL: simulModule,\n TEST: testModule,\n};\n\n// Note, this is useful but be aware that all modules will be bundled if this is imported.\n// If only a single module is required, better to import it directly.\nexport const vuuModule = <T extends string = string>(\n moduleName: VuuModuleName\n) => vuuModules[moduleName] as VuuModule<T>;\n"],"names":[],"mappings":";;;;AAUA,MAAM,UAKF,GAAA;AAAA,EACF,MAAQ,EAAA,YAAA;AAAA,EACR,KAAO,EAAA,WAAA;AAAA,EACP,IAAM,EAAA;AACR,CAAA;AAIO,MAAM,SAAY,GAAA,CACvB,UACG,KAAA,UAAA,CAAW,UAAU;;;;"}
1
+ {"version":3,"file":"vuu-modules.js","sources":["../../../packages/vuu-data-test/src/vuu-modules.ts"],"sourcesContent":["import { VuuModule } from \"./VuuModule\";\nimport { basketModule } from \"./basket/basket-module\";\nimport { BasketsTableName } from \"./basket/basket-schemas\";\nimport { simulModule } from \"./simul/simul-module\";\nimport { SimulTableName } from \"./simul/simul-schemas\";\nimport { testModule } from \"./test/test-module\";\nimport { TestTableName } from \"./test/test-schemas\";\n\nexport type VuuModuleName = \"BASKET\" | \"SIMUL\" | \"TEST\";\n\nconst vuuModules: Record<\n VuuModuleName,\n | VuuModule<BasketsTableName>\n | VuuModule<SimulTableName>\n | VuuModule<TestTableName>\n> = {\n BASKET: basketModule,\n SIMUL: simulModule,\n TEST: testModule,\n};\n\n// Note, this is useful but be aware that all modules will be bundled if this is imported.\n// If only a single module is required, better to import it directly.\nexport const vuuModule = <T extends string = string>(\n moduleName: VuuModuleName\n) => vuuModules[moduleName] as VuuModule<T>;\n"],"names":[],"mappings":";;;;AAUA,MAAM,UAKF,GAAA;AAAA,EACF,MAAQ,EAAA,YAAA;AAAA,EACR,KAAO,EAAA,WAAA;AAAA,EACP,IAAM,EAAA;AACR,CAAA;AAIO,MAAM,SAAY,GAAA,CACvB,UACG,KAAA,UAAA,CAAW,UAAU;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"vuu-row-generator.js","sources":["../src/vuu-row-generator.ts"],"sourcesContent":["import type { ColumnDescriptor } from \"@vuu-ui/vuu-table-types\";\nimport type { VuuRowDataItemType, VuuTable } from \"@vuu-ui/vuu-protocol-types\";\nimport { UpdateGenerator } from \"./rowUpdates\";\n\ntype GenerateRowFunc = (index: number) => VuuRowDataItemType[];\n\nexport type RowGeneratorFactory = (columns: string[]) => GenerateRowFunc;\n\nexport type ColumnGeneratorFn = (\n columns?: number | string[],\n columnConfig?: { [key: string]: Partial<ColumnDescriptor> },\n) => ColumnDescriptor[];\n\nexport const DefaultRowGenerator: RowGeneratorFactory =\n (columns: string[]) => (index) => {\n return [`row ${index + 1}`].concat(\n Array(columns.length)\n .fill(true)\n .map((v, j) => `value ${j + 1} @ ${index + 1}`),\n );\n };\n\nexport const DefaultColumnGenerator: ColumnGeneratorFn = (\n columns,\n columnConfig = {},\n) => {\n if (typeof columns === \"number\") {\n return [{ label: \"Row Number\", name: \"rownum\", width: 150 }].concat(\n Array(columns)\n .fill(true)\n .map((_, i) => {\n const name = `column_${i + 1}`;\n const label = `Column ${i + 1}`;\n return { label, name, width: 100, ...columnConfig[name] };\n }),\n );\n } else {\n throw Error(\"DefaultColumnGenerator must be passed columns (number)\");\n }\n};\n\nexport const defaultGenerators = {\n ColumnGenerator: DefaultColumnGenerator,\n RowGenerator: DefaultRowGenerator,\n};\n\nexport const getColumnAndRowGenerator = (\n table?: VuuTable,\n):\n | [ColumnGeneratorFn, RowGeneratorFactory]\n | [ColumnGeneratorFn, RowGeneratorFactory, () => UpdateGenerator] => {\n const tableName = table?.table ?? \"\";\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n switch (table?.module) {\n case \"SIMUL\": {\n const { ColumnGenerator, RowGenerator, createUpdateGenerator } =\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n simulDataGenerators[tableName] ?? defaultGenerators;\n return [ColumnGenerator, RowGenerator, createUpdateGenerator];\n }\n\n case \"BASKET\": {\n const { ColumnGenerator, RowGenerator, createUpdateGenerator } =\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n basketDataGenerators[tableName] ?? defaultGenerators;\n return [ColumnGenerator, RowGenerator, createUpdateGenerator];\n }\n case undefined: {\n const { ColumnGenerator, RowGenerator } = defaultGenerators;\n return [ColumnGenerator, RowGenerator];\n }\n default:\n throw Error(\n `vuu-row-gererator table ${table?.table} was requested but no generator is registered`,\n );\n }\n};\n\nexport const populateArray = (\n count: number,\n colGen: ColumnGeneratorFn,\n rowGen: RowGeneratorFactory,\n columns?: number | string[],\n) => {\n const columnDescriptors = colGen(columns);\n const generateRow = rowGen(columnDescriptors.map((col) => col.name));\n const data: Array<VuuRowDataItemType[]> = [];\n for (let i = 0; i < count; i++) {\n const row = generateRow(i);\n if (row) {\n data[i] = row;\n } else {\n break;\n }\n }\n return data;\n};\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vuu-row-generator.js","sources":["../../../packages/vuu-data-test/src/vuu-row-generator.ts"],"sourcesContent":["import type { ColumnDescriptor } from \"@vuu-ui/vuu-table-types\";\nimport type { VuuRowDataItemType, VuuTable } from \"@vuu-ui/vuu-protocol-types\";\nimport { UpdateGenerator } from \"./rowUpdates\";\n\ntype GenerateRowFunc = (index: number) => VuuRowDataItemType[];\n\nexport type RowGeneratorFactory = (columns: string[]) => GenerateRowFunc;\n\nexport type ColumnGeneratorFn = (\n columns?: number | string[],\n columnConfig?: { [key: string]: Partial<ColumnDescriptor> },\n) => ColumnDescriptor[];\n\nexport const DefaultRowGenerator: RowGeneratorFactory =\n (columns: string[]) => (index) => {\n return [`row ${index + 1}`].concat(\n Array(columns.length)\n .fill(true)\n .map((v, j) => `value ${j + 1} @ ${index + 1}`),\n );\n };\n\nexport const DefaultColumnGenerator: ColumnGeneratorFn = (\n columns,\n columnConfig = {},\n) => {\n if (typeof columns === \"number\") {\n return [{ label: \"Row Number\", name: \"rownum\", width: 150 }].concat(\n Array(columns)\n .fill(true)\n .map((_, i) => {\n const name = `column_${i + 1}`;\n const label = `Column ${i + 1}`;\n return { label, name, width: 100, ...columnConfig[name] };\n }),\n );\n } else {\n throw Error(\"DefaultColumnGenerator must be passed columns (number)\");\n }\n};\n\nexport const defaultGenerators = {\n ColumnGenerator: DefaultColumnGenerator,\n RowGenerator: DefaultRowGenerator,\n};\n\nexport const getColumnAndRowGenerator = (\n table?: VuuTable,\n):\n | [ColumnGeneratorFn, RowGeneratorFactory]\n | [ColumnGeneratorFn, RowGeneratorFactory, () => UpdateGenerator] => {\n const tableName = table?.table ?? \"\";\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n switch (table?.module) {\n case \"SIMUL\": {\n const { ColumnGenerator, RowGenerator, createUpdateGenerator } =\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n simulDataGenerators[tableName] ?? defaultGenerators;\n return [ColumnGenerator, RowGenerator, createUpdateGenerator];\n }\n\n case \"BASKET\": {\n const { ColumnGenerator, RowGenerator, createUpdateGenerator } =\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n basketDataGenerators[tableName] ?? defaultGenerators;\n return [ColumnGenerator, RowGenerator, createUpdateGenerator];\n }\n case undefined: {\n const { ColumnGenerator, RowGenerator } = defaultGenerators;\n return [ColumnGenerator, RowGenerator];\n }\n default:\n throw Error(\n `vuu-row-gererator table ${table?.table} was requested but no generator is registered`,\n );\n }\n};\n\nexport const populateArray = (\n count: number,\n colGen: ColumnGeneratorFn,\n rowGen: RowGeneratorFactory,\n columns?: number | string[],\n) => {\n const columnDescriptors = colGen(columns);\n const generateRow = rowGen(columnDescriptors.map((col) => col.name));\n const data: Array<VuuRowDataItemType[]> = [];\n for (let i = 0; i < count; i++) {\n const row = generateRow(i);\n if (row) {\n data[i] = row;\n } else {\n break;\n }\n }\n return data;\n};\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,15 +1,15 @@
1
1
  {
2
- "version": "0.13.13",
2
+ "version": "0.13.15",
3
3
  "author": "heswell",
4
4
  "license": "Apache-2.0",
5
5
  "dependencies": {
6
- "@vuu-ui/vuu-data-local": "0.13.13",
7
- "@vuu-ui/vuu-utils": "0.13.13"
6
+ "@vuu-ui/vuu-data-local": "0.13.15",
7
+ "@vuu-ui/vuu-utils": "0.13.15"
8
8
  },
9
9
  "devDependencies": {
10
- "@vuu-ui/vuu-protocol-types": "0.13.13",
11
- "@vuu-ui/vuu-data-types": "0.13.13",
12
- "@vuu-ui/vuu-table-types": "0.13.13"
10
+ "@vuu-ui/vuu-protocol-types": "0.13.15",
11
+ "@vuu-ui/vuu-data-types": "0.13.15",
12
+ "@vuu-ui/vuu-table-types": "0.13.15"
13
13
  },
14
14
  "sideEffects": false,
15
15
  "files": [
package/types/Table.d.ts CHANGED
@@ -14,7 +14,7 @@ export declare class Table extends EventEmitter<TableEvents> {
14
14
  get data(): VuuRowDataItemType[][];
15
15
  get map(): ColumnMap;
16
16
  get schema(): TableSchema;
17
- insert(row: VuuRowDataItemType[]): void;
17
+ insert(row: VuuRowDataItemType[], emitEvent?: boolean): void;
18
18
  findByKey(key: string): VuuRowDataItemType[];
19
19
  update(key: string, columnName: string, value: VuuRowDataItemType): void;
20
20
  updateRow(row: VuuRowDataItemType[]): void;
@@ -33,4 +33,6 @@ export declare class TickingArrayDataSource extends ArrayDataSource {
33
33
  getTypeaheadSuggestions(column: string, pattern?: string): Promise<string[]>;
34
34
  get visualLink(): LinkDescriptorWithLabel | undefined;
35
35
  set visualLink(visualLink: LinkDescriptorWithLabel | undefined);
36
+ freeze(): void;
37
+ unfreeze(): void;
36
38
  }
@@ -1,7 +1,5 @@
1
- import { VuuRowDataItemType } from "@vuu-ui/vuu-protocol-types";
2
1
  import { Table } from "../../Table";
3
- declare const childOrderData: VuuRowDataItemType[][];
4
- declare const parentOrderData: VuuRowDataItemType[][];
5
2
  export declare const parentOrdersTable: Table;
6
3
  export declare const childOrdersTable: Table;
7
- export { childOrderData, parentOrderData };
4
+ export declare function startGeneratingNewOrders(): void;
5
+ export declare function stopGeneratingNewOrders(): void;