@vuu-ui/vuu-data-test 0.0.26

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 (155) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +0 -0
  3. package/cjs/ArrayProxy.js +80 -0
  4. package/cjs/ArrayProxy.js.map +1 -0
  5. package/cjs/Table.js +186 -0
  6. package/cjs/Table.js.map +1 -0
  7. package/cjs/TickingArrayDataSource.js +134 -0
  8. package/cjs/TickingArrayDataSource.js.map +1 -0
  9. package/cjs/UpdateGenerator.js +87 -0
  10. package/cjs/UpdateGenerator.js.map +1 -0
  11. package/cjs/basket/basket-module.js +236 -0
  12. package/cjs/basket/basket-module.js.map +1 -0
  13. package/cjs/basket/basket-schemas.js +121 -0
  14. package/cjs/basket/basket-schemas.js.map +1 -0
  15. package/cjs/basket/reference-data/constituents.js +40 -0
  16. package/cjs/basket/reference-data/constituents.js.map +1 -0
  17. package/cjs/basket/reference-data/ftse100.js +105 -0
  18. package/cjs/basket/reference-data/ftse100.js.map +1 -0
  19. package/cjs/basket/reference-data/hsi.js +87 -0
  20. package/cjs/basket/reference-data/hsi.js.map +1 -0
  21. package/cjs/basket/reference-data/nasdaq100.js +108 -0
  22. package/cjs/basket/reference-data/nasdaq100.js.map +1 -0
  23. package/cjs/basket/reference-data/prices.js +51 -0
  24. package/cjs/basket/reference-data/prices.js.map +1 -0
  25. package/cjs/basket/reference-data/sp500.js +46 -0
  26. package/cjs/basket/reference-data/sp500.js.map +1 -0
  27. package/cjs/data-utils.js +58 -0
  28. package/cjs/data-utils.js.map +1 -0
  29. package/cjs/index.js +36 -0
  30. package/cjs/index.js.map +1 -0
  31. package/cjs/makeSuggestions.js +37 -0
  32. package/cjs/makeSuggestions.js.map +1 -0
  33. package/cjs/schemas.js +28 -0
  34. package/cjs/schemas.js.map +1 -0
  35. package/cjs/simul/reference-data/currencies.js +6 -0
  36. package/cjs/simul/reference-data/currencies.js.map +1 -0
  37. package/cjs/simul/reference-data/instruments-extended.js +18 -0
  38. package/cjs/simul/reference-data/instruments-extended.js.map +1 -0
  39. package/cjs/simul/reference-data/instruments.js +74 -0
  40. package/cjs/simul/reference-data/instruments.js.map +1 -0
  41. package/cjs/simul/reference-data/locations.js +17 -0
  42. package/cjs/simul/reference-data/locations.js.map +1 -0
  43. package/cjs/simul/reference-data/lotsizes.js +28 -0
  44. package/cjs/simul/reference-data/lotsizes.js.map +1 -0
  45. package/cjs/simul/reference-data/orders.js +43 -0
  46. package/cjs/simul/reference-data/orders.js.map +1 -0
  47. package/cjs/simul/reference-data/prices.js +71 -0
  48. package/cjs/simul/reference-data/prices.js.map +1 -0
  49. package/cjs/simul/simul-module.js +122 -0
  50. package/cjs/simul/simul-module.js.map +1 -0
  51. package/cjs/simul/simul-schemas.js +137 -0
  52. package/cjs/simul/simul-schemas.js.map +1 -0
  53. package/cjs/test/test-module.js +58 -0
  54. package/cjs/test/test-module.js.map +1 -0
  55. package/cjs/test/test-schemas.js +17 -0
  56. package/cjs/test/test-schemas.js.map +1 -0
  57. package/cjs/vuu-modules.js +15 -0
  58. package/cjs/vuu-modules.js.map +1 -0
  59. package/cjs/vuu-row-generator.js +74 -0
  60. package/cjs/vuu-row-generator.js.map +1 -0
  61. package/esm/ArrayProxy.js +78 -0
  62. package/esm/ArrayProxy.js.map +1 -0
  63. package/esm/Table.js +182 -0
  64. package/esm/Table.js.map +1 -0
  65. package/esm/TickingArrayDataSource.js +132 -0
  66. package/esm/TickingArrayDataSource.js.map +1 -0
  67. package/esm/UpdateGenerator.js +85 -0
  68. package/esm/UpdateGenerator.js.map +1 -0
  69. package/esm/basket/basket-module.js +232 -0
  70. package/esm/basket/basket-module.js.map +1 -0
  71. package/esm/basket/basket-schemas.js +119 -0
  72. package/esm/basket/basket-schemas.js.map +1 -0
  73. package/esm/basket/reference-data/constituents.js +38 -0
  74. package/esm/basket/reference-data/constituents.js.map +1 -0
  75. package/esm/basket/reference-data/ftse100.js +103 -0
  76. package/esm/basket/reference-data/ftse100.js.map +1 -0
  77. package/esm/basket/reference-data/hsi.js +85 -0
  78. package/esm/basket/reference-data/hsi.js.map +1 -0
  79. package/esm/basket/reference-data/nasdaq100.js +106 -0
  80. package/esm/basket/reference-data/nasdaq100.js.map +1 -0
  81. package/esm/basket/reference-data/prices.js +49 -0
  82. package/esm/basket/reference-data/prices.js.map +1 -0
  83. package/esm/basket/reference-data/sp500.js +44 -0
  84. package/esm/basket/reference-data/sp500.js.map +1 -0
  85. package/esm/data-utils.js +53 -0
  86. package/esm/data-utils.js.map +1 -0
  87. package/esm/index.js +11 -0
  88. package/esm/index.js.map +1 -0
  89. package/esm/makeSuggestions.js +35 -0
  90. package/esm/makeSuggestions.js.map +1 -0
  91. package/esm/schemas.js +24 -0
  92. package/esm/schemas.js.map +1 -0
  93. package/esm/simul/reference-data/currencies.js +4 -0
  94. package/esm/simul/reference-data/currencies.js.map +1 -0
  95. package/esm/simul/reference-data/instruments-extended.js +16 -0
  96. package/esm/simul/reference-data/instruments-extended.js.map +1 -0
  97. package/esm/simul/reference-data/instruments.js +69 -0
  98. package/esm/simul/reference-data/instruments.js.map +1 -0
  99. package/esm/simul/reference-data/locations.js +14 -0
  100. package/esm/simul/reference-data/locations.js.map +1 -0
  101. package/esm/simul/reference-data/lotsizes.js +26 -0
  102. package/esm/simul/reference-data/lotsizes.js.map +1 -0
  103. package/esm/simul/reference-data/orders.js +40 -0
  104. package/esm/simul/reference-data/orders.js.map +1 -0
  105. package/esm/simul/reference-data/prices.js +68 -0
  106. package/esm/simul/reference-data/prices.js.map +1 -0
  107. package/esm/simul/simul-module.js +120 -0
  108. package/esm/simul/simul-module.js.map +1 -0
  109. package/esm/simul/simul-schemas.js +135 -0
  110. package/esm/simul/simul-schemas.js.map +1 -0
  111. package/esm/test/test-module.js +56 -0
  112. package/esm/test/test-module.js.map +1 -0
  113. package/esm/test/test-schemas.js +15 -0
  114. package/esm/test/test-schemas.js.map +1 -0
  115. package/esm/vuu-modules.js +13 -0
  116. package/esm/vuu-modules.js.map +1 -0
  117. package/esm/vuu-row-generator.js +68 -0
  118. package/esm/vuu-row-generator.js.map +1 -0
  119. package/package.json +34 -0
  120. package/types/ArrayProxy.d.ts +8 -0
  121. package/types/Table.d.ts +23 -0
  122. package/types/TickingArrayDataSource.d.ts +27 -0
  123. package/types/UpdateGenerator.d.ts +18 -0
  124. package/types/basket/basket-module.d.ts +6 -0
  125. package/types/basket/basket-schemas.d.ts +3 -0
  126. package/types/basket/index.d.ts +2 -0
  127. package/types/basket/reference-data/constituents.d.ts +3 -0
  128. package/types/basket/reference-data/ftse100.d.ts +2 -0
  129. package/types/basket/reference-data/hsi.d.ts +2 -0
  130. package/types/basket/reference-data/nasdaq100.d.ts +2 -0
  131. package/types/basket/reference-data/prices.d.ts +25 -0
  132. package/types/basket/reference-data/sp500.d.ts +2 -0
  133. package/types/data-utils.d.ts +6 -0
  134. package/types/index.d.ts +9 -0
  135. package/types/makeSuggestions.d.ts +2 -0
  136. package/types/rowUpdates.d.ts +15 -0
  137. package/types/schemas.d.ts +8 -0
  138. package/types/simul/index.d.ts +2 -0
  139. package/types/simul/reference-data/currencies.d.ts +1 -0
  140. package/types/simul/reference-data/index.d.ts +5 -0
  141. package/types/simul/reference-data/instrument-prices.d.ts +54 -0
  142. package/types/simul/reference-data/instruments-extended.d.ts +2 -0
  143. package/types/simul/reference-data/instruments.d.ts +31 -0
  144. package/types/simul/reference-data/locations.d.ts +4 -0
  145. package/types/simul/reference-data/lotsizes.d.ts +1 -0
  146. package/types/simul/reference-data/orders.d.ts +35 -0
  147. package/types/simul/reference-data/priceStrategies.d.ts +1 -0
  148. package/types/simul/reference-data/prices.d.ts +27 -0
  149. package/types/simul/simul-module.d.ts +3 -0
  150. package/types/simul/simul-schemas.d.ts +3 -0
  151. package/types/test/index.d.ts +1 -0
  152. package/types/test/test-module.d.ts +4 -0
  153. package/types/test/test-schemas.d.ts +3 -0
  154. package/types/vuu-modules.d.ts +7 -0
  155. package/types/vuu-row-generator.d.ts +17 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"makeSuggestions.js","sources":["../src/makeSuggestions.ts"],"sourcesContent":["import { DataItem } from \"@vuu-ui/vuu-utils\";\nimport { Table } from \"./Table\";\n\nconst cachedValues = new Map<Table, Map<string, DataItem[]>>();\n\nconst getUniqueValues = (table: Table, column: string, pattern = \"\") => {\n let uniqueValues;\n const cachedEntry = cachedValues.get(table);\n if (cachedEntry && cachedEntry.has(column)) {\n uniqueValues = cachedEntry.get(column) as DataItem[];\n } else {\n const { data, map } = table;\n const key = map[column];\n uniqueValues = [];\n const set = new Set();\n for (const row of data) {\n const value = row[key];\n if (!set.has(value)) {\n set.add(value);\n uniqueValues.push(value);\n }\n }\n uniqueValues.sort();\n if (cachedEntry) {\n cachedEntry.set(column, uniqueValues);\n } else {\n cachedValues.set(table, new Map([[column, uniqueValues]]));\n }\n }\n return pattern\n ? uniqueValues.filter((value) => value.toString().startsWith(pattern))\n : uniqueValues;\n};\n\n// export const makeSuggestions = (\n// table: Table,\n// column: string,\n// pattern?: string\n// ) => {\n// const uniqueValues = getUniqueValues(table, column, pattern);\n// if (uniqueValues.length > 20) {\n// return uniqueValues?.slice(0, 20).map((v) => v.toString());\n// } else {\n// return uniqueValues.map((v) => v.toString());\n// }\n// };\nexport const makeSuggestions = (\n table: Table,\n column: string,\n pattern?: string\n): Promise<string[]> =>\n new Promise((resolve) => {\n const uniqueValues = getUniqueValues(table, column, pattern);\n const result =\n uniqueValues.length > 20\n ? uniqueValues?.slice(0, 20).map((v) => v.toString())\n : uniqueValues.map((v) => v.toString());\n setTimeout(() => resolve(result), 100);\n });\n"],"names":[],"mappings":"AAGA,MAAM,YAAA,uBAAmB,GAAoC,EAAA,CAAA;AAE7D,MAAM,eAAkB,GAAA,CAAC,KAAc,EAAA,MAAA,EAAgB,UAAU,EAAO,KAAA;AACtE,EAAI,IAAA,YAAA,CAAA;AACJ,EAAM,MAAA,WAAA,GAAc,YAAa,CAAA,GAAA,CAAI,KAAK,CAAA,CAAA;AAC1C,EAAA,IAAI,WAAe,IAAA,WAAA,CAAY,GAAI,CAAA,MAAM,CAAG,EAAA;AAC1C,IAAe,YAAA,GAAA,WAAA,CAAY,IAAI,MAAM,CAAA,CAAA;AAAA,GAChC,MAAA;AACL,IAAM,MAAA,EAAE,IAAM,EAAA,GAAA,EAAQ,GAAA,KAAA,CAAA;AACtB,IAAM,MAAA,GAAA,GAAM,IAAI,MAAM,CAAA,CAAA;AACtB,IAAA,YAAA,GAAe,EAAC,CAAA;AAChB,IAAM,MAAA,GAAA,uBAAU,GAAI,EAAA,CAAA;AACpB,IAAA,KAAA,MAAW,OAAO,IAAM,EAAA;AACtB,MAAM,MAAA,KAAA,GAAQ,IAAI,GAAG,CAAA,CAAA;AACrB,MAAA,IAAI,CAAC,GAAA,CAAI,GAAI,CAAA,KAAK,CAAG,EAAA;AACnB,QAAA,GAAA,CAAI,IAAI,KAAK,CAAA,CAAA;AACb,QAAA,YAAA,CAAa,KAAK,KAAK,CAAA,CAAA;AAAA,OACzB;AAAA,KACF;AACA,IAAA,YAAA,CAAa,IAAK,EAAA,CAAA;AAClB,IAAA,IAAI,WAAa,EAAA;AACf,MAAY,WAAA,CAAA,GAAA,CAAI,QAAQ,YAAY,CAAA,CAAA;AAAA,KAC/B,MAAA;AACL,MAAa,YAAA,CAAA,GAAA,CAAI,KAAO,kBAAA,IAAI,GAAI,CAAA,CAAC,CAAC,MAAQ,EAAA,YAAY,CAAC,CAAC,CAAC,CAAA,CAAA;AAAA,KAC3D;AAAA,GACF;AACA,EAAO,OAAA,OAAA,GACH,YAAa,CAAA,MAAA,CAAO,CAAC,KAAA,KAAU,KAAM,CAAA,QAAA,EAAW,CAAA,UAAA,CAAW,OAAO,CAAC,CACnE,GAAA,YAAA,CAAA;AACN,CAAA,CAAA;AAca,MAAA,eAAA,GAAkB,CAC7B,KACA,EAAA,MAAA,EACA,YAEA,IAAI,OAAA,CAAQ,CAAC,OAAY,KAAA;AACvB,EAAA,MAAM,YAAe,GAAA,eAAA,CAAgB,KAAO,EAAA,MAAA,EAAQ,OAAO,CAAA,CAAA;AAC3D,EAAM,MAAA,MAAA,GACJ,aAAa,MAAS,GAAA,EAAA,GAClB,cAAc,KAAM,CAAA,CAAA,EAAG,EAAE,CAAA,CAAE,GAAI,CAAA,CAAC,MAAM,CAAE,CAAA,QAAA,EAAU,CAClD,GAAA,YAAA,CAAa,IAAI,CAAC,CAAA,KAAM,CAAE,CAAA,QAAA,EAAU,CAAA,CAAA;AAC1C,EAAA,UAAA,CAAW,MAAM,OAAA,CAAQ,MAAM,CAAA,EAAG,GAAG,CAAA,CAAA;AACvC,CAAC;;;;"}
package/esm/schemas.js ADDED
@@ -0,0 +1,24 @@
1
+ import { schemas as schemas$1 } from './basket/basket-schemas.js';
2
+ import { schemas as schemas$2 } from './simul/simul-schemas.js';
3
+ import { schemas as schemas$3 } from './test/test-schemas.js';
4
+
5
+ const schemas = {
6
+ ...schemas$1,
7
+ ...schemas$2,
8
+ ...schemas$3
9
+ };
10
+ const allSchemas = {
11
+ ...schemas$1,
12
+ ...schemas$2,
13
+ ...schemas$3
14
+ };
15
+ const getAllSchemas = () => schemas;
16
+ const getSchema = (tableName) => {
17
+ if (allSchemas[tableName]) {
18
+ return allSchemas[tableName];
19
+ }
20
+ throw Error(`getSchema no schema for table ${tableName}`);
21
+ };
22
+
23
+ export { getAllSchemas, getSchema, schemas };
24
+ //# sourceMappingURL=schemas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schemas.js","sources":["../src/schemas.ts"],"sourcesContent":["import { TableSchema } from \"@vuu-ui/vuu-data-types\";\nimport {\n type BasketsTableName,\n schemas as basketSchemas,\n} from \"./basket/basket-schemas\";\nimport {\n type SimulTableName,\n schemas as simulSchemas,\n} from \"./simul/simul-schemas\";\nimport {\n type TestTableName,\n schemas as testSchemas,\n} from \"./test/test-schemas\";\n\nexport type VuuTableName = BasketsTableName | SimulTableName | TestTableName;\nexport const schemas: Record<VuuTableName, TableSchema> = {\n ...basketSchemas,\n ...simulSchemas,\n ...testSchemas,\n};\n\nconst allSchemas: Readonly<Record<VuuTableName, Readonly<TableSchema>>> = {\n ...basketSchemas,\n ...simulSchemas,\n ...testSchemas,\n};\n\nexport const getAllSchemas = () => schemas;\n\nexport const getSchema = (tableName: VuuTableName) => {\n if (allSchemas[tableName]) {\n return allSchemas[tableName];\n }\n throw Error(`getSchema no schema for table ${tableName}`);\n};\n"],"names":["basketSchemas","simulSchemas","testSchemas"],"mappings":";;;;AAeO,MAAM,OAA6C,GAAA;AAAA,EACxD,GAAGA,SAAA;AAAA,EACH,GAAGC,SAAA;AAAA,EACH,GAAGC,SAAA;AACL,EAAA;AAEA,MAAM,UAAoE,GAAA;AAAA,EACxE,GAAGF,SAAA;AAAA,EACH,GAAGC,SAAA;AAAA,EACH,GAAGC,SAAA;AACL,CAAA,CAAA;AAEO,MAAM,gBAAgB,MAAM,QAAA;AAEtB,MAAA,SAAA,GAAY,CAAC,SAA4B,KAAA;AACpD,EAAI,IAAA,UAAA,CAAW,SAAS,CAAG,EAAA;AACzB,IAAA,OAAO,WAAW,SAAS,CAAA,CAAA;AAAA,GAC7B;AACA,EAAM,MAAA,KAAA,CAAM,CAAiC,8BAAA,EAAA,SAAS,CAAE,CAAA,CAAA,CAAA;AAC1D;;;;"}
@@ -0,0 +1,4 @@
1
+ const currencies = ["CAD", "GBX", "USD", "EUR", "GBP"];
2
+
3
+ export { currencies };
4
+ //# sourceMappingURL=currencies.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"currencies.js","sources":["../../../src/simul/reference-data/currencies.ts"],"sourcesContent":["export const currencies = [\"CAD\", \"GBX\", \"USD\", \"EUR\", \"GBP\"];\n"],"names":[],"mappings":"AAAO,MAAM,aAAa,CAAC,KAAA,EAAO,KAAO,EAAA,KAAA,EAAO,OAAO,KAAK;;;;"}
@@ -0,0 +1,16 @@
1
+ import { random } from '../../data-utils.js';
2
+ import { Table, buildDataColumnMap } from '../../Table.js';
3
+ import { schemas } from '../simul-schemas.js';
4
+ import { instrumentsData } from './instruments.js';
5
+
6
+ const instrumentsExtendedData = instrumentsData.map(
7
+ (row) => row.slice(0, -1).concat([random(0, 1) === 1, random(0, 1) === 1, (/* @__PURE__ */ new Date()).getTime()])
8
+ );
9
+ const instrumentsExtendedTable = new Table(
10
+ schemas.instrumentsExtended,
11
+ instrumentsExtendedData,
12
+ buildDataColumnMap(schemas.instrumentsExtended)
13
+ );
14
+
15
+ export { instrumentsExtendedTable };
16
+ //# sourceMappingURL=instruments-extended.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instruments-extended.js","sources":["../../../src/simul/reference-data/instruments-extended.ts"],"sourcesContent":["import { VuuRowDataItemType } from \"@vuu-ui/vuu-protocol-types\";\nimport { random } from \"../../data-utils\";\nimport { buildDataColumnMap, Table } from \"../../Table\";\nimport { schemas } from \"../simul-schemas\";\nimport { instrumentsData } from \"./instruments\";\n\nconst instrumentsExtendedData = instrumentsData.map((row) =>\n (row as VuuRowDataItemType[])\n .slice(0, -1)\n .concat([random(0, 1) === 1, random(0, 1) === 1, new Date().getTime()])\n);\n\nexport const instrumentsExtendedTable = new Table(\n schemas.instrumentsExtended,\n instrumentsExtendedData,\n buildDataColumnMap(schemas.instrumentsExtended)\n);\n"],"names":[],"mappings":";;;;;AAMA,MAAM,0BAA0B,eAAgB,CAAA,GAAA;AAAA,EAAI,CAAC,GAClD,KAAA,GAAA,CACE,KAAM,CAAA,CAAA,EAAG,EAAE,CACX,CAAA,MAAA,CAAO,CAAC,MAAA,CAAO,CAAG,EAAA,CAAC,MAAM,CAAG,EAAA,MAAA,CAAO,CAAG,EAAA,CAAC,CAAM,KAAA,CAAA,EAAA,qBAAO,IAAK,EAAA,EAAE,OAAQ,EAAC,CAAC,CAAA;AAC1E,CAAA,CAAA;AAEO,MAAM,2BAA2B,IAAI,KAAA;AAAA,EAC1C,OAAQ,CAAA,mBAAA;AAAA,EACR,uBAAA;AAAA,EACA,kBAAA,CAAmB,QAAQ,mBAAmB,CAAA;AAChD;;;;"}
@@ -0,0 +1,69 @@
1
+ import { isinGenerator } from '@thomaschaplin/isin-generator';
2
+ import { currencies } from './currencies.js';
3
+ import { suffixes, locations } from './locations.js';
4
+ import { lotsizes } from './lotsizes.js';
5
+ import { random } from '../../data-utils.js';
6
+ import { Table, buildDataColumnMap } from '../../Table.js';
7
+ import { schemas } from '../simul-schemas.js';
8
+
9
+ const InstrumentColumnMap = {
10
+ bbg: 0,
11
+ currency: 1,
12
+ description: 2,
13
+ exchange: 3,
14
+ string: 4,
15
+ number: 5,
16
+ ric: 6,
17
+ price: 7
18
+ };
19
+ const instrumentsData = [];
20
+ const chars1 = Array.from("ABCEFGHKMN");
21
+ const chars2 = Array.from("ABCEFGHKMN");
22
+ const chars3 = Array.from("OPQRTUVWYZ");
23
+ const chars4 = Array.from("OPQRTUVWYZ");
24
+ const randomPrice = () => {
25
+ const price = random(0, 1e4);
26
+ const multiplier = random(1, 10);
27
+ return price / multiplier;
28
+ };
29
+ let count = 0;
30
+ for (const char1 of chars1) {
31
+ for (const char2 of chars2) {
32
+ for (const char3 of chars3) {
33
+ for (const char4 of chars4) {
34
+ const suffix = suffixes[count % 8];
35
+ const ric = char1 + char2 + char3 + char4 + "." + suffix;
36
+ const bbg = char1 + char2 + char3 + char4 + " " + suffix;
37
+ const description = `${ric} description`;
38
+ const currency = currencies[random(0, 4)];
39
+ const isin = isinGenerator();
40
+ const lotSize = lotsizes[random(0, lotsizes.length - 1)];
41
+ const exchange = locations[suffix][1];
42
+ const price = randomPrice();
43
+ instrumentsData.push([
44
+ bbg,
45
+ currency,
46
+ description,
47
+ exchange,
48
+ String(isin),
49
+ lotSize,
50
+ ric,
51
+ price
52
+ ]);
53
+ count++;
54
+ }
55
+ }
56
+ }
57
+ }
58
+ const getRic = (defaultRic) => {
59
+ const row = instrumentsData.at(random(0, instrumentsData.length));
60
+ return row?.[InstrumentColumnMap.ric] ?? defaultRic;
61
+ };
62
+ const instrumentsTable = new Table(
63
+ schemas.instruments,
64
+ instrumentsData,
65
+ buildDataColumnMap(schemas.instruments)
66
+ );
67
+
68
+ export { InstrumentColumnMap, getRic, instrumentsData, instrumentsTable };
69
+ //# sourceMappingURL=instruments.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instruments.js","sources":["../../../src/simul/reference-data/instruments.ts"],"sourcesContent":["import { isinGenerator } from \"@thomaschaplin/isin-generator\";\nimport { currencies } from \"./currencies\";\nimport { locations, suffixes } from \"./locations\";\nimport { lotsizes } from \"./lotsizes\";\nimport { random } from \"../../data-utils\";\nimport { buildDataColumnMap, Table } from \"../../Table\";\nimport { schemas } from \"../simul-schemas\";\n\nexport type bbg = string;\nexport type currency = string;\nexport type ric = string;\nexport type description = string;\nexport type exchange = string;\n// seed for price generation\nexport type price = number;\n\nexport type InstrumentsDataRow = [\n bbg,\n currency,\n description,\n exchange,\n string,\n number,\n ric,\n price\n];\n\nexport const InstrumentColumnMap = {\n bbg: 0,\n currency: 1,\n description: 2,\n exchange: 3,\n string: 4,\n number: 5,\n ric: 6,\n price: 7,\n} as const;\n\nconst instrumentsData: InstrumentsDataRow[] = [];\n\nconst chars1 = Array.from(\"ABCEFGHKMN\");\nconst chars2 = Array.from(\"ABCEFGHKMN\");\nconst chars3 = Array.from(\"OPQRTUVWYZ\");\nconst chars4 = Array.from(\"OPQRTUVWYZ\");\n\nconst randomPrice = () => {\n const price = random(0, 10000);\n const multiplier = random(1, 10);\n return price / multiplier;\n};\n\n// const start = performance.now();\n// Create 10_000 Instruments\nlet count = 0;\nfor (const char1 of chars1) {\n for (const char2 of chars2) {\n for (const char3 of chars3) {\n for (const char4 of chars4) {\n const suffix = suffixes[count % 8];\n const ric = char1 + char2 + char3 + char4 + \".\" + suffix;\n const bbg = char1 + char2 + char3 + char4 + \" \" + suffix;\n const description = `${ric} description`;\n const currency = currencies[random(0, 4)];\n const isin = isinGenerator();\n const lotSize = lotsizes[random(0, lotsizes.length - 1)];\n\n const exchange = locations[suffix][1];\n const price = randomPrice();\n\n instrumentsData.push([\n bbg,\n currency,\n description,\n exchange,\n String(isin),\n lotSize,\n ric,\n price,\n ]);\n count++;\n }\n }\n }\n}\n\n// const end = performance.now();\n// console.log(`generating 10,000 instruments took ${end - start} ms`);\n\nexport const getRic = (defaultRic: string) => {\n const row = instrumentsData.at(random(0, instrumentsData.length));\n return row?.[InstrumentColumnMap.ric] ?? defaultRic;\n};\n\nexport const instrumentsTable = new Table(\n schemas.instruments,\n instrumentsData,\n buildDataColumnMap(schemas.instruments)\n);\n\nexport { instrumentsData };\n"],"names":[],"mappings":";;;;;;;;AA2BO,MAAM,mBAAsB,GAAA;AAAA,EACjC,GAAK,EAAA,CAAA;AAAA,EACL,QAAU,EAAA,CAAA;AAAA,EACV,WAAa,EAAA,CAAA;AAAA,EACb,QAAU,EAAA,CAAA;AAAA,EACV,MAAQ,EAAA,CAAA;AAAA,EACR,MAAQ,EAAA,CAAA;AAAA,EACR,GAAK,EAAA,CAAA;AAAA,EACL,KAAO,EAAA,CAAA;AACT,EAAA;AAEA,MAAM,kBAAwC,GAAC;AAE/C,MAAM,MAAA,GAAS,KAAM,CAAA,IAAA,CAAK,YAAY,CAAA,CAAA;AACtC,MAAM,MAAA,GAAS,KAAM,CAAA,IAAA,CAAK,YAAY,CAAA,CAAA;AACtC,MAAM,MAAA,GAAS,KAAM,CAAA,IAAA,CAAK,YAAY,CAAA,CAAA;AACtC,MAAM,MAAA,GAAS,KAAM,CAAA,IAAA,CAAK,YAAY,CAAA,CAAA;AAEtC,MAAM,cAAc,MAAM;AACxB,EAAM,MAAA,KAAA,GAAQ,MAAO,CAAA,CAAA,EAAG,GAAK,CAAA,CAAA;AAC7B,EAAM,MAAA,UAAA,GAAa,MAAO,CAAA,CAAA,EAAG,EAAE,CAAA,CAAA;AAC/B,EAAA,OAAO,KAAQ,GAAA,UAAA,CAAA;AACjB,CAAA,CAAA;AAIA,IAAI,KAAQ,GAAA,CAAA,CAAA;AACZ,KAAA,MAAW,SAAS,MAAQ,EAAA;AAC1B,EAAA,KAAA,MAAW,SAAS,MAAQ,EAAA;AAC1B,IAAA,KAAA,MAAW,SAAS,MAAQ,EAAA;AAC1B,MAAA,KAAA,MAAW,SAAS,MAAQ,EAAA;AAC1B,QAAM,MAAA,MAAA,GAAS,QAAS,CAAA,KAAA,GAAQ,CAAC,CAAA,CAAA;AACjC,QAAA,MAAM,GAAM,GAAA,KAAA,GAAQ,KAAQ,GAAA,KAAA,GAAQ,QAAQ,GAAM,GAAA,MAAA,CAAA;AAClD,QAAA,MAAM,GAAM,GAAA,KAAA,GAAQ,KAAQ,GAAA,KAAA,GAAQ,QAAQ,GAAM,GAAA,MAAA,CAAA;AAClD,QAAM,MAAA,WAAA,GAAc,GAAG,GAAG,CAAA,YAAA,CAAA,CAAA;AAC1B,QAAA,MAAM,QAAW,GAAA,UAAA,CAAW,MAAO,CAAA,CAAA,EAAG,CAAC,CAAC,CAAA,CAAA;AACxC,QAAA,MAAM,OAAO,aAAc,EAAA,CAAA;AAC3B,QAAA,MAAM,UAAU,QAAS,CAAA,MAAA,CAAO,GAAG,QAAS,CAAA,MAAA,GAAS,CAAC,CAAC,CAAA,CAAA;AAEvD,QAAA,MAAM,QAAW,GAAA,SAAA,CAAU,MAAM,CAAA,CAAE,CAAC,CAAA,CAAA;AACpC,QAAA,MAAM,QAAQ,WAAY,EAAA,CAAA;AAE1B,QAAA,eAAA,CAAgB,IAAK,CAAA;AAAA,UACnB,GAAA;AAAA,UACA,QAAA;AAAA,UACA,WAAA;AAAA,UACA,QAAA;AAAA,UACA,OAAO,IAAI,CAAA;AAAA,UACX,OAAA;AAAA,UACA,GAAA;AAAA,UACA,KAAA;AAAA,SACD,CAAA,CAAA;AACD,QAAA,KAAA,EAAA,CAAA;AAAA,OACF;AAAA,KACF;AAAA,GACF;AACF,CAAA;AAKa,MAAA,MAAA,GAAS,CAAC,UAAuB,KAAA;AAC5C,EAAA,MAAM,MAAM,eAAgB,CAAA,EAAA,CAAG,OAAO,CAAG,EAAA,eAAA,CAAgB,MAAM,CAAC,CAAA,CAAA;AAChE,EAAO,OAAA,GAAA,GAAM,mBAAoB,CAAA,GAAG,CAAK,IAAA,UAAA,CAAA;AAC3C,EAAA;AAEO,MAAM,mBAAmB,IAAI,KAAA;AAAA,EAClC,OAAQ,CAAA,WAAA;AAAA,EACR,eAAA;AAAA,EACA,kBAAA,CAAmB,QAAQ,WAAW,CAAA;AACxC;;;;"}
@@ -0,0 +1,14 @@
1
+ const locations = {
2
+ L: ["London PLC", "XLON/LSE-SETS"],
3
+ N: ["Corporation", "XNGS/NAS-GSM"],
4
+ AS: ["B.V.", "XAMS/ENA-MAIN"],
5
+ OQ: ["Co.", "XNYS/NYS-MAIN"],
6
+ PA: ["Paris", "PAR/EUR_FR"],
7
+ MI: ["Milan", "MIL/EUR_IT"],
8
+ FR: ["Frankfurt", "FR/EUR_DE"],
9
+ AT: ["Athens", "AT/EUR_GR"]
10
+ };
11
+ const suffixes = ["L", "N", "OQ", "AS", "PA", "MI", "FR", "AT"];
12
+
13
+ export { locations, suffixes };
14
+ //# sourceMappingURL=locations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"locations.js","sources":["../../../src/simul/reference-data/locations.ts"],"sourcesContent":["export const locations: { [key: string]: string[] } = {\n L: [\"London PLC\", \"XLON/LSE-SETS\"],\n N: [\"Corporation\", \"XNGS/NAS-GSM\"],\n AS: [\"B.V.\", \"XAMS/ENA-MAIN\"],\n OQ: [\"Co.\", \"XNYS/NYS-MAIN\"],\n PA: [\"Paris\", \"PAR/EUR_FR\"],\n MI: [\"Milan\", \"MIL/EUR_IT\"],\n FR: [\"Frankfurt\", \"FR/EUR_DE\"],\n AT: [\"Athens\", \"AT/EUR_GR\"],\n};\nexport const suffixes = [\"L\", \"N\", \"OQ\", \"AS\", \"PA\", \"MI\", \"FR\", \"AT\"];\n"],"names":[],"mappings":"AAAO,MAAM,SAAyC,GAAA;AAAA,EACpD,CAAA,EAAG,CAAC,YAAA,EAAc,eAAe,CAAA;AAAA,EACjC,CAAA,EAAG,CAAC,aAAA,EAAe,cAAc,CAAA;AAAA,EACjC,EAAA,EAAI,CAAC,MAAA,EAAQ,eAAe,CAAA;AAAA,EAC5B,EAAA,EAAI,CAAC,KAAA,EAAO,eAAe,CAAA;AAAA,EAC3B,EAAA,EAAI,CAAC,OAAA,EAAS,YAAY,CAAA;AAAA,EAC1B,EAAA,EAAI,CAAC,OAAA,EAAS,YAAY,CAAA;AAAA,EAC1B,EAAA,EAAI,CAAC,WAAA,EAAa,WAAW,CAAA;AAAA,EAC7B,EAAA,EAAI,CAAC,QAAA,EAAU,WAAW,CAAA;AAC5B,EAAA;AACa,MAAA,QAAA,GAAW,CAAC,GAAK,EAAA,GAAA,EAAK,MAAM,IAAM,EAAA,IAAA,EAAM,IAAM,EAAA,IAAA,EAAM,IAAI;;;;"}
@@ -0,0 +1,26 @@
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
+ 1e3,
19
+ 2e3,
20
+ 2500,
21
+ 5e3,
22
+ 1e4
23
+ ];
24
+
25
+ export { lotsizes };
26
+ //# sourceMappingURL=lotsizes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lotsizes.js","sources":["../../../src/simul/reference-data/lotsizes.ts"],"sourcesContent":["export const lotsizes = [\n 1, 2, 5, 10, 50, 50, 70, 100, 100, 100, 120, 150, 150, 200, 500, 700, 1000,\n 2000, 2500, 5000, 10000,\n];\n"],"names":[],"mappings":"AAAO,MAAM,QAAW,GAAA;AAAA,EACtB,CAAA;AAAA,EAAG,CAAA;AAAA,EAAG,CAAA;AAAA,EAAG,EAAA;AAAA,EAAI,EAAA;AAAA,EAAI,EAAA;AAAA,EAAI,EAAA;AAAA,EAAI,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EACtE,GAAA;AAAA,EAAM,IAAA;AAAA,EAAM,GAAA;AAAA,EAAM,GAAA;AACpB;;;;"}
@@ -0,0 +1,40 @@
1
+ import { currencies } from './currencies.js';
2
+ import { getRic } from './instruments.js';
3
+ import { random } from '../../data-utils.js';
4
+ import { Table, buildDataColumnMap } from '../../Table.js';
5
+ import { schemas } from '../simul-schemas.js';
6
+
7
+ const SIDE = ["BUY", "SELL"];
8
+ const traders = ["Trader A", "Trader B", "Trader C"];
9
+ const ordersData = [];
10
+ const now = +/* @__PURE__ */ new Date();
11
+ for (let i = 0; i < 100; i++) {
12
+ const ccy = currencies[random(0, currencies.length - 1)];
13
+ const created = now;
14
+ const filledQuantity = 100;
15
+ const lastUpdate = now;
16
+ const orderId = `ORD${("0000" + i).slice(-4)}`;
17
+ const quantity = 1e3;
18
+ const ric = getRic("AAP.L");
19
+ const side = SIDE[random(0, 1)];
20
+ const trader = traders[random(0, traders.length - 1)];
21
+ ordersData.push([
22
+ ccy,
23
+ created,
24
+ filledQuantity,
25
+ lastUpdate,
26
+ orderId,
27
+ quantity,
28
+ ric,
29
+ side,
30
+ trader
31
+ ]);
32
+ }
33
+ const ordersTable = new Table(
34
+ schemas.orders,
35
+ ordersData,
36
+ buildDataColumnMap(schemas.instruments)
37
+ );
38
+
39
+ export { ordersData, ordersTable };
40
+ //# sourceMappingURL=orders.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"orders.js","sources":["../../../src/simul/reference-data/orders.ts"],"sourcesContent":["import { currencies } from \"./currencies\";\nimport { getRic } from \"./instruments\";\nimport { random } from \"../../data-utils\";\nimport { buildDataColumnMap, Table } from \"../../Table\";\nimport { schemas } from \"../simul-schemas\";\n\nexport type ccy = string;\nexport type created = number;\nexport type filledQuantity = number;\nexport type lastUpdate = number;\nexport type orderId = string;\nexport type quantity = number;\nexport type ric = string;\nexport type side = string;\nexport type trader = string;\n\nconst SIDE = [\"BUY\", \"SELL\"];\nconst traders = [\"Trader A\", \"Trader B\", \"Trader C\"];\n\nexport type OrdersDataRow = [\n ccy,\n created,\n filledQuantity,\n lastUpdate,\n orderId,\n quantity,\n ric,\n side,\n trader\n];\n\nexport const OrderColumnMap = {\n ccy: 0,\n created: 1,\n filledQuantity: 2,\n lastUpdate: 3,\n orderId: 4,\n quantity: 5,\n ric: 6,\n side: 7,\n trader: 8,\n} as const;\n\nconst ordersData: OrdersDataRow[] = [];\n\n// const start = performance.now();\n// Create 10_000 Instruments\n\nconst now = +new Date();\nfor (let i = 0; i < 100; i++) {\n const ccy = currencies[random(0, currencies.length - 1)];\n const created = now;\n const filledQuantity = 100;\n const lastUpdate = now;\n const orderId = `ORD${(\"0000\" + i).slice(-4)}`;\n const quantity = 1000;\n const ric = getRic(\"AAP.L\");\n const side = SIDE[random(0, 1)];\n const trader = traders[random(0, traders.length - 1)];\n\n ordersData.push([\n ccy,\n created,\n filledQuantity,\n lastUpdate,\n orderId,\n quantity,\n ric,\n side,\n trader,\n ]);\n}\n// const end = performance.now();\n// console.log(`generating 10,000 instruments took ${end - start} ms`);\n\nexport const ordersTable = new Table(\n schemas.orders,\n ordersData,\n buildDataColumnMap(schemas.instruments)\n);\n\nexport { ordersData };\n"],"names":[],"mappings":";;;;;;AAgBA,MAAM,IAAA,GAAO,CAAC,KAAA,EAAO,MAAM,CAAA,CAAA;AAC3B,MAAM,OAAU,GAAA,CAAC,UAAY,EAAA,UAAA,EAAY,UAAU,CAAA,CAAA;AA0BnD,MAAM,aAA8B,GAAC;AAKrC,MAAM,GAAA,GAAM,iBAAC,IAAI,IAAK,EAAA,CAAA;AACtB,KAAA,IAAS,CAAI,GAAA,CAAA,EAAG,CAAI,GAAA,GAAA,EAAK,CAAK,EAAA,EAAA;AAC5B,EAAA,MAAM,MAAM,UAAW,CAAA,MAAA,CAAO,GAAG,UAAW,CAAA,MAAA,GAAS,CAAC,CAAC,CAAA,CAAA;AACvD,EAAA,MAAM,OAAU,GAAA,GAAA,CAAA;AAChB,EAAA,MAAM,cAAiB,GAAA,GAAA,CAAA;AACvB,EAAA,MAAM,UAAa,GAAA,GAAA,CAAA;AACnB,EAAA,MAAM,UAAU,CAAO,GAAA,EAAA,CAAA,MAAA,GAAS,CAAG,EAAA,KAAA,CAAM,EAAE,CAAC,CAAA,CAAA,CAAA;AAC5C,EAAA,MAAM,QAAW,GAAA,GAAA,CAAA;AACjB,EAAM,MAAA,GAAA,GAAM,OAAO,OAAO,CAAA,CAAA;AAC1B,EAAA,MAAM,IAAO,GAAA,IAAA,CAAK,MAAO,CAAA,CAAA,EAAG,CAAC,CAAC,CAAA,CAAA;AAC9B,EAAA,MAAM,SAAS,OAAQ,CAAA,MAAA,CAAO,GAAG,OAAQ,CAAA,MAAA,GAAS,CAAC,CAAC,CAAA,CAAA;AAEpD,EAAA,UAAA,CAAW,IAAK,CAAA;AAAA,IACd,GAAA;AAAA,IACA,OAAA;AAAA,IACA,cAAA;AAAA,IACA,UAAA;AAAA,IACA,OAAA;AAAA,IACA,QAAA;AAAA,IACA,GAAA;AAAA,IACA,IAAA;AAAA,IACA,MAAA;AAAA,GACD,CAAA,CAAA;AACH,CAAA;AAIO,MAAM,cAAc,IAAI,KAAA;AAAA,EAC7B,OAAQ,CAAA,MAAA;AAAA,EACR,UAAA;AAAA,EACA,kBAAA,CAAmB,QAAQ,WAAW,CAAA;AACxC;;;;"}
@@ -0,0 +1,68 @@
1
+ import { buildDataColumnMap, Table } from '../../Table.js';
2
+ import { BaseUpdateGenerator } from '../../UpdateGenerator.js';
3
+ import { schemas } from '../simul-schemas.js';
4
+ import { instrumentsData, InstrumentColumnMap } from './instruments.js';
5
+ import { random } from '../../data-utils.js';
6
+ import basketConstituentData from '../../basket/reference-data/constituents.js';
7
+
8
+ const { bid, bidSize, ask, askSize } = buildDataColumnMap(schemas.prices);
9
+ const pricesUpdateGenerator = new BaseUpdateGenerator({
10
+ bid,
11
+ bidSize,
12
+ ask,
13
+ askSize
14
+ });
15
+ const requiredInstrumentFields = ["ric", "price"];
16
+ const pricesData = instrumentsData.map((instrument) => {
17
+ const { ric, price: priceSeed } = requiredInstrumentFields.reduce(
18
+ (obj, f) => ({ ...obj, [f]: instrument[InstrumentColumnMap[f]] }),
19
+ {}
20
+ );
21
+ const spread = random(0, 10);
22
+ const ask2 = priceSeed + spread / 2;
23
+ const askSize2 = random(1e3, 3e3);
24
+ const bid2 = priceSeed - spread / 2;
25
+ const bidSize2 = random(1e3, 3e3);
26
+ const close = priceSeed + random(0, 1) / 10;
27
+ const last = priceSeed + random(0, 1) / 10;
28
+ const open = priceSeed + random(0, 1) / 10;
29
+ const phase = "C";
30
+ const scenario = "close";
31
+ return [ask2, askSize2, bid2, bidSize2, close, last, open, phase, ric, scenario];
32
+ });
33
+ for (const [, , , lastTrade, ric] of basketConstituentData) {
34
+ const priceSeed = parseFloat(String(lastTrade));
35
+ if (!isNaN(priceSeed)) {
36
+ const spread = random(0, 10);
37
+ const ask2 = priceSeed + spread / 2;
38
+ const askSize2 = random(1e3, 3e3);
39
+ const bid2 = priceSeed - spread / 2;
40
+ const bidSize2 = random(1e3, 3e3);
41
+ const close = priceSeed + random(0, 1) / 10;
42
+ const last = priceSeed + random(0, 1) / 10;
43
+ const open = priceSeed + random(0, 1) / 10;
44
+ const phase = "C";
45
+ const scenario = "close";
46
+ pricesData.push([
47
+ ask2,
48
+ askSize2,
49
+ bid2,
50
+ bidSize2,
51
+ close,
52
+ last,
53
+ open,
54
+ phase,
55
+ ric,
56
+ scenario
57
+ ]);
58
+ }
59
+ }
60
+ const pricesTable = new Table(
61
+ schemas.prices,
62
+ pricesData,
63
+ buildDataColumnMap(schemas.prices),
64
+ pricesUpdateGenerator
65
+ );
66
+
67
+ export { pricesData, pricesTable };
68
+ //# sourceMappingURL=prices.js.map
@@ -0,0 +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\";\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];\n\nconst { bid, bidSize, ask, askSize } = buildDataColumnMap(schemas.prices);\nconst pricesUpdateGenerator = new BaseUpdateGenerator({\n bid,\n bidSize,\n ask,\n askSize,\n});\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 return [ask, askSize, bid, bidSize, close, last, open, phase, ric, scenario];\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 ]);\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"],"mappings":"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"}
@@ -0,0 +1,120 @@
1
+ import { makeSuggestions } from '../makeSuggestions.js';
2
+ import { Table, buildDataColumnMap, joinTables } from '../Table.js';
3
+ import { TickingArrayDataSource } from '../TickingArrayDataSource.js';
4
+ import { instrumentsTable } from './reference-data/instruments.js';
5
+ import { instrumentsExtendedTable } from './reference-data/instruments-extended.js';
6
+ import { ordersTable } from './reference-data/orders.js';
7
+ import { pricesTable } from './reference-data/prices.js';
8
+ import { schemas } from './simul-schemas.js';
9
+
10
+ const tables = {
11
+ childOrders: new Table(
12
+ schemas.childOrders,
13
+ [],
14
+ buildDataColumnMap(schemas.childOrders)
15
+ ),
16
+ instruments: instrumentsTable,
17
+ instrumentsExtended: instrumentsExtendedTable,
18
+ instrumentPrices: joinTables(
19
+ { module: "SIMUL", table: "instrumentPrices" },
20
+ instrumentsTable,
21
+ pricesTable,
22
+ "ric"
23
+ ),
24
+ orders: ordersTable,
25
+ parentOrders: new Table(
26
+ schemas.parentOrders,
27
+ [],
28
+ buildDataColumnMap(schemas.parentOrders)
29
+ ),
30
+ prices: pricesTable
31
+ };
32
+ const getColumnDescriptors = (tableName) => {
33
+ const schema = schemas[tableName];
34
+ if (schema) {
35
+ return schema.columns;
36
+ } else {
37
+ throw Error(`simul-module no schema found for table SIMUL ${tableName}`);
38
+ }
39
+ };
40
+ const menus = {
41
+ childOrders: void 0,
42
+ instruments: {
43
+ name: "ROOT",
44
+ menus: [
45
+ {
46
+ context: "selected-rows",
47
+ filter: "",
48
+ name: "Add Instruments To Order",
49
+ rpcName: "ADD_INSTRUMENTS_TO_ORDER"
50
+ }
51
+ ]
52
+ },
53
+ instrumentsExtended: void 0,
54
+ instrumentPrices: void 0,
55
+ orders: void 0,
56
+ parentOrders: void 0,
57
+ prices: void 0
58
+ };
59
+ async function addInstrumentsToOrder() {
60
+ new Table(
61
+ schemas.instruments,
62
+ [],
63
+ buildDataColumnMap(schemas.instruments)
64
+ );
65
+ return {
66
+ action: {
67
+ renderComponent: "grid",
68
+ table: {
69
+ module: "SIMUL",
70
+ table: "session-table-1"
71
+ },
72
+ type: "OPEN_DIALOG_ACTION"
73
+ }
74
+ };
75
+ }
76
+ const services = {
77
+ childOrders: void 0,
78
+ instruments: [
79
+ {
80
+ rpcName: "ADD_INSTRUMENTS_TO_ORDER",
81
+ service: addInstrumentsToOrder
82
+ }
83
+ ],
84
+ instrumentsExtended: void 0,
85
+ instrumentPrices: void 0,
86
+ orders: void 0,
87
+ parentOrders: void 0,
88
+ prices: void 0
89
+ };
90
+ const createDataSource = (tableName) => {
91
+ const columnDescriptors = getColumnDescriptors(tableName);
92
+ return new TickingArrayDataSource({
93
+ columnDescriptors,
94
+ keyColumn: schemas[tableName].key,
95
+ table: tables[tableName],
96
+ menu: menus[tableName],
97
+ rpcServices: services[tableName]
98
+ });
99
+ };
100
+ const suggestionFetcher = ([
101
+ vuuTable,
102
+ column,
103
+ pattern
104
+ ]) => {
105
+ const table = tables[vuuTable.table];
106
+ if (table) {
107
+ return makeSuggestions(table, column, pattern);
108
+ } else {
109
+ throw Error(
110
+ `SIMUL suggestionFetcher, unknown table ${vuuTable.module} ${vuuTable.table}`
111
+ );
112
+ }
113
+ };
114
+ const simulModule = {
115
+ createDataSource,
116
+ typeaheadHook: () => suggestionFetcher
117
+ };
118
+
119
+ export { simulModule };
120
+ //# sourceMappingURL=simul-module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"simul-module.js","sources":["../../src/simul/simul-module.ts"],"sourcesContent":["import { SuggestionFetcher } from \"@vuu-ui/vuu-data-types\";\nimport { TypeaheadParams, VuuMenu } from \"@vuu-ui/vuu-protocol-types\";\nimport { makeSuggestions } from \"../makeSuggestions\";\nimport { buildDataColumnMap, joinTables, Table } from \"../Table\";\nimport { TickingArrayDataSource } from \"../TickingArrayDataSource\";\nimport type { VuuModule } from \"../vuu-modules\";\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 { schemas, type SimulTableName } from \"./simul-schemas\";\n\ntype RpcService = {\n rpcName: string;\n service: (rpcRequest: any) => Promise<unknown>;\n};\n\nconst sessionTables: Record<string, Table> = {};\n\nconst tables: Record<SimulTableName, Table> = {\n childOrders: new Table(\n schemas.childOrders,\n [],\n buildDataColumnMap(schemas.childOrders)\n ),\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: new Table(\n schemas.parentOrders,\n [],\n buildDataColumnMap(schemas.parentOrders)\n ),\n prices: pricesTable,\n};\n\nconst getColumnDescriptors = (tableName: SimulTableName) => {\n const schema = schemas[tableName];\n if (schema) {\n return schema.columns;\n } else {\n throw Error(`simul-module no schema found for table SIMUL ${tableName}`);\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 },\n instrumentsExtended: undefined,\n instrumentPrices: undefined,\n orders: undefined,\n parentOrders: undefined,\n prices: undefined,\n};\n\nasync function addInstrumentsToOrder(/*rpcRequest: unknown*/) {\n // create a `session table`,\n // populate with selected Instruments\n // sens subscriptionn details to user\n\n const sessionTableId = \"session-table-1\";\n sessionTables[sessionTableId] = new Table(\n schemas.instruments,\n [],\n buildDataColumnMap(schemas.instruments)\n );\n\n return {\n action: {\n renderComponent: \"grid\",\n table: {\n module: \"SIMUL\",\n table: \"session-table-1\",\n },\n type: \"OPEN_DIALOG_ACTION\",\n },\n };\n}\n\nconst services: Record<SimulTableName, RpcService[] | undefined> = {\n childOrders: undefined,\n instruments: [\n {\n rpcName: \"ADD_INSTRUMENTS_TO_ORDER\",\n service: addInstrumentsToOrder,\n },\n ],\n instrumentsExtended: undefined,\n instrumentPrices: undefined,\n orders: undefined,\n parentOrders: undefined,\n prices: undefined,\n};\n\nconst createDataSource = (tableName: SimulTableName) => {\n const columnDescriptors = getColumnDescriptors(tableName);\n return new TickingArrayDataSource({\n columnDescriptors,\n keyColumn: schemas[tableName].key,\n table: tables[tableName],\n menu: menus[tableName],\n rpcServices: services[tableName],\n });\n};\n\nconst suggestionFetcher: SuggestionFetcher = ([\n vuuTable,\n column,\n pattern,\n]: TypeaheadParams) => {\n const table = tables[vuuTable.table as SimulTableName];\n if (table) {\n return makeSuggestions(table, column, pattern);\n } else {\n throw Error(\n `SIMUL suggestionFetcher, unknown table ${vuuTable.module} ${vuuTable.table}`\n );\n }\n};\n\nexport const simulModule: VuuModule<SimulTableName> = {\n createDataSource,\n typeaheadHook: () => suggestionFetcher,\n};\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,135 @@
1
+ const schemas = {
2
+ instruments: {
3
+ columns: [
4
+ { name: "bbg", serverDataType: "string" },
5
+ { name: "currency", serverDataType: "string" },
6
+ { name: "description", serverDataType: "string" },
7
+ { name: "exchange", serverDataType: "string" },
8
+ { name: "isin", serverDataType: "string" },
9
+ { name: "lotSize", serverDataType: "int" },
10
+ { name: "ric", serverDataType: "string" }
11
+ ],
12
+ key: "ric",
13
+ table: { module: "SIMUL", table: "instruments" }
14
+ },
15
+ instrumentsExtended: {
16
+ columns: [
17
+ { name: "bbg", serverDataType: "string" },
18
+ { name: "currency", serverDataType: "string" },
19
+ { name: "description", serverDataType: "string" },
20
+ { name: "exchange", serverDataType: "string" },
21
+ { name: "isin", serverDataType: "string" },
22
+ { name: "lotSize", serverDataType: "int" },
23
+ { name: "ric", serverDataType: "string" },
24
+ { name: "supported", serverDataType: "boolean" },
25
+ { name: "wishlist", serverDataType: "boolean" },
26
+ { name: "lastUpdated", serverDataType: "long" }
27
+ ],
28
+ key: "ric",
29
+ table: { module: "SIMUL", table: "instruments" }
30
+ },
31
+ instrumentPrices: {
32
+ columns: [
33
+ { name: "ask", serverDataType: "double" },
34
+ { name: "askSize", serverDataType: "double" },
35
+ // type: "int"
36
+ { name: "bbg", serverDataType: "string" },
37
+ { name: "bid", serverDataType: "double" },
38
+ { name: "bidSize", serverDataType: "double" },
39
+ { name: "close", serverDataType: "double" },
40
+ { name: "currency", serverDataType: "string" },
41
+ { name: "description", serverDataType: "string" },
42
+ { name: "exchange", serverDataType: "string" },
43
+ { name: "isin", serverDataType: "string" },
44
+ { name: "last", serverDataType: "double" },
45
+ { name: "lotSize", serverDataType: "int" },
46
+ { name: "open", serverDataType: "double" },
47
+ { name: "phase", serverDataType: "string" },
48
+ { name: "ric", serverDataType: "string" },
49
+ { name: "scenario", serverDataType: "string" }
50
+ ],
51
+ key: "ric",
52
+ table: { module: "SIMUL", table: "instrumentPrices" }
53
+ },
54
+ orders: {
55
+ columns: [
56
+ { name: "ccy", serverDataType: "string" },
57
+ { name: "created", serverDataType: "long" },
58
+ { name: "filledQuantity", serverDataType: "double" },
59
+ { name: "lastUpdate", serverDataType: "long" },
60
+ { name: "orderId", serverDataType: "string" },
61
+ { name: "quantity", serverDataType: "double" },
62
+ { name: "ric", serverDataType: "string" },
63
+ { name: "side", serverDataType: "string" },
64
+ { name: "trader", serverDataType: "string" }
65
+ ],
66
+ key: "orderId",
67
+ table: { module: "SIMUL", table: "orders" }
68
+ },
69
+ childOrders: {
70
+ columns: [
71
+ { name: "account", serverDataType: "string" },
72
+ { name: "averagePrice", serverDataType: "double" },
73
+ { name: "ccy", serverDataType: "string" },
74
+ { name: "exchange", serverDataType: "string" },
75
+ { name: "filledQty", serverDataType: "double" },
76
+ { name: "id", serverDataType: "string" },
77
+ { name: "idAsInt", serverDataType: "int" },
78
+ { name: "lastUpdate", serverDataType: "long" },
79
+ { name: "openQty", serverDataType: "double" },
80
+ { name: "parentOrderId", serverDataType: "string" },
81
+ { name: "price", serverDataType: "double" },
82
+ { name: "quantity", serverDataType: "double" },
83
+ { name: "ric", serverDataType: "string" },
84
+ { name: "side", serverDataType: "string" },
85
+ { name: "status", serverDataType: "string" },
86
+ { name: "strategy", serverDataType: "string" },
87
+ { name: "volLimit", serverDataType: "int" }
88
+ ],
89
+ key: "id",
90
+ table: { module: "SIMUL", table: "childOrders" }
91
+ },
92
+ parentOrders: {
93
+ columns: [
94
+ { name: "account", serverDataType: "string" },
95
+ { name: "algo", serverDataType: "string" },
96
+ { name: "averagePrice", serverDataType: "double" },
97
+ { name: "ccy", serverDataType: "string" },
98
+ { name: "childCount", serverDataType: "int" },
99
+ { name: "exchange", serverDataType: "string" },
100
+ { name: "filledQty", serverDataType: "double" },
101
+ { name: "id", serverDataType: "string" },
102
+ { name: "idAsInt", serverDataType: "int" },
103
+ { name: "lastUpdate", serverDataType: "long" },
104
+ { name: "openQty", serverDataType: "double" },
105
+ { name: "price", serverDataType: "double" },
106
+ { name: "quantity", serverDataType: "double" },
107
+ { name: "ric", serverDataType: "string" },
108
+ { name: "side", serverDataType: "string" },
109
+ { name: "status", serverDataType: "string" },
110
+ { name: "volLimit", serverDataType: "int" }
111
+ ],
112
+ key: "id",
113
+ table: { module: "SIMUL", table: "parentOrders" }
114
+ },
115
+ prices: {
116
+ columns: [
117
+ { name: "ask", serverDataType: "double" },
118
+ { name: "askSize", serverDataType: "double" },
119
+ // type: "int"
120
+ { name: "bid", serverDataType: "double" },
121
+ { name: "bidSize", serverDataType: "double" },
122
+ { name: "close", serverDataType: "double" },
123
+ { name: "last", serverDataType: "double" },
124
+ { name: "open", serverDataType: "double" },
125
+ { name: "phase", serverDataType: "string" },
126
+ { name: "ric", serverDataType: "string" },
127
+ { name: "scenario", serverDataType: "string" }
128
+ ],
129
+ key: "ric",
130
+ table: { module: "SIMUL", table: "prices" }
131
+ }
132
+ };
133
+
134
+ export { schemas };
135
+ //# sourceMappingURL=simul-schemas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"simul-schemas.js","sources":["../../src/simul/simul-schemas.ts"],"sourcesContent":["import { TableSchema } from \"@vuu-ui/vuu-data-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 ],\n key: \"ric\",\n table: { module: \"SIMUL\", table: \"instruments\" },\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: \"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: \"lastUpdate\", serverDataType: \"long\" },\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 ],\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: \"lastUpdate\", serverDataType: \"long\" },\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 ],\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 ],\n key: \"ric\",\n table: { module: \"SIMUL\", table: \"prices\" },\n },\n };\n"],"names":[],"mappings":"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"}