diff --git a/CHANGELOG.md b/CHANGELOG.md
index 9fcfe5f50..878ba40e8 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -7,9 +7,16 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## Unreleased
+### Added
+
+- Added the Ghostfolio _LinkedIn_ page to the about page
+- Added the Ghostfolio _LinkedIn_ page to the footer
+
### Changed
+- Optimized the asynchronous operations using `Promise.all()` in the portfolio service (`getPerformance`)
- Improved the symbol lookup in the _Trackinsight_ data enhancer for asset profile data
+- Upgraded `color` from version `4.2.3` to `5.0.0`
- Upgraded `prisma` from version `6.3.0` to `6.4.1`
### Fixed
diff --git a/apps/api/src/app/portfolio/portfolio.service.ts b/apps/api/src/app/portfolio/portfolio.service.ts
index d4dc42d91..ce03c8024 100644
--- a/apps/api/src/app/portfolio/portfolio.service.ts
+++ b/apps/api/src/app/portfolio/portfolio.service.ts
@@ -1081,19 +1081,18 @@ export class PortfolioService {
const user = await this.userService.user({ id: userId });
const userCurrency = this.getUserCurrency(user);
- const accountBalanceItems =
- await this.accountBalanceService.getAccountBalanceItems({
+ const [accountBalanceItems, { activities }] = await Promise.all([
+ this.accountBalanceService.getAccountBalanceItems({
filters,
userId,
userCurrency
- });
-
- const { activities } =
- await this.orderService.getOrdersForPortfolioCalculator({
+ }),
+ this.orderService.getOrdersForPortfolioCalculator({
filters,
userCurrency,
userId
- });
+ })
+ ]);
if (accountBalanceItems.length === 0 && activities.length === 0) {
return {
diff --git a/apps/client/src/app/app.component.html b/apps/client/src/app/app.component.html
index c6734d1b4..ab188dfcb 100644
--- a/apps/client/src/app/app.component.html
+++ b/apps/client/src/app/app.component.html
@@ -129,6 +129,15 @@
>GitHub
+
+ LinkedIn
+
.
+
+
+
-
+
-
+
@if (hasPermissionForSubscription) {
diff --git a/apps/client/src/locales/messages.ca.xlf b/apps/client/src/locales/messages.ca.xlf
index a36fb152f..d5356fe0f 100644
--- a/apps/client/src/locales/messages.ca.xlf
+++ b/apps/client/src/locales/messages.ca.xlf
@@ -250,7 +250,7 @@
apps/client/src/app/pages/about/overview/about-overview-page.html
- 146
+ 154
@@ -358,7 +358,7 @@
El risc d’assumir pèrdues en les inversions és substancial. No és recomanable invertir diners que pugui necessitar a curt termini.
apps/client/src/app/app.component.html
- 205
+ 214
diff --git a/apps/client/src/locales/messages.de.xlf b/apps/client/src/locales/messages.de.xlf
index 3983ca586..1907bbc3a 100644
--- a/apps/client/src/locales/messages.de.xlf
+++ b/apps/client/src/locales/messages.de.xlf
@@ -22,7 +22,7 @@
Das Ausfallrisiko beim Börsenhandel kann erheblich sein. Es ist nicht ratsam, Geld zu investieren, welches du kurzfristig benötigst.
apps/client/src/app/app.component.html
- 205
+ 214
@@ -4162,7 +4162,7 @@
apps/client/src/app/pages/about/overview/about-overview-page.html
- 146
+ 154
diff --git a/apps/client/src/locales/messages.es.xlf b/apps/client/src/locales/messages.es.xlf
index e41708851..98690ec76 100644
--- a/apps/client/src/locales/messages.es.xlf
+++ b/apps/client/src/locales/messages.es.xlf
@@ -23,7 +23,7 @@
El riesgo de pérdida en trading puede ser sustancial. No es aconsejable invertir dinero que puedas necesitar a corto plazo.
apps/client/src/app/app.component.html
- 205
+ 214
@@ -4163,7 +4163,7 @@
apps/client/src/app/pages/about/overview/about-overview-page.html
- 146
+ 154
diff --git a/apps/client/src/locales/messages.fr.xlf b/apps/client/src/locales/messages.fr.xlf
index aa0dd2891..840aa3cb1 100644
--- a/apps/client/src/locales/messages.fr.xlf
+++ b/apps/client/src/locales/messages.fr.xlf
@@ -6,7 +6,7 @@
Le risque de perte en investissant peut être important. Il est déconseillé d’investir de l’argent dont vous pourriez avoir besoin à court terme.
apps/client/src/app/app.component.html
- 205
+ 214
@@ -4162,7 +4162,7 @@
apps/client/src/app/pages/about/overview/about-overview-page.html
- 146
+ 154
diff --git a/apps/client/src/locales/messages.it.xlf b/apps/client/src/locales/messages.it.xlf
index a17749690..f558f7c3e 100644
--- a/apps/client/src/locales/messages.it.xlf
+++ b/apps/client/src/locales/messages.it.xlf
@@ -23,7 +23,7 @@
Il rischio di perdita nel trading può essere notevole. Non è consigliabile investire denaro di cui potresti avere bisogno a breve termine.
apps/client/src/app/app.component.html
- 205
+ 214
@@ -4163,7 +4163,7 @@
apps/client/src/app/pages/about/overview/about-overview-page.html
- 146
+ 154
diff --git a/apps/client/src/locales/messages.nl.xlf b/apps/client/src/locales/messages.nl.xlf
index d8609b1b5..f3850ee9a 100644
--- a/apps/client/src/locales/messages.nl.xlf
+++ b/apps/client/src/locales/messages.nl.xlf
@@ -22,7 +22,7 @@
Het risico op verlies bij handelen kan aanzienlijk zijn. Het is niet aan te raden om geld te investeren dat je misschien op korte termijn nodig heeft.
apps/client/src/app/app.component.html
- 205
+ 214
@@ -4162,7 +4162,7 @@
apps/client/src/app/pages/about/overview/about-overview-page.html
- 146
+ 154
diff --git a/apps/client/src/locales/messages.pl.xlf b/apps/client/src/locales/messages.pl.xlf
index c53b6177f..2e3596f2c 100644
--- a/apps/client/src/locales/messages.pl.xlf
+++ b/apps/client/src/locales/messages.pl.xlf
@@ -667,7 +667,7 @@
apps/client/src/app/pages/about/overview/about-overview-page.html
- 146
+ 154
@@ -775,7 +775,7 @@
Ryzyko strat na rynku może być znaczne. Nie jest zalecane inwestowanie pieniędzy, które mogą być potrzebne w krótkim okresie.
apps/client/src/app/app.component.html
- 205
+ 214
diff --git a/apps/client/src/locales/messages.pt.xlf b/apps/client/src/locales/messages.pt.xlf
index e2a79168a..751426dbf 100644
--- a/apps/client/src/locales/messages.pt.xlf
+++ b/apps/client/src/locales/messages.pt.xlf
@@ -6,7 +6,7 @@
O risco de perda em investimentos pode ser substancial. Não é aconselhável investir dinheiro que possa vir a precisar a curto prazo.
apps/client/src/app/app.component.html
- 205
+ 214
@@ -4162,7 +4162,7 @@
apps/client/src/app/pages/about/overview/about-overview-page.html
- 146
+ 154
diff --git a/apps/client/src/locales/messages.tr.xlf b/apps/client/src/locales/messages.tr.xlf
index 35415106f..b0f601282 100644
--- a/apps/client/src/locales/messages.tr.xlf
+++ b/apps/client/src/locales/messages.tr.xlf
@@ -643,7 +643,7 @@
apps/client/src/app/pages/about/overview/about-overview-page.html
- 146
+ 154
@@ -751,7 +751,7 @@
Alım satımda kayıp riski büyük boyutta olabilir. Kısa vadede ihtiyaç duyabileceğiniz parayla yatırım yapmak tavsiye edilmez.
apps/client/src/app/app.component.html
- 205
+ 214
diff --git a/apps/client/src/locales/messages.uk.xlf b/apps/client/src/locales/messages.uk.xlf
index e013a621a..3803fb73a 100644
--- a/apps/client/src/locales/messages.uk.xlf
+++ b/apps/client/src/locales/messages.uk.xlf
@@ -250,7 +250,7 @@
apps/client/src/app/pages/about/overview/about-overview-page.html
- 146
+ 154
@@ -358,7 +358,7 @@
Ризик втрат у торгівлі може бути суттєвим. Не рекомендується інвестувати гроші, які можуть знадобитися в короткостроковій перспективі.
apps/client/src/app/app.component.html
- 205
+ 214
diff --git a/apps/client/src/locales/messages.xlf b/apps/client/src/locales/messages.xlf
index 7d93b392f..2c540010f 100644
--- a/apps/client/src/locales/messages.xlf
+++ b/apps/client/src/locales/messages.xlf
@@ -649,7 +649,7 @@
apps/client/src/app/pages/about/overview/about-overview-page.html
- 146
+ 154
@@ -752,7 +752,7 @@
The risk of loss in trading can be substantial. It is not advisable to invest money you may need in the short term.
apps/client/src/app/app.component.html
- 205
+ 214
diff --git a/apps/client/src/locales/messages.zh.xlf b/apps/client/src/locales/messages.zh.xlf
index 10fc585a8..4b03c7783 100644
--- a/apps/client/src/locales/messages.zh.xlf
+++ b/apps/client/src/locales/messages.zh.xlf
@@ -668,7 +668,7 @@
apps/client/src/app/pages/about/overview/about-overview-page.html
- 146
+ 154
@@ -776,7 +776,7 @@
交易损失的风险可能很大。不建议将短期内可能需要的资金进行投资。
apps/client/src/app/app.component.html
- 205
+ 214
diff --git a/libs/ui/src/lib/fire-calculator/fire-calculator.component.ts b/libs/ui/src/lib/fire-calculator/fire-calculator.component.ts
index f8ce3dd50..64fbe1b74 100644
--- a/libs/ui/src/lib/fire-calculator/fire-calculator.component.ts
+++ b/libs/ui/src/lib/fire-calculator/fire-calculator.component.ts
@@ -41,7 +41,7 @@ import {
Tooltip
} from 'chart.js';
import 'chartjs-adapter-date-fns';
-import * as Color from 'color';
+import Color from 'color';
import {
add,
addYears,
diff --git a/libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts b/libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts
index 6319c3cd7..cc3c40d32 100644
--- a/libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts
+++ b/libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts
@@ -29,7 +29,7 @@ import { ArcElement } from 'chart.js';
import { DoughnutController } from 'chart.js';
import { Chart } from 'chart.js';
import ChartDataLabels from 'chartjs-plugin-datalabels';
-import * as Color from 'color';
+import Color from 'color';
import { NgxSkeletonLoaderModule } from 'ngx-skeleton-loader';
const {
diff --git a/package-lock.json b/package-lock.json
index 375039330..af8467d7e 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -58,7 +58,7 @@
"cheerio": "1.0.0",
"class-transformer": "0.5.1",
"class-validator": "0.14.1",
- "color": "4.2.3",
+ "color": "5.0.0",
"countries-and-timezones": "3.7.2",
"countries-list": "3.1.1",
"countup.js": "2.8.0",
@@ -128,7 +128,6 @@
"@trivago/prettier-plugin-sort-imports": "5.2.2",
"@types/big.js": "6.2.2",
"@types/cache-manager": "4.0.6",
- "@types/color": "4.2.0",
"@types/google-spreadsheet": "3.1.5",
"@types/jest": "29.5.13",
"@types/lodash": "4.17.7",
@@ -10705,33 +10704,6 @@
"dev": true,
"license": "MIT"
},
- "node_modules/@types/color": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/@types/color/-/color-4.2.0.tgz",
- "integrity": "sha512-6+xrIRImMtGAL2X3qYkd02Mgs+gFGs+WsK0b7VVMaO4mYRISwyTjcqNrO0mNSmYEoq++rSLDB2F5HDNmqfOe+A==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@types/color-convert": "*"
- }
- },
- "node_modules/@types/color-convert": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/@types/color-convert/-/color-convert-2.0.4.tgz",
- "integrity": "sha512-Ub1MmDdyZ7mX//g25uBAoH/mWGd9swVbt8BseymnaE18SU4po/PjmCrHxqIIRjBo3hV/vh1KGr0eMxUhp+t+dQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@types/color-name": "^1.1.0"
- }
- },
- "node_modules/@types/color-name": {
- "version": "1.1.5",
- "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.5.tgz",
- "integrity": "sha512-j2K5UJqGTxeesj6oQuGpMgifpT5k9HprgQd8D1Y0lOFqKHl3PJu5GMeS4Y5EgjS55AE6OQxf8mPED9uaGbf4Cg==",
- "dev": true,
- "license": "MIT"
- },
"node_modules/@types/connect": {
"version": "3.4.38",
"resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz",
@@ -14304,16 +14276,16 @@
"license": "MIT"
},
"node_modules/color": {
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz",
- "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==",
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/color/-/color-5.0.0.tgz",
+ "integrity": "sha512-16BlyiuyLq3MLxpRWyOTiWsO3ii/eLQLJUQXBSNcxMBBSnyt1ee9YUdaozQp03ifwm5woztEZGDbk9RGVuCsdw==",
"license": "MIT",
"dependencies": {
- "color-convert": "^2.0.1",
- "color-string": "^1.9.0"
+ "color-convert": "^3.0.1",
+ "color-string": "^2.0.0"
},
"engines": {
- "node": ">=12.5.0"
+ "node": ">=18"
}
},
"node_modules/color-convert": {
@@ -14335,13 +14307,45 @@
"license": "MIT"
},
"node_modules/color-string": {
- "version": "1.9.1",
- "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz",
- "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==",
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-string/-/color-string-2.0.1.tgz",
+ "integrity": "sha512-5z9FbYTZPAo8iKsNEqRNv+OlpBbDcoE+SY9GjLfDUHEfcNNV7tS9eSAlFHEaub/r5tBL9LtskAeq1l9SaoZ5tQ==",
+ "license": "MIT",
+ "dependencies": {
+ "color-name": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/color-string/node_modules/color-name": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-2.0.0.tgz",
+ "integrity": "sha512-SbtvAMWvASO5TE2QP07jHBMXKafgdZz8Vrsrn96fiL+O92/FN/PLARzUW5sKt013fjAprK2d2iCn2hk2Xb5oow==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=12.20"
+ }
+ },
+ "node_modules/color/node_modules/color-convert": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-3.0.1.tgz",
+ "integrity": "sha512-5kQah2eolfQV7HCrxtsBBArPfT5dwaKYMCXeMQsdRO7ihTO/cuNLGjd50ITCDn+ZU/YbS0Go64SjP9154eopxg==",
"license": "MIT",
"dependencies": {
- "color-name": "^1.0.0",
- "simple-swizzle": "^0.2.2"
+ "color-name": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=14.6"
+ }
+ },
+ "node_modules/color/node_modules/color-name": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-2.0.0.tgz",
+ "integrity": "sha512-SbtvAMWvASO5TE2QP07jHBMXKafgdZz8Vrsrn96fiL+O92/FN/PLARzUW5sKt013fjAprK2d2iCn2hk2Xb5oow==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=12.20"
}
},
"node_modules/colord": {
@@ -28929,21 +28933,6 @@
"integrity": "sha512-rijcxtwx2b4Bje3sqeIqw5EeW7UlOIC4YfOdwqIKacpvRQ/D78bWg/4/0m5e0U91oKvlGh7LlJuZCu07ISCC7w==",
"license": "ISC"
},
- "node_modules/simple-swizzle": {
- "version": "0.2.2",
- "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz",
- "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==",
- "license": "MIT",
- "dependencies": {
- "is-arrayish": "^0.3.1"
- }
- },
- "node_modules/simple-swizzle/node_modules/is-arrayish": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz",
- "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==",
- "license": "MIT"
- },
"node_modules/sirv": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/sirv/-/sirv-2.0.4.tgz",
diff --git a/package.json b/package.json
index 7938d78cf..f7d9451db 100644
--- a/package.json
+++ b/package.json
@@ -104,7 +104,7 @@
"cheerio": "1.0.0",
"class-transformer": "0.5.1",
"class-validator": "0.14.1",
- "color": "4.2.3",
+ "color": "5.0.0",
"countries-and-timezones": "3.7.2",
"countries-list": "3.1.1",
"countup.js": "2.8.0",
@@ -174,7 +174,6 @@
"@trivago/prettier-plugin-sort-imports": "5.2.2",
"@types/big.js": "6.2.2",
"@types/cache-manager": "4.0.6",
- "@types/color": "4.2.0",
"@types/google-spreadsheet": "3.1.5",
"@types/jest": "29.5.13",
"@types/lodash": "4.17.7",