@vuu-ui/vuu-data-test 0.9.3 → 0.10.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (78) hide show
  1. package/cjs/TickingArrayDataSource.js +1 -3
  2. package/cjs/TickingArrayDataSource.js.map +1 -1
  3. package/cjs/simul/reference-data/instruments.js +2 -2
  4. package/cjs/simul/reference-data/instruments.js.map +1 -1
  5. package/cjs/simul/reference-data/isin-generator/convert-string-to-base-ten-number.js +6 -0
  6. package/cjs/simul/reference-data/isin-generator/convert-string-to-base-ten-number.js.map +1 -0
  7. package/cjs/simul/reference-data/isin-generator/fixtures/alphabet.js +31 -0
  8. package/cjs/simul/reference-data/isin-generator/fixtures/alphabet.js.map +1 -0
  9. package/cjs/simul/reference-data/isin-generator/fixtures/alphanumeric-values.js +9 -0
  10. package/cjs/simul/reference-data/isin-generator/fixtures/alphanumeric-values.js.map +1 -0
  11. package/cjs/simul/reference-data/isin-generator/fixtures/base-ten-numbers.js +17 -0
  12. package/cjs/simul/reference-data/isin-generator/fixtures/base-ten-numbers.js.map +1 -0
  13. package/cjs/simul/reference-data/isin-generator/generate-cusip-check-code.js +24 -0
  14. package/cjs/simul/reference-data/isin-generator/generate-cusip-check-code.js.map +1 -0
  15. package/cjs/simul/reference-data/isin-generator/generate-cusip-without-check-code.js +13 -0
  16. package/cjs/simul/reference-data/isin-generator/generate-cusip-without-check-code.js.map +1 -0
  17. package/cjs/simul/reference-data/isin-generator/generate-cusip.js +13 -0
  18. package/cjs/simul/reference-data/isin-generator/generate-cusip.js.map +1 -0
  19. package/cjs/simul/reference-data/isin-generator/generate-random-alphanumeric.js +8 -0
  20. package/cjs/simul/reference-data/isin-generator/generate-random-alphanumeric.js.map +1 -0
  21. package/cjs/simul/reference-data/isin-generator/generate-random-base-ten-number.js +6 -0
  22. package/cjs/simul/reference-data/isin-generator/generate-random-base-ten-number.js.map +1 -0
  23. package/cjs/simul/reference-data/isin-generator/generate-random-string-of-alphanumeric-chars.js +14 -0
  24. package/cjs/simul/reference-data/isin-generator/generate-random-string-of-alphanumeric-chars.js.map +1 -0
  25. package/cjs/simul/reference-data/isin-generator/generate-random-string-of-base-ten-chars.js +14 -0
  26. package/cjs/simul/reference-data/isin-generator/generate-random-string-of-base-ten-chars.js.map +1 -0
  27. package/cjs/simul/reference-data/isin-generator/index.js +295 -0
  28. package/cjs/simul/reference-data/isin-generator/index.js.map +1 -0
  29. package/cjs/simul/reference-data/isin-generator/is-odd.js +6 -0
  30. package/cjs/simul/reference-data/isin-generator/is-odd.js.map +1 -0
  31. package/cjs/simul/reference-data/parent-child-orders.js +2 -2
  32. package/cjs/simul/reference-data/parent-child-orders.js.map +1 -1
  33. package/esm/TickingArrayDataSource.js +1 -3
  34. package/esm/TickingArrayDataSource.js.map +1 -1
  35. package/esm/simul/reference-data/instruments.js +1 -1
  36. package/esm/simul/reference-data/instruments.js.map +1 -1
  37. package/esm/simul/reference-data/isin-generator/convert-string-to-base-ten-number.js +4 -0
  38. package/esm/simul/reference-data/isin-generator/convert-string-to-base-ten-number.js.map +1 -0
  39. package/esm/simul/reference-data/isin-generator/fixtures/alphabet.js +29 -0
  40. package/esm/simul/reference-data/isin-generator/fixtures/alphabet.js.map +1 -0
  41. package/esm/simul/reference-data/isin-generator/fixtures/alphanumeric-values.js +7 -0
  42. package/esm/simul/reference-data/isin-generator/fixtures/alphanumeric-values.js.map +1 -0
  43. package/esm/simul/reference-data/isin-generator/fixtures/base-ten-numbers.js +15 -0
  44. package/esm/simul/reference-data/isin-generator/fixtures/base-ten-numbers.js.map +1 -0
  45. package/esm/simul/reference-data/isin-generator/generate-cusip-check-code.js +22 -0
  46. package/esm/simul/reference-data/isin-generator/generate-cusip-check-code.js.map +1 -0
  47. package/esm/simul/reference-data/isin-generator/generate-cusip-without-check-code.js +11 -0
  48. package/esm/simul/reference-data/isin-generator/generate-cusip-without-check-code.js.map +1 -0
  49. package/esm/simul/reference-data/isin-generator/generate-cusip.js +11 -0
  50. package/esm/simul/reference-data/isin-generator/generate-cusip.js.map +1 -0
  51. package/esm/simul/reference-data/isin-generator/generate-random-alphanumeric.js +6 -0
  52. package/esm/simul/reference-data/isin-generator/generate-random-alphanumeric.js.map +1 -0
  53. package/esm/simul/reference-data/isin-generator/generate-random-base-ten-number.js +4 -0
  54. package/esm/simul/reference-data/isin-generator/generate-random-base-ten-number.js.map +1 -0
  55. package/esm/simul/reference-data/isin-generator/generate-random-string-of-alphanumeric-chars.js +12 -0
  56. package/esm/simul/reference-data/isin-generator/generate-random-string-of-alphanumeric-chars.js.map +1 -0
  57. package/esm/simul/reference-data/isin-generator/generate-random-string-of-base-ten-chars.js +12 -0
  58. package/esm/simul/reference-data/isin-generator/generate-random-string-of-base-ten-chars.js.map +1 -0
  59. package/esm/simul/reference-data/isin-generator/index.js +293 -0
  60. package/esm/simul/reference-data/isin-generator/index.js.map +1 -0
  61. package/esm/simul/reference-data/isin-generator/is-odd.js +4 -0
  62. package/esm/simul/reference-data/isin-generator/is-odd.js.map +1 -0
  63. package/esm/simul/reference-data/parent-child-orders.js +2 -2
  64. package/esm/simul/reference-data/parent-child-orders.js.map +1 -1
  65. package/package.json +6 -7
  66. package/types/simul/reference-data/isin-generator/convert-string-to-base-ten-number.d.ts +1 -0
  67. package/types/simul/reference-data/isin-generator/fixtures/alphabet.d.ts +1 -0
  68. package/types/simul/reference-data/isin-generator/fixtures/alphanumeric-values.d.ts +1 -0
  69. package/types/simul/reference-data/isin-generator/fixtures/base-ten-numbers.d.ts +1 -0
  70. package/types/simul/reference-data/isin-generator/generate-cusip-check-code.d.ts +1 -0
  71. package/types/simul/reference-data/isin-generator/generate-cusip-without-check-code.d.ts +1 -0
  72. package/types/simul/reference-data/isin-generator/generate-cusip.d.ts +1 -0
  73. package/types/simul/reference-data/isin-generator/generate-random-alphanumeric.d.ts +1 -0
  74. package/types/simul/reference-data/isin-generator/generate-random-base-ten-number.d.ts +1 -0
  75. package/types/simul/reference-data/isin-generator/generate-random-string-of-alphanumeric-chars.d.ts +1 -0
  76. package/types/simul/reference-data/isin-generator/generate-random-string-of-base-ten-chars.d.ts +1 -0
  77. package/types/simul/reference-data/isin-generator/index.d.ts +1 -0
  78. package/types/simul/reference-data/isin-generator/is-odd.d.ts +1 -0
@@ -179,7 +179,6 @@ class TickingArrayDataSource extends vuuDataLocal.ArrayDataSource {
179
179
  parentVpId: parentClientVpId,
180
180
  parentColumnName: toColumn
181
181
  }).then((response) => {
182
- console.log({ response });
183
182
  this.emit(
184
183
  "visual-link-created",
185
184
  response
@@ -190,8 +189,7 @@ class TickingArrayDataSource extends vuuDataLocal.ArrayDataSource {
190
189
  (_b = __privateGet(this, _visualLinkService)) == null ? void 0 : _b.call(this, {
191
190
  childVpId: this.viewport,
192
191
  type: "REMOVE_VISUAL_LINK"
193
- }).then((response) => {
194
- console.log({ response });
192
+ }).then(() => {
195
193
  this.emit("visual-link-removed");
196
194
  });
197
195
  }
@@ -1 +1 @@
1
- {"version":3,"file":"TickingArrayDataSource.js","sources":["../src/TickingArrayDataSource.ts"],"sourcesContent":["import {\n ArrayDataSource,\n ArrayDataSourceConstructorProps,\n} from \"@vuu-ui/vuu-data-local\";\nimport type {\n DataSourceVisualLinkCreatedMessage,\n SelectionItem,\n SubscribeCallback,\n SubscribeProps,\n} from \"@vuu-ui/vuu-data-types\";\nimport type {\n VuuRpcMenuRequest,\n LinkDescriptorWithLabel,\n RpcNamedParams,\n VuuMenu,\n VuuRange,\n VuuRowDataItemType,\n VuuRpcResponse,\n VuuRpcMenuResponse,\n VuuRpcRequest,\n VuuCreateVisualLink,\n VuuRemoveVisualLink,\n} from \"@vuu-ui/vuu-protocol-types\";\nimport {\n isViewportRpcRequest,\n isVuuMenuRpcRequest,\n metadataKeys,\n} from \"@vuu-ui/vuu-utils\";\nimport { makeSuggestions } from \"./makeSuggestions\";\nimport { Table } from \"./Table\";\nimport { RpcService, SessionTableMap } from \"./VuuModule\";\n\nconst { KEY } = metadataKeys;\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 menuRpcServices?: RpcService[];\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 #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 menuRpcServices,\n rpcServices,\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 });\n this._menu = menu;\n\n this.#menuRpcServices = menuRpcServices;\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.updateRow);\n }\n }\n\n async subscribe(subscribeProps: SubscribeProps, callback: SubscribeCallback) {\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: VuuRange) {\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 private getSelectedRowIds() {\n return this.selectedRows.reduce<string[]>(\n (rowIds: string[], selection: SelectionItem) => {\n if (Array.isArray(selection)) {\n for (let i = selection[0]; i <= selection[1]; i++) {\n const row = this.data[i];\n if (row) {\n rowIds.push(row[KEY]);\n }\n }\n } else {\n const row = this.data[selection];\n if (row) {\n rowIds.push(row[KEY]);\n }\n }\n return rowIds;\n },\n [],\n );\n }\n\n applyEdit(\n rowKey: string,\n columnName: string,\n value: VuuRowDataItemType,\n ): Promise<true> {\n this.#table?.update(rowKey, columnName, value);\n return Promise.resolve(true);\n }\n\n async rpcCall<T extends VuuRpcResponse = VuuRpcResponse>(\n rpcRequest: Omit<VuuRpcRequest, \"vpId\">,\n ): Promise<T> {\n if (isViewportRpcRequest(rpcRequest)) {\n const rpcService = this.#rpcServices?.find(\n (service) => service.rpcName === rpcRequest.rpcName,\n );\n if (rpcService && isViewportRpcRequest(rpcRequest)) {\n switch (rpcRequest.rpcName) {\n case \"VP_BULK_EDIT_COLUMN_CELLS_RPC\": {\n return rpcService.service({\n ...rpcRequest,\n vpId: this.viewport,\n }) as Promise<T>;\n }\n }\n return rpcService.service({\n ...rpcRequest,\n namedParams: {\n selectedRowIds: this.getSelectedRowIds(),\n table: this.tableSchema.table,\n },\n vpId: this.viewport,\n }) as Promise<T>;\n }\n }\n throw Error(`no implementation for PRC service ${rpcRequest.type}`);\n }\n\n async menuRpcCall(\n rpcRequest: Omit<VuuRpcRequest, \"vpId\"> & {\n namedParams?: RpcNamedParams;\n },\n ): Promise<VuuRpcResponse> {\n const rpcService = this.#rpcServices?.find(\n (service) =>\n service.rpcName === (rpcRequest as VuuRpcMenuRequest).rpcName,\n );\n\n if (isVuuMenuRpcRequest(rpcRequest)) {\n return rpcService?.service({\n ...rpcRequest,\n namedParams: {\n selectedRowIds: this.getSelectedRowIds(),\n table: this.tableSchema.table,\n },\n vpId: this.viewport,\n }) as Promise<VuuRpcMenuResponse>;\n }\n\n return super.menuRpcCall(rpcRequest);\n }\n\n getTypeaheadSuggestions(column: string, pattern?: string): Promise<string[]> {\n if (this.#table) {\n return makeSuggestions(this.#table, column, pattern);\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 console.log({ 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 console.log({ response });\n this.emit(\"visual-link-removed\");\n });\n }\n }\n}\n"],"names":["metadataKeys","ArrayDataSource","isViewportRpcRequest","isVuuMenuRpcRequest","makeSuggestions"],"mappings":"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"}
1
+ {"version":3,"file":"TickingArrayDataSource.js","sources":["../src/TickingArrayDataSource.ts"],"sourcesContent":["import {\n ArrayDataSource,\n ArrayDataSourceConstructorProps,\n} from \"@vuu-ui/vuu-data-local\";\nimport type {\n DataSourceVisualLinkCreatedMessage,\n SelectionItem,\n SubscribeCallback,\n SubscribeProps,\n} from \"@vuu-ui/vuu-data-types\";\nimport type {\n VuuRpcMenuRequest,\n LinkDescriptorWithLabel,\n RpcNamedParams,\n VuuMenu,\n VuuRange,\n VuuRowDataItemType,\n VuuRpcResponse,\n VuuRpcMenuResponse,\n VuuRpcRequest,\n VuuCreateVisualLink,\n VuuRemoveVisualLink,\n} from \"@vuu-ui/vuu-protocol-types\";\nimport {\n isViewportRpcRequest,\n isVuuMenuRpcRequest,\n metadataKeys,\n} from \"@vuu-ui/vuu-utils\";\nimport { makeSuggestions } from \"./makeSuggestions\";\nimport { Table } from \"./Table\";\nimport { RpcService, SessionTableMap } from \"./VuuModule\";\n\nconst { KEY } = metadataKeys;\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 menuRpcServices?: RpcService[];\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 #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 menuRpcServices,\n rpcServices,\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 });\n this._menu = menu;\n\n this.#menuRpcServices = menuRpcServices;\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.updateRow);\n }\n }\n\n async subscribe(subscribeProps: SubscribeProps, callback: SubscribeCallback) {\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: VuuRange) {\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 private getSelectedRowIds() {\n return this.selectedRows.reduce<string[]>(\n (rowIds: string[], selection: SelectionItem) => {\n if (Array.isArray(selection)) {\n for (let i = selection[0]; i <= selection[1]; i++) {\n const row = this.data[i];\n if (row) {\n rowIds.push(row[KEY]);\n }\n }\n } else {\n const row = this.data[selection];\n if (row) {\n rowIds.push(row[KEY]);\n }\n }\n return rowIds;\n },\n [],\n );\n }\n\n applyEdit(\n rowKey: string,\n columnName: string,\n value: VuuRowDataItemType,\n ): Promise<true> {\n this.#table?.update(rowKey, columnName, value);\n return Promise.resolve(true);\n }\n\n async rpcCall<T extends VuuRpcResponse = VuuRpcResponse>(\n rpcRequest: Omit<VuuRpcRequest, \"vpId\">,\n ): Promise<T> {\n if (isViewportRpcRequest(rpcRequest)) {\n const rpcService = this.#rpcServices?.find(\n (service) => service.rpcName === rpcRequest.rpcName,\n );\n if (rpcService && isViewportRpcRequest(rpcRequest)) {\n switch (rpcRequest.rpcName) {\n case \"VP_BULK_EDIT_COLUMN_CELLS_RPC\": {\n return rpcService.service({\n ...rpcRequest,\n vpId: this.viewport,\n }) as Promise<T>;\n }\n }\n return rpcService.service({\n ...rpcRequest,\n namedParams: {\n selectedRowIds: this.getSelectedRowIds(),\n table: this.tableSchema.table,\n },\n vpId: this.viewport,\n }) as Promise<T>;\n }\n }\n throw Error(`no implementation for PRC service ${rpcRequest.type}`);\n }\n\n async menuRpcCall(\n rpcRequest: Omit<VuuRpcRequest, \"vpId\"> & {\n namedParams?: RpcNamedParams;\n },\n ): Promise<VuuRpcResponse> {\n const rpcService = this.#rpcServices?.find(\n (service) =>\n service.rpcName === (rpcRequest as VuuRpcMenuRequest).rpcName,\n );\n\n if (isVuuMenuRpcRequest(rpcRequest)) {\n return rpcService?.service({\n ...rpcRequest,\n namedParams: {\n selectedRowIds: this.getSelectedRowIds(),\n table: this.tableSchema.table,\n },\n vpId: this.viewport,\n }) as Promise<VuuRpcMenuResponse>;\n }\n\n return super.menuRpcCall(rpcRequest);\n }\n\n getTypeaheadSuggestions(column: string, pattern?: string): Promise<string[]> {\n if (this.#table) {\n return makeSuggestions(this.#table, column, pattern);\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"],"names":["metadataKeys","ArrayDataSource","isViewportRpcRequest","isVuuMenuRpcRequest","makeSuggestions"],"mappings":";;;;;;;;;;;;;AAAA,IAAA,gBAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,MAAA,EAAA,yBAAA,EAAA,kBAAA,EAAA,eAAA;AAgCA,MAAM,EAAE,KAAQ,GAAAA,qBAAA;AAwBT,MAAM,+BAA+BC,4BAAgB,CAAA;AAAA,EAa1D,WAAY,CAAA;AAAA,IACV,IAAA;AAAA,IACA,cAAA;AAAA,IACA,eAAA;AAAA,IACA,WAAA;AAAA,IACA,aAAA;AAAA,IACA,KAAA;AAAA,IACA,IAAA;AAAA,IACA,UAAA;AAAA,IACA,iBAAA;AAAA,IACA,GAAG;AAAA,GACsC,EAAA;AACzC,IAAI,IAAA,IAAA,KAAS,KAAa,CAAA,IAAA,KAAA,KAAU,KAAW,CAAA,EAAA;AAC7C,MAAA,MAAM,MAAM,sDAAsD,CAAA;AAAA;AAEpE,IAAM,KAAA,CAAA;AAAA,MACJ,GAAG,oBAAA;AAAA,MACH,IAAM,EAAA,IAAA,IAAQ,KAAO,EAAA,IAAA,IAAQ;AAAC,KAC/B,CAAA;AA9BH,IAAA,YAAA,CAAA,IAAA,EAAA,gBAAA,CAAA;AACA,IAAA,YAAA,CAAA,IAAA,EAAA,kBAAA,CAAA;AACA,IAAA,YAAA,CAAA,IAAA,EAAA,YAAA,CAAA;AAEA;AAAA,IAAA,YAAA,CAAA,IAAA,EAAA,cAAA,CAAA;AACA,IAAA,YAAA,CAAA,IAAA,EAAA,MAAA,CAAA;AACA,IAAA,YAAA,CAAA,IAAA,EAAA,yBAAA,CAAA;AACA,IAAA,YAAA,CAAA,IAAA,EAAA,kBAAA,CAAA;AACA,IAAA,YAAA,CAAA,IAAA,EAAA,eAAA,CAAA;AAuBE,IAAA,IAAA,CAAK,KAAQ,GAAA,IAAA;AAEb,IAAA,YAAA,CAAA,IAAA,EAAK,gBAAmB,EAAA,eAAA,CAAA;AACxB,IAAA,YAAA,CAAA,IAAA,EAAK,kBAAqB,EAAA,UAAA,CAAA;AAC1B,IAAA,YAAA,CAAA,IAAA,EAAK,YAAe,EAAA,WAAA,CAAA;AACpB,IAAA,YAAA,CAAA,IAAA,EAAK,cAAiB,EAAA,aAAA,CAAA;AACtB,IAAA,YAAA,CAAA,IAAA,EAAK,MAAS,EAAA,KAAA,CAAA;AACd,IAAA,YAAA,CAAA,IAAA,EAAK,kBAAqB,EAAA,iBAAA,CAAA;AAC1B,IAAA,YAAA,CAAA,IAAA,EAAK,eAAkB,EAAA,cAAA,CAAA;AAEvB,IAAA,IAAI,KAAO,EAAA;AACT,MAAA,IAAA,CAAK,cAAc,KAAM,CAAA,MAAA;AACzB,MAAM,KAAA,CAAA,EAAA,CAAG,QAAU,EAAA,IAAA,CAAK,MAAM,CAAA;AAC9B,MAAM,KAAA,CAAA,EAAA,CAAG,QAAU,EAAA,IAAA,CAAK,SAAS,CAAA;AAAA;AACnC;AACF,EAEA,MAAM,SAAU,CAAA,cAAA,EAAgC,QAA6B,EAAA;AAC3E,IAAA,MAAM,YAAe,GAAA,KAAA,CAAM,SAAU,CAAA,cAAA,EAAgB,QAAQ,CAAA;AAI7D,IAAA,IAAI,mBAAK,kBAAoB,CAAA,EAAA;AAC3B,MAAA,IAAA,CAAK,aAAa,YAAK,CAAA,IAAA,EAAA,kBAAA,CAAA;AACvB,MAAA,YAAA,CAAA,IAAA,EAAK,kBAAqB,EAAA,KAAA,CAAA,CAAA;AAAA;AAG5B,IAAO,OAAA,YAAA;AAAA;AACT,EAEA,WAAc,GAAA;AACZ,IAAA,KAAA,CAAM,WAAY,EAAA;AAClB,IAAA,YAAA,CAAA,IAAA,EAAK,MAAS,EAAA,KAAA,CAAA,CAAA;AAAA;AAChB,EAEA,IAAI,MAAM,KAAiB,EAAA;AACzB,IAAA,KAAA,CAAM,KAAQ,GAAA,KAAA;AAAA;AAEhB,EACA,IAAI,KAAQ,GAAA;AACV,IAAA,OAAO,KAAM,CAAA,KAAA;AAAA;AACf,EAEA,IAAI,MAAM,KAA8C,EAAA;AACtD,IAAA,KAAA,CAAM,KAAQ,GAAA,KAAA;AAAA;AAChB,EAEA,IAAI,KAAQ,GAAA;AAvId,IAAA,IAAA,EAAA;AAwII,IAAA,OAAA,CAAO,EAAK,GAAA,YAAA,CAAA,IAAA,EAAA,eAAA,CAAA,KAAL,IAAuB,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,IAAA,EAAA,IAAA,CAAK,KAAM,CAAA,KAAA,CAAA;AAAA;AAC3C,EAEQ,iBAAoB,GAAA;AAC1B,IAAA,OAAO,KAAK,YAAa,CAAA,MAAA;AAAA,MACvB,CAAC,QAAkB,SAA6B,KAAA;AAC9C,QAAI,IAAA,KAAA,CAAM,OAAQ,CAAA,SAAS,CAAG,EAAA;AAC5B,UAAS,KAAA,IAAA,CAAA,GAAI,UAAU,CAAC,CAAA,EAAG,KAAK,SAAU,CAAA,CAAC,GAAG,CAAK,EAAA,EAAA;AACjD,YAAM,MAAA,GAAA,GAAM,IAAK,CAAA,IAAA,CAAK,CAAC,CAAA;AACvB,YAAA,IAAI,GAAK,EAAA;AACP,cAAO,MAAA,CAAA,IAAA,CAAK,GAAI,CAAA,GAAG,CAAC,CAAA;AAAA;AACtB;AACF,SACK,MAAA;AACL,UAAM,MAAA,GAAA,GAAM,IAAK,CAAA,IAAA,CAAK,SAAS,CAAA;AAC/B,UAAA,IAAI,GAAK,EAAA;AACP,YAAO,MAAA,CAAA,IAAA,CAAK,GAAI,CAAA,GAAG,CAAC,CAAA;AAAA;AACtB;AAEF,QAAO,OAAA,MAAA;AAAA,OACT;AAAA,MACA;AAAC,KACH;AAAA;AACF,EAEA,SAAA,CACE,MACA,EAAA,UAAA,EACA,KACe,EAAA;AACf,IAAA,YAAA,CAAA,IAAA,EAAK,MAAQ,CAAA,EAAA,MAAA,CAAO,MAAQ,EAAA,UAAA,EAAY,KAAK,CAAA;AAC7C,IAAO,OAAA,OAAA,CAAQ,QAAQ,IAAI,CAAA;AAAA;AAC7B,EAEA,MAAM,QACJ,UACY,EAAA;AACZ,IAAI,IAAAC,6BAAA,CAAqB,UAAU,CAAG,EAAA;AACpC,MAAM,MAAA,UAAA,GAAa,mBAAK,YAAc,CAAA,EAAA,IAAA;AAAA,QACpC,CAAC,OAAA,KAAY,OAAQ,CAAA,OAAA,KAAY,UAAW,CAAA;AAAA,OAC9C;AACA,MAAI,IAAA,UAAA,IAAcA,6BAAqB,CAAA,UAAU,CAAG,EAAA;AAClD,QAAA,QAAQ,WAAW,OAAS;AAAA,UAC1B,KAAK,+BAAiC,EAAA;AACpC,YAAA,OAAO,WAAW,OAAQ,CAAA;AAAA,cACxB,GAAG,UAAA;AAAA,cACH,MAAM,IAAK,CAAA;AAAA,aACZ,CAAA;AAAA;AACH;AAEF,QAAA,OAAO,WAAW,OAAQ,CAAA;AAAA,UACxB,GAAG,UAAA;AAAA,UACH,WAAa,EAAA;AAAA,YACX,cAAA,EAAgB,KAAK,iBAAkB,EAAA;AAAA,YACvC,KAAA,EAAO,KAAK,WAAY,CAAA;AAAA,WAC1B;AAAA,UACA,MAAM,IAAK,CAAA;AAAA,SACZ,CAAA;AAAA;AACH;AAEF,IAAA,MAAM,KAAM,CAAA,CAAA,kCAAA,EAAqC,UAAW,CAAA,IAAI,CAAE,CAAA,CAAA;AAAA;AACpE,EAEA,MAAM,YACJ,UAGyB,EAAA;AACzB,IAAM,MAAA,UAAA,GAAa,mBAAK,YAAc,CAAA,EAAA,IAAA;AAAA,MACpC,CAAC,OAAA,KACC,OAAQ,CAAA,OAAA,KAAa,UAAiC,CAAA;AAAA,KAC1D;AAEA,IAAI,IAAAC,4BAAA,CAAoB,UAAU,CAAG,EAAA;AACnC,MAAA,OAAO,YAAY,OAAQ,CAAA;AAAA,QACzB,GAAG,UAAA;AAAA,QACH,WAAa,EAAA;AAAA,UACX,cAAA,EAAgB,KAAK,iBAAkB,EAAA;AAAA,UACvC,KAAA,EAAO,KAAK,WAAY,CAAA;AAAA,SAC1B;AAAA,QACA,MAAM,IAAK,CAAA;AAAA,OACZ,CAAA;AAAA;AAGH,IAAO,OAAA,KAAA,CAAM,YAAY,UAAU,CAAA;AAAA;AACrC,EAEA,uBAAA,CAAwB,QAAgB,OAAqC,EAAA;AAC3E,IAAA,IAAI,mBAAK,MAAQ,CAAA,EAAA;AACf,MAAA,OAAOC,+BAAgB,CAAA,YAAA,CAAA,IAAA,EAAK,MAAQ,CAAA,EAAA,MAAA,EAAQ,OAAO,CAAA;AAAA,KAC9C,MAAA;AACL,MAAM,MAAA,KAAA;AAAA,QACJ;AAAA,OACF;AAAA;AACF;AACF,EAEA,IAAI,UAAa,GAAA;AACf,IAAA,OAAO,KAAK,OAAQ,CAAA,UAAA;AAAA;AACtB,EAEA,IAAI,WAAW,UAAiD,EAAA;AA7OlE,IAAA,IAAA,EAAA,EAAA,EAAA;AA8OI,IAAA,IAAA,CAAK,OAAU,GAAA;AAAA,MACb,GAAG,IAAK,CAAA,OAAA;AAAA,MACR;AAAA,KACF;AAEA,IAAA,IAAI,UAAY,EAAA;AACd,MAAM,MAAA;AAAA,QACJ,gBAAA;AAAA,QACA,IAAA,EAAM,EAAE,UAAA,EAAY,QAAS;AAAA,OAC3B,GAAA,UAAA;AAEJ,MAAA,IAAI,KAAK,QAAU,EAAA;AACjB,QAAA,CAAA,EAAA,GAAA,YAAA,CAAA,IAAA,EAAK,wBAAL,IAA0B,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,IAAA,EAAA;AAAA,UACxB,WAAW,IAAK,CAAA,QAAA;AAAA,UAChB,eAAiB,EAAA,UAAA;AAAA,UACjB,IAAM,EAAA,oBAAA;AAAA,UACN,UAAY,EAAA,gBAAA;AAAA,UACZ,gBAAkB,EAAA;AAAA,SACpB,CAAA,CAAG,IAAK,CAAA,CAAC,QAAa,KAAA;AACpB,UAAK,IAAA,CAAA,IAAA;AAAA,YACH,qBAAA;AAAA,YACA;AAAA,WACF;AAAA,SACF,CAAA;AAAA;AACF,KACK,MAAA;AACL,MAAA,CAAA,EAAA,GAAA,YAAA,CAAA,IAAA,EAAK,wBAAL,IAA0B,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,IAAA,EAAA;AAAA,QACxB,WAAW,IAAK,CAAA,QAAA;AAAA,QAChB,IAAM,EAAA;AAAA,OACR,CAAA,CAAG,KAAK,MAAoB;AAC1B,QAAA,IAAA,CAAK,KAAK,qBAAqB,CAAA;AAAA,OACjC,CAAA;AAAA;AACF;AAEJ;AAvNE,gBAAA,GAAA,IAAA,OAAA,EAAA;AACA,kBAAA,GAAA,IAAA,OAAA,EAAA;AACA,YAAA,GAAA,IAAA,OAAA,EAAA;AAEA,cAAA,GAAA,IAAA,OAAA,EAAA;AACA,MAAA,GAAA,IAAA,OAAA,EAAA;AACA,yBAAA,GAAA,IAAA,OAAA,EAAA;AACA,kBAAA,GAAA,IAAA,OAAA,EAAA;AACA,eAAA,GAAA,IAAA,OAAA,EAAA;;;;"}
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var isinGenerator = require('@thomaschaplin/isin-generator');
3
+ var index = require('./isin-generator/index.js');
4
4
  var currencies = require('./currencies.js');
5
5
  var locations = require('./locations.js');
6
6
  var lotsizes = require('./lotsizes.js');
@@ -39,7 +39,7 @@ for (const char1 of chars1) {
39
39
  const bbg = char1 + char2 + char3 + char4 + " " + suffix;
40
40
  const description = `${ric} description`;
41
41
  const currency = currencies.currencies[dataUtils.random(0, 4)];
42
- const isin = isinGenerator.isinGenerator();
42
+ const isin = index.isinGenerator();
43
43
  const lotSize = lotsizes.lotsizes[dataUtils.random(0, lotsizes.lotsizes.length - 1)];
44
44
  const exchange = locations.locations[suffix][1];
45
45
  const price = randomPrice();
@@ -1 +1 @@
1
- {"version":3,"file":"instruments.js","sources":["../../../src/simul/reference-data/instruments.ts"],"sourcesContent":["import { isinGenerator } from \"@thomaschaplin/isin-generator\";\nimport { currencies } from \"./currencies\";\nimport { locations, suffixes } from \"./locations\";\nimport { lotsizes } from \"./lotsizes\";\nimport { random } from \"../../data-utils\";\nimport { buildDataColumnMap, Table } from \"../../Table\";\nimport { schemas } from \"../simul-schemas\";\n\nexport type bbg = string;\nexport type currency = string;\nexport type ric = string;\nexport type description = string;\nexport type exchange = string;\n// seed for price generation\nexport type price = number;\nexport type date = number;\n\nexport type InstrumentsDataRow = [\n bbg,\n currency,\n description,\n exchange,\n string,\n number,\n ric,\n price,\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 price: 7,\n date: 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\nconst randomPrice = () => {\n const price = random(0, 10000);\n const multiplier = random(1, 10);\n return price / multiplier;\n};\n\n// const start = performance.now();\n// Create 10_000 Instruments\nlet count = 0;\nfor (const char1 of chars1) {\n for (const char2 of chars2) {\n for (const char3 of chars3) {\n for (const char4 of chars4) {\n const suffix = suffixes[count % 8];\n const ric = char1 + char2 + char3 + char4 + \".\" + suffix;\n const bbg = char1 + char2 + char3 + char4 + \" \" + suffix;\n const description = `${ric} description`;\n const currency = currencies[random(0, 4)];\n const isin = isinGenerator();\n const lotSize = lotsizes[random(0, lotsizes.length - 1)];\n\n const exchange = locations[suffix][1];\n const price = randomPrice();\n const date = new Date().getTime();\n\n instrumentsData.push([\n bbg,\n currency,\n description,\n exchange,\n String(isin),\n lotSize,\n ric,\n price,\n date\n ]);\n count++;\n }\n }\n }\n}\n\n// const end = performance.now();\n// console.log(`generating 10,000 instruments took ${end - start} ms`);\n\nexport const getRic = (defaultRic: string) => {\n const row = instrumentsData.at(random(0, instrumentsData.length));\n return row?.[InstrumentColumnMap.ric] ?? defaultRic;\n};\n\nexport const instrumentsTable = new Table(\n schemas.instruments,\n instrumentsData,\n buildDataColumnMap(schemas, \"instruments\")\n);\n\nexport { instrumentsData };\n"],"names":["random","suffixes","currencies","isinGenerator","lotsizes","locations","Table","schemas","buildDataColumnMap"],"mappings":";;;;;;;;;;AA6BO,MAAM,mBAAsB,GAAA;AAAA,EACjC,GAAK,EAAA,CAAA;AAAA,EACL,QAAU,EAAA,CAAA;AAAA,EACV,WAAa,EAAA,CAAA;AAAA,EACb,QAAU,EAAA,CAAA;AAAA,EACV,MAAQ,EAAA,CAAA;AAAA,EACR,MAAQ,EAAA,CAAA;AAAA,EACR,GAAK,EAAA,CAAA;AAAA,EACL,KAAO,EAAA,CAAA;AAAA,EACP,IAAM,EAAA;AACR;AAEA,MAAM,kBAAwC;AAE9C,MAAM,MAAA,GAAS,KAAM,CAAA,IAAA,CAAK,YAAY,CAAA;AACtC,MAAM,MAAA,GAAS,KAAM,CAAA,IAAA,CAAK,YAAY,CAAA;AACtC,MAAM,MAAA,GAAS,KAAM,CAAA,IAAA,CAAK,YAAY,CAAA;AACtC,MAAM,MAAA,GAAS,KAAM,CAAA,IAAA,CAAK,YAAY,CAAA;AAEtC,MAAM,cAAc,MAAM;AACxB,EAAM,MAAA,KAAA,GAAQA,gBAAO,CAAA,CAAA,EAAG,GAAK,CAAA;AAC7B,EAAM,MAAA,UAAA,GAAaA,gBAAO,CAAA,CAAA,EAAG,EAAE,CAAA;AAC/B,EAAA,OAAO,KAAQ,GAAA,UAAA;AACjB,CAAA;AAIA,IAAI,KAAQ,GAAA,CAAA;AACZ,KAAA,MAAW,SAAS,MAAQ,EAAA;AAC1B,EAAA,KAAA,MAAW,SAAS,MAAQ,EAAA;AAC1B,IAAA,KAAA,MAAW,SAAS,MAAQ,EAAA;AAC1B,MAAA,KAAA,MAAW,SAAS,MAAQ,EAAA;AAC1B,QAAM,MAAA,MAAA,GAASC,kBAAS,CAAA,KAAA,GAAQ,CAAC,CAAA;AACjC,QAAA,MAAM,GAAM,GAAA,KAAA,GAAQ,KAAQ,GAAA,KAAA,GAAQ,QAAQ,GAAM,GAAA,MAAA;AAClD,QAAA,MAAM,GAAM,GAAA,KAAA,GAAQ,KAAQ,GAAA,KAAA,GAAQ,QAAQ,GAAM,GAAA,MAAA;AAClD,QAAM,MAAA,WAAA,GAAc,GAAG,GAAG,CAAA,YAAA,CAAA;AAC1B,QAAA,MAAM,QAAW,GAAAC,qBAAA,CAAWF,gBAAO,CAAA,CAAA,EAAG,CAAC,CAAC,CAAA;AACxC,QAAA,MAAM,OAAOG,2BAAc,EAAA;AAC3B,QAAA,MAAM,UAAUC,iBAAS,CAAAJ,gBAAA,CAAO,GAAGI,iBAAS,CAAA,MAAA,GAAS,CAAC,CAAC,CAAA;AAEvD,QAAA,MAAM,QAAW,GAAAC,mBAAA,CAAU,MAAM,CAAA,CAAE,CAAC,CAAA;AACpC,QAAA,MAAM,QAAQ,WAAY,EAAA;AAC1B,QAAA,MAAM,IAAO,GAAA,iBAAA,IAAI,IAAK,EAAA,EAAE,OAAQ,EAAA;AAEhC,QAAA,eAAA,CAAgB,IAAK,CAAA;AAAA,UACnB,GAAA;AAAA,UACA,QAAA;AAAA,UACA,WAAA;AAAA,UACA,QAAA;AAAA,UACA,OAAO,IAAI,CAAA;AAAA,UACX,OAAA;AAAA,UACA,GAAA;AAAA,UACA,KAAA;AAAA,UACA;AAAA,SACD,CAAA;AACD,QAAA,KAAA,EAAA;AAAA;AACF;AACF;AAEJ;AAKa,MAAA,MAAA,GAAS,CAAC,UAAuB,KAAA;AAC5C,EAAA,MAAM,MAAM,eAAgB,CAAA,EAAA,CAAGL,iBAAO,CAAG,EAAA,eAAA,CAAgB,MAAM,CAAC,CAAA;AAChE,EAAO,OAAA,GAAA,GAAM,mBAAoB,CAAA,GAAG,CAAK,IAAA,UAAA;AAC3C;AAEO,MAAM,mBAAmB,IAAIM,WAAA;AAAA,EAClCC,oBAAQ,CAAA,WAAA;AAAA,EACR,eAAA;AAAA,EACAC,wBAAA,CAAmBD,sBAAS,aAAa;AAC3C;;;;;;;"}
1
+ {"version":3,"file":"instruments.js","sources":["../../../src/simul/reference-data/instruments.ts"],"sourcesContent":["import { isinGenerator } from \"./isin-generator\";\nimport { currencies } from \"./currencies\";\nimport { locations, suffixes } from \"./locations\";\nimport { lotsizes } from \"./lotsizes\";\nimport { random } from \"../../data-utils\";\nimport { buildDataColumnMap, Table } from \"../../Table\";\nimport { schemas } from \"../simul-schemas\";\n\nexport type bbg = string;\nexport type currency = string;\nexport type ric = string;\nexport type description = string;\nexport type exchange = string;\n// seed for price generation\nexport type price = number;\nexport type date = number;\n\nexport type InstrumentsDataRow = [\n bbg,\n currency,\n description,\n exchange,\n string,\n number,\n ric,\n price,\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 price: 7,\n date: 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\nconst randomPrice = () => {\n const price = random(0, 10000);\n const multiplier = random(1, 10);\n return price / multiplier;\n};\n\n// const start = performance.now();\n// Create 10_000 Instruments\nlet count = 0;\nfor (const char1 of chars1) {\n for (const char2 of chars2) {\n for (const char3 of chars3) {\n for (const char4 of chars4) {\n const suffix = suffixes[count % 8];\n const ric = char1 + char2 + char3 + char4 + \".\" + suffix;\n const bbg = char1 + char2 + char3 + char4 + \" \" + suffix;\n const description = `${ric} description`;\n const currency = currencies[random(0, 4)];\n const isin = isinGenerator();\n const lotSize = lotsizes[random(0, lotsizes.length - 1)];\n\n const exchange = locations[suffix][1];\n const price = randomPrice();\n const date = new Date().getTime();\n\n instrumentsData.push([\n bbg,\n currency,\n description,\n exchange,\n String(isin),\n lotSize,\n ric,\n price,\n date,\n ]);\n count++;\n }\n }\n }\n}\n\n// const end = performance.now();\n// console.log(`generating 10,000 instruments took ${end - start} ms`);\n\nexport const getRic = (defaultRic: string) => {\n const row = instrumentsData.at(random(0, instrumentsData.length));\n return row?.[InstrumentColumnMap.ric] ?? defaultRic;\n};\n\nexport const instrumentsTable = new Table(\n schemas.instruments,\n instrumentsData,\n buildDataColumnMap(schemas, \"instruments\"),\n);\n\nexport { instrumentsData };\n"],"names":["random","suffixes","currencies","isinGenerator","lotsizes","locations","Table","schemas","buildDataColumnMap"],"mappings":";;;;;;;;;;AA6BO,MAAM,mBAAsB,GAAA;AAAA,EACjC,GAAK,EAAA,CAAA;AAAA,EACL,QAAU,EAAA,CAAA;AAAA,EACV,WAAa,EAAA,CAAA;AAAA,EACb,QAAU,EAAA,CAAA;AAAA,EACV,MAAQ,EAAA,CAAA;AAAA,EACR,MAAQ,EAAA,CAAA;AAAA,EACR,GAAK,EAAA,CAAA;AAAA,EACL,KAAO,EAAA,CAAA;AAAA,EACP,IAAM,EAAA;AACR;AAEA,MAAM,kBAAwC;AAE9C,MAAM,MAAA,GAAS,KAAM,CAAA,IAAA,CAAK,YAAY,CAAA;AACtC,MAAM,MAAA,GAAS,KAAM,CAAA,IAAA,CAAK,YAAY,CAAA;AACtC,MAAM,MAAA,GAAS,KAAM,CAAA,IAAA,CAAK,YAAY,CAAA;AACtC,MAAM,MAAA,GAAS,KAAM,CAAA,IAAA,CAAK,YAAY,CAAA;AAEtC,MAAM,cAAc,MAAM;AACxB,EAAM,MAAA,KAAA,GAAQA,gBAAO,CAAA,CAAA,EAAG,GAAK,CAAA;AAC7B,EAAM,MAAA,UAAA,GAAaA,gBAAO,CAAA,CAAA,EAAG,EAAE,CAAA;AAC/B,EAAA,OAAO,KAAQ,GAAA,UAAA;AACjB,CAAA;AAIA,IAAI,KAAQ,GAAA,CAAA;AACZ,KAAA,MAAW,SAAS,MAAQ,EAAA;AAC1B,EAAA,KAAA,MAAW,SAAS,MAAQ,EAAA;AAC1B,IAAA,KAAA,MAAW,SAAS,MAAQ,EAAA;AAC1B,MAAA,KAAA,MAAW,SAAS,MAAQ,EAAA;AAC1B,QAAM,MAAA,MAAA,GAASC,kBAAS,CAAA,KAAA,GAAQ,CAAC,CAAA;AACjC,QAAA,MAAM,GAAM,GAAA,KAAA,GAAQ,KAAQ,GAAA,KAAA,GAAQ,QAAQ,GAAM,GAAA,MAAA;AAClD,QAAA,MAAM,GAAM,GAAA,KAAA,GAAQ,KAAQ,GAAA,KAAA,GAAQ,QAAQ,GAAM,GAAA,MAAA;AAClD,QAAM,MAAA,WAAA,GAAc,GAAG,GAAG,CAAA,YAAA,CAAA;AAC1B,QAAA,MAAM,QAAW,GAAAC,qBAAA,CAAWF,gBAAO,CAAA,CAAA,EAAG,CAAC,CAAC,CAAA;AACxC,QAAA,MAAM,OAAOG,mBAAc,EAAA;AAC3B,QAAA,MAAM,UAAUC,iBAAS,CAAAJ,gBAAA,CAAO,GAAGI,iBAAS,CAAA,MAAA,GAAS,CAAC,CAAC,CAAA;AAEvD,QAAA,MAAM,QAAW,GAAAC,mBAAA,CAAU,MAAM,CAAA,CAAE,CAAC,CAAA;AACpC,QAAA,MAAM,QAAQ,WAAY,EAAA;AAC1B,QAAA,MAAM,IAAO,GAAA,iBAAA,IAAI,IAAK,EAAA,EAAE,OAAQ,EAAA;AAEhC,QAAA,eAAA,CAAgB,IAAK,CAAA;AAAA,UACnB,GAAA;AAAA,UACA,QAAA;AAAA,UACA,WAAA;AAAA,UACA,QAAA;AAAA,UACA,OAAO,IAAI,CAAA;AAAA,UACX,OAAA;AAAA,UACA,GAAA;AAAA,UACA,KAAA;AAAA,UACA;AAAA,SACD,CAAA;AACD,QAAA,KAAA,EAAA;AAAA;AACF;AACF;AAEJ;AAKa,MAAA,MAAA,GAAS,CAAC,UAAuB,KAAA;AAC5C,EAAA,MAAM,MAAM,eAAgB,CAAA,EAAA,CAAGL,iBAAO,CAAG,EAAA,eAAA,CAAgB,MAAM,CAAC,CAAA;AAChE,EAAO,OAAA,GAAA,GAAM,mBAAoB,CAAA,GAAG,CAAK,IAAA,UAAA;AAC3C;AAEO,MAAM,mBAAmB,IAAIM,WAAA;AAAA,EAClCC,oBAAQ,CAAA,WAAA;AAAA,EACR,eAAA;AAAA,EACAC,wBAAA,CAAmBD,sBAAS,aAAa;AAC3C;;;;;;;"}
@@ -0,0 +1,6 @@
1
+ 'use strict';
2
+
3
+ const convertStringToBaseTenNumber = (value) => parseInt(value, 10);
4
+
5
+ exports.convertStringToBaseTenNumber = convertStringToBaseTenNumber;
6
+ //# sourceMappingURL=convert-string-to-base-ten-number.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"convert-string-to-base-ten-number.js","sources":["../../../../src/simul/reference-data/isin-generator/convert-string-to-base-ten-number.ts"],"sourcesContent":["export const convertStringToBaseTenNumber = (value: string): number =>\n parseInt(value, 10);\n"],"names":[],"mappings":";;AAAO,MAAM,4BAA+B,GAAA,CAAC,KAC3C,KAAA,QAAA,CAAS,OAAO,EAAE;;;;"}
@@ -0,0 +1,31 @@
1
+ 'use strict';
2
+
3
+ const alphabet = [
4
+ "A",
5
+ "B",
6
+ "C",
7
+ "D",
8
+ "E",
9
+ "F",
10
+ "G",
11
+ "H",
12
+ "J",
13
+ "K",
14
+ "L",
15
+ "M",
16
+ "N",
17
+ "P",
18
+ "Q",
19
+ "R",
20
+ "S",
21
+ "T",
22
+ "U",
23
+ "V",
24
+ "W",
25
+ "X",
26
+ "Y",
27
+ "Z"
28
+ ];
29
+
30
+ exports.alphabet = alphabet;
31
+ //# sourceMappingURL=alphabet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"alphabet.js","sources":["../../../../../src/simul/reference-data/isin-generator/fixtures/alphabet.ts"],"sourcesContent":["export const alphabet = [\n \"A\",\n \"B\",\n \"C\",\n \"D\",\n \"E\",\n \"F\",\n \"G\",\n \"H\",\n \"J\",\n \"K\",\n \"L\",\n \"M\",\n \"N\",\n \"P\",\n \"Q\",\n \"R\",\n \"S\",\n \"T\",\n \"U\",\n \"V\",\n \"W\",\n \"X\",\n \"Y\",\n \"Z\",\n];\n"],"names":[],"mappings":";;AAAO,MAAM,QAAW,GAAA;AAAA,EACtB,GAAA;AAAA,EACA,GAAA;AAAA,EACA,GAAA;AAAA,EACA,GAAA;AAAA,EACA,GAAA;AAAA,EACA,GAAA;AAAA,EACA,GAAA;AAAA,EACA,GAAA;AAAA,EACA,GAAA;AAAA,EACA,GAAA;AAAA,EACA,GAAA;AAAA,EACA,GAAA;AAAA,EACA,GAAA;AAAA,EACA,GAAA;AAAA,EACA,GAAA;AAAA,EACA,GAAA;AAAA,EACA,GAAA;AAAA,EACA,GAAA;AAAA,EACA,GAAA;AAAA,EACA,GAAA;AAAA,EACA,GAAA;AAAA,EACA,GAAA;AAAA,EACA,GAAA;AAAA,EACA;AACF;;;;"}
@@ -0,0 +1,9 @@
1
+ 'use strict';
2
+
3
+ var alphabet = require('./alphabet.js');
4
+ var baseTenNumbers = require('./base-ten-numbers.js');
5
+
6
+ const alphanumeric = [...alphabet.alphabet, ...baseTenNumbers.baseTenNumbers];
7
+
8
+ exports.alphanumeric = alphanumeric;
9
+ //# sourceMappingURL=alphanumeric-values.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"alphanumeric-values.js","sources":["../../../../../src/simul/reference-data/isin-generator/fixtures/alphanumeric-values.ts"],"sourcesContent":["import { alphabet } from \"./alphabet\";\nimport { baseTenNumbers } from \"./base-ten-numbers\";\n\nexport const alphanumeric = [...alphabet, ...baseTenNumbers];\n"],"names":["alphabet","baseTenNumbers"],"mappings":";;;;;AAGO,MAAM,YAAe,GAAA,CAAC,GAAGA,iBAAA,EAAU,GAAGC,6BAAc;;;;"}
@@ -0,0 +1,17 @@
1
+ 'use strict';
2
+
3
+ const baseTenNumbers = [
4
+ 0,
5
+ 1,
6
+ 2,
7
+ 3,
8
+ 4,
9
+ 5,
10
+ 6,
11
+ 7,
12
+ 8,
13
+ 9
14
+ ];
15
+
16
+ exports.baseTenNumbers = baseTenNumbers;
17
+ //# sourceMappingURL=base-ten-numbers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-ten-numbers.js","sources":["../../../../../src/simul/reference-data/isin-generator/fixtures/base-ten-numbers.ts"],"sourcesContent":["export const baseTenNumbers = [\n 0,\n 1,\n 2,\n 3,\n 4,\n 5,\n 6,\n 7,\n 8,\n 9,\n];\n"],"names":[],"mappings":";;AAAO,MAAM,cAAiB,GAAA;AAAA,EAC5B,CAAA;AAAA,EACA,CAAA;AAAA,EACA,CAAA;AAAA,EACA,CAAA;AAAA,EACA,CAAA;AAAA,EACA,CAAA;AAAA,EACA,CAAA;AAAA,EACA,CAAA;AAAA,EACA,CAAA;AAAA,EACA;AACF;;;;"}
@@ -0,0 +1,24 @@
1
+ 'use strict';
2
+
3
+ var convertStringToBaseTenNumber = require('./convert-string-to-base-ten-number.js');
4
+ var isOdd = require('./is-odd.js');
5
+
6
+ const generateCusipCheckCode = (cusip) => {
7
+ const cusipLength = cusip.length;
8
+ let currentValue;
9
+ let total = 0;
10
+ for (let i = 0; i < cusipLength; i++) {
11
+ currentValue = cusip[i];
12
+ const currentNumberToBaseTen = convertStringToBaseTenNumber.convertStringToBaseTenNumber(currentValue);
13
+ let currentNumberOrPosition = isNaN(currentNumberToBaseTen) ? currentValue.charCodeAt(0) - "A".charCodeAt(0) + 10 : parseInt(currentValue);
14
+ if (isOdd.isOdd(i)) {
15
+ currentNumberOrPosition = currentNumberOrPosition * 2;
16
+ }
17
+ total = total + Math.floor(currentNumberOrPosition / 10) + currentNumberOrPosition % 10;
18
+ }
19
+ const check = (10 - total % 10) % 10;
20
+ return check;
21
+ };
22
+
23
+ exports.generateCusipCheckCode = generateCusipCheckCode;
24
+ //# sourceMappingURL=generate-cusip-check-code.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-cusip-check-code.js","sources":["../../../../src/simul/reference-data/isin-generator/generate-cusip-check-code.ts"],"sourcesContent":["import { convertStringToBaseTenNumber } from \"./convert-string-to-base-ten-number\";\nimport { isOdd } from \"./is-odd\";\n\nexport const generateCusipCheckCode = (cusip: string): number => {\n const cusipLength = cusip.length;\n let currentValue;\n let total = 0;\n\n for (let i = 0; i < cusipLength; i++) {\n currentValue = cusip[i];\n\n const currentNumberToBaseTen = convertStringToBaseTenNumber(currentValue);\n\n let currentNumberOrPosition = isNaN(currentNumberToBaseTen)\n ? currentValue.charCodeAt(0) - \"A\".charCodeAt(0) + 10\n : parseInt(currentValue);\n\n if (isOdd(i)) {\n currentNumberOrPosition = currentNumberOrPosition * 2;\n }\n\n total =\n total +\n Math.floor(currentNumberOrPosition / 10) +\n (currentNumberOrPosition % 10);\n }\n const check = (10 - (total % 10)) % 10;\n return check;\n};\n"],"names":["convertStringToBaseTenNumber","isOdd"],"mappings":";;;;;AAGa,MAAA,sBAAA,GAAyB,CAAC,KAA0B,KAAA;AAC/D,EAAA,MAAM,cAAc,KAAM,CAAA,MAAA;AAC1B,EAAI,IAAA,YAAA;AACJ,EAAA,IAAI,KAAQ,GAAA,CAAA;AAEZ,EAAA,KAAA,IAAS,CAAI,GAAA,CAAA,EAAG,CAAI,GAAA,WAAA,EAAa,CAAK,EAAA,EAAA;AACpC,IAAA,YAAA,GAAe,MAAM,CAAC,CAAA;AAEtB,IAAM,MAAA,sBAAA,GAAyBA,0DAA6B,YAAY,CAAA;AAExE,IAAA,IAAI,uBAA0B,GAAA,KAAA,CAAM,sBAAsB,CAAA,GACtD,aAAa,UAAW,CAAA,CAAC,CAAI,GAAA,GAAA,CAAI,UAAW,CAAA,CAAC,CAAI,GAAA,EAAA,GACjD,SAAS,YAAY,CAAA;AAEzB,IAAI,IAAAC,WAAA,CAAM,CAAC,CAAG,EAAA;AACZ,MAAA,uBAAA,GAA0B,uBAA0B,GAAA,CAAA;AAAA;AAGtD,IAAA,KAAA,GACE,QACA,IAAK,CAAA,KAAA,CAAM,uBAA0B,GAAA,EAAE,IACtC,uBAA0B,GAAA,EAAA;AAAA;AAE/B,EAAM,MAAA,KAAA,GAAA,CAAS,EAAM,GAAA,KAAA,GAAQ,EAAO,IAAA,EAAA;AACpC,EAAO,OAAA,KAAA;AACT;;;;"}
@@ -0,0 +1,13 @@
1
+ 'use strict';
2
+
3
+ var generateRandomStringOfAlphanumericChars = require('./generate-random-string-of-alphanumeric-chars.js');
4
+ var generateRandomStringOfBaseTenChars = require('./generate-random-string-of-base-ten-chars.js');
5
+
6
+ const generateCusipWithoutCheckCode = () => {
7
+ const randomBaseTenString = generateRandomStringOfBaseTenChars.generateRandomStringOfBaseTenChars();
8
+ const randomAlphanumericString = generateRandomStringOfAlphanumericChars.generateRandomStringOfAlphanumericChars();
9
+ return randomBaseTenString + randomAlphanumericString;
10
+ };
11
+
12
+ exports.generateCusipWithoutCheckCode = generateCusipWithoutCheckCode;
13
+ //# sourceMappingURL=generate-cusip-without-check-code.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-cusip-without-check-code.js","sources":["../../../../src/simul/reference-data/isin-generator/generate-cusip-without-check-code.ts"],"sourcesContent":["import { generateRandomStringOfAlphanumericChars } from \"./generate-random-string-of-alphanumeric-chars\";\nimport { generateRandomStringOfBaseTenChars } from \"./generate-random-string-of-base-ten-chars\";\n\nexport const generateCusipWithoutCheckCode = (): string => {\n const randomBaseTenString = generateRandomStringOfBaseTenChars();\n const randomAlphanumericString = generateRandomStringOfAlphanumericChars();\n return randomBaseTenString + randomAlphanumericString;\n};\n"],"names":["generateRandomStringOfBaseTenChars","generateRandomStringOfAlphanumericChars"],"mappings":";;;;;AAGO,MAAM,gCAAgC,MAAc;AACzD,EAAA,MAAM,sBAAsBA,qEAAmC,EAAA;AAC/D,EAAA,MAAM,2BAA2BC,+EAAwC,EAAA;AACzE,EAAA,OAAO,mBAAsB,GAAA,wBAAA;AAC/B;;;;"}
@@ -0,0 +1,13 @@
1
+ 'use strict';
2
+
3
+ var generateCusipCheckCode = require('./generate-cusip-check-code.js');
4
+ var generateCusipWithoutCheckCode = require('./generate-cusip-without-check-code.js');
5
+
6
+ const generateCusip = () => {
7
+ const cusip = generateCusipWithoutCheckCode.generateCusipWithoutCheckCode();
8
+ const check = generateCusipCheckCode.generateCusipCheckCode(cusip);
9
+ return cusip + check;
10
+ };
11
+
12
+ exports.generateCusip = generateCusip;
13
+ //# sourceMappingURL=generate-cusip.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-cusip.js","sources":["../../../../src/simul/reference-data/isin-generator/generate-cusip.ts"],"sourcesContent":["import { generateCusipCheckCode } from \"./generate-cusip-check-code\";\nimport { generateCusipWithoutCheckCode } from \"./generate-cusip-without-check-code\";\n\nexport const generateCusip = (): string => {\n const cusip = generateCusipWithoutCheckCode();\n const check = generateCusipCheckCode(cusip);\n\n return cusip + check;\n};\n"],"names":["generateCusipWithoutCheckCode","generateCusipCheckCode"],"mappings":";;;;;AAGO,MAAM,gBAAgB,MAAc;AACzC,EAAA,MAAM,QAAQA,2DAA8B,EAAA;AAC5C,EAAM,MAAA,KAAA,GAAQC,8CAAuB,KAAK,CAAA;AAE1C,EAAA,OAAO,KAAQ,GAAA,KAAA;AACjB;;;;"}
@@ -0,0 +1,8 @@
1
+ 'use strict';
2
+
3
+ var alphanumericValues = require('./fixtures/alphanumeric-values.js');
4
+
5
+ const generateRandomAlphanumeric = () => alphanumericValues.alphanumeric[Math.floor(Math.random() * alphanumericValues.alphanumeric.length)];
6
+
7
+ exports.generateRandomAlphanumeric = generateRandomAlphanumeric;
8
+ //# sourceMappingURL=generate-random-alphanumeric.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-random-alphanumeric.js","sources":["../../../../src/simul/reference-data/isin-generator/generate-random-alphanumeric.ts"],"sourcesContent":["import { alphanumeric } from \"./fixtures/alphanumeric-values\";\n\nexport const generateRandomAlphanumeric = (): string | number =>\n alphanumeric[Math.floor(Math.random() * alphanumeric.length)];\n"],"names":["alphanumeric"],"mappings":";;;;AAEa,MAAA,0BAAA,GAA6B,MACxCA,+BAAA,CAAa,IAAK,CAAA,KAAA,CAAM,KAAK,MAAO,EAAA,GAAIA,+BAAa,CAAA,MAAM,CAAC;;;;"}
@@ -0,0 +1,6 @@
1
+ 'use strict';
2
+
3
+ const generateRandomBaseTenNumber = () => Math.floor(Math.random() * 10);
4
+
5
+ exports.generateRandomBaseTenNumber = generateRandomBaseTenNumber;
6
+ //# sourceMappingURL=generate-random-base-ten-number.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-random-base-ten-number.js","sources":["../../../../src/simul/reference-data/isin-generator/generate-random-base-ten-number.ts"],"sourcesContent":["export const generateRandomBaseTenNumber = (): number =>\n Math.floor(Math.random() * 10);\n"],"names":[],"mappings":";;AAAO,MAAM,8BAA8B,MACzC,IAAA,CAAK,MAAM,IAAK,CAAA,MAAA,KAAW,EAAE;;;;"}
@@ -0,0 +1,14 @@
1
+ 'use strict';
2
+
3
+ var generateRandomAlphanumeric = require('./generate-random-alphanumeric.js');
4
+
5
+ const generateRandomStringOfAlphanumericChars = () => {
6
+ let string = "";
7
+ for (let i = 0; i < 2; i++) {
8
+ string = string + generateRandomAlphanumeric.generateRandomAlphanumeric();
9
+ }
10
+ return string;
11
+ };
12
+
13
+ exports.generateRandomStringOfAlphanumericChars = generateRandomStringOfAlphanumericChars;
14
+ //# sourceMappingURL=generate-random-string-of-alphanumeric-chars.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-random-string-of-alphanumeric-chars.js","sources":["../../../../src/simul/reference-data/isin-generator/generate-random-string-of-alphanumeric-chars.ts"],"sourcesContent":["import { generateRandomAlphanumeric } from \"./generate-random-alphanumeric\";\n\nexport const generateRandomStringOfAlphanumericChars = () => {\n let string = \"\";\n for (let i = 0; i < 2; i++) {\n string = string + generateRandomAlphanumeric();\n }\n return string;\n};\n"],"names":["generateRandomAlphanumeric"],"mappings":";;;;AAEO,MAAM,0CAA0C,MAAM;AAC3D,EAAA,IAAI,MAAS,GAAA,EAAA;AACb,EAAA,KAAA,IAAS,CAAI,GAAA,CAAA,EAAG,CAAI,GAAA,CAAA,EAAG,CAAK,EAAA,EAAA;AAC1B,IAAA,MAAA,GAAS,SAASA,qDAA2B,EAAA;AAAA;AAE/C,EAAO,OAAA,MAAA;AACT;;;;"}
@@ -0,0 +1,14 @@
1
+ 'use strict';
2
+
3
+ var generateRandomBaseTenNumber = require('./generate-random-base-ten-number.js');
4
+
5
+ const generateRandomStringOfBaseTenChars = () => {
6
+ let string = "";
7
+ for (let i = 0; i < 6; i++) {
8
+ string = string + generateRandomBaseTenNumber.generateRandomBaseTenNumber();
9
+ }
10
+ return string;
11
+ };
12
+
13
+ exports.generateRandomStringOfBaseTenChars = generateRandomStringOfBaseTenChars;
14
+ //# sourceMappingURL=generate-random-string-of-base-ten-chars.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-random-string-of-base-ten-chars.js","sources":["../../../../src/simul/reference-data/isin-generator/generate-random-string-of-base-ten-chars.ts"],"sourcesContent":["import { generateRandomBaseTenNumber } from \"./generate-random-base-ten-number\";\n\nexport const generateRandomStringOfBaseTenChars = () => {\n let string = \"\";\n for (let i = 0; i < 6; i++) {\n string = string + generateRandomBaseTenNumber();\n }\n return string;\n};\n"],"names":["generateRandomBaseTenNumber"],"mappings":";;;;AAEO,MAAM,qCAAqC,MAAM;AACtD,EAAA,IAAI,MAAS,GAAA,EAAA;AACb,EAAA,KAAA,IAAS,CAAI,GAAA,CAAA,EAAG,CAAI,GAAA,CAAA,EAAG,CAAK,EAAA,EAAA;AAC1B,IAAA,MAAA,GAAS,SAASA,uDAA4B,EAAA;AAAA;AAEhD,EAAO,OAAA,MAAA;AACT;;;;"}
@@ -0,0 +1,295 @@
1
+ 'use strict';
2
+
3
+ var generateCusip = require('./generate-cusip.js');
4
+
5
+ const countryCodes = [
6
+ "AD",
7
+ "AE",
8
+ "AF",
9
+ "AG",
10
+ "AI",
11
+ "AL",
12
+ "AM",
13
+ "AO",
14
+ "AQ",
15
+ "AR",
16
+ "AS",
17
+ "AT",
18
+ "AU",
19
+ "AW",
20
+ "AX",
21
+ "AZ",
22
+ "BA",
23
+ "BB",
24
+ "BD",
25
+ "BE",
26
+ "BF",
27
+ "BG",
28
+ "BH",
29
+ "BI",
30
+ "BJ",
31
+ "BL",
32
+ "BM",
33
+ "BN",
34
+ "BO",
35
+ "BQ",
36
+ "BR",
37
+ "BS",
38
+ "BT",
39
+ "BV",
40
+ "BW",
41
+ "BY",
42
+ "BZ",
43
+ "CA",
44
+ "CC",
45
+ "CD",
46
+ "CF",
47
+ "CG",
48
+ "CH",
49
+ "CI",
50
+ "CK",
51
+ "CL",
52
+ "CM",
53
+ "CN",
54
+ "CO",
55
+ "CR",
56
+ "CU",
57
+ "CV",
58
+ "CW",
59
+ "CX",
60
+ "CY",
61
+ "CZ",
62
+ "DE",
63
+ "DJ",
64
+ "DK",
65
+ "DM",
66
+ "DO",
67
+ "DZ",
68
+ "EC",
69
+ "EE",
70
+ "EG",
71
+ "EH",
72
+ "ER",
73
+ "ES",
74
+ "ET",
75
+ "FI",
76
+ "FJ",
77
+ "FK",
78
+ "FM",
79
+ "FO",
80
+ "FR",
81
+ "GA",
82
+ "GB",
83
+ "GD",
84
+ "GE",
85
+ "GF",
86
+ "GG",
87
+ "GH",
88
+ "GI",
89
+ "GL",
90
+ "GM",
91
+ "GN",
92
+ "GP",
93
+ "GQ",
94
+ "GR",
95
+ "GS",
96
+ "GT",
97
+ "GU",
98
+ "GW",
99
+ "GY",
100
+ "HK",
101
+ "HM",
102
+ "HN",
103
+ "HR",
104
+ "HT",
105
+ "HU",
106
+ "ID",
107
+ "IE",
108
+ "IL",
109
+ "IM",
110
+ "IN",
111
+ "IO",
112
+ "IQ",
113
+ "IR",
114
+ "IS",
115
+ "IT",
116
+ "JE",
117
+ "JM",
118
+ "JO",
119
+ "JP",
120
+ "KE",
121
+ "KG",
122
+ "KH",
123
+ "KI",
124
+ "KM",
125
+ "KN",
126
+ "KP",
127
+ "KR",
128
+ "KW",
129
+ "KY",
130
+ "KZ",
131
+ "LA",
132
+ "LB",
133
+ "LC",
134
+ "LI",
135
+ "LK",
136
+ "LR",
137
+ "LS",
138
+ "LT",
139
+ "LU",
140
+ "LV",
141
+ "LY",
142
+ "MA",
143
+ "MC",
144
+ "MD",
145
+ "ME",
146
+ "MF",
147
+ "MG",
148
+ "MH",
149
+ "MK",
150
+ "ML",
151
+ "MM",
152
+ "MN",
153
+ "MO",
154
+ "MP",
155
+ "MQ",
156
+ "MR",
157
+ "MS",
158
+ "MT",
159
+ "MU",
160
+ "MV",
161
+ "MW",
162
+ "MX",
163
+ "MY",
164
+ "MZ",
165
+ "NA",
166
+ "NC",
167
+ "NE",
168
+ "NF",
169
+ "NG",
170
+ "NI",
171
+ "NL",
172
+ "NO",
173
+ "NP",
174
+ "NR",
175
+ "NU",
176
+ "NZ",
177
+ "OM",
178
+ "PA",
179
+ "PE",
180
+ "PF",
181
+ "PG",
182
+ "PH",
183
+ "PK",
184
+ "PL",
185
+ "PM",
186
+ "PN",
187
+ "PR",
188
+ "PS",
189
+ "PT",
190
+ "PW",
191
+ "PY",
192
+ "QA",
193
+ "RE",
194
+ "RO",
195
+ "RS",
196
+ "RU",
197
+ "RW",
198
+ "SA",
199
+ "SB",
200
+ "SC",
201
+ "SD",
202
+ "SE",
203
+ "SG",
204
+ "SH",
205
+ "SI",
206
+ "SJ",
207
+ "SK",
208
+ "SL",
209
+ "SM",
210
+ "SN",
211
+ "SO",
212
+ "SR",
213
+ "SS",
214
+ "ST",
215
+ "SV",
216
+ "SX",
217
+ "SY",
218
+ "SZ",
219
+ "TC",
220
+ "TD",
221
+ "TF",
222
+ "TG",
223
+ "TH",
224
+ "TJ",
225
+ "TK",
226
+ "TL",
227
+ "TM",
228
+ "TN",
229
+ "TO",
230
+ "TR",
231
+ "TT",
232
+ "TV",
233
+ "TW",
234
+ "TZ",
235
+ "UA",
236
+ "UG",
237
+ "UM",
238
+ "US",
239
+ "UY",
240
+ "UZ",
241
+ "VA",
242
+ "VC",
243
+ "VE",
244
+ "VG",
245
+ "VI",
246
+ "VN",
247
+ "VU",
248
+ "WF",
249
+ "WS",
250
+ "YE",
251
+ "YT",
252
+ "ZA",
253
+ "ZM",
254
+ "ZW"
255
+ ];
256
+ const cusip = generateCusip.generateCusip();
257
+ const generateIsin = (cusip2) => {
258
+ const code = countryCodes[Math.floor(Math.random() * countryCodes.length)];
259
+ const isin = code + cusip2 + generateIsinCheckDigit(code + cusip2 + "0");
260
+ return isin;
261
+ };
262
+ const generateIsinCheckDigit = (isin) => {
263
+ if (isin.length != 12) return false;
264
+ const v = [];
265
+ for (let i = isin.length - 2; i >= 0; i--) {
266
+ const c = isin.charAt(i);
267
+ if (isNaN(parseInt(c))) {
268
+ const letterCode = isin.charCodeAt(i) - 55;
269
+ v.push(letterCode % 10);
270
+ if (letterCode > 9) {
271
+ v.push(Math.floor(letterCode / 10));
272
+ }
273
+ } else {
274
+ v.push(Number(c));
275
+ }
276
+ }
277
+ let sum = 0;
278
+ const l = v.length;
279
+ for (let i = 0; i < l; i++) {
280
+ if (i % 2 == 0) {
281
+ const d = v[i] * 2;
282
+ sum += Math.floor(d / 10);
283
+ sum += d % 10;
284
+ } else {
285
+ sum += v[i];
286
+ }
287
+ }
288
+ return (10 - sum % 10) % 10;
289
+ };
290
+ const isinGenerator = () => {
291
+ return generateIsin(cusip);
292
+ };
293
+
294
+ exports.isinGenerator = isinGenerator;
295
+ //# sourceMappingURL=index.js.map