@infosel-sdk/markets 1.2.0 → 1.2.4

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 (130) hide show
  1. package/CHANGELOG.md +94 -1
  2. package/package.json +2 -2
  3. package/src/__tests__/__mocks__/core/auth-provider.mock.d.ts +28 -0
  4. package/src/__tests__/__mocks__/core/auth-provider.mock.js +23 -1
  5. package/src/__tests__/__mocks__/core/auth-provider.mock.js.map +1 -1
  6. package/src/__tests__/__mocks__/core/sdk-manager.mock.d.ts +52 -0
  7. package/src/__tests__/__mocks__/core/sdk-manager.mock.js +13 -1
  8. package/src/__tests__/__mocks__/core/sdk-manager.mock.js.map +1 -1
  9. package/src/__tests__/e2e/config/auth.config.js +1 -1
  10. package/src/__tests__/e2e/config/auth.config.js.map +1 -1
  11. package/src/__tests__/utils/mock-repository.js +1 -0
  12. package/src/__tests__/utils/mock-repository.js.map +1 -1
  13. package/src/__tests__/utils/test-helpers.d.ts +9 -0
  14. package/src/__tests__/utils/test-helpers.js +41 -1
  15. package/src/__tests__/utils/test-helpers.js.map +1 -1
  16. package/src/data/datasources/markets_datasource_impl.d.ts +13 -0
  17. package/src/data/datasources/markets_datasource_impl.js +528 -17
  18. package/src/data/datasources/markets_datasource_impl.js.map +1 -1
  19. package/src/data/di/infosel_markets_component.d.ts +20 -0
  20. package/src/data/di/infosel_markets_component.js +62 -0
  21. package/src/data/di/infosel_markets_component.js.map +1 -1
  22. package/src/data/mappers/markets_mapper.js +98 -6
  23. package/src/data/mappers/markets_mapper.js.map +1 -1
  24. package/src/data/models/get_user_workspaces_response_model.d.ts +2 -0
  25. package/src/data/models/instrument_fields_model.d.ts +10 -0
  26. package/src/data/models/search_instrument_model.d.ts +29 -0
  27. package/src/data/models/search_instrument_model.js +3 -0
  28. package/src/data/models/search_instrument_model.js.map +1 -0
  29. package/src/data/models/user_widgets_response_model.d.ts +7 -0
  30. package/src/data/models/user_widgets_response_model.js +3 -0
  31. package/src/data/models/user_widgets_response_model.js.map +1 -0
  32. package/src/data/models/widget_brokerage_concentration_configuration.d.ts +4 -0
  33. package/src/data/models/widget_brokerage_concentration_configuration.js +3 -0
  34. package/src/data/models/widget_brokerage_concentration_configuration.js.map +1 -0
  35. package/src/data/models/widget_brokerage_participation_configuration.d.ts +10 -0
  36. package/src/data/models/widget_brokerage_participation_configuration.js +3 -0
  37. package/src/data/models/widget_brokerage_participation_configuration.js.map +1 -0
  38. package/src/data/models/widget_brokerage_trades_configuration.d.ts +11 -0
  39. package/src/data/models/widget_brokerage_trades_configuration.js +3 -0
  40. package/src/data/models/widget_brokerage_trades_configuration.js.map +1 -0
  41. package/src/data/models/widget_chart_configuration_model.d.ts +4 -0
  42. package/src/data/models/widget_chart_configuration_model.js +3 -0
  43. package/src/data/models/widget_chart_configuration_model.js.map +1 -0
  44. package/src/data/models/widget_decreed_search_configuration.d.ts +10 -0
  45. package/src/data/models/widget_decreed_search_configuration.js +3 -0
  46. package/src/data/models/widget_decreed_search_configuration.js.map +1 -0
  47. package/src/data/models/widget_dynamic_table_configuration.d.ts +14 -0
  48. package/src/data/models/widget_dynamic_table_configuration.js +3 -0
  49. package/src/data/models/widget_dynamic_table_configuration.js.map +1 -0
  50. package/src/data/models/widget_indices_components_configuration.d.ts +7 -0
  51. package/src/data/models/widget_indices_components_configuration.js +3 -0
  52. package/src/data/models/widget_indices_components_configuration.js.map +1 -0
  53. package/src/data/models/widget_market_total_configuration.d.ts +4 -0
  54. package/src/data/models/widget_market_total_configuration.js +3 -0
  55. package/src/data/models/widget_market_total_configuration.js.map +1 -0
  56. package/src/data/models/widget_model.d.ts +18 -0
  57. package/src/data/models/widget_size_model.d.ts +5 -0
  58. package/src/data/models/widget_traded_packages_configuration.d.ts +4 -0
  59. package/src/data/models/widget_traded_packages_configuration.js +3 -0
  60. package/src/data/models/widget_traded_packages_configuration.js.map +1 -0
  61. package/src/data/repositories/markets_repository_impl.d.ts +13 -0
  62. package/src/data/repositories/markets_repository_impl.js +21 -0
  63. package/src/data/repositories/markets_repository_impl.js.map +1 -1
  64. package/src/domain/datasources/markets_datasource.d.ts +13 -0
  65. package/src/domain/di/markets_component.d.ts +13 -0
  66. package/src/domain/entities/chart_configuration.d.ts +5 -0
  67. package/src/domain/entities/chart_configuration.js +3 -0
  68. package/src/domain/entities/chart_configuration.js.map +1 -0
  69. package/src/domain/entities/create_widget_request.d.ts +32 -6
  70. package/src/domain/entities/duplicate_widget_request.d.ts +5 -0
  71. package/src/domain/entities/duplicate_widget_request.js +3 -0
  72. package/src/domain/entities/duplicate_widget_request.js.map +1 -0
  73. package/src/domain/entities/duplicate_workspace_request.d.ts +5 -0
  74. package/src/domain/entities/duplicate_workspace_request.js +3 -0
  75. package/src/domain/entities/duplicate_workspace_request.js.map +1 -0
  76. package/src/domain/entities/get_user_widgets_request.d.ts +3 -0
  77. package/src/domain/entities/get_user_widgets_request.js +3 -0
  78. package/src/domain/entities/get_user_widgets_request.js.map +1 -0
  79. package/src/domain/entities/index.d.ts +8 -0
  80. package/src/domain/entities/index.js +8 -0
  81. package/src/domain/entities/index.js.map +1 -1
  82. package/src/domain/entities/instrument_fields.d.ts +10 -0
  83. package/src/domain/entities/news_configuration.d.ts +8 -0
  84. package/src/domain/entities/news_configuration.js +3 -0
  85. package/src/domain/entities/news_configuration.js.map +1 -0
  86. package/src/domain/entities/search_instruments_request.d.ts +3 -1
  87. package/src/domain/entities/search_result_item.d.ts +26 -0
  88. package/src/domain/entities/update_widget_chart_request.d.ts +4 -0
  89. package/src/domain/entities/update_widget_chart_request.js +3 -0
  90. package/src/domain/entities/update_widget_chart_request.js.map +1 -0
  91. package/src/domain/entities/update_workspace_request.d.ts +19 -0
  92. package/src/domain/entities/update_workspace_request.js +3 -0
  93. package/src/domain/entities/update_workspace_request.js.map +1 -0
  94. package/src/domain/entities/user_widgets.d.ts +5 -0
  95. package/src/domain/entities/user_widgets.js +3 -0
  96. package/src/domain/entities/user_widgets.js.map +1 -0
  97. package/src/domain/entities/widget.d.ts +84 -1
  98. package/src/domain/entities/widget_layout_config.d.ts +15 -0
  99. package/src/domain/entities/widget_layout_config.js +3 -0
  100. package/src/domain/entities/widget_layout_config.js.map +1 -0
  101. package/src/domain/entities/widget_size_config.d.ts +6 -0
  102. package/src/domain/entities/widget_size_config.js +3 -0
  103. package/src/domain/entities/widget_size_config.js.map +1 -0
  104. package/src/domain/entities/workspace.d.ts +9 -0
  105. package/src/domain/repositories/markets_repository.d.ts +13 -0
  106. package/src/domain/use_cases/create_widget_use_case.js +12 -2
  107. package/src/domain/use_cases/create_widget_use_case.js.map +1 -1
  108. package/src/domain/use_cases/duplicate_widget_use_case.d.ts +8 -0
  109. package/src/domain/use_cases/duplicate_widget_use_case.js +15 -0
  110. package/src/domain/use_cases/duplicate_widget_use_case.js.map +1 -0
  111. package/src/domain/use_cases/duplicate_workspace_use_case.d.ts +8 -0
  112. package/src/domain/use_cases/duplicate_workspace_use_case.js +15 -0
  113. package/src/domain/use_cases/duplicate_workspace_use_case.js.map +1 -0
  114. package/src/domain/use_cases/get_instrument_multiple_fields_use_case.d.ts +7 -0
  115. package/src/domain/use_cases/get_instrument_multiple_fields_use_case.js +15 -0
  116. package/src/domain/use_cases/get_instrument_multiple_fields_use_case.js.map +1 -0
  117. package/src/domain/use_cases/get_user_widgets_use_case.d.ts +9 -0
  118. package/src/domain/use_cases/get_user_widgets_use_case.js +22 -0
  119. package/src/domain/use_cases/get_user_widgets_use_case.js.map +1 -0
  120. package/src/domain/use_cases/get_workspaces_by_project_id_use_case.d.ts +9 -0
  121. package/src/domain/use_cases/get_workspaces_by_project_id_use_case.js +19 -0
  122. package/src/domain/use_cases/get_workspaces_by_project_id_use_case.js.map +1 -0
  123. package/src/domain/use_cases/search_instruments_use_case.js +0 -3
  124. package/src/domain/use_cases/search_instruments_use_case.js.map +1 -1
  125. package/src/domain/use_cases/update_widget_chart_use_case.d.ts +7 -0
  126. package/src/domain/use_cases/update_widget_chart_use_case.js +15 -0
  127. package/src/domain/use_cases/update_widget_chart_use_case.js.map +1 -0
  128. package/src/domain/use_cases/update_workspace_use_case.d.ts +8 -0
  129. package/src/domain/use_cases/update_workspace_use_case.js +15 -0
  130. package/src/domain/use_cases/update_workspace_use_case.js.map +1 -0
@@ -66,4 +66,14 @@ export interface InstrumentFields {
66
66
  readonly descripcion: string;
67
67
  readonly currentPriceDate: Date;
68
68
  readonly previousPriceDate: Date;
69
+ readonly divisaNombreCorrecto: string;
70
+ readonly precioCompra: number;
71
+ readonly precioVenta: number;
72
+ readonly fecha: string;
73
+ readonly periodicidad: string;
74
+ readonly valorActual: number;
75
+ readonly valorAnterior: number;
76
+ readonly frecuencia: string;
77
+ readonly unidad: string;
78
+ readonly ultimaFecha: string;
69
79
  }
@@ -0,0 +1,8 @@
1
+ export interface NewsConfiguration {
2
+ readonly period: number;
3
+ readonly listType: number;
4
+ readonly limit: number;
5
+ readonly offset: number;
6
+ readonly sourcesId: string;
7
+ readonly newsTypeId: string;
8
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=news_configuration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"news_configuration.js","sourceRoot":"","sources":["../../../../../../packages/markets/src/domain/entities/news_configuration.ts"],"names":[],"mappings":""}
@@ -1,7 +1,9 @@
1
1
  export default interface SearchInstrumentRequest {
2
2
  readonly limit: number;
3
- readonly query: string;
3
+ readonly query?: string;
4
4
  readonly marketTypeIds?: Array<number>;
5
5
  readonly valueTypeIds?: Array<number>;
6
6
  readonly exchangeIds?: Array<number>;
7
+ readonly fields?: Array<string>;
8
+ readonly startsWith?: boolean;
7
9
  }
@@ -2,4 +2,30 @@ import { Instrument } from './instrument';
2
2
  export type SearchResultItem = {
3
3
  readonly name: string;
4
4
  readonly instrument: Instrument;
5
+ readonly id: number;
6
+ readonly marketTypeId: number;
7
+ readonly valueTypeId: number;
8
+ readonly exchangeId: number;
9
+ readonly symbol: string;
10
+ readonly issuer: string;
11
+ readonly series: string;
12
+ readonly isTrading: boolean;
13
+ readonly instrumentKey: string;
14
+ readonly exchangeValueType: number;
15
+ readonly isin: string;
16
+ readonly active: boolean;
17
+ readonly displaySymbol: string;
18
+ readonly keywords: string;
19
+ readonly index: string;
20
+ readonly assetClass: {
21
+ readonly name: string;
22
+ };
23
+ readonly created_at: string;
24
+ readonly exchange: {
25
+ readonly name: string;
26
+ };
27
+ readonly sectors: {
28
+ readonly type: string;
29
+ readonly name: string;
30
+ }[];
5
31
  };
@@ -0,0 +1,4 @@
1
+ export default interface UpdateWidgetChartRequest {
2
+ readonly id: string;
3
+ readonly chartConfiguration: string;
4
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=update_widget_chart_request.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update_widget_chart_request.js","sourceRoot":"","sources":["../../../../../../packages/markets/src/domain/entities/update_widget_chart_request.ts"],"names":[],"mappings":""}
@@ -0,0 +1,19 @@
1
+ export default interface UpdateWorkspaceRequest {
2
+ readonly id: string;
3
+ readonly name?: string;
4
+ readonly order?: number;
5
+ readonly sizes?: {
6
+ readonly id: string;
7
+ readonly type: string;
8
+ readonly x: number;
9
+ readonly y: number;
10
+ readonly width: number;
11
+ readonly height: number;
12
+ readonly minWidth: number;
13
+ readonly minHeight: number;
14
+ readonly maxWidth: number;
15
+ readonly maxHeight: number;
16
+ readonly draggable: boolean;
17
+ readonly resizable: boolean;
18
+ }[];
19
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=update_workspace_request.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update_workspace_request.js","sourceRoot":"","sources":["../../../../../../packages/markets/src/domain/entities/update_workspace_request.ts"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ import { Widget } from './widget';
2
+ export default interface UserWidgets {
3
+ readonly id: string;
4
+ readonly widgets: Widget[];
5
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=user_widgets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user_widgets.js","sourceRoot":"","sources":["../../../../../../packages/markets/src/domain/entities/user_widgets.ts"],"names":[],"mappings":""}
@@ -1,4 +1,5 @@
1
- export type WidgetType = 'DYNAMIC_TABLE' | 'PREDEFINED_TABLE' | 'CUSTOM_TABLE' | 'NEWS_LIST' | 'TICKER_TAPE' | 'CHART' | 'UNKNOWN';
1
+ import { Instrument } from './instrument';
2
+ export type WidgetType = 'FINANCIAL_STATEMENTS' | 'DYNAMIC_TABLE' | 'PREDEFINED_TABLE' | 'CUSTOM_TABLE' | 'NEWS_LIST' | 'TICKER_TAPE' | 'CHART' | 'SHORT_SALES' | 'MARKET_TOTAL' | 'TRADED_PACKAGES' | 'BROKERAGE_TRADES' | 'BROKERAGE_CONCENTRATION' | 'BROKERAGE_PARTICIPATION' | 'DECREED_RIGHTS_SEARCHER' | 'INDICES_COMPONENTS' | 'UNKNOWN';
2
3
  export interface WidgetLayout {
3
4
  readonly x: number;
4
5
  readonly y: number;
@@ -13,6 +14,10 @@ export interface WidgetSize {
13
14
  readonly minHeight: number;
14
15
  readonly maxWidth: number;
15
16
  readonly maxHeight: number;
17
+ readonly x: number;
18
+ readonly y: number;
19
+ readonly draggable: boolean;
20
+ readonly resizable: boolean;
16
21
  }
17
22
  export interface WidgetTableColumn {
18
23
  readonly id: string;
@@ -35,6 +40,74 @@ export interface WidgetTickerConfiguration {
35
40
  readonly visible: boolean;
36
41
  readonly speed: number;
37
42
  }
43
+ export interface WidgetDynamicTableConfiguration {
44
+ readonly period: number;
45
+ readonly instrumentLimit: number;
46
+ readonly field: string;
47
+ readonly condition: string;
48
+ readonly marketTypeId: number;
49
+ readonly valueTypeIds: number[];
50
+ readonly exchangeId: number;
51
+ readonly scope: string;
52
+ readonly hasActivity: string;
53
+ readonly isFiltered: string;
54
+ readonly operatingCompany: string;
55
+ readonly isYields: boolean;
56
+ }
57
+ export interface WidgetChartConfiguration {
58
+ readonly id: string;
59
+ readonly globalConfiguration: string;
60
+ }
61
+ export interface WidgetMarketTotalConfiguration {
62
+ readonly id: string;
63
+ readonly scope: string;
64
+ }
65
+ export interface WidgetTradedPackagesConfiguration {
66
+ readonly id: string;
67
+ readonly scope: string;
68
+ }
69
+ export interface WidgetBrokerageTradesConfiguration {
70
+ readonly id: string;
71
+ readonly scope: string;
72
+ readonly broker: string;
73
+ readonly symbol: string;
74
+ readonly concertationType: string;
75
+ readonly limit: string;
76
+ readonly offset: string;
77
+ readonly operationType: string;
78
+ readonly order: string;
79
+ }
80
+ export interface WidgetBrokerageConcentrationConfiguration {
81
+ readonly id: string;
82
+ readonly scope: string;
83
+ }
84
+ export interface WidgetBrokerageParticipationConfiguration {
85
+ readonly id: string;
86
+ readonly broker: string;
87
+ readonly instrumentType: string;
88
+ readonly crosses: boolean;
89
+ readonly purchases: boolean;
90
+ readonly sales: boolean;
91
+ readonly totals: boolean;
92
+ readonly symbol: string;
93
+ }
94
+ export interface WidgetDecreedSearchConfiguration {
95
+ readonly id: string;
96
+ readonly scope: string;
97
+ readonly endDate: string;
98
+ readonly issuer: string;
99
+ readonly limit: number;
100
+ readonly offset: number;
101
+ readonly startDate: string;
102
+ readonly type: string;
103
+ }
104
+ export interface WidgetIndicesComponentsConfiguration {
105
+ readonly id: string;
106
+ readonly scope: string;
107
+ readonly component: string;
108
+ readonly sector: string;
109
+ readonly type: string;
110
+ }
38
111
  export interface Widget {
39
112
  readonly id: string;
40
113
  readonly name: string;
@@ -43,4 +116,14 @@ export interface Widget {
43
116
  readonly size: WidgetSize;
44
117
  readonly tableColumns: WidgetTableColumn[];
45
118
  readonly tickerConfiguration: WidgetTickerConfiguration;
119
+ readonly instruments: Instrument[];
120
+ readonly dynamicTableConfiguration: WidgetDynamicTableConfiguration;
121
+ readonly chartConfiguration: WidgetChartConfiguration;
122
+ readonly marketTotalConfiguration: WidgetMarketTotalConfiguration;
123
+ readonly tradedPackagesConfiguration: WidgetTradedPackagesConfiguration;
124
+ readonly brokerageTradesConfiguration: WidgetBrokerageTradesConfiguration;
125
+ readonly brokerageConcentrationConfiguration: WidgetBrokerageConcentrationConfiguration;
126
+ readonly brokerageParticipationConfiguration: WidgetBrokerageParticipationConfiguration;
127
+ readonly decreedRightsSearcherConfiguration: WidgetDecreedSearchConfiguration;
128
+ readonly indicesComponentsConfiguration: WidgetIndicesComponentsConfiguration;
46
129
  }
@@ -0,0 +1,15 @@
1
+ export interface WidgetSizeConfig {
2
+ readonly width: number;
3
+ readonly height: number;
4
+ readonly minWidth: number;
5
+ readonly minHeight: number;
6
+ readonly maxWidth: number;
7
+ readonly maxHeight: number;
8
+ readonly x: number;
9
+ readonly y: number;
10
+ }
11
+ export interface WidgetSizeConfigCreate {
12
+ readonly create: {
13
+ readonly node: WidgetSizeConfig;
14
+ };
15
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=widget_layout_config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"widget_layout_config.js","sourceRoot":"","sources":["../../../../../../packages/markets/src/domain/entities/widget_layout_config.ts"],"names":[],"mappings":""}
@@ -0,0 +1,6 @@
1
+ export interface WidgetLayoutConfig {
2
+ readonly x: number;
3
+ readonly y: number;
4
+ readonly draggable: boolean;
5
+ readonly resizable: boolean;
6
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=widget_size_config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"widget_size_config.js","sourceRoot":"","sources":["../../../../../../packages/markets/src/domain/entities/widget_size_config.ts"],"names":[],"mappings":""}
@@ -1,4 +1,13 @@
1
1
  export interface Workspace {
2
2
  readonly id: string;
3
3
  readonly name: string;
4
+ readonly order?: number;
5
+ readonly createdAt?: string;
6
+ readonly updatedAt?: string;
7
+ readonly widgets?: {
8
+ readonly id: string;
9
+ readonly size: {
10
+ id: string;
11
+ };
12
+ }[];
4
13
  }
@@ -3,8 +3,11 @@ import CreateInstrumentRequest from '../entities/create_instrument_request';
3
3
  import CreateWidgetRequest from '../entities/create_widget_request';
4
4
  import CreateWorkspaceRequest from '../entities/create_workspace_request';
5
5
  import DeleteWorkspaceRequest from '../entities/delete_workspace_request';
6
+ import DuplicateWidgetRequest from '../entities/duplicate_widget_request';
7
+ import DuplicateWorkspaceRequest from '../entities/duplicate_workspace_request';
6
8
  import { GetInstrumentsRequest } from '../entities/get_instruments_request';
7
9
  import { GetProjectWidgetsRequest } from '../entities/get_project_widgets_request';
10
+ import GetUserWidgetsRequest from '../entities/get_user_widgets_request';
8
11
  import GetUserWorkspacesRequest from '../entities/get_user_workspaces_request';
9
12
  import GetWorkspaceRequest from '../entities/get_workspace_request';
10
13
  import { GetWorkspacesByUserRequest } from '../entities/get_workspaces_by_user_request';
@@ -13,17 +16,25 @@ import { InstrumentReportFinancialReasons } from '../entities/instrument_report_
13
16
  import { InstrumentReportFinancialReasonsRequest } from '../entities/instrument_report_financial_reasons_request';
14
17
  import { ProjectWidgetsContainer } from '../entities/project_widgets_container';
15
18
  import SearchInstrumentRequest from '../entities/search_instruments_request';
19
+ import UpdateWidgetChartRequest from '../entities/update_widget_chart_request';
16
20
  import UpdateWidgetInstrumentsRequest from '../entities/update_widget_instruments_reques';
21
+ import UpdateWorkspaceRequest from '../entities/update_workspace_request';
22
+ import UserWidgets from '../entities/user_widgets';
17
23
  import UserWorkspaces from '../entities/user_workspaces';
18
24
  import { WorkspaceWidgets } from '../entities/workspace_widgets';
19
25
  import { WorkspacesContainer } from '../entities/workspaces_container';
20
26
  export default interface MarketsRepository {
21
27
  getWorkspace(request: GetWorkspaceRequest): Promise<WorkspaceWidgets>;
22
28
  getUserWorkspaces(request: GetUserWorkspacesRequest): Promise<UserWorkspaces>;
29
+ getUserWidgets(request: GetUserWidgetsRequest): Promise<UserWidgets>;
23
30
  createWorkspace(request: CreateWorkspaceRequest): Promise<Workspace>;
31
+ updateWorkspace(request: UpdateWorkspaceRequest): Promise<Workspace>;
24
32
  deleteWorkspace(request: DeleteWorkspaceRequest): Promise<string>;
33
+ duplicateWorkspace(request: DuplicateWorkspaceRequest): Promise<Workspace>;
25
34
  createWidget(request: CreateWidgetRequest): Promise<Widget>;
35
+ duplicateWidget(request: DuplicateWidgetRequest): Promise<Widget>;
26
36
  updateWidgetInstruments(request: UpdateWidgetInstrumentsRequest): Promise<Instrument[]>;
37
+ updateWidgetChart(request: UpdateWidgetChartRequest): Promise<string>;
27
38
  deleteWidget(request: string): Promise<string>;
28
39
  createInstrument(request: CreateInstrumentRequest): Promise<Instrument>;
29
40
  deleteInstrument(request: string): Promise<string>;
@@ -32,10 +43,12 @@ export default interface MarketsRepository {
32
43
  getProjectWidgets(request: GetProjectWidgetsRequest): Promise<ProjectWidgetsContainer>;
33
44
  getInstruments(request: GetInstrumentsRequest): Promise<InstrumentsResponse>;
34
45
  getInstrumentFields(request: string): Promise<InstrumentFields>;
46
+ getInstrumentMultipleFields(request: string): Promise<InstrumentFields[]>;
35
47
  searchInstruments(request: SearchInstrumentRequest): Promise<SearchResultItem[]>;
36
48
  getInstrumentDetailFinancialReasons(request: InstrumentDetailFinancialReasonsRequest): Promise<InstrumentDetailFinancialReasons[]>;
37
49
  getInstrumentDetailFinancialAnnual(request: InstrumentDetailFinancialAnnualRequest): Promise<InstrumentDetailFinancial[]>;
38
50
  getInstrumentDetailFinancialQuartely(request: InstrumentDetailFinancialQuarterlyRequest): Promise<InstrumentDetailFinancial[]>;
39
51
  getInstrumentDetailProfile(request: InstrumentDetailProfileRequest): Promise<InstrumentDetailProfile>;
40
52
  getInstrumentReportFinancialReasons(request: InstrumentReportFinancialReasonsRequest): Promise<InstrumentReportFinancialReasons>;
53
+ getWorkspacesByProjectId(request: GetWorkspacesRequest): Promise<WorkspacesContainer>;
41
54
  }
@@ -11,8 +11,18 @@ class CreateWidgetUseCase {
11
11
  if (!request) {
12
12
  throw new core_1.SdkError(core_1.SdkErrorType.REQUEST_OBJECT_IS_REQUIRED);
13
13
  }
14
- if (!request.workspaceId) {
15
- throw new core_1.SdkError(core_1.SdkErrorType.INVALID_WORKSPACE_ID);
14
+ // Validate that exactly one target is provided (userId OR workspaceId)
15
+ const hasUserId = request.userId !== undefined &&
16
+ request.userId !== null &&
17
+ request.userId !== '';
18
+ const hasWorkspaceId = request.workspaceId !== undefined &&
19
+ request.workspaceId !== null &&
20
+ request.workspaceId !== '';
21
+ if (!hasUserId && !hasWorkspaceId) {
22
+ throw new core_1.SdkError(core_1.SdkErrorType.INVALID_WIDGET_TARGET, 'Either userId or workspaceId must be provided');
23
+ }
24
+ if (hasUserId && hasWorkspaceId) {
25
+ throw new core_1.SdkError(core_1.SdkErrorType.INVALID_WIDGET_TARGET, 'Cannot specify both userId and workspaceId. Only one target is allowed');
16
26
  }
17
27
  return yield this.repository.createWidget(request);
18
28
  });
@@ -1 +1 @@
1
- {"version":3,"file":"create_widget_use_case.js","sourceRoot":"","sources":["../../../../../../packages/markets/src/domain/use_cases/create_widget_use_case.ts"],"names":[],"mappings":";;;AAAA,4CAAwE;AAMxE,MAAqB,mBAAmB;IAGtC,YAA6B,UAA6B;QAA7B,eAAU,GAAV,UAAU,CAAmB;IAAG,CAAC;IAExD,OAAO,CAAC,OAA6B;;YACzC,IAAI,CAAC,OAAO,EAAE;gBACZ,MAAM,IAAI,eAAQ,CAAC,mBAAY,CAAC,0BAA0B,CAAC,CAAC;aAC7D;YACD,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE;gBACxB,MAAM,IAAI,eAAQ,CAAC,mBAAY,CAAC,oBAAoB,CAAC,CAAC;aACvD;YACD,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QACrD,CAAC;KAAA;CACF;AAdD,sCAcC"}
1
+ {"version":3,"file":"create_widget_use_case.js","sourceRoot":"","sources":["../../../../../../packages/markets/src/domain/use_cases/create_widget_use_case.ts"],"names":[],"mappings":";;;AAAA,4CAAwE;AAMxE,MAAqB,mBAAmB;IAGtC,YAA6B,UAA6B;QAA7B,eAAU,GAAV,UAAU,CAAmB;IAAG,CAAC;IAExD,OAAO,CAAC,OAA6B;;YACzC,IAAI,CAAC,OAAO,EAAE;gBACZ,MAAM,IAAI,eAAQ,CAAC,mBAAY,CAAC,0BAA0B,CAAC,CAAC;aAC7D;YAED,uEAAuE;YACvE,MAAM,SAAS,GACb,OAAO,CAAC,MAAM,KAAK,SAAS;gBAC5B,OAAO,CAAC,MAAM,KAAK,IAAI;gBACvB,OAAO,CAAC,MAAM,KAAK,EAAE,CAAC;YACxB,MAAM,cAAc,GAClB,OAAO,CAAC,WAAW,KAAK,SAAS;gBACjC,OAAO,CAAC,WAAW,KAAK,IAAI;gBAC5B,OAAO,CAAC,WAAW,KAAK,EAAE,CAAC;YAE7B,IAAI,CAAC,SAAS,IAAI,CAAC,cAAc,EAAE;gBACjC,MAAM,IAAI,eAAQ,CAChB,mBAAY,CAAC,qBAAqB,EAClC,+CAA+C,CAChD,CAAC;aACH;YAED,IAAI,SAAS,IAAI,cAAc,EAAE;gBAC/B,MAAM,IAAI,eAAQ,CAChB,mBAAY,CAAC,qBAAqB,EAClC,wEAAwE,CACzE,CAAC;aACH;YAED,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QACrD,CAAC;KAAA;CACF;AApCD,sCAoCC"}
@@ -0,0 +1,8 @@
1
+ import { Widget } from '../entities';
2
+ import DuplicateWidgetRequest from '../entities/duplicate_widget_request';
3
+ import MarketsRepository from '../repositories/markets_repository';
4
+ export default class DuplicateWidgetUseCase {
5
+ private readonly repository;
6
+ constructor(repository: MarketsRepository);
7
+ execute(request: DuplicateWidgetRequest): Promise<Widget>;
8
+ }
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ class DuplicateWidgetUseCase {
5
+ constructor(repository) {
6
+ this.repository = repository;
7
+ }
8
+ execute(request) {
9
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
10
+ return this.repository.duplicateWidget(request);
11
+ });
12
+ }
13
+ }
14
+ exports.default = DuplicateWidgetUseCase;
15
+ //# sourceMappingURL=duplicate_widget_use_case.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"duplicate_widget_use_case.js","sourceRoot":"","sources":["../../../../../../packages/markets/src/domain/use_cases/duplicate_widget_use_case.ts"],"names":[],"mappings":";;;AAIA,MAAqB,sBAAsB;IACzC,YAA6B,UAA6B;QAA7B,eAAU,GAAV,UAAU,CAAmB;IAAG,CAAC;IAExD,OAAO,CAAC,OAA+B;;YAC3C,OAAO,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAClD,CAAC;KAAA;CACF;AAND,yCAMC"}
@@ -0,0 +1,8 @@
1
+ import { Workspace } from '../entities';
2
+ import DuplicateWorkspaceRequest from '../entities/duplicate_workspace_request';
3
+ import MarketsRepository from '../repositories/markets_repository';
4
+ export default class DuplicateWorkspaceUseCase {
5
+ private readonly repository;
6
+ constructor(repository: MarketsRepository);
7
+ execute(request: DuplicateWorkspaceRequest): Promise<Workspace>;
8
+ }
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ class DuplicateWorkspaceUseCase {
5
+ constructor(repository) {
6
+ this.repository = repository;
7
+ }
8
+ execute(request) {
9
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
10
+ return this.repository.duplicateWorkspace(request);
11
+ });
12
+ }
13
+ }
14
+ exports.default = DuplicateWorkspaceUseCase;
15
+ //# sourceMappingURL=duplicate_workspace_use_case.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"duplicate_workspace_use_case.js","sourceRoot":"","sources":["../../../../../../packages/markets/src/domain/use_cases/duplicate_workspace_use_case.ts"],"names":[],"mappings":";;;AAIA,MAAqB,yBAAyB;IAC5C,YAA6B,UAA6B;QAA7B,eAAU,GAAV,UAAU,CAAmB;IAAG,CAAC;IAExD,OAAO,CAAC,OAAkC;;YAC9C,OAAO,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;QACrD,CAAC;KAAA;CACF;AAND,4CAMC"}
@@ -0,0 +1,7 @@
1
+ import { InstrumentFields } from '../entities';
2
+ import MarketsRepository from '../repositories/markets_repository';
3
+ export default class GetInstrumentMultipleFieldsUseCase {
4
+ private readonly repository;
5
+ constructor(repository: MarketsRepository);
6
+ execute(request: string): Promise<InstrumentFields[]>;
7
+ }
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ class GetInstrumentMultipleFieldsUseCase {
5
+ constructor(repository) {
6
+ this.repository = repository;
7
+ }
8
+ execute(request) {
9
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
10
+ return this.repository.getInstrumentMultipleFields(request);
11
+ });
12
+ }
13
+ }
14
+ exports.default = GetInstrumentMultipleFieldsUseCase;
15
+ //# sourceMappingURL=get_instrument_multiple_fields_use_case.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get_instrument_multiple_fields_use_case.js","sourceRoot":"","sources":["../../../../../../packages/markets/src/domain/use_cases/get_instrument_multiple_fields_use_case.ts"],"names":[],"mappings":";;;AAGA,MAAqB,kCAAkC;IACrD,YAA6B,UAA6B;QAA7B,eAAU,GAAV,UAAU,CAAmB;IAAG,CAAC;IAExD,OAAO,CAAC,OAAe;;YAC3B,OAAO,IAAI,CAAC,UAAU,CAAC,2BAA2B,CAAC,OAAO,CAAC,CAAC;QAC9D,CAAC;KAAA;CACF;AAND,qDAMC"}
@@ -0,0 +1,9 @@
1
+ import { BaseUseCase } from '@infosel-sdk/core';
2
+ import GetUserWidgetsRequest from '../entities/get_user_widgets_request';
3
+ import UserWidgets from '../entities/user_widgets';
4
+ import MarketsRepository from '../repositories/markets_repository';
5
+ export default class GetUserWidgetsUseCase implements BaseUseCase<GetUserWidgetsRequest, UserWidgets> {
6
+ private readonly repository;
7
+ constructor(repository: MarketsRepository);
8
+ execute(request?: GetUserWidgetsRequest): Promise<UserWidgets>;
9
+ }
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const core_1 = require("@infosel-sdk/core");
5
+ class GetUserWidgetsUseCase {
6
+ constructor(repository) {
7
+ this.repository = repository;
8
+ }
9
+ execute(request) {
10
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
11
+ if (!request) {
12
+ throw new core_1.SdkError(core_1.SdkErrorType.REQUEST_OBJECT_IS_REQUIRED);
13
+ }
14
+ if (!request.id) {
15
+ throw new core_1.SdkError(core_1.SdkErrorType.INVALID_PROJECT_ID);
16
+ }
17
+ return yield this.repository.getUserWidgets(request);
18
+ });
19
+ }
20
+ }
21
+ exports.default = GetUserWidgetsUseCase;
22
+ //# sourceMappingURL=get_user_widgets_use_case.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get_user_widgets_use_case.js","sourceRoot":"","sources":["../../../../../../packages/markets/src/domain/use_cases/get_user_widgets_use_case.ts"],"names":[],"mappings":";;;AAAA,4CAAwE;AAMxE,MAAqB,qBAAqB;IAGxC,YAA6B,UAA6B;QAA7B,eAAU,GAAV,UAAU,CAAmB;IAAG,CAAC;IAExD,OAAO,CAAC,OAA+B;;YAC3C,IAAI,CAAC,OAAO,EAAE;gBACZ,MAAM,IAAI,eAAQ,CAAC,mBAAY,CAAC,0BAA0B,CAAC,CAAC;aAC7D;YACD,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE;gBACf,MAAM,IAAI,eAAQ,CAAC,mBAAY,CAAC,kBAAkB,CAAC,CAAC;aACrD;YACD,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QACvD,CAAC;KAAA;CACF;AAdD,wCAcC"}
@@ -0,0 +1,9 @@
1
+ import { BaseUseCase } from '@infosel-sdk/core';
2
+ import { GetWorkspacesRequest } from '../entities/get_workspaces_request';
3
+ import { WorkspacesContainer } from '../entities/workspaces_container';
4
+ import MarketsRepository from '../repositories/markets_repository';
5
+ export default class GetWorkspacesByProjectIdUseCase implements BaseUseCase<GetWorkspacesRequest, WorkspacesContainer> {
6
+ private readonly repository;
7
+ constructor(repository: MarketsRepository);
8
+ execute(request?: GetWorkspacesRequest): Promise<WorkspacesContainer>;
9
+ }
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const core_1 = require("@infosel-sdk/core");
5
+ class GetWorkspacesByProjectIdUseCase {
6
+ constructor(repository) {
7
+ this.repository = repository;
8
+ }
9
+ execute(request) {
10
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
11
+ if (!request) {
12
+ throw new core_1.SdkError(core_1.SdkErrorType.REQUEST_OBJECT_IS_REQUIRED);
13
+ }
14
+ return yield this.repository.getWorkspacesByProjectId(request);
15
+ });
16
+ }
17
+ }
18
+ exports.default = GetWorkspacesByProjectIdUseCase;
19
+ //# sourceMappingURL=get_workspaces_by_project_id_use_case.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get_workspaces_by_project_id_use_case.js","sourceRoot":"","sources":["../../../../../../packages/markets/src/domain/use_cases/get_workspaces_by_project_id_use_case.ts"],"names":[],"mappings":";;;AAAA,4CAAwE;AAMxE,MAAqB,+BAA+B;IAGlD,YAA6B,UAA6B;QAA7B,eAAU,GAAV,UAAU,CAAmB;IAAG,CAAC;IAExD,OAAO,CAAC,OAA8B;;YAC1C,IAAI,CAAC,OAAO,EAAE;gBACZ,MAAM,IAAI,eAAQ,CAAC,mBAAY,CAAC,0BAA0B,CAAC,CAAC;aAC7D;YACD,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC;QACjE,CAAC;KAAA;CACF;AAXD,kDAWC"}
@@ -14,9 +14,6 @@ class SearchInstrumentsUseCase {
14
14
  if (request.limit <= 0) {
15
15
  throw new core_1.SdkError(core_1.SdkErrorType.INVALID_SEARCH_LIMIT);
16
16
  }
17
- if (request.query.trim().length === 0) {
18
- throw new core_1.SdkError(core_1.SdkErrorType.INVALID_SEARCH_QUERY);
19
- }
20
17
  return yield this.repository.searchInstruments(request);
21
18
  });
22
19
  }
@@ -1 +1 @@
1
- {"version":3,"file":"search_instruments_use_case.js","sourceRoot":"","sources":["../../../../../../packages/markets/src/domain/use_cases/search_instruments_use_case.ts"],"names":[],"mappings":";;;AAAA,4CAAwE;AAMxE,MAAqB,wBAAwB;IAG3C,YAA6B,UAA6B;QAA7B,eAAU,GAAV,UAAU,CAAmB;IAAG,CAAC;IAExD,OAAO,CACX,OAAiC;;YAEjC,IAAI,CAAC,OAAO,EAAE;gBACZ,MAAM,IAAI,eAAQ,CAAC,mBAAY,CAAC,0BAA0B,CAAC,CAAC;aAC7D;YACD,IAAI,OAAO,CAAC,KAAK,IAAI,CAAC,EAAE;gBACtB,MAAM,IAAI,eAAQ,CAAC,mBAAY,CAAC,oBAAoB,CAAC,CAAC;aACvD;YACD,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE;gBACrC,MAAM,IAAI,eAAQ,CAAC,mBAAY,CAAC,oBAAoB,CAAC,CAAC;aACvD;YACD,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAC1D,CAAC;KAAA;CACF;AAnBD,2CAmBC"}
1
+ {"version":3,"file":"search_instruments_use_case.js","sourceRoot":"","sources":["../../../../../../packages/markets/src/domain/use_cases/search_instruments_use_case.ts"],"names":[],"mappings":";;;AAAA,4CAAwE;AAMxE,MAAqB,wBAAwB;IAG3C,YAA6B,UAA6B;QAA7B,eAAU,GAAV,UAAU,CAAmB;IAAG,CAAC;IAExD,OAAO,CACX,OAAiC;;YAEjC,IAAI,CAAC,OAAO,EAAE;gBACZ,MAAM,IAAI,eAAQ,CAAC,mBAAY,CAAC,0BAA0B,CAAC,CAAC;aAC7D;YACD,IAAI,OAAO,CAAC,KAAK,IAAI,CAAC,EAAE;gBACtB,MAAM,IAAI,eAAQ,CAAC,mBAAY,CAAC,oBAAoB,CAAC,CAAC;aACvD;YACD,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAC1D,CAAC;KAAA;CACF;AAhBD,2CAgBC"}
@@ -0,0 +1,7 @@
1
+ import UpdateWidgetChartRequest from '../entities/update_widget_chart_request';
2
+ import MarketsRepository from '../repositories/markets_repository';
3
+ export default class UpdateWidgetChartUseCase {
4
+ private readonly repository;
5
+ constructor(repository: MarketsRepository);
6
+ execute(request: UpdateWidgetChartRequest): Promise<string>;
7
+ }
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ class UpdateWidgetChartUseCase {
5
+ constructor(repository) {
6
+ this.repository = repository;
7
+ }
8
+ execute(request) {
9
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
10
+ return yield this.repository.updateWidgetChart(request);
11
+ });
12
+ }
13
+ }
14
+ exports.default = UpdateWidgetChartUseCase;
15
+ //# sourceMappingURL=update_widget_chart_use_case.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update_widget_chart_use_case.js","sourceRoot":"","sources":["../../../../../../packages/markets/src/domain/use_cases/update_widget_chart_use_case.ts"],"names":[],"mappings":";;;AAGA,MAAqB,wBAAwB;IAC3C,YAA6B,UAA6B;QAA7B,eAAU,GAAV,UAAU,CAAmB;IAAG,CAAC;IAExD,OAAO,CAAC,OAAiC;;YAC7C,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAC1D,CAAC;KAAA;CACF;AAND,2CAMC"}
@@ -0,0 +1,8 @@
1
+ import { Workspace } from '../entities';
2
+ import UpdateWorkspaceRequest from '../entities/update_workspace_request';
3
+ import MarketsRepository from '../repositories/markets_repository';
4
+ export default class UpdateWorkspaceUseCase {
5
+ private readonly repository;
6
+ constructor(repository: MarketsRepository);
7
+ execute(request: UpdateWorkspaceRequest): Promise<Workspace>;
8
+ }
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ class UpdateWorkspaceUseCase {
5
+ constructor(repository) {
6
+ this.repository = repository;
7
+ }
8
+ execute(request) {
9
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
10
+ return this.repository.updateWorkspace(request);
11
+ });
12
+ }
13
+ }
14
+ exports.default = UpdateWorkspaceUseCase;
15
+ //# sourceMappingURL=update_workspace_use_case.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update_workspace_use_case.js","sourceRoot":"","sources":["../../../../../../packages/markets/src/domain/use_cases/update_workspace_use_case.ts"],"names":[],"mappings":";;;AAIA,MAAqB,sBAAsB;IACzC,YAA6B,UAA6B;QAA7B,eAAU,GAAV,UAAU,CAAmB;IAAG,CAAC;IAExD,OAAO,CAAC,OAA+B;;YAC3C,OAAO,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAClD,CAAC;KAAA;CACF;AAND,yCAMC"}