@vuu-ui/vuu-data-test 2.1.0 → 2.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -103,9 +103,10 @@ class TickingArrayDataSource extends vuuDataLocal.ArrayDataSource {
103
103
  const {
104
104
  params: { column, starts }
105
105
  } = rpcRequest;
106
+ const data = await this.getTypeaheadSuggestions(column, starts);
106
107
  return {
107
108
  type: "SUCCESS_RESULT",
108
- data: this.getTypeaheadSuggestions(column, starts)
109
+ data
109
110
  };
110
111
  } else {
111
112
  const rpcService = __privateGet(this, _rpcServices)?.find(
@@ -1 +1 @@
1
- {"version":3,"file":"TickingArrayDataSource.js","sources":["../../../packages/vuu-data-test/src/TickingArrayDataSource.ts"],"sourcesContent":["import {\n ArrayDataSource,\n ArrayDataSourceConstructorProps,\n} from \"@vuu-ui/vuu-data-local\";\nimport type {\n DataSourceSubscribeCallback,\n DataSourceSubscribeProps,\n DataSourceVisualLinkCreatedMessage,\n} from \"@vuu-ui/vuu-data-types\";\nimport type {\n LinkDescriptorWithLabel,\n RpcResultError,\n RpcResultSuccess,\n VuuCreateVisualLink,\n VuuMenu,\n VuuRemoveVisualLink,\n VuuRowDataItemType,\n VuuRpcMenuRequest,\n VuuRpcMenuResponse,\n VuuRpcServiceRequest,\n} from \"@vuu-ui/vuu-protocol-types\";\nimport { isTypeaheadRequest, Range } from \"@vuu-ui/vuu-utils\";\nimport {\n RpcMenuService,\n RpcService,\n SessionTableMap,\n} from \"./core/module/VuuModule\";\nimport { makeSuggestions } from \"./makeSuggestions\";\nimport { Table } from \"./Table\";\n\nexport type VisualLinkHandler = (\n message: VuuCreateVisualLink | VuuRemoveVisualLink,\n) => Promise<DataSourceVisualLinkCreatedMessage | void>;\n\nexport interface TickingArrayDataSourceConstructorProps\n extends Omit<ArrayDataSourceConstructorProps, \"data\"> {\n data?: Array<VuuRowDataItemType[]>;\n getVisualLinks?: (tableName: string) => LinkDescriptorWithLabel[] | undefined;\n menu?: VuuMenu;\n rpcMenuServices?: RpcMenuService[];\n rpcServices?: RpcService[];\n sessionTables?: SessionTableMap;\n table?: Table;\n visualLinkService?: VisualLinkHandler;\n}\n\ntype LinkSubscription = {\n sourceColumnName?: string;\n columnName: string;\n linkType: \"subscribe-link-filter\" | \"subscribe-link-select\";\n};\n\nexport class TickingArrayDataSource extends ArrayDataSource {\n #menuRpcServices: RpcService[] | undefined;\n #pendingVisualLink?: LinkDescriptorWithLabel;\n #rpcMenuServices: RpcMenuService[] | undefined;\n #rpcServices: RpcService[] | undefined;\n // A reference to session tables hosted within client side module\n #sessionTables: SessionTableMap | undefined;\n #table?: Table;\n #selectionLinkSubscribers: Map<string, LinkSubscription> | undefined;\n #visualLinkService?: VisualLinkHandler;\n #getVisualLinks?: (\n tableName: string,\n ) => LinkDescriptorWithLabel[] | undefined;\n\n constructor({\n data,\n getVisualLinks,\n rpcServices,\n rpcMenuServices,\n sessionTables,\n table,\n menu,\n visualLink,\n visualLinkService,\n ...arrayDataSourceProps\n }: TickingArrayDataSourceConstructorProps) {\n if (data === undefined && table === undefined) {\n throw Error(\"TickingArrayDataSource must be constructed with data\");\n }\n super({\n ...arrayDataSourceProps,\n data: data ?? table?.data ?? [],\n dataMap: table?.map,\n });\n this._menu = menu;\n\n this.#rpcMenuServices = rpcMenuServices;\n this.#pendingVisualLink = visualLink;\n this.#rpcServices = rpcServices;\n this.#sessionTables = sessionTables;\n this.#table = table;\n this.#visualLinkService = visualLinkService;\n this.#getVisualLinks = getVisualLinks;\n\n if (table) {\n this.tableSchema = table.schema;\n table.on(\"insert\", this.insert);\n table.on(\"update\", this.updateRowWithSessionCheck);\n table.on(\"delete\", this.deleteRow);\n }\n }\n\n updateRowWithSessionCheck = (\n row: VuuRowDataItemType[],\n columnName?: string,\n sessionId?: string,\n ) => {\n if (sessionId && sessionId === this.viewport) {\n this.updateRow(row, columnName);\n } else if (sessionId) {\n // ignore, its not for me\n } else if (this.status === \"suspended\") {\n // queue updates for deferred application, issue warnings when edits in progress\n console.log(\"updates incoming from differenrt edit session\");\n } else {\n this.updateRow(row, columnName);\n }\n };\n\n async subscribe(\n subscribeProps: DataSourceSubscribeProps,\n callback: DataSourceSubscribeCallback,\n ) {\n const subscription = super.subscribe(subscribeProps, callback);\n // if (subscribeProps.range) {\n // this.#updateGenerator?.setRange(subscribeProps.range);\n // }\n if (this.#pendingVisualLink) {\n this.visualLink = this.#pendingVisualLink;\n this.#pendingVisualLink = undefined;\n }\n\n return subscription;\n }\n\n unsubscribe() {\n super.unsubscribe();\n this.#table = undefined;\n }\n\n set range(range: Range) {\n super.range = range;\n // this.#updateGenerator?.setRange(range);\n }\n get range() {\n return super.range;\n }\n\n set links(links: LinkDescriptorWithLabel[] | undefined) {\n super.links = links;\n }\n\n get links() {\n return this.#getVisualLinks?.(this.table.table);\n }\n\n getSelectedRowIds() {\n return Array.from(this.selectedRows);\n }\n\n async rpcRequest(\n rpcRequest: Omit<VuuRpcServiceRequest, \"context\">,\n ): Promise<RpcResultSuccess | RpcResultError> {\n if (isTypeaheadRequest(rpcRequest)) {\n const {\n params: { column, starts },\n } = rpcRequest;\n return {\n type: \"SUCCESS_RESULT\",\n data: this.getTypeaheadSuggestions(column, starts),\n } as RpcResultSuccess;\n } else {\n const rpcService = this.#rpcServices?.find(\n (service) => service.rpcName === rpcRequest.rpcName,\n );\n if (rpcService) {\n switch (rpcRequest.rpcName) {\n case \"VP_BULK_EDIT_COLUMN_CELLS_RPC\": {\n return rpcService.service({\n ...rpcRequest,\n context: {\n type: \"VIEWPORT_CONTEXT\",\n viewPortId: this.viewport,\n },\n });\n }\n }\n return rpcService.service({\n ...rpcRequest,\n context: {\n type: \"VIEWPORT_CONTEXT\",\n viewPortId: this.viewport,\n },\n });\n } else {\n throw Error(\n `[TickingArrayDataSource] no service to handle RPC request ${rpcRequest.rpcName}`,\n );\n }\n }\n }\n\n async menuRpcCall(\n rpcRequest: Omit<VuuRpcMenuRequest, \"vpId\">,\n ): Promise<VuuRpcMenuResponse> {\n const rpcService = this.#rpcMenuServices?.find(\n (service) => service.rpcName === rpcRequest.rpcName,\n );\n\n if (rpcService) {\n return rpcService.service({\n ...rpcRequest,\n vpId: this.viewport,\n localDataParameters: {\n selectedRowIds: this.getSelectedRowIds(),\n table: this.tableSchema.table,\n },\n } as VuuRpcMenuRequest);\n } else {\n throw Error(\n `[TickingArrayDataSource] menuRpcCall no service for ${rpcRequest.rpcName}`,\n );\n }\n }\n\n getTypeaheadSuggestions(column: string, pattern?: string): Promise<string[]> {\n if (this.#table) {\n const columnIndex = this.columnMap[column];\n if (columnIndex === undefined) {\n console.warn(\n `[TickingArrayDataSource] getTypeaheadSuggestions. No column ${column}`,\n );\n return Promise.resolve([]);\n } else {\n return makeSuggestions(this.currentData, columnIndex, pattern);\n }\n } else {\n throw Error(\n \"cannot call getTypeaheadSuggestions on TickingDataSource if table has not been provided\",\n );\n }\n }\n\n get visualLink() {\n return this._config.visualLink;\n }\n\n set visualLink(visualLink: LinkDescriptorWithLabel | undefined) {\n this._config = {\n ...this._config,\n visualLink,\n };\n\n if (visualLink) {\n const {\n parentClientVpId,\n link: { fromColumn, toColumn },\n } = visualLink;\n\n if (this.viewport) {\n this.#visualLinkService?.({\n childVpId: this.viewport,\n childColumnName: fromColumn,\n type: \"CREATE_VISUAL_LINK\",\n parentVpId: parentClientVpId,\n parentColumnName: toColumn,\n }).then((response) => {\n this.emit(\n \"visual-link-created\",\n response as DataSourceVisualLinkCreatedMessage,\n );\n });\n }\n } else {\n this.#visualLinkService?.({\n childVpId: this.viewport,\n type: \"REMOVE_VISUAL_LINK\",\n }).then((/* response */) => {\n this.emit(\"visual-link-removed\");\n });\n }\n }\n\n freeze() {\n super.freeze();\n }\n\n unfreeze() {\n super.unfreeze();\n }\n}\n"],"names":["ArrayDataSource","isTypeaheadRequest","makeSuggestions"],"mappings":"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"}
1
+ {"version":3,"file":"TickingArrayDataSource.js","sources":["../../../packages/vuu-data-test/src/TickingArrayDataSource.ts"],"sourcesContent":["import {\n ArrayDataSource,\n ArrayDataSourceConstructorProps,\n} from \"@vuu-ui/vuu-data-local\";\nimport type {\n DataSourceSubscribeCallback,\n DataSourceSubscribeProps,\n DataSourceVisualLinkCreatedMessage,\n} from \"@vuu-ui/vuu-data-types\";\nimport type {\n LinkDescriptorWithLabel,\n RpcResultError,\n RpcResultSuccess,\n VuuCreateVisualLink,\n VuuMenu,\n VuuRemoveVisualLink,\n VuuRowDataItemType,\n VuuRpcMenuRequest,\n VuuRpcMenuResponse,\n VuuRpcServiceRequest,\n} from \"@vuu-ui/vuu-protocol-types\";\nimport { isTypeaheadRequest, Range } from \"@vuu-ui/vuu-utils\";\nimport {\n RpcMenuService,\n RpcService,\n SessionTableMap,\n} from \"./core/module/VuuModule\";\nimport { makeSuggestions } from \"./makeSuggestions\";\nimport { Table } from \"./Table\";\n\nexport type VisualLinkHandler = (\n message: VuuCreateVisualLink | VuuRemoveVisualLink,\n) => Promise<DataSourceVisualLinkCreatedMessage | void>;\n\nexport interface TickingArrayDataSourceConstructorProps\n extends Omit<ArrayDataSourceConstructorProps, \"data\"> {\n data?: Array<VuuRowDataItemType[]>;\n getVisualLinks?: (tableName: string) => LinkDescriptorWithLabel[] | undefined;\n menu?: VuuMenu;\n rpcMenuServices?: RpcMenuService[];\n rpcServices?: RpcService[];\n sessionTables?: SessionTableMap;\n table?: Table;\n visualLinkService?: VisualLinkHandler;\n}\n\ntype LinkSubscription = {\n sourceColumnName?: string;\n columnName: string;\n linkType: \"subscribe-link-filter\" | \"subscribe-link-select\";\n};\n\nexport class TickingArrayDataSource extends ArrayDataSource {\n #menuRpcServices: RpcService[] | undefined;\n #pendingVisualLink?: LinkDescriptorWithLabel;\n #rpcMenuServices: RpcMenuService[] | undefined;\n #rpcServices: RpcService[] | undefined;\n // A reference to session tables hosted within client side module\n #sessionTables: SessionTableMap | undefined;\n #table?: Table;\n #selectionLinkSubscribers: Map<string, LinkSubscription> | undefined;\n #visualLinkService?: VisualLinkHandler;\n #getVisualLinks?: (\n tableName: string,\n ) => LinkDescriptorWithLabel[] | undefined;\n\n constructor({\n data,\n getVisualLinks,\n rpcServices,\n rpcMenuServices,\n sessionTables,\n table,\n menu,\n visualLink,\n visualLinkService,\n ...arrayDataSourceProps\n }: TickingArrayDataSourceConstructorProps) {\n if (data === undefined && table === undefined) {\n throw Error(\"TickingArrayDataSource must be constructed with data\");\n }\n super({\n ...arrayDataSourceProps,\n data: data ?? table?.data ?? [],\n dataMap: table?.map,\n });\n this._menu = menu;\n\n this.#rpcMenuServices = rpcMenuServices;\n this.#pendingVisualLink = visualLink;\n this.#rpcServices = rpcServices;\n this.#sessionTables = sessionTables;\n this.#table = table;\n this.#visualLinkService = visualLinkService;\n this.#getVisualLinks = getVisualLinks;\n\n if (table) {\n this.tableSchema = table.schema;\n table.on(\"insert\", this.insert);\n table.on(\"update\", this.updateRowWithSessionCheck);\n table.on(\"delete\", this.deleteRow);\n }\n }\n\n updateRowWithSessionCheck = (\n row: VuuRowDataItemType[],\n columnName?: string,\n sessionId?: string,\n ) => {\n if (sessionId && sessionId === this.viewport) {\n this.updateRow(row, columnName);\n } else if (sessionId) {\n // ignore, its not for me\n } else if (this.status === \"suspended\") {\n // queue updates for deferred application, issue warnings when edits in progress\n console.log(\"updates incoming from differenrt edit session\");\n } else {\n this.updateRow(row, columnName);\n }\n };\n\n async subscribe(\n subscribeProps: DataSourceSubscribeProps,\n callback: DataSourceSubscribeCallback,\n ) {\n const subscription = super.subscribe(subscribeProps, callback);\n // if (subscribeProps.range) {\n // this.#updateGenerator?.setRange(subscribeProps.range);\n // }\n if (this.#pendingVisualLink) {\n this.visualLink = this.#pendingVisualLink;\n this.#pendingVisualLink = undefined;\n }\n\n return subscription;\n }\n\n unsubscribe() {\n super.unsubscribe();\n this.#table = undefined;\n }\n\n set range(range: Range) {\n super.range = range;\n // this.#updateGenerator?.setRange(range);\n }\n get range() {\n return super.range;\n }\n\n set links(links: LinkDescriptorWithLabel[] | undefined) {\n super.links = links;\n }\n\n get links() {\n return this.#getVisualLinks?.(this.table.table);\n }\n\n getSelectedRowIds() {\n return Array.from(this.selectedRows);\n }\n\n async rpcRequest(\n rpcRequest: Omit<VuuRpcServiceRequest, \"context\">,\n ): Promise<RpcResultSuccess | RpcResultError> {\n if (isTypeaheadRequest(rpcRequest)) {\n const {\n params: { column, starts },\n } = rpcRequest;\n const data = await this.getTypeaheadSuggestions(column, starts);\n return {\n type: \"SUCCESS_RESULT\",\n data,\n } as RpcResultSuccess;\n } else {\n const rpcService = this.#rpcServices?.find(\n (service) => service.rpcName === rpcRequest.rpcName,\n );\n if (rpcService) {\n switch (rpcRequest.rpcName) {\n case \"VP_BULK_EDIT_COLUMN_CELLS_RPC\": {\n return rpcService.service({\n ...rpcRequest,\n context: {\n type: \"VIEWPORT_CONTEXT\",\n viewPortId: this.viewport,\n },\n });\n }\n }\n return rpcService.service({\n ...rpcRequest,\n context: {\n type: \"VIEWPORT_CONTEXT\",\n viewPortId: this.viewport,\n },\n });\n } else {\n throw Error(\n `[TickingArrayDataSource] no service to handle RPC request ${rpcRequest.rpcName}`,\n );\n }\n }\n }\n\n async menuRpcCall(\n rpcRequest: Omit<VuuRpcMenuRequest, \"vpId\">,\n ): Promise<VuuRpcMenuResponse> {\n const rpcService = this.#rpcMenuServices?.find(\n (service) => service.rpcName === rpcRequest.rpcName,\n );\n\n if (rpcService) {\n return rpcService.service({\n ...rpcRequest,\n vpId: this.viewport,\n localDataParameters: {\n selectedRowIds: this.getSelectedRowIds(),\n table: this.tableSchema.table,\n },\n } as VuuRpcMenuRequest);\n } else {\n throw Error(\n `[TickingArrayDataSource] menuRpcCall no service for ${rpcRequest.rpcName}`,\n );\n }\n }\n\n getTypeaheadSuggestions(column: string, pattern?: string): Promise<string[]> {\n if (this.#table) {\n const columnIndex = this.columnMap[column];\n if (columnIndex === undefined) {\n console.warn(\n `[TickingArrayDataSource] getTypeaheadSuggestions. No column ${column}`,\n );\n return Promise.resolve([]);\n } else {\n return makeSuggestions(this.currentData, columnIndex, pattern);\n }\n } else {\n throw Error(\n \"cannot call getTypeaheadSuggestions on TickingDataSource if table has not been provided\",\n );\n }\n }\n\n get visualLink() {\n return this._config.visualLink;\n }\n\n set visualLink(visualLink: LinkDescriptorWithLabel | undefined) {\n this._config = {\n ...this._config,\n visualLink,\n };\n\n if (visualLink) {\n const {\n parentClientVpId,\n link: { fromColumn, toColumn },\n } = visualLink;\n\n if (this.viewport) {\n this.#visualLinkService?.({\n childVpId: this.viewport,\n childColumnName: fromColumn,\n type: \"CREATE_VISUAL_LINK\",\n parentVpId: parentClientVpId,\n parentColumnName: toColumn,\n }).then((response) => {\n this.emit(\n \"visual-link-created\",\n response as DataSourceVisualLinkCreatedMessage,\n );\n });\n }\n } else {\n this.#visualLinkService?.({\n childVpId: this.viewport,\n type: \"REMOVE_VISUAL_LINK\",\n }).then((/* response */) => {\n this.emit(\"visual-link-removed\");\n });\n }\n }\n\n freeze() {\n super.freeze();\n }\n\n unfreeze() {\n super.unfreeze();\n }\n}\n"],"names":["ArrayDataSource","isTypeaheadRequest","makeSuggestions"],"mappings":"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"}
@@ -28,35 +28,15 @@ const InstrumentColumnMap = {
28
28
  exchange: 3,
29
29
  string: 4,
30
30
  number: 5,
31
- price: 6,
32
- ric: 7,
33
- vuuCreatedTimestamp: 8,
34
- vuuUpdatedTimestamp: 9
31
+ ric: 6,
32
+ vuuCreatedTimestamp: 7,
33
+ vuuUpdatedTimestamp: 8
35
34
  };
36
35
  const instrumentsData = [];
37
36
  const chars1 = Array.from("ABCEFGHKMN");
38
37
  const chars2 = Array.from("ABCEFGHKMN");
39
38
  const chars3 = Array.from("OPQRTUVWYZ");
40
39
  const chars4 = Array.from("OPQRTUVWYZ");
41
- const scaledDecimals = (fraction, decimals) => {
42
- if (fraction.length > decimals) {
43
- return fraction.slice(0, decimals);
44
- } else if (fraction.length === decimals) {
45
- return fraction;
46
- } else {
47
- return fraction.padEnd(decimals, "0");
48
- }
49
- };
50
- const ScaledDecimal = (value, decimals = 6) => {
51
- const stringValue = value.toString();
52
- const [integral, fraction = "0"] = stringValue.split(".");
53
- return `${integral}${scaledDecimals(fraction, decimals)}`;
54
- };
55
- const randomPrice = () => {
56
- const price = dataUtils.random(0, 1e4);
57
- const multiplier = dataUtils.random(1, 10);
58
- return ScaledDecimal(price / multiplier);
59
- };
60
40
  let count = 0;
61
41
  for (const char1 of chars1) {
62
42
  for (const char2 of chars2) {
@@ -70,7 +50,6 @@ for (const char1 of chars1) {
70
50
  const isin = index.isinGenerator();
71
51
  const lotSize = lotsizes.lotsizes[dataUtils.random(0, lotsizes.lotsizes.length - 1)];
72
52
  const exchange = locations.locations[suffix][1];
73
- const price = randomPrice();
74
53
  const timestamp = clock.now;
75
54
  instrumentsData.push([
76
55
  bbg,
@@ -79,7 +58,6 @@ for (const char1 of chars1) {
79
58
  exchange,
80
59
  String(isin),
81
60
  lotSize,
82
- price,
83
61
  ric,
84
62
  timestamp,
85
63
  timestamp
@@ -1 +1 @@
1
- {"version":3,"file":"instruments.js","sources":["../../../../../packages/vuu-data-test/src/simul/reference-data/instruments.ts"],"sourcesContent":["import { isinGenerator } from \"./isin-generator\";\nimport tableContainer from \"../../core/table/TableContainer\";\nimport { currencies } from \"./currencies\";\nimport { locations, suffixes } from \"./locations\";\nimport { lotsizes } from \"./lotsizes\";\nimport { random } from \"../../data-utils\";\nimport { buildDataColumnMap } from \"../../Table\";\nimport { schemas } from \"../simul-schemas\";\nimport { Clock } from \"@vuu-ui/vuu-utils\";\n\nconst { createTable } = tableContainer;\n\nconst today = new Date();\nconst clock = new Clock({\n year: today.getFullYear(),\n month: today.getMonth() + 1,\n day: today.getDate(),\n hours: 7,\n minutes: 0,\n seconds: 0,\n milliseconds: 0,\n});\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 = string;\nexport type date = number;\n\nexport type InstrumentsDataRow = [\n bbg,\n currency,\n description,\n exchange,\n string,\n number,\n price,\n ric,\n date,\n date,\n];\n\nexport const InstrumentColumnMap = {\n bbg: 0,\n currency: 1,\n description: 2,\n exchange: 3,\n string: 4,\n number: 5,\n price: 6,\n ric: 7,\n vuuCreatedTimestamp: 8,\n vuuUpdatedTimestamp: 9,\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 scaledDecimals = (fraction: string, decimals: number) => {\n if (fraction.length > decimals) {\n return fraction.slice(0, decimals);\n } else if (fraction.length === decimals) {\n return fraction;\n } else {\n return fraction.padEnd(decimals, \"0\");\n }\n};\n\nconst ScaledDecimal = (value: number, decimals = 6) => {\n const stringValue = value.toString();\n const [integral, fraction = \"0\"] = stringValue.split(\".\");\n return `${integral}${scaledDecimals(fraction, decimals)}`;\n};\n\nconst randomPrice = () => {\n const price = random(0, 10000);\n const multiplier = random(1, 10);\n return ScaledDecimal(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 const timestamp = clock.now;\n\n instrumentsData.push([\n bbg,\n currency,\n description,\n exchange,\n String(isin),\n lotSize,\n price,\n ric,\n timestamp,\n timestamp,\n ]);\n count++;\n clock.advance(random(0, 10000));\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 = createTable(\n schemas.instruments,\n instrumentsData,\n buildDataColumnMap(schemas, \"instruments\"),\n);\n\nexport { instrumentsData };\n"],"names":["tableContainer","Clock","random","suffixes","currencies","isinGenerator","lotsizes","locations","schemas","buildDataColumnMap"],"mappings":"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"}
1
+ {"version":3,"file":"instruments.js","sources":["../../../../../packages/vuu-data-test/src/simul/reference-data/instruments.ts"],"sourcesContent":["import { isinGenerator } from \"./isin-generator\";\nimport tableContainer from \"../../core/table/TableContainer\";\nimport { currencies } from \"./currencies\";\nimport { locations, suffixes } from \"./locations\";\nimport { lotsizes } from \"./lotsizes\";\nimport { random } from \"../../data-utils\";\nimport { buildDataColumnMap } from \"../../Table\";\nimport { schemas } from \"../simul-schemas\";\nimport { Clock } from \"@vuu-ui/vuu-utils\";\n\nconst { createTable } = tableContainer;\n\nconst today = new Date();\nconst clock = new Clock({\n year: today.getFullYear(),\n month: today.getMonth() + 1,\n day: today.getDate(),\n hours: 7,\n minutes: 0,\n seconds: 0,\n milliseconds: 0,\n});\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 = string;\nexport type date = number;\n\nexport type InstrumentsDataRow = [\n bbg,\n currency,\n description,\n exchange,\n string,\n number,\n ric,\n date,\n date,\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 vuuCreatedTimestamp: 7,\n vuuUpdatedTimestamp: 8,\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\n// const scaledDecimals = (fraction: string, decimals: number) => {\n// if (fraction.length > decimals) {\n// return fraction.slice(0, decimals);\n// } else if (fraction.length === decimals) {\n// return fraction;\n// } else {\n// return fraction.padEnd(decimals, \"0\");\n// }\n// };\n\n// const ScaledDecimal = (value: number, decimals = 6) => {\n// const stringValue = value.toString();\n// const [integral, fraction = \"0\"] = stringValue.split(\".\");\n// return `${integral}${scaledDecimals(fraction, decimals)}`;\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\n const timestamp = clock.now;\n\n instrumentsData.push([\n bbg,\n currency,\n description,\n exchange,\n String(isin),\n lotSize,\n ric,\n timestamp,\n timestamp,\n ]);\n count++;\n clock.advance(random(0, 10000));\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 = createTable(\n schemas.instruments,\n instrumentsData,\n buildDataColumnMap(schemas, \"instruments\"),\n);\n\nexport { instrumentsData };\n"],"names":["tableContainer","Clock","suffixes","currencies","random","isinGenerator","lotsizes","locations","schemas","buildDataColumnMap"],"mappings":"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"}
@@ -18,13 +18,10 @@ const pricesUpdateGenerator = new UpdateGenerator.BaseUpdateGenerator({
18
18
  const now = Date.now();
19
19
  const lastUpdate = now;
20
20
  const created = now;
21
- const requiredInstrumentFields = ["ric", "price"];
22
21
  const pricesData = instruments.instrumentsData.map((instrument) => {
23
- const { ric, price: priceSeed } = requiredInstrumentFields.reduce(
24
- (obj, f) => ({ ...obj, [f]: instrument[instruments.InstrumentColumnMap[f]] }),
25
- {}
26
- );
27
22
  const spread = dataUtils.random(0, 10);
23
+ const ric = instrument[instruments.InstrumentColumnMap.ric];
24
+ const priceSeed = 100;
28
25
  const ask2 = priceSeed + spread / 2;
29
26
  const askSize2 = dataUtils.random(1e3, 3e3);
30
27
  const bid2 = priceSeed - spread / 2;
@@ -1 +1 @@
1
- {"version":3,"file":"prices.js","sources":["../../../../../packages/vuu-data-test/src/simul/reference-data/prices.ts"],"sourcesContent":["import { buildDataColumnMap } 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\";\nimport tableContainer from \"../../core/table/TableContainer\";\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 = tableContainer.createTable(\n schemas.prices,\n pricesData,\n buildDataColumnMap(schemas, \"prices\"),\n pricesUpdateGenerator,\n);\n\nexport { pricesData };\n"],"names":["buildDataColumnMap","schemas","BaseUpdateGenerator","instrumentsData","InstrumentColumnMap","random","ask","askSize","bid","bidSize","lastUpdate","created","basketConstituentData","tableContainer"],"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 } 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\";\nimport tableContainer from \"../../core/table/TableContainer\";\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 pricesData: Array<PricesDataRow> = instrumentsData.map((instrument) => {\n const spread = random(0, 10);\n const ric = instrument[InstrumentColumnMap.ric];\n const priceSeed = 100;\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 = tableContainer.createTable(\n schemas.prices,\n pricesData,\n buildDataColumnMap(schemas, \"prices\"),\n pricesUpdateGenerator,\n);\n\nexport { pricesData };\n"],"names":["buildDataColumnMap","schemas","BaseUpdateGenerator","instrumentsData","random","InstrumentColumnMap","ask","askSize","bid","bidSize","lastUpdate","created","basketConstituentData","tableContainer"],"mappings":"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"}
@@ -13,7 +13,6 @@ const schemas = {
13
13
  { name: "exchange", serverDataType: "string" },
14
14
  { name: "isin", serverDataType: "string" },
15
15
  { name: "lotSize", serverDataType: "int" },
16
- // { name: "price", serverDataType: "scaleddecimal6" },
17
16
  { name: "ric", serverDataType: "string" },
18
17
  ...VUU_TIMESTAMP_COLUMNS
19
18
  ],
@@ -1 +1 @@
1
- {"version":3,"file":"simul-schemas.js","sources":["../../../../packages/vuu-data-test/src/simul/simul-schemas.ts"],"sourcesContent":["import { SchemaColumn, TableSchema } from \"@vuu-ui/vuu-data-types\";\nimport { VuuTable } from \"@vuu-ui/vuu-protocol-types\";\n\nconst VUU_TIMESTAMP_COLUMNS: SchemaColumn[] = [\n { name: \"vuuCreatedTimestamp\", serverDataType: \"epochtimestamp\" },\n { name: \"vuuUpdatedTimestamp\", serverDataType: \"epochtimestamp\" },\n];\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: \"price\", serverDataType: \"scaleddecimal6\" },\n { name: \"ric\", serverDataType: \"string\" },\n ...VUU_TIMESTAMP_COLUMNS,\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 ...VUU_TIMESTAMP_COLUMNS,\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 ...VUU_TIMESTAMP_COLUMNS,\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: \"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 ...VUU_TIMESTAMP_COLUMNS,\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 ...VUU_TIMESTAMP_COLUMNS,\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 ...VUU_TIMESTAMP_COLUMNS,\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 ...VUU_TIMESTAMP_COLUMNS,\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
+ {"version":3,"file":"simul-schemas.js","sources":["../../../../packages/vuu-data-test/src/simul/simul-schemas.ts"],"sourcesContent":["import { SchemaColumn, TableSchema } from \"@vuu-ui/vuu-data-types\";\nimport { VuuTable } from \"@vuu-ui/vuu-protocol-types\";\n\nconst VUU_TIMESTAMP_COLUMNS: SchemaColumn[] = [\n { name: \"vuuCreatedTimestamp\", serverDataType: \"epochtimestamp\" },\n { name: \"vuuUpdatedTimestamp\", serverDataType: \"epochtimestamp\" },\n];\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 ...VUU_TIMESTAMP_COLUMNS,\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 ...VUU_TIMESTAMP_COLUMNS,\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 ...VUU_TIMESTAMP_COLUMNS,\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: \"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 ...VUU_TIMESTAMP_COLUMNS,\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 ...VUU_TIMESTAMP_COLUMNS,\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 ...VUU_TIMESTAMP_COLUMNS,\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 ...VUU_TIMESTAMP_COLUMNS,\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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"}
@@ -101,9 +101,10 @@ class TickingArrayDataSource extends ArrayDataSource {
101
101
  const {
102
102
  params: { column, starts }
103
103
  } = rpcRequest;
104
+ const data = await this.getTypeaheadSuggestions(column, starts);
104
105
  return {
105
106
  type: "SUCCESS_RESULT",
106
- data: this.getTypeaheadSuggestions(column, starts)
107
+ data
107
108
  };
108
109
  } else {
109
110
  const rpcService = __privateGet(this, _rpcServices)?.find(
@@ -1 +1 @@
1
- {"version":3,"file":"TickingArrayDataSource.js","sources":["../../../packages/vuu-data-test/src/TickingArrayDataSource.ts"],"sourcesContent":["import {\n ArrayDataSource,\n ArrayDataSourceConstructorProps,\n} from \"@vuu-ui/vuu-data-local\";\nimport type {\n DataSourceSubscribeCallback,\n DataSourceSubscribeProps,\n DataSourceVisualLinkCreatedMessage,\n} from \"@vuu-ui/vuu-data-types\";\nimport type {\n LinkDescriptorWithLabel,\n RpcResultError,\n RpcResultSuccess,\n VuuCreateVisualLink,\n VuuMenu,\n VuuRemoveVisualLink,\n VuuRowDataItemType,\n VuuRpcMenuRequest,\n VuuRpcMenuResponse,\n VuuRpcServiceRequest,\n} from \"@vuu-ui/vuu-protocol-types\";\nimport { isTypeaheadRequest, Range } from \"@vuu-ui/vuu-utils\";\nimport {\n RpcMenuService,\n RpcService,\n SessionTableMap,\n} from \"./core/module/VuuModule\";\nimport { makeSuggestions } from \"./makeSuggestions\";\nimport { Table } from \"./Table\";\n\nexport type VisualLinkHandler = (\n message: VuuCreateVisualLink | VuuRemoveVisualLink,\n) => Promise<DataSourceVisualLinkCreatedMessage | void>;\n\nexport interface TickingArrayDataSourceConstructorProps\n extends Omit<ArrayDataSourceConstructorProps, \"data\"> {\n data?: Array<VuuRowDataItemType[]>;\n getVisualLinks?: (tableName: string) => LinkDescriptorWithLabel[] | undefined;\n menu?: VuuMenu;\n rpcMenuServices?: RpcMenuService[];\n rpcServices?: RpcService[];\n sessionTables?: SessionTableMap;\n table?: Table;\n visualLinkService?: VisualLinkHandler;\n}\n\ntype LinkSubscription = {\n sourceColumnName?: string;\n columnName: string;\n linkType: \"subscribe-link-filter\" | \"subscribe-link-select\";\n};\n\nexport class TickingArrayDataSource extends ArrayDataSource {\n #menuRpcServices: RpcService[] | undefined;\n #pendingVisualLink?: LinkDescriptorWithLabel;\n #rpcMenuServices: RpcMenuService[] | undefined;\n #rpcServices: RpcService[] | undefined;\n // A reference to session tables hosted within client side module\n #sessionTables: SessionTableMap | undefined;\n #table?: Table;\n #selectionLinkSubscribers: Map<string, LinkSubscription> | undefined;\n #visualLinkService?: VisualLinkHandler;\n #getVisualLinks?: (\n tableName: string,\n ) => LinkDescriptorWithLabel[] | undefined;\n\n constructor({\n data,\n getVisualLinks,\n rpcServices,\n rpcMenuServices,\n sessionTables,\n table,\n menu,\n visualLink,\n visualLinkService,\n ...arrayDataSourceProps\n }: TickingArrayDataSourceConstructorProps) {\n if (data === undefined && table === undefined) {\n throw Error(\"TickingArrayDataSource must be constructed with data\");\n }\n super({\n ...arrayDataSourceProps,\n data: data ?? table?.data ?? [],\n dataMap: table?.map,\n });\n this._menu = menu;\n\n this.#rpcMenuServices = rpcMenuServices;\n this.#pendingVisualLink = visualLink;\n this.#rpcServices = rpcServices;\n this.#sessionTables = sessionTables;\n this.#table = table;\n this.#visualLinkService = visualLinkService;\n this.#getVisualLinks = getVisualLinks;\n\n if (table) {\n this.tableSchema = table.schema;\n table.on(\"insert\", this.insert);\n table.on(\"update\", this.updateRowWithSessionCheck);\n table.on(\"delete\", this.deleteRow);\n }\n }\n\n updateRowWithSessionCheck = (\n row: VuuRowDataItemType[],\n columnName?: string,\n sessionId?: string,\n ) => {\n if (sessionId && sessionId === this.viewport) {\n this.updateRow(row, columnName);\n } else if (sessionId) {\n // ignore, its not for me\n } else if (this.status === \"suspended\") {\n // queue updates for deferred application, issue warnings when edits in progress\n console.log(\"updates incoming from differenrt edit session\");\n } else {\n this.updateRow(row, columnName);\n }\n };\n\n async subscribe(\n subscribeProps: DataSourceSubscribeProps,\n callback: DataSourceSubscribeCallback,\n ) {\n const subscription = super.subscribe(subscribeProps, callback);\n // if (subscribeProps.range) {\n // this.#updateGenerator?.setRange(subscribeProps.range);\n // }\n if (this.#pendingVisualLink) {\n this.visualLink = this.#pendingVisualLink;\n this.#pendingVisualLink = undefined;\n }\n\n return subscription;\n }\n\n unsubscribe() {\n super.unsubscribe();\n this.#table = undefined;\n }\n\n set range(range: Range) {\n super.range = range;\n // this.#updateGenerator?.setRange(range);\n }\n get range() {\n return super.range;\n }\n\n set links(links: LinkDescriptorWithLabel[] | undefined) {\n super.links = links;\n }\n\n get links() {\n return this.#getVisualLinks?.(this.table.table);\n }\n\n getSelectedRowIds() {\n return Array.from(this.selectedRows);\n }\n\n async rpcRequest(\n rpcRequest: Omit<VuuRpcServiceRequest, \"context\">,\n ): Promise<RpcResultSuccess | RpcResultError> {\n if (isTypeaheadRequest(rpcRequest)) {\n const {\n params: { column, starts },\n } = rpcRequest;\n return {\n type: \"SUCCESS_RESULT\",\n data: this.getTypeaheadSuggestions(column, starts),\n } as RpcResultSuccess;\n } else {\n const rpcService = this.#rpcServices?.find(\n (service) => service.rpcName === rpcRequest.rpcName,\n );\n if (rpcService) {\n switch (rpcRequest.rpcName) {\n case \"VP_BULK_EDIT_COLUMN_CELLS_RPC\": {\n return rpcService.service({\n ...rpcRequest,\n context: {\n type: \"VIEWPORT_CONTEXT\",\n viewPortId: this.viewport,\n },\n });\n }\n }\n return rpcService.service({\n ...rpcRequest,\n context: {\n type: \"VIEWPORT_CONTEXT\",\n viewPortId: this.viewport,\n },\n });\n } else {\n throw Error(\n `[TickingArrayDataSource] no service to handle RPC request ${rpcRequest.rpcName}`,\n );\n }\n }\n }\n\n async menuRpcCall(\n rpcRequest: Omit<VuuRpcMenuRequest, \"vpId\">,\n ): Promise<VuuRpcMenuResponse> {\n const rpcService = this.#rpcMenuServices?.find(\n (service) => service.rpcName === rpcRequest.rpcName,\n );\n\n if (rpcService) {\n return rpcService.service({\n ...rpcRequest,\n vpId: this.viewport,\n localDataParameters: {\n selectedRowIds: this.getSelectedRowIds(),\n table: this.tableSchema.table,\n },\n } as VuuRpcMenuRequest);\n } else {\n throw Error(\n `[TickingArrayDataSource] menuRpcCall no service for ${rpcRequest.rpcName}`,\n );\n }\n }\n\n getTypeaheadSuggestions(column: string, pattern?: string): Promise<string[]> {\n if (this.#table) {\n const columnIndex = this.columnMap[column];\n if (columnIndex === undefined) {\n console.warn(\n `[TickingArrayDataSource] getTypeaheadSuggestions. No column ${column}`,\n );\n return Promise.resolve([]);\n } else {\n return makeSuggestions(this.currentData, columnIndex, pattern);\n }\n } else {\n throw Error(\n \"cannot call getTypeaheadSuggestions on TickingDataSource if table has not been provided\",\n );\n }\n }\n\n get visualLink() {\n return this._config.visualLink;\n }\n\n set visualLink(visualLink: LinkDescriptorWithLabel | undefined) {\n this._config = {\n ...this._config,\n visualLink,\n };\n\n if (visualLink) {\n const {\n parentClientVpId,\n link: { fromColumn, toColumn },\n } = visualLink;\n\n if (this.viewport) {\n this.#visualLinkService?.({\n childVpId: this.viewport,\n childColumnName: fromColumn,\n type: \"CREATE_VISUAL_LINK\",\n parentVpId: parentClientVpId,\n parentColumnName: toColumn,\n }).then((response) => {\n this.emit(\n \"visual-link-created\",\n response as DataSourceVisualLinkCreatedMessage,\n );\n });\n }\n } else {\n this.#visualLinkService?.({\n childVpId: this.viewport,\n type: \"REMOVE_VISUAL_LINK\",\n }).then((/* response */) => {\n this.emit(\"visual-link-removed\");\n });\n }\n }\n\n freeze() {\n super.freeze();\n }\n\n unfreeze() {\n super.unfreeze();\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TickingArrayDataSource.js","sources":["../../../packages/vuu-data-test/src/TickingArrayDataSource.ts"],"sourcesContent":["import {\n ArrayDataSource,\n ArrayDataSourceConstructorProps,\n} from \"@vuu-ui/vuu-data-local\";\nimport type {\n DataSourceSubscribeCallback,\n DataSourceSubscribeProps,\n DataSourceVisualLinkCreatedMessage,\n} from \"@vuu-ui/vuu-data-types\";\nimport type {\n LinkDescriptorWithLabel,\n RpcResultError,\n RpcResultSuccess,\n VuuCreateVisualLink,\n VuuMenu,\n VuuRemoveVisualLink,\n VuuRowDataItemType,\n VuuRpcMenuRequest,\n VuuRpcMenuResponse,\n VuuRpcServiceRequest,\n} from \"@vuu-ui/vuu-protocol-types\";\nimport { isTypeaheadRequest, Range } from \"@vuu-ui/vuu-utils\";\nimport {\n RpcMenuService,\n RpcService,\n SessionTableMap,\n} from \"./core/module/VuuModule\";\nimport { makeSuggestions } from \"./makeSuggestions\";\nimport { Table } from \"./Table\";\n\nexport type VisualLinkHandler = (\n message: VuuCreateVisualLink | VuuRemoveVisualLink,\n) => Promise<DataSourceVisualLinkCreatedMessage | void>;\n\nexport interface TickingArrayDataSourceConstructorProps\n extends Omit<ArrayDataSourceConstructorProps, \"data\"> {\n data?: Array<VuuRowDataItemType[]>;\n getVisualLinks?: (tableName: string) => LinkDescriptorWithLabel[] | undefined;\n menu?: VuuMenu;\n rpcMenuServices?: RpcMenuService[];\n rpcServices?: RpcService[];\n sessionTables?: SessionTableMap;\n table?: Table;\n visualLinkService?: VisualLinkHandler;\n}\n\ntype LinkSubscription = {\n sourceColumnName?: string;\n columnName: string;\n linkType: \"subscribe-link-filter\" | \"subscribe-link-select\";\n};\n\nexport class TickingArrayDataSource extends ArrayDataSource {\n #menuRpcServices: RpcService[] | undefined;\n #pendingVisualLink?: LinkDescriptorWithLabel;\n #rpcMenuServices: RpcMenuService[] | undefined;\n #rpcServices: RpcService[] | undefined;\n // A reference to session tables hosted within client side module\n #sessionTables: SessionTableMap | undefined;\n #table?: Table;\n #selectionLinkSubscribers: Map<string, LinkSubscription> | undefined;\n #visualLinkService?: VisualLinkHandler;\n #getVisualLinks?: (\n tableName: string,\n ) => LinkDescriptorWithLabel[] | undefined;\n\n constructor({\n data,\n getVisualLinks,\n rpcServices,\n rpcMenuServices,\n sessionTables,\n table,\n menu,\n visualLink,\n visualLinkService,\n ...arrayDataSourceProps\n }: TickingArrayDataSourceConstructorProps) {\n if (data === undefined && table === undefined) {\n throw Error(\"TickingArrayDataSource must be constructed with data\");\n }\n super({\n ...arrayDataSourceProps,\n data: data ?? table?.data ?? [],\n dataMap: table?.map,\n });\n this._menu = menu;\n\n this.#rpcMenuServices = rpcMenuServices;\n this.#pendingVisualLink = visualLink;\n this.#rpcServices = rpcServices;\n this.#sessionTables = sessionTables;\n this.#table = table;\n this.#visualLinkService = visualLinkService;\n this.#getVisualLinks = getVisualLinks;\n\n if (table) {\n this.tableSchema = table.schema;\n table.on(\"insert\", this.insert);\n table.on(\"update\", this.updateRowWithSessionCheck);\n table.on(\"delete\", this.deleteRow);\n }\n }\n\n updateRowWithSessionCheck = (\n row: VuuRowDataItemType[],\n columnName?: string,\n sessionId?: string,\n ) => {\n if (sessionId && sessionId === this.viewport) {\n this.updateRow(row, columnName);\n } else if (sessionId) {\n // ignore, its not for me\n } else if (this.status === \"suspended\") {\n // queue updates for deferred application, issue warnings when edits in progress\n console.log(\"updates incoming from differenrt edit session\");\n } else {\n this.updateRow(row, columnName);\n }\n };\n\n async subscribe(\n subscribeProps: DataSourceSubscribeProps,\n callback: DataSourceSubscribeCallback,\n ) {\n const subscription = super.subscribe(subscribeProps, callback);\n // if (subscribeProps.range) {\n // this.#updateGenerator?.setRange(subscribeProps.range);\n // }\n if (this.#pendingVisualLink) {\n this.visualLink = this.#pendingVisualLink;\n this.#pendingVisualLink = undefined;\n }\n\n return subscription;\n }\n\n unsubscribe() {\n super.unsubscribe();\n this.#table = undefined;\n }\n\n set range(range: Range) {\n super.range = range;\n // this.#updateGenerator?.setRange(range);\n }\n get range() {\n return super.range;\n }\n\n set links(links: LinkDescriptorWithLabel[] | undefined) {\n super.links = links;\n }\n\n get links() {\n return this.#getVisualLinks?.(this.table.table);\n }\n\n getSelectedRowIds() {\n return Array.from(this.selectedRows);\n }\n\n async rpcRequest(\n rpcRequest: Omit<VuuRpcServiceRequest, \"context\">,\n ): Promise<RpcResultSuccess | RpcResultError> {\n if (isTypeaheadRequest(rpcRequest)) {\n const {\n params: { column, starts },\n } = rpcRequest;\n const data = await this.getTypeaheadSuggestions(column, starts);\n return {\n type: \"SUCCESS_RESULT\",\n data,\n } as RpcResultSuccess;\n } else {\n const rpcService = this.#rpcServices?.find(\n (service) => service.rpcName === rpcRequest.rpcName,\n );\n if (rpcService) {\n switch (rpcRequest.rpcName) {\n case \"VP_BULK_EDIT_COLUMN_CELLS_RPC\": {\n return rpcService.service({\n ...rpcRequest,\n context: {\n type: \"VIEWPORT_CONTEXT\",\n viewPortId: this.viewport,\n },\n });\n }\n }\n return rpcService.service({\n ...rpcRequest,\n context: {\n type: \"VIEWPORT_CONTEXT\",\n viewPortId: this.viewport,\n },\n });\n } else {\n throw Error(\n `[TickingArrayDataSource] no service to handle RPC request ${rpcRequest.rpcName}`,\n );\n }\n }\n }\n\n async menuRpcCall(\n rpcRequest: Omit<VuuRpcMenuRequest, \"vpId\">,\n ): Promise<VuuRpcMenuResponse> {\n const rpcService = this.#rpcMenuServices?.find(\n (service) => service.rpcName === rpcRequest.rpcName,\n );\n\n if (rpcService) {\n return rpcService.service({\n ...rpcRequest,\n vpId: this.viewport,\n localDataParameters: {\n selectedRowIds: this.getSelectedRowIds(),\n table: this.tableSchema.table,\n },\n } as VuuRpcMenuRequest);\n } else {\n throw Error(\n `[TickingArrayDataSource] menuRpcCall no service for ${rpcRequest.rpcName}`,\n );\n }\n }\n\n getTypeaheadSuggestions(column: string, pattern?: string): Promise<string[]> {\n if (this.#table) {\n const columnIndex = this.columnMap[column];\n if (columnIndex === undefined) {\n console.warn(\n `[TickingArrayDataSource] getTypeaheadSuggestions. No column ${column}`,\n );\n return Promise.resolve([]);\n } else {\n return makeSuggestions(this.currentData, columnIndex, pattern);\n }\n } else {\n throw Error(\n \"cannot call getTypeaheadSuggestions on TickingDataSource if table has not been provided\",\n );\n }\n }\n\n get visualLink() {\n return this._config.visualLink;\n }\n\n set visualLink(visualLink: LinkDescriptorWithLabel | undefined) {\n this._config = {\n ...this._config,\n visualLink,\n };\n\n if (visualLink) {\n const {\n parentClientVpId,\n link: { fromColumn, toColumn },\n } = visualLink;\n\n if (this.viewport) {\n this.#visualLinkService?.({\n childVpId: this.viewport,\n childColumnName: fromColumn,\n type: \"CREATE_VISUAL_LINK\",\n parentVpId: parentClientVpId,\n parentColumnName: toColumn,\n }).then((response) => {\n this.emit(\n \"visual-link-created\",\n response as DataSourceVisualLinkCreatedMessage,\n );\n });\n }\n } else {\n this.#visualLinkService?.({\n childVpId: this.viewport,\n type: \"REMOVE_VISUAL_LINK\",\n }).then((/* response */) => {\n this.emit(\"visual-link-removed\");\n });\n }\n }\n\n freeze() {\n super.freeze();\n }\n\n unfreeze() {\n super.unfreeze();\n }\n}\n"],"names":[],"mappings":"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"}
@@ -26,35 +26,15 @@ const InstrumentColumnMap = {
26
26
  exchange: 3,
27
27
  string: 4,
28
28
  number: 5,
29
- price: 6,
30
- ric: 7,
31
- vuuCreatedTimestamp: 8,
32
- vuuUpdatedTimestamp: 9
29
+ ric: 6,
30
+ vuuCreatedTimestamp: 7,
31
+ vuuUpdatedTimestamp: 8
33
32
  };
34
33
  const instrumentsData = [];
35
34
  const chars1 = Array.from("ABCEFGHKMN");
36
35
  const chars2 = Array.from("ABCEFGHKMN");
37
36
  const chars3 = Array.from("OPQRTUVWYZ");
38
37
  const chars4 = Array.from("OPQRTUVWYZ");
39
- const scaledDecimals = (fraction, decimals) => {
40
- if (fraction.length > decimals) {
41
- return fraction.slice(0, decimals);
42
- } else if (fraction.length === decimals) {
43
- return fraction;
44
- } else {
45
- return fraction.padEnd(decimals, "0");
46
- }
47
- };
48
- const ScaledDecimal = (value, decimals = 6) => {
49
- const stringValue = value.toString();
50
- const [integral, fraction = "0"] = stringValue.split(".");
51
- return `${integral}${scaledDecimals(fraction, decimals)}`;
52
- };
53
- const randomPrice = () => {
54
- const price = random(0, 1e4);
55
- const multiplier = random(1, 10);
56
- return ScaledDecimal(price / multiplier);
57
- };
58
38
  let count = 0;
59
39
  for (const char1 of chars1) {
60
40
  for (const char2 of chars2) {
@@ -68,7 +48,6 @@ for (const char1 of chars1) {
68
48
  const isin = isinGenerator();
69
49
  const lotSize = lotsizes[random(0, lotsizes.length - 1)];
70
50
  const exchange = locations[suffix][1];
71
- const price = randomPrice();
72
51
  const timestamp = clock.now;
73
52
  instrumentsData.push([
74
53
  bbg,
@@ -77,7 +56,6 @@ for (const char1 of chars1) {
77
56
  exchange,
78
57
  String(isin),
79
58
  lotSize,
80
- price,
81
59
  ric,
82
60
  timestamp,
83
61
  timestamp
@@ -1 +1 @@
1
- {"version":3,"file":"instruments.js","sources":["../../../../../packages/vuu-data-test/src/simul/reference-data/instruments.ts"],"sourcesContent":["import { isinGenerator } from \"./isin-generator\";\nimport tableContainer from \"../../core/table/TableContainer\";\nimport { currencies } from \"./currencies\";\nimport { locations, suffixes } from \"./locations\";\nimport { lotsizes } from \"./lotsizes\";\nimport { random } from \"../../data-utils\";\nimport { buildDataColumnMap } from \"../../Table\";\nimport { schemas } from \"../simul-schemas\";\nimport { Clock } from \"@vuu-ui/vuu-utils\";\n\nconst { createTable } = tableContainer;\n\nconst today = new Date();\nconst clock = new Clock({\n year: today.getFullYear(),\n month: today.getMonth() + 1,\n day: today.getDate(),\n hours: 7,\n minutes: 0,\n seconds: 0,\n milliseconds: 0,\n});\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 = string;\nexport type date = number;\n\nexport type InstrumentsDataRow = [\n bbg,\n currency,\n description,\n exchange,\n string,\n number,\n price,\n ric,\n date,\n date,\n];\n\nexport const InstrumentColumnMap = {\n bbg: 0,\n currency: 1,\n description: 2,\n exchange: 3,\n string: 4,\n number: 5,\n price: 6,\n ric: 7,\n vuuCreatedTimestamp: 8,\n vuuUpdatedTimestamp: 9,\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 scaledDecimals = (fraction: string, decimals: number) => {\n if (fraction.length > decimals) {\n return fraction.slice(0, decimals);\n } else if (fraction.length === decimals) {\n return fraction;\n } else {\n return fraction.padEnd(decimals, \"0\");\n }\n};\n\nconst ScaledDecimal = (value: number, decimals = 6) => {\n const stringValue = value.toString();\n const [integral, fraction = \"0\"] = stringValue.split(\".\");\n return `${integral}${scaledDecimals(fraction, decimals)}`;\n};\n\nconst randomPrice = () => {\n const price = random(0, 10000);\n const multiplier = random(1, 10);\n return ScaledDecimal(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 const timestamp = clock.now;\n\n instrumentsData.push([\n bbg,\n currency,\n description,\n exchange,\n String(isin),\n lotSize,\n price,\n ric,\n timestamp,\n timestamp,\n ]);\n count++;\n clock.advance(random(0, 10000));\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 = createTable(\n schemas.instruments,\n instrumentsData,\n buildDataColumnMap(schemas, \"instruments\"),\n);\n\nexport { instrumentsData };\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"instruments.js","sources":["../../../../../packages/vuu-data-test/src/simul/reference-data/instruments.ts"],"sourcesContent":["import { isinGenerator } from \"./isin-generator\";\nimport tableContainer from \"../../core/table/TableContainer\";\nimport { currencies } from \"./currencies\";\nimport { locations, suffixes } from \"./locations\";\nimport { lotsizes } from \"./lotsizes\";\nimport { random } from \"../../data-utils\";\nimport { buildDataColumnMap } from \"../../Table\";\nimport { schemas } from \"../simul-schemas\";\nimport { Clock } from \"@vuu-ui/vuu-utils\";\n\nconst { createTable } = tableContainer;\n\nconst today = new Date();\nconst clock = new Clock({\n year: today.getFullYear(),\n month: today.getMonth() + 1,\n day: today.getDate(),\n hours: 7,\n minutes: 0,\n seconds: 0,\n milliseconds: 0,\n});\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 = string;\nexport type date = number;\n\nexport type InstrumentsDataRow = [\n bbg,\n currency,\n description,\n exchange,\n string,\n number,\n ric,\n date,\n date,\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 vuuCreatedTimestamp: 7,\n vuuUpdatedTimestamp: 8,\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\n// const scaledDecimals = (fraction: string, decimals: number) => {\n// if (fraction.length > decimals) {\n// return fraction.slice(0, decimals);\n// } else if (fraction.length === decimals) {\n// return fraction;\n// } else {\n// return fraction.padEnd(decimals, \"0\");\n// }\n// };\n\n// const ScaledDecimal = (value: number, decimals = 6) => {\n// const stringValue = value.toString();\n// const [integral, fraction = \"0\"] = stringValue.split(\".\");\n// return `${integral}${scaledDecimals(fraction, decimals)}`;\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\n const timestamp = clock.now;\n\n instrumentsData.push([\n bbg,\n currency,\n description,\n exchange,\n String(isin),\n lotSize,\n ric,\n timestamp,\n timestamp,\n ]);\n count++;\n clock.advance(random(0, 10000));\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 = createTable(\n schemas.instruments,\n instrumentsData,\n buildDataColumnMap(schemas, \"instruments\"),\n);\n\nexport { instrumentsData };\n"],"names":[],"mappings":"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"}
@@ -16,13 +16,10 @@ const pricesUpdateGenerator = new BaseUpdateGenerator({
16
16
  const now = Date.now();
17
17
  const lastUpdate = now;
18
18
  const created = now;
19
- const requiredInstrumentFields = ["ric", "price"];
20
19
  const pricesData = instrumentsData.map((instrument) => {
21
- const { ric, price: priceSeed } = requiredInstrumentFields.reduce(
22
- (obj, f) => ({ ...obj, [f]: instrument[InstrumentColumnMap[f]] }),
23
- {}
24
- );
25
20
  const spread = random(0, 10);
21
+ const ric = instrument[InstrumentColumnMap.ric];
22
+ const priceSeed = 100;
26
23
  const ask2 = priceSeed + spread / 2;
27
24
  const askSize2 = random(1e3, 3e3);
28
25
  const bid2 = priceSeed - spread / 2;
@@ -1 +1 @@
1
- {"version":3,"file":"prices.js","sources":["../../../../../packages/vuu-data-test/src/simul/reference-data/prices.ts"],"sourcesContent":["import { buildDataColumnMap } 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\";\nimport tableContainer from \"../../core/table/TableContainer\";\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 = tableContainer.createTable(\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 } 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\";\nimport tableContainer from \"../../core/table/TableContainer\";\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 pricesData: Array<PricesDataRow> = instrumentsData.map((instrument) => {\n const spread = random(0, 10);\n const ric = instrument[InstrumentColumnMap.ric];\n const priceSeed = 100;\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 = tableContainer.createTable(\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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"}
@@ -11,7 +11,6 @@ const schemas = {
11
11
  { name: "exchange", serverDataType: "string" },
12
12
  { name: "isin", serverDataType: "string" },
13
13
  { name: "lotSize", serverDataType: "int" },
14
- // { name: "price", serverDataType: "scaleddecimal6" },
15
14
  { name: "ric", serverDataType: "string" },
16
15
  ...VUU_TIMESTAMP_COLUMNS
17
16
  ],
@@ -1 +1 @@
1
- {"version":3,"file":"simul-schemas.js","sources":["../../../../packages/vuu-data-test/src/simul/simul-schemas.ts"],"sourcesContent":["import { SchemaColumn, TableSchema } from \"@vuu-ui/vuu-data-types\";\nimport { VuuTable } from \"@vuu-ui/vuu-protocol-types\";\n\nconst VUU_TIMESTAMP_COLUMNS: SchemaColumn[] = [\n { name: \"vuuCreatedTimestamp\", serverDataType: \"epochtimestamp\" },\n { name: \"vuuUpdatedTimestamp\", serverDataType: \"epochtimestamp\" },\n];\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: \"price\", serverDataType: \"scaleddecimal6\" },\n { name: \"ric\", serverDataType: \"string\" },\n ...VUU_TIMESTAMP_COLUMNS,\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 ...VUU_TIMESTAMP_COLUMNS,\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 ...VUU_TIMESTAMP_COLUMNS,\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: \"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 ...VUU_TIMESTAMP_COLUMNS,\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 ...VUU_TIMESTAMP_COLUMNS,\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 ...VUU_TIMESTAMP_COLUMNS,\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 ...VUU_TIMESTAMP_COLUMNS,\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
+ {"version":3,"file":"simul-schemas.js","sources":["../../../../packages/vuu-data-test/src/simul/simul-schemas.ts"],"sourcesContent":["import { SchemaColumn, TableSchema } from \"@vuu-ui/vuu-data-types\";\nimport { VuuTable } from \"@vuu-ui/vuu-protocol-types\";\n\nconst VUU_TIMESTAMP_COLUMNS: SchemaColumn[] = [\n { name: \"vuuCreatedTimestamp\", serverDataType: \"epochtimestamp\" },\n { name: \"vuuUpdatedTimestamp\", serverDataType: \"epochtimestamp\" },\n];\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 ...VUU_TIMESTAMP_COLUMNS,\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 ...VUU_TIMESTAMP_COLUMNS,\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 ...VUU_TIMESTAMP_COLUMNS,\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: \"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 ...VUU_TIMESTAMP_COLUMNS,\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 ...VUU_TIMESTAMP_COLUMNS,\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 ...VUU_TIMESTAMP_COLUMNS,\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 ...VUU_TIMESTAMP_COLUMNS,\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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"}
package/package.json CHANGED
@@ -1,15 +1,15 @@
1
1
  {
2
- "version": "2.1.0",
2
+ "version": "2.1.1",
3
3
  "author": "heswell",
4
4
  "license": "Apache-2.0",
5
5
  "dependencies": {
6
- "@vuu-ui/vuu-data-local": "2.1.0",
7
- "@vuu-ui/vuu-utils": "2.1.0"
6
+ "@vuu-ui/vuu-data-local": "2.1.1",
7
+ "@vuu-ui/vuu-utils": "2.1.1"
8
8
  },
9
9
  "devDependencies": {
10
- "@vuu-ui/vuu-protocol-types": "2.1.0",
11
- "@vuu-ui/vuu-data-types": "2.1.0",
12
- "@vuu-ui/vuu-table-types": "2.1.0"
10
+ "@vuu-ui/vuu-protocol-types": "2.1.1",
11
+ "@vuu-ui/vuu-data-types": "2.1.1",
12
+ "@vuu-ui/vuu-table-types": "2.1.1"
13
13
  },
14
14
  "sideEffects": false,
15
15
  "files": [
@@ -12,7 +12,6 @@ export type InstrumentsDataRow = [
12
12
  exchange,
13
13
  string,
14
14
  number,
15
- price,
16
15
  ric,
17
16
  date,
18
17
  date
@@ -24,10 +23,9 @@ export declare const InstrumentColumnMap: {
24
23
  readonly exchange: 3;
25
24
  readonly string: 4;
26
25
  readonly number: 5;
27
- readonly price: 6;
28
- readonly ric: 7;
29
- readonly vuuCreatedTimestamp: 8;
30
- readonly vuuUpdatedTimestamp: 9;
26
+ readonly ric: 6;
27
+ readonly vuuCreatedTimestamp: 7;
28
+ readonly vuuUpdatedTimestamp: 8;
31
29
  };
32
30
  declare const instrumentsData: InstrumentsDataRow[];
33
31
  export declare const getRic: (defaultRic: string) => string;