@wealthfolio/addon-sdk 1.0.0 → 2.0.0
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.
- package/CHANGELOG.md +19 -8
- package/README.md +195 -145
- package/dist/{chunk-3OBZP7TN.mjs → chunk-TB3G7LNW.js} +10 -40
- package/dist/chunk-TB3G7LNW.js.map +1 -0
- package/dist/{index.mjs → index.js} +33 -22
- package/dist/index.js.map +1 -0
- package/dist/{permissions.mjs → permissions.js} +2 -2
- package/dist/src/data-types.d.ts +513 -0
- package/dist/src/host-api.d.ts +556 -0
- package/dist/src/index.d.ts +28 -0
- package/dist/src/manifest.d.ts +176 -0
- package/dist/{permissions.d.mts → src/permissions.d.ts} +16 -18
- package/dist/src/query-keys.d.ts +44 -0
- package/dist/src/types.d.ts +88 -0
- package/dist/src/utils.d.ts +24 -0
- package/dist/src/version.d.ts +4 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/dist/types.js +1 -0
- package/package.json +26 -16
- package/dist/chunk-3OBZP7TN.mjs.map +0 -1
- package/dist/index.d.mts +0 -279
- package/dist/index.mjs.map +0 -1
- package/dist/types-CxtChQdm.d.mts +0 -1137
- package/dist/types.d.mts +0 -2
- package/dist/types.mjs +0 -1
- /package/dist/{permissions.mjs.map → permissions.js.map} +0 -0
- /package/dist/{types.mjs.map → types.js.map} +0 -0
|
@@ -0,0 +1,513 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Comprehensive data types for Wealthfolio addons
|
|
3
|
+
* These types mirror the main application types to ensure compatibility
|
|
4
|
+
*/
|
|
5
|
+
export declare const ActivityType: {
|
|
6
|
+
readonly BUY: "BUY";
|
|
7
|
+
readonly SELL: "SELL";
|
|
8
|
+
readonly DIVIDEND: "DIVIDEND";
|
|
9
|
+
readonly INTEREST: "INTEREST";
|
|
10
|
+
readonly DEPOSIT: "DEPOSIT";
|
|
11
|
+
readonly WITHDRAWAL: "WITHDRAWAL";
|
|
12
|
+
readonly ADD_HOLDING: "ADD_HOLDING";
|
|
13
|
+
readonly REMOVE_HOLDING: "REMOVE_HOLDING";
|
|
14
|
+
readonly TRANSFER_IN: "TRANSFER_IN";
|
|
15
|
+
readonly TRANSFER_OUT: "TRANSFER_OUT";
|
|
16
|
+
readonly FEE: "FEE";
|
|
17
|
+
readonly TAX: "TAX";
|
|
18
|
+
readonly SPLIT: "SPLIT";
|
|
19
|
+
};
|
|
20
|
+
export type ActivityType = (typeof ActivityType)[keyof typeof ActivityType];
|
|
21
|
+
export declare const DataSource: {
|
|
22
|
+
readonly YAHOO: "YAHOO";
|
|
23
|
+
readonly MANUAL: "MANUAL";
|
|
24
|
+
};
|
|
25
|
+
export type DataSource = (typeof DataSource)[keyof typeof DataSource];
|
|
26
|
+
export declare const AccountType: {
|
|
27
|
+
readonly SECURITIES: "SECURITIES";
|
|
28
|
+
readonly CASH: "CASH";
|
|
29
|
+
readonly CRYPTOCURRENCY: "CRYPTOCURRENCY";
|
|
30
|
+
};
|
|
31
|
+
export type AccountType = (typeof AccountType)[keyof typeof AccountType];
|
|
32
|
+
export declare const HoldingType: {
|
|
33
|
+
readonly CASH: "cash";
|
|
34
|
+
readonly SECURITY: "security";
|
|
35
|
+
};
|
|
36
|
+
export type HoldingType = (typeof HoldingType)[keyof typeof HoldingType];
|
|
37
|
+
export type ImportRequiredField = 'symbol' | 'quantity' | 'price' | 'date' | 'type';
|
|
38
|
+
export interface Account {
|
|
39
|
+
id: string;
|
|
40
|
+
name: string;
|
|
41
|
+
accountType: AccountType;
|
|
42
|
+
group?: string;
|
|
43
|
+
balance: number;
|
|
44
|
+
currency: string;
|
|
45
|
+
isDefault: boolean;
|
|
46
|
+
isActive: boolean;
|
|
47
|
+
createdAt: Date;
|
|
48
|
+
updatedAt: Date;
|
|
49
|
+
platformId?: string;
|
|
50
|
+
}
|
|
51
|
+
export interface Activity {
|
|
52
|
+
id: string;
|
|
53
|
+
type: ActivityType;
|
|
54
|
+
date: Date | string;
|
|
55
|
+
quantity: number;
|
|
56
|
+
unitPrice: number;
|
|
57
|
+
currency: string;
|
|
58
|
+
fee: number;
|
|
59
|
+
isDraft: boolean;
|
|
60
|
+
comment?: string | null;
|
|
61
|
+
accountId?: string | null;
|
|
62
|
+
createdAt: Date | string;
|
|
63
|
+
symbolProfileId: string;
|
|
64
|
+
updatedAt: Date | string;
|
|
65
|
+
}
|
|
66
|
+
export interface ActivityDetails {
|
|
67
|
+
id: string;
|
|
68
|
+
activityType: ActivityType;
|
|
69
|
+
date: Date;
|
|
70
|
+
quantity: number;
|
|
71
|
+
unitPrice: number;
|
|
72
|
+
amount: number;
|
|
73
|
+
fee: number;
|
|
74
|
+
currency: string;
|
|
75
|
+
isDraft: boolean;
|
|
76
|
+
comment?: string;
|
|
77
|
+
createdAt: Date;
|
|
78
|
+
assetId: string;
|
|
79
|
+
updatedAt: Date;
|
|
80
|
+
accountId: string;
|
|
81
|
+
accountName: string;
|
|
82
|
+
accountCurrency: string;
|
|
83
|
+
assetSymbol: string;
|
|
84
|
+
assetName?: string;
|
|
85
|
+
assetDataSource?: DataSource;
|
|
86
|
+
subRows?: ActivityDetails[];
|
|
87
|
+
}
|
|
88
|
+
export interface ActivitySearchResponse {
|
|
89
|
+
data: ActivityDetails[];
|
|
90
|
+
meta: {
|
|
91
|
+
totalRowCount: number;
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
export interface ActivityCreate {
|
|
95
|
+
id?: string;
|
|
96
|
+
accountId: string;
|
|
97
|
+
activityType: string;
|
|
98
|
+
activityDate: string | Date;
|
|
99
|
+
assetId?: string;
|
|
100
|
+
quantity?: number;
|
|
101
|
+
unitPrice?: number;
|
|
102
|
+
amount?: number;
|
|
103
|
+
currency?: string;
|
|
104
|
+
fee?: number;
|
|
105
|
+
isDraft: boolean;
|
|
106
|
+
comment?: string | null;
|
|
107
|
+
}
|
|
108
|
+
export interface ActivityUpdate extends ActivityCreate {
|
|
109
|
+
id: string;
|
|
110
|
+
}
|
|
111
|
+
export interface ActivityBulkMutationRequest {
|
|
112
|
+
creates?: ActivityCreate[];
|
|
113
|
+
updates?: ActivityUpdate[];
|
|
114
|
+
deleteIds?: string[];
|
|
115
|
+
}
|
|
116
|
+
export interface ActivityBulkMutationError {
|
|
117
|
+
id?: string;
|
|
118
|
+
action: string;
|
|
119
|
+
message: string;
|
|
120
|
+
}
|
|
121
|
+
export interface ActivityBulkIdentifierMapping {
|
|
122
|
+
tempId?: string | null;
|
|
123
|
+
activityId: string;
|
|
124
|
+
}
|
|
125
|
+
export interface ActivityBulkMutationResult {
|
|
126
|
+
created: Activity[];
|
|
127
|
+
updated: Activity[];
|
|
128
|
+
deleted: Activity[];
|
|
129
|
+
createdMappings: ActivityBulkIdentifierMapping[];
|
|
130
|
+
errors: ActivityBulkMutationError[];
|
|
131
|
+
}
|
|
132
|
+
export interface ActivityImport {
|
|
133
|
+
id?: string;
|
|
134
|
+
accountId: string;
|
|
135
|
+
currency?: string;
|
|
136
|
+
activityType: ActivityType;
|
|
137
|
+
date?: Date | string;
|
|
138
|
+
symbol: string;
|
|
139
|
+
amount?: number;
|
|
140
|
+
quantity?: number;
|
|
141
|
+
unitPrice?: number;
|
|
142
|
+
fee?: number;
|
|
143
|
+
accountName?: string;
|
|
144
|
+
symbolName?: string;
|
|
145
|
+
errors?: Record<string, string[]>;
|
|
146
|
+
isValid: boolean;
|
|
147
|
+
lineNumber?: number;
|
|
148
|
+
isDraft: boolean;
|
|
149
|
+
comment?: string;
|
|
150
|
+
}
|
|
151
|
+
export interface ImportMappingData {
|
|
152
|
+
accountId: string;
|
|
153
|
+
fieldMappings: Record<string, string>;
|
|
154
|
+
activityMappings: Record<string, string[]>;
|
|
155
|
+
symbolMappings: Record<string, string>;
|
|
156
|
+
accountMappings: Record<string, string>;
|
|
157
|
+
}
|
|
158
|
+
export interface AssetProfile {
|
|
159
|
+
id: string;
|
|
160
|
+
isin: string | null;
|
|
161
|
+
name: string | null;
|
|
162
|
+
assetType: string | null;
|
|
163
|
+
symbol: string;
|
|
164
|
+
symbolMapping: string | null;
|
|
165
|
+
assetClass: string | null;
|
|
166
|
+
assetSubClass: string | null;
|
|
167
|
+
notes: string | null;
|
|
168
|
+
countries: string | null;
|
|
169
|
+
categories: string | null;
|
|
170
|
+
classes: string | null;
|
|
171
|
+
attributes: string | null;
|
|
172
|
+
createdAt: Date;
|
|
173
|
+
currency: string;
|
|
174
|
+
dataSource: string;
|
|
175
|
+
updatedAt: Date;
|
|
176
|
+
sectors: string | null;
|
|
177
|
+
url: string | null;
|
|
178
|
+
}
|
|
179
|
+
export interface QuoteSummary {
|
|
180
|
+
exchange: string;
|
|
181
|
+
shortName: string;
|
|
182
|
+
quoteType: string;
|
|
183
|
+
symbol: string;
|
|
184
|
+
index: string;
|
|
185
|
+
score: number;
|
|
186
|
+
typeDisplay: string;
|
|
187
|
+
longName: string;
|
|
188
|
+
sector?: string;
|
|
189
|
+
industry?: string;
|
|
190
|
+
dataSource?: boolean;
|
|
191
|
+
}
|
|
192
|
+
export interface MarketDataProviderInfo {
|
|
193
|
+
id: string;
|
|
194
|
+
name: string;
|
|
195
|
+
logoFilename: string;
|
|
196
|
+
lastSyncedDate: string | null;
|
|
197
|
+
}
|
|
198
|
+
export interface MarketData {
|
|
199
|
+
createdAt: Date;
|
|
200
|
+
dataSource: string;
|
|
201
|
+
date: Date;
|
|
202
|
+
id: string;
|
|
203
|
+
marketPrice: number;
|
|
204
|
+
state: 'CLOSE';
|
|
205
|
+
symbol: string;
|
|
206
|
+
symbolProfileId: string;
|
|
207
|
+
}
|
|
208
|
+
export interface Tag {
|
|
209
|
+
id: string;
|
|
210
|
+
name: string;
|
|
211
|
+
activityId: string | null;
|
|
212
|
+
}
|
|
213
|
+
export interface ImportValidationResult {
|
|
214
|
+
activities: ActivityImport[];
|
|
215
|
+
validationSummary: {
|
|
216
|
+
totalRows: number;
|
|
217
|
+
validCount: number;
|
|
218
|
+
invalidCount: number;
|
|
219
|
+
};
|
|
220
|
+
}
|
|
221
|
+
export type ValidationResult = {
|
|
222
|
+
status: 'success';
|
|
223
|
+
} | {
|
|
224
|
+
status: 'error';
|
|
225
|
+
errors: string[];
|
|
226
|
+
};
|
|
227
|
+
export interface Sector {
|
|
228
|
+
name: string;
|
|
229
|
+
weight: number;
|
|
230
|
+
}
|
|
231
|
+
export interface Country {
|
|
232
|
+
name: string;
|
|
233
|
+
weight: number;
|
|
234
|
+
}
|
|
235
|
+
export interface Instrument {
|
|
236
|
+
id: string;
|
|
237
|
+
symbol: string;
|
|
238
|
+
name?: string | null;
|
|
239
|
+
currency: string;
|
|
240
|
+
notes?: string | null;
|
|
241
|
+
dataSource?: string | null;
|
|
242
|
+
assetClass?: string | null;
|
|
243
|
+
assetSubclass?: string | null;
|
|
244
|
+
countries?: Country[] | null;
|
|
245
|
+
sectors?: Sector[] | null;
|
|
246
|
+
}
|
|
247
|
+
export interface MonetaryValue {
|
|
248
|
+
local: number;
|
|
249
|
+
base: number;
|
|
250
|
+
}
|
|
251
|
+
export interface Lot {
|
|
252
|
+
id: string;
|
|
253
|
+
positionId: string;
|
|
254
|
+
acquisitionDate: string;
|
|
255
|
+
quantity: number;
|
|
256
|
+
costBasis: number;
|
|
257
|
+
acquisitionPrice: number;
|
|
258
|
+
acquisitionFees: number;
|
|
259
|
+
}
|
|
260
|
+
export interface Position {
|
|
261
|
+
id: string;
|
|
262
|
+
accountId: string;
|
|
263
|
+
assetId: string;
|
|
264
|
+
quantity: number;
|
|
265
|
+
averageCost: number;
|
|
266
|
+
totalCostBasis: number;
|
|
267
|
+
currency: string;
|
|
268
|
+
inceptionDate: string;
|
|
269
|
+
lots: Lot[];
|
|
270
|
+
}
|
|
271
|
+
export interface CashHolding {
|
|
272
|
+
id: string;
|
|
273
|
+
accountId: string;
|
|
274
|
+
currency: string;
|
|
275
|
+
amount: number;
|
|
276
|
+
lastUpdated: string;
|
|
277
|
+
}
|
|
278
|
+
export interface Holding {
|
|
279
|
+
id: string;
|
|
280
|
+
holdingType: HoldingType;
|
|
281
|
+
accountId: string;
|
|
282
|
+
instrument?: Instrument | null;
|
|
283
|
+
quantity: number;
|
|
284
|
+
openDate?: string | Date | null;
|
|
285
|
+
lots?: Lot[] | null;
|
|
286
|
+
localCurrency: string;
|
|
287
|
+
baseCurrency: string;
|
|
288
|
+
fxRate?: number | null;
|
|
289
|
+
marketValue: MonetaryValue;
|
|
290
|
+
costBasis?: MonetaryValue | null;
|
|
291
|
+
price?: number | null;
|
|
292
|
+
unrealizedGain?: MonetaryValue | null;
|
|
293
|
+
unrealizedGainPct?: number | null;
|
|
294
|
+
realizedGain?: MonetaryValue | null;
|
|
295
|
+
realizedGainPct?: number | null;
|
|
296
|
+
totalGain?: MonetaryValue | null;
|
|
297
|
+
totalGainPct?: number | null;
|
|
298
|
+
dayChange?: MonetaryValue | null;
|
|
299
|
+
dayChangePct?: number | null;
|
|
300
|
+
prevCloseValue?: MonetaryValue | null;
|
|
301
|
+
weight: number;
|
|
302
|
+
asOfDate: string;
|
|
303
|
+
}
|
|
304
|
+
export interface Asset {
|
|
305
|
+
id: string;
|
|
306
|
+
isin?: string | null;
|
|
307
|
+
name?: string | null;
|
|
308
|
+
assetType?: string | null;
|
|
309
|
+
symbol: string;
|
|
310
|
+
symbolMapping?: string | null;
|
|
311
|
+
assetClass?: string | null;
|
|
312
|
+
assetSubClass?: string | null;
|
|
313
|
+
notes?: string | null;
|
|
314
|
+
countries?: string | null;
|
|
315
|
+
categories?: string | null;
|
|
316
|
+
classes?: string | null;
|
|
317
|
+
attributes?: string | null;
|
|
318
|
+
createdAt: string;
|
|
319
|
+
updatedAt: string;
|
|
320
|
+
currency: string;
|
|
321
|
+
dataSource: string;
|
|
322
|
+
sectors?: string | null;
|
|
323
|
+
url?: string | null;
|
|
324
|
+
}
|
|
325
|
+
export interface Quote {
|
|
326
|
+
id: string;
|
|
327
|
+
createdAt: string;
|
|
328
|
+
dataSource: string;
|
|
329
|
+
timestamp: string;
|
|
330
|
+
symbol: string;
|
|
331
|
+
open: number;
|
|
332
|
+
high: number;
|
|
333
|
+
low: number;
|
|
334
|
+
volume: number;
|
|
335
|
+
close: number;
|
|
336
|
+
adjclose: number;
|
|
337
|
+
currency: string;
|
|
338
|
+
}
|
|
339
|
+
export interface QuoteUpdate {
|
|
340
|
+
timestamp: string;
|
|
341
|
+
symbol: string;
|
|
342
|
+
open: number;
|
|
343
|
+
high: number;
|
|
344
|
+
low: number;
|
|
345
|
+
volume: number;
|
|
346
|
+
close: number;
|
|
347
|
+
dataSource: string;
|
|
348
|
+
}
|
|
349
|
+
export interface Settings {
|
|
350
|
+
theme: string;
|
|
351
|
+
font: string;
|
|
352
|
+
baseCurrency: string;
|
|
353
|
+
onboardingCompleted: boolean;
|
|
354
|
+
autoUpdateCheckEnabled: boolean;
|
|
355
|
+
}
|
|
356
|
+
export interface SettingsContextType {
|
|
357
|
+
settings: Settings | null;
|
|
358
|
+
isLoading: boolean;
|
|
359
|
+
isError: boolean;
|
|
360
|
+
updateBaseCurrency: (currency: Settings['baseCurrency']) => Promise<void>;
|
|
361
|
+
accountsGrouped: boolean;
|
|
362
|
+
setAccountsGrouped: (value: boolean) => void;
|
|
363
|
+
}
|
|
364
|
+
export interface Goal {
|
|
365
|
+
id: string;
|
|
366
|
+
title: string;
|
|
367
|
+
description?: string;
|
|
368
|
+
targetAmount: number;
|
|
369
|
+
isAchieved?: boolean;
|
|
370
|
+
allocations?: GoalAllocation[];
|
|
371
|
+
}
|
|
372
|
+
export interface GoalAllocation {
|
|
373
|
+
id: string;
|
|
374
|
+
goalId: string;
|
|
375
|
+
accountId: string;
|
|
376
|
+
percentAllocation: number;
|
|
377
|
+
}
|
|
378
|
+
export interface GoalProgress {
|
|
379
|
+
name: string;
|
|
380
|
+
targetValue: number;
|
|
381
|
+
currentValue: number;
|
|
382
|
+
progress: number;
|
|
383
|
+
currency: string;
|
|
384
|
+
}
|
|
385
|
+
export interface IncomeSummary {
|
|
386
|
+
period: string;
|
|
387
|
+
byMonth: Record<string, number>;
|
|
388
|
+
byType: Record<string, number>;
|
|
389
|
+
bySymbol: Record<string, number>;
|
|
390
|
+
byCurrency: Record<string, number>;
|
|
391
|
+
totalIncome: number;
|
|
392
|
+
currency: string;
|
|
393
|
+
monthlyAverage: number;
|
|
394
|
+
yoyGrowth: number | null;
|
|
395
|
+
}
|
|
396
|
+
export interface DateRange {
|
|
397
|
+
from: Date | undefined;
|
|
398
|
+
to: Date | undefined;
|
|
399
|
+
}
|
|
400
|
+
export type TimePeriod = '1D' | '1W' | '1M' | '3M' | '6M' | 'YTD' | '1Y' | '5Y' | 'ALL';
|
|
401
|
+
export interface AccountValuation {
|
|
402
|
+
id: string;
|
|
403
|
+
accountId: string;
|
|
404
|
+
valuationDate: string;
|
|
405
|
+
accountCurrency: string;
|
|
406
|
+
baseCurrency: string;
|
|
407
|
+
fxRateToBase: number;
|
|
408
|
+
cashBalance: number;
|
|
409
|
+
investmentMarketValue: number;
|
|
410
|
+
totalValue: number;
|
|
411
|
+
costBasis: number;
|
|
412
|
+
netContribution: number;
|
|
413
|
+
calculatedAt: string;
|
|
414
|
+
}
|
|
415
|
+
export interface AccountSummaryView {
|
|
416
|
+
accountId: string;
|
|
417
|
+
accountName: string;
|
|
418
|
+
accountType: string;
|
|
419
|
+
accountGroup: string | null;
|
|
420
|
+
accountCurrency: string;
|
|
421
|
+
totalValueAccountCurrency: number;
|
|
422
|
+
totalValueBaseCurrency: number;
|
|
423
|
+
baseCurrency: string;
|
|
424
|
+
performance: SimplePerformanceMetrics;
|
|
425
|
+
}
|
|
426
|
+
export interface SimplePerformanceMetrics {
|
|
427
|
+
accountId: string;
|
|
428
|
+
totalValue?: number | null;
|
|
429
|
+
accountCurrency?: string | null;
|
|
430
|
+
baseCurrency?: string | null;
|
|
431
|
+
fxRateToBase?: number | null;
|
|
432
|
+
totalGainLossAmount?: number | null;
|
|
433
|
+
cumulativeReturnPercent?: number | null;
|
|
434
|
+
dayGainLossAmount?: number | null;
|
|
435
|
+
dayReturnPercentModDietz?: number | null;
|
|
436
|
+
portfolioWeight?: number | null;
|
|
437
|
+
}
|
|
438
|
+
export interface AccountGroup {
|
|
439
|
+
groupName: string;
|
|
440
|
+
accounts: AccountSummaryView[];
|
|
441
|
+
totalValueBaseCurrency: number;
|
|
442
|
+
baseCurrency: string;
|
|
443
|
+
performance: SimplePerformanceMetrics;
|
|
444
|
+
accountCount: number;
|
|
445
|
+
}
|
|
446
|
+
export interface ExchangeRate {
|
|
447
|
+
id: string;
|
|
448
|
+
fromCurrency: string;
|
|
449
|
+
toCurrency: string;
|
|
450
|
+
fromCurrencyName?: string;
|
|
451
|
+
toCurrencyName?: string;
|
|
452
|
+
rate: number;
|
|
453
|
+
source: string;
|
|
454
|
+
isLoading?: boolean;
|
|
455
|
+
timestamp: string;
|
|
456
|
+
}
|
|
457
|
+
export interface ContributionLimit {
|
|
458
|
+
id: string;
|
|
459
|
+
groupName: string;
|
|
460
|
+
contributionYear: number;
|
|
461
|
+
limitAmount: number;
|
|
462
|
+
accountIds?: string | null;
|
|
463
|
+
startDate?: string | null;
|
|
464
|
+
endDate?: string | null;
|
|
465
|
+
createdAt?: string;
|
|
466
|
+
updatedAt?: string;
|
|
467
|
+
}
|
|
468
|
+
export type NewContributionLimit = Omit<ContributionLimit, 'id' | 'createdAt' | 'updatedAt'>;
|
|
469
|
+
export interface AccountDeposit {
|
|
470
|
+
amount: number;
|
|
471
|
+
currency: string;
|
|
472
|
+
convertedAmount: number;
|
|
473
|
+
}
|
|
474
|
+
export interface DepositsCalculation {
|
|
475
|
+
total: number;
|
|
476
|
+
baseCurrency: string;
|
|
477
|
+
byAccount: Record<string, AccountDeposit>;
|
|
478
|
+
}
|
|
479
|
+
export declare const ACTIVITY_TYPE_PREFIX_LENGTH = 12;
|
|
480
|
+
export interface ReturnData {
|
|
481
|
+
date: string;
|
|
482
|
+
value: number;
|
|
483
|
+
}
|
|
484
|
+
export interface PerformanceMetrics {
|
|
485
|
+
id: string;
|
|
486
|
+
returns: ReturnData[];
|
|
487
|
+
periodStartDate?: string | null;
|
|
488
|
+
periodEndDate?: string | null;
|
|
489
|
+
currency: string;
|
|
490
|
+
cumulativeTwr: number;
|
|
491
|
+
gainLossAmount?: number | null;
|
|
492
|
+
annualizedTwr: number;
|
|
493
|
+
simpleReturn: number;
|
|
494
|
+
annualizedSimpleReturn: number;
|
|
495
|
+
cumulativeMwr: number;
|
|
496
|
+
annualizedMwr: number;
|
|
497
|
+
volatility: number;
|
|
498
|
+
maxDrawdown: number;
|
|
499
|
+
}
|
|
500
|
+
export interface UpdateAssetProfile {
|
|
501
|
+
symbol: string;
|
|
502
|
+
name?: string;
|
|
503
|
+
sectors: string;
|
|
504
|
+
countries: string;
|
|
505
|
+
notes: string;
|
|
506
|
+
assetClass: string;
|
|
507
|
+
assetSubClass: string;
|
|
508
|
+
}
|
|
509
|
+
export interface TrackedItem {
|
|
510
|
+
id: string;
|
|
511
|
+
type: 'account' | 'symbol';
|
|
512
|
+
name: string;
|
|
513
|
+
}
|