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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. package/package.json +8 -9
  2. package/src/ArrayProxy.js +38 -0
  3. package/src/RuntimeVisualLink.js +45 -0
  4. package/src/SessionTable.js +49 -0
  5. package/src/Table.js +96 -0
  6. package/src/TickingArrayDataSource.js +208 -0
  7. package/src/UpdateGenerator.js +72 -0
  8. package/src/basket/BasketModule.js +272 -0
  9. package/src/basket/basket-schemas.js +355 -0
  10. package/src/basket/index.js +2 -0
  11. package/src/basket/reference-data/constituents.js +76 -0
  12. package/src/basket/reference-data/ftse100.js +686 -0
  13. package/src/basket/reference-data/hsi.js +1047 -0
  14. package/src/basket/reference-data/nasdaq100.js +812 -0
  15. package/src/basket/reference-data/prices.js +43 -0
  16. package/src/basket/reference-data/sp500.js +315 -0
  17. package/src/core/module/ModuleContainer.js +21 -0
  18. package/src/core/module/VuuModule.js +476 -0
  19. package/src/core/table/TableContainer.js +97 -0
  20. package/src/data-utils.js +53 -0
  21. package/src/index.js +13 -0
  22. package/src/local-datasource-provider/LocalDatasourceProvider.js +44 -0
  23. package/src/makeSuggestions.js +20 -0
  24. package/src/rowUpdates.js +0 -0
  25. package/src/schemas.js +19 -0
  26. package/src/session-table-utils.js +16 -0
  27. package/src/simul/SimulModule.js +175 -0
  28. package/src/simul/index.js +2 -0
  29. package/src/simul/reference-data/accounts.js +23 -0
  30. package/src/simul/reference-data/algos.js +9 -0
  31. package/src/simul/reference-data/currencies.js +8 -0
  32. package/src/simul/reference-data/index.js +5 -0
  33. package/src/simul/reference-data/instrument-prices.js +48 -0
  34. package/src/simul/reference-data/instruments-extended.js +12 -0
  35. package/src/simul/reference-data/instruments.js +67 -0
  36. package/src/simul/reference-data/isin-generator/convert-string-to-base-ten-number.js +2 -0
  37. package/src/simul/reference-data/isin-generator/fixtures/alphabet.js +27 -0
  38. package/src/simul/reference-data/isin-generator/fixtures/alphanumeric-values.js +7 -0
  39. package/src/simul/reference-data/isin-generator/fixtures/base-ten-numbers.js +13 -0
  40. package/src/simul/reference-data/isin-generator/generate-cusip-check-code.js +17 -0
  41. package/src/simul/reference-data/isin-generator/generate-cusip-without-check-code.js +8 -0
  42. package/src/simul/reference-data/isin-generator/generate-cusip.js +8 -0
  43. package/src/simul/reference-data/isin-generator/generate-random-alphanumeric.js +3 -0
  44. package/src/simul/reference-data/isin-generator/generate-random-base-ten-number.js +2 -0
  45. package/src/simul/reference-data/isin-generator/generate-random-string-of-alphanumeric-chars.js +7 -0
  46. package/src/simul/reference-data/isin-generator/generate-random-string-of-base-ten-chars.js +7 -0
  47. package/src/simul/reference-data/isin-generator/index.js +280 -0
  48. package/src/simul/reference-data/isin-generator/is-odd.js +2 -0
  49. package/src/simul/reference-data/locations.js +45 -0
  50. package/src/simul/reference-data/lotsizes.js +24 -0
  51. package/src/simul/reference-data/orderStatus.js +6 -0
  52. package/src/simul/reference-data/orders.js +64 -0
  53. package/src/simul/reference-data/parent-child-orders.js +117 -0
  54. package/src/simul/reference-data/priceStrategies.js +8 -0
  55. package/src/simul/reference-data/prices.js +78 -0
  56. package/src/simul/reference-data/sides.js +5 -0
  57. package/src/simul/simul-schemas.js +428 -0
  58. package/src/test/TestModule.js +95 -0
  59. package/src/test/index.js +1 -0
  60. package/src/test/test-schemas.js +74 -0
  61. package/src/vuu-row-generator.js +71 -0
@@ -0,0 +1,428 @@
1
+ const VUU_TIMESTAMP_COLUMNS = [
2
+ {
3
+ name: "vuuCreatedTimestamp",
4
+ serverDataType: "epochtimestamp"
5
+ },
6
+ {
7
+ name: "vuuUpdatedTimestamp",
8
+ serverDataType: "epochtimestamp"
9
+ }
10
+ ];
11
+ const schemas = {
12
+ instruments: {
13
+ columns: [
14
+ {
15
+ name: "bbg",
16
+ serverDataType: "string"
17
+ },
18
+ {
19
+ name: "currency",
20
+ serverDataType: "string"
21
+ },
22
+ {
23
+ name: "description",
24
+ serverDataType: "string"
25
+ },
26
+ {
27
+ name: "exchange",
28
+ serverDataType: "string"
29
+ },
30
+ {
31
+ name: "isin",
32
+ serverDataType: "string"
33
+ },
34
+ {
35
+ name: "lotSize",
36
+ serverDataType: "int"
37
+ },
38
+ {
39
+ name: "ric",
40
+ serverDataType: "string"
41
+ },
42
+ ...VUU_TIMESTAMP_COLUMNS
43
+ ],
44
+ key: "ric",
45
+ table: {
46
+ module: "SIMUL",
47
+ table: "instruments"
48
+ }
49
+ },
50
+ instrumentsExtended: {
51
+ columns: [
52
+ {
53
+ name: "bbg",
54
+ serverDataType: "string"
55
+ },
56
+ {
57
+ name: "currency",
58
+ serverDataType: "string"
59
+ },
60
+ {
61
+ name: "description",
62
+ serverDataType: "string"
63
+ },
64
+ {
65
+ name: "exchange",
66
+ serverDataType: "string"
67
+ },
68
+ {
69
+ name: "isin",
70
+ serverDataType: "string"
71
+ },
72
+ {
73
+ name: "lotSize",
74
+ serverDataType: "int"
75
+ },
76
+ {
77
+ name: "ric",
78
+ serverDataType: "string"
79
+ },
80
+ {
81
+ name: "supported",
82
+ serverDataType: "boolean"
83
+ },
84
+ {
85
+ name: "wishlist",
86
+ serverDataType: "boolean"
87
+ },
88
+ {
89
+ name: "lastUpdated",
90
+ serverDataType: "long"
91
+ },
92
+ {
93
+ name: "price",
94
+ serverDataType: "double"
95
+ },
96
+ {
97
+ name: "date",
98
+ serverDataType: "long"
99
+ },
100
+ ...VUU_TIMESTAMP_COLUMNS
101
+ ],
102
+ key: "ric",
103
+ table: {
104
+ module: "SIMUL",
105
+ table: "instrumentsExtended"
106
+ }
107
+ },
108
+ instrumentPrices: {
109
+ columns: [
110
+ {
111
+ name: "ask",
112
+ serverDataType: "double"
113
+ },
114
+ {
115
+ name: "askSize",
116
+ serverDataType: "double"
117
+ },
118
+ {
119
+ name: "bbg",
120
+ serverDataType: "string"
121
+ },
122
+ {
123
+ name: "bid",
124
+ serverDataType: "double"
125
+ },
126
+ {
127
+ name: "bidSize",
128
+ serverDataType: "double"
129
+ },
130
+ {
131
+ name: "close",
132
+ serverDataType: "double"
133
+ },
134
+ {
135
+ name: "currency",
136
+ serverDataType: "string"
137
+ },
138
+ {
139
+ name: "description",
140
+ serverDataType: "string"
141
+ },
142
+ {
143
+ name: "exchange",
144
+ serverDataType: "string"
145
+ },
146
+ {
147
+ name: "isin",
148
+ serverDataType: "string"
149
+ },
150
+ {
151
+ name: "last",
152
+ serverDataType: "double"
153
+ },
154
+ {
155
+ name: "lotSize",
156
+ serverDataType: "int"
157
+ },
158
+ {
159
+ name: "open",
160
+ serverDataType: "double"
161
+ },
162
+ {
163
+ name: "phase",
164
+ serverDataType: "string"
165
+ },
166
+ {
167
+ name: "ric",
168
+ serverDataType: "string"
169
+ },
170
+ {
171
+ name: "scenario",
172
+ serverDataType: "string"
173
+ },
174
+ ...VUU_TIMESTAMP_COLUMNS
175
+ ],
176
+ key: "ric",
177
+ table: {
178
+ module: "SIMUL",
179
+ table: "instrumentPrices"
180
+ }
181
+ },
182
+ orders: {
183
+ columns: [
184
+ {
185
+ name: "status",
186
+ serverDataType: "string"
187
+ },
188
+ {
189
+ name: "ccy",
190
+ serverDataType: "string"
191
+ },
192
+ {
193
+ name: "filledQuantity",
194
+ serverDataType: "double"
195
+ },
196
+ {
197
+ name: "lastUpdate",
198
+ serverDataType: "long"
199
+ },
200
+ {
201
+ name: "orderId",
202
+ serverDataType: "string"
203
+ },
204
+ {
205
+ name: "quantity",
206
+ serverDataType: "double"
207
+ },
208
+ {
209
+ name: "ric",
210
+ serverDataType: "string"
211
+ },
212
+ {
213
+ name: "side",
214
+ serverDataType: "string"
215
+ },
216
+ {
217
+ name: "trader",
218
+ serverDataType: "string"
219
+ },
220
+ ...VUU_TIMESTAMP_COLUMNS
221
+ ],
222
+ key: "orderId",
223
+ table: {
224
+ module: "SIMUL",
225
+ table: "orders"
226
+ }
227
+ },
228
+ childOrders: {
229
+ columns: [
230
+ {
231
+ name: "account",
232
+ serverDataType: "string"
233
+ },
234
+ {
235
+ name: "averagePrice",
236
+ serverDataType: "double"
237
+ },
238
+ {
239
+ name: "ccy",
240
+ serverDataType: "string"
241
+ },
242
+ {
243
+ name: "exchange",
244
+ serverDataType: "string"
245
+ },
246
+ {
247
+ name: "filledQty",
248
+ serverDataType: "double"
249
+ },
250
+ {
251
+ name: "id",
252
+ serverDataType: "string"
253
+ },
254
+ {
255
+ name: "idAsInt",
256
+ serverDataType: "int"
257
+ },
258
+ {
259
+ name: "openQty",
260
+ serverDataType: "double"
261
+ },
262
+ {
263
+ name: "parentOrderId",
264
+ serverDataType: "string"
265
+ },
266
+ {
267
+ name: "price",
268
+ serverDataType: "double"
269
+ },
270
+ {
271
+ name: "quantity",
272
+ serverDataType: "double"
273
+ },
274
+ {
275
+ name: "ric",
276
+ serverDataType: "string"
277
+ },
278
+ {
279
+ name: "side",
280
+ serverDataType: "string"
281
+ },
282
+ {
283
+ name: "status",
284
+ serverDataType: "string"
285
+ },
286
+ {
287
+ name: "strategy",
288
+ serverDataType: "string"
289
+ },
290
+ {
291
+ name: "volLimit",
292
+ serverDataType: "int"
293
+ },
294
+ ...VUU_TIMESTAMP_COLUMNS
295
+ ],
296
+ key: "id",
297
+ table: {
298
+ module: "SIMUL",
299
+ table: "childOrders"
300
+ }
301
+ },
302
+ parentOrders: {
303
+ columns: [
304
+ {
305
+ name: "account",
306
+ serverDataType: "string"
307
+ },
308
+ {
309
+ name: "algo",
310
+ serverDataType: "string"
311
+ },
312
+ {
313
+ name: "averagePrice",
314
+ serverDataType: "double"
315
+ },
316
+ {
317
+ name: "ccy",
318
+ serverDataType: "string"
319
+ },
320
+ {
321
+ name: "childCount",
322
+ serverDataType: "int"
323
+ },
324
+ {
325
+ name: "exchange",
326
+ serverDataType: "string"
327
+ },
328
+ {
329
+ name: "filledQty",
330
+ serverDataType: "double"
331
+ },
332
+ {
333
+ name: "id",
334
+ serverDataType: "string"
335
+ },
336
+ {
337
+ name: "idAsInt",
338
+ serverDataType: "int"
339
+ },
340
+ {
341
+ name: "openQty",
342
+ serverDataType: "double"
343
+ },
344
+ {
345
+ name: "price",
346
+ serverDataType: "double"
347
+ },
348
+ {
349
+ name: "quantity",
350
+ serverDataType: "double"
351
+ },
352
+ {
353
+ name: "ric",
354
+ serverDataType: "string"
355
+ },
356
+ {
357
+ name: "side",
358
+ serverDataType: "string"
359
+ },
360
+ {
361
+ name: "status",
362
+ serverDataType: "string"
363
+ },
364
+ {
365
+ name: "volLimit",
366
+ serverDataType: "int"
367
+ },
368
+ ...VUU_TIMESTAMP_COLUMNS
369
+ ],
370
+ key: "id",
371
+ table: {
372
+ module: "SIMUL",
373
+ table: "parentOrders"
374
+ }
375
+ },
376
+ prices: {
377
+ columns: [
378
+ {
379
+ name: "ask",
380
+ serverDataType: "double"
381
+ },
382
+ {
383
+ name: "askSize",
384
+ serverDataType: "double"
385
+ },
386
+ {
387
+ name: "bid",
388
+ serverDataType: "double"
389
+ },
390
+ {
391
+ name: "bidSize",
392
+ serverDataType: "double"
393
+ },
394
+ {
395
+ name: "close",
396
+ serverDataType: "double"
397
+ },
398
+ {
399
+ name: "last",
400
+ serverDataType: "double"
401
+ },
402
+ {
403
+ name: "open",
404
+ serverDataType: "double"
405
+ },
406
+ {
407
+ name: "phase",
408
+ serverDataType: "string"
409
+ },
410
+ {
411
+ name: "ric",
412
+ serverDataType: "string"
413
+ },
414
+ {
415
+ name: "scenario",
416
+ serverDataType: "string"
417
+ },
418
+ ...VUU_TIMESTAMP_COLUMNS
419
+ ],
420
+ key: "ric",
421
+ table: {
422
+ module: "SIMUL",
423
+ table: "prices"
424
+ }
425
+ }
426
+ };
427
+ const isSimulTable = (table)=>"SIMUL" === table.module;
428
+ export { isSimulTable, schemas };
@@ -0,0 +1,95 @@
1
+ import { VuuModule } from "../core/module/VuuModule.js";
2
+ import { buildDataColumnMap } from "../Table.js";
3
+ import { defaultGenerators } from "../vuu-row-generator.js";
4
+ import { schemas } from "./test-schemas.js";
5
+ import TableContainer from "../core/table/TableContainer.js";
6
+ const { RowGenerator: RowGenerator } = defaultGenerators;
7
+ const manyColumnGenerator = RowGenerator(schemas.TwoHundredColumns.columns.map((c)=>c.name));
8
+ class TestModule extends VuuModule {
9
+ #schemas = schemas;
10
+ #tables = {
11
+ TestDates: TableContainer.createTable(schemas.TestDates, [], buildDataColumnMap(schemas, "TestDates")),
12
+ TwoHundredColumns: TableContainer.createTable(schemas.TwoHundredColumns, new Array(100).fill(1).map((_, i)=>manyColumnGenerator(i)), buildDataColumnMap(schemas, "TwoHundredColumns")),
13
+ LinkParent: TableContainer.createTable(schemas.LinkParent, [
14
+ [
15
+ "1000000001",
16
+ "data 1"
17
+ ],
18
+ [
19
+ "1000000002",
20
+ "data 2"
21
+ ],
22
+ [
23
+ "1000000003",
24
+ "data 2"
25
+ ]
26
+ ], buildDataColumnMap(schemas, "LinkParent")),
27
+ LinkChild: TableContainer.createTable(schemas.LinkChild, [
28
+ [
29
+ "200001",
30
+ "1000000001",
31
+ "child 1 (linked to 001)"
32
+ ],
33
+ [
34
+ "200002",
35
+ "1000000001",
36
+ "child 2 (linked to 001)"
37
+ ],
38
+ [
39
+ "200003",
40
+ "1000000001",
41
+ "child 3 (linked to 001)"
42
+ ],
43
+ [
44
+ "200004",
45
+ "1000000001",
46
+ "child 4 (linked to 001)"
47
+ ],
48
+ [
49
+ "200005",
50
+ "1000000001",
51
+ "child 5 (linked to 001)"
52
+ ],
53
+ [
54
+ "200006",
55
+ "1000000001",
56
+ "child 6 (linked to 001)"
57
+ ],
58
+ [
59
+ "200007",
60
+ "1000000001",
61
+ "child 7 (linked to 001)"
62
+ ],
63
+ [
64
+ "200008",
65
+ "1000000001",
66
+ "child 8 (linked to 001)"
67
+ ],
68
+ [
69
+ "200009",
70
+ "1000000002",
71
+ "child 9 (linked to 002)"
72
+ ],
73
+ [
74
+ "200010",
75
+ "1000000003",
76
+ "child 10 (linked to 003)"
77
+ ]
78
+ ], buildDataColumnMap(schemas, "LinkChild"))
79
+ };
80
+ constructor(){
81
+ super("TEST");
82
+ }
83
+ get menus() {}
84
+ get services() {}
85
+ get menuServices() {}
86
+ get schemas() {
87
+ return this.#schemas;
88
+ }
89
+ get tables() {
90
+ return this.#tables;
91
+ }
92
+ get visualLinks() {}
93
+ }
94
+ const testModule = new TestModule();
95
+ export { testModule };
@@ -0,0 +1 @@
1
+ export * from "./TestModule.js";
@@ -0,0 +1,74 @@
1
+ import { DefaultColumnGenerator } from "../vuu-row-generator.js";
2
+ const schemas = {
3
+ TestDates: {
4
+ columns: [
5
+ {
6
+ name: "id",
7
+ serverDataType: "long"
8
+ },
9
+ {
10
+ name: "tradeDate",
11
+ serverDataType: "long"
12
+ },
13
+ {
14
+ name: "settlementDate",
15
+ serverDataType: "long"
16
+ }
17
+ ],
18
+ key: "id",
19
+ table: {
20
+ module: "TEST",
21
+ table: "TestDates"
22
+ }
23
+ },
24
+ TwoHundredColumns: {
25
+ columns: DefaultColumnGenerator(200).map((col)=>({
26
+ ...col,
27
+ serverDataType: "string"
28
+ })),
29
+ key: "column_1",
30
+ table: {
31
+ module: "TEST",
32
+ table: "TwoHundredColumns"
33
+ }
34
+ },
35
+ LinkParent: {
36
+ columns: [
37
+ {
38
+ name: "id",
39
+ serverDataType: "string"
40
+ },
41
+ {
42
+ name: "data",
43
+ serverDataType: "string"
44
+ }
45
+ ],
46
+ key: "id",
47
+ table: {
48
+ module: "TEST",
49
+ table: "LinkParent"
50
+ }
51
+ },
52
+ LinkChild: {
53
+ columns: [
54
+ {
55
+ name: "id",
56
+ serverDataType: "string"
57
+ },
58
+ {
59
+ name: "parentId",
60
+ serverDataType: "string"
61
+ },
62
+ {
63
+ name: "data",
64
+ serverDataType: "string"
65
+ }
66
+ ],
67
+ key: "id",
68
+ table: {
69
+ module: "TEST",
70
+ table: "LinkChild"
71
+ }
72
+ }
73
+ };
74
+ export { schemas };
@@ -0,0 +1,71 @@
1
+ const DefaultRowGenerator = (columns)=>(index)=>[
2
+ `row ${index + 1}`
3
+ ].concat(Array(columns.length).fill(true).map((v, j)=>`value ${j + 1} @ ${index + 1}`));
4
+ const DefaultColumnGenerator = (columns, columnConfig = {})=>{
5
+ if ("number" == typeof columns) return [
6
+ {
7
+ label: "Row Number",
8
+ name: "rownum",
9
+ width: 150
10
+ }
11
+ ].concat(Array(columns).fill(true).map((_, i)=>{
12
+ const name = `column_${i + 1}`;
13
+ const label = `Column ${i + 1}`;
14
+ return {
15
+ label,
16
+ name,
17
+ width: 100,
18
+ ...columnConfig[name]
19
+ };
20
+ }));
21
+ throw Error("DefaultColumnGenerator must be passed columns (number)");
22
+ };
23
+ const defaultGenerators = {
24
+ ColumnGenerator: DefaultColumnGenerator,
25
+ RowGenerator: DefaultRowGenerator
26
+ };
27
+ const getColumnAndRowGenerator = (table)=>{
28
+ const tableName = table?.table ?? "";
29
+ switch(table?.module){
30
+ case "SIMUL":
31
+ {
32
+ const { ColumnGenerator, RowGenerator, createUpdateGenerator } = simulDataGenerators[tableName] ?? defaultGenerators;
33
+ return [
34
+ ColumnGenerator,
35
+ RowGenerator,
36
+ createUpdateGenerator
37
+ ];
38
+ }
39
+ case "BASKET":
40
+ {
41
+ const { ColumnGenerator, RowGenerator, createUpdateGenerator } = basketDataGenerators[tableName] ?? defaultGenerators;
42
+ return [
43
+ ColumnGenerator,
44
+ RowGenerator,
45
+ createUpdateGenerator
46
+ ];
47
+ }
48
+ case void 0:
49
+ {
50
+ const { ColumnGenerator, RowGenerator } = defaultGenerators;
51
+ return [
52
+ ColumnGenerator,
53
+ RowGenerator
54
+ ];
55
+ }
56
+ default:
57
+ throw Error(`vuu-row-gererator table ${table?.table} was requested but no generator is registered`);
58
+ }
59
+ };
60
+ const populateArray = (count, colGen, rowGen, columns)=>{
61
+ const columnDescriptors = colGen(columns);
62
+ const generateRow = rowGen(columnDescriptors.map((col)=>col.name));
63
+ const data = [];
64
+ for(let i = 0; i < count; i++){
65
+ const row = generateRow(i);
66
+ if (row) data[i] = row;
67
+ else break;
68
+ }
69
+ return data;
70
+ };
71
+ export { DefaultColumnGenerator, DefaultRowGenerator, defaultGenerators, getColumnAndRowGenerator, populateArray };