Browse Source

Merge remote-tracking branch 'origin/main' into task/migrate-world-map-chart

pull/5443/head
KenTandrian 4 months ago
parent
commit
4623b3727c
  1. 5
      CHANGELOG.md
  2. 2
      apps/api/src/app/subscription/subscription.service.ts
  3. 53
      apps/client/src/app/pages/about/overview/about-overview-page.html
  4. 43
      package-lock.json
  5. 10
      package.json

5
CHANGELOG.md

@ -9,7 +9,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Changed ### Changed
- Localized the content of the about page
- Refactored the world map chart component to standalone - Refactored the world map chart component to standalone
- Upgraded the _Stripe_ dependencies
- Upgraded `ngx-device-detector` from version `10.0.2` to `10.1.0`
- Upgraded `ngx-skeleton-loader` from version `11.2.1` to `11.3.0`
- Upgraded `yahoo-finance2` from version `3.6.4` to `3.8.0`
## 2.195.0 - 2025-08-29 ## 2.195.0 - 2025-08-29

2
apps/api/src/app/subscription/subscription.service.ts

@ -32,7 +32,7 @@ export class SubscriptionService {
this.stripe = new Stripe( this.stripe = new Stripe(
this.configurationService.get('STRIPE_SECRET_KEY'), this.configurationService.get('STRIPE_SECRET_KEY'),
{ {
apiVersion: '2025-06-30.basil' apiVersion: '2025-08-27.basil'
} }
); );
} }

53
apps/client/src/app/pages/about/overview/about-overview-page.html

@ -6,10 +6,13 @@
</h1> </h1>
<div class="about-container"> <div class="about-container">
<p> <p>
Ghostfolio is a lightweight wealth management application for <ng-container i18n
individuals to keep track of stocks, ETFs or cryptocurrencies and make >Ghostfolio is a lightweight wealth management application for
solid, data-driven investment decisions. The source code is fully individuals to keep track of stocks, ETFs or cryptocurrencies and
available as make solid, data-driven investment decisions.</ng-container
>
<ng-container i18n>
The source code is fully available as
<a <a
href="https://github.com/ghostfolio/ghostfolio" href="https://github.com/ghostfolio/ghostfolio"
title="Find Ghostfolio on GitHub" title="Find Ghostfolio on GitHub"
@ -20,33 +23,48 @@
href="https://www.gnu.org/licenses/agpl-3.0.html" href="https://www.gnu.org/licenses/agpl-3.0.html"
title="GNU Affero General Public License" title="GNU Affero General Public License"
>AGPL-3.0 license</a >AGPL-3.0 license</a
></ng-container
> >
@if (hasPermissionForStatistics) { @if (hasPermissionForStatistics) {
<ng-container i18n>
and we share aggregated and we share aggregated
<a title="Open Startup" [routerLink]="routerLinkOpenStartup" <a title="Open Startup" [routerLink]="routerLinkOpenStartup"
>key metrics</a >key metrics</a
> >
of the platform’s performance of the platform’s performance</ng-container
>
} }
. The project has been initiated by <ng-container>. </ng-container>
<a href="https://dotsilver.ch" title="Website of Thomas Kaul" <ng-container i18n>The project has been initiated by</ng-container>
>Thomas Kaul</a <a
href="https://dotsilver.ch"
i18n-title
title="Website of Thomas Kaul"
> >
and is driven by the efforts of its Thomas Kaul
</a>
<ng-container i18n
>and is driven by the efforts of its
<a <a
href="https://github.com/ghostfolio/ghostfolio/graphs/contributors" href="https://github.com/ghostfolio/ghostfolio/graphs/contributors"
title="Contributors to Ghostfolio" title="Contributors to Ghostfolio"
>contributors</a >contributors</a
></ng-container
>. >.
@if (hasPermissionForSubscription) { @if (hasPermissionForSubscription) {
Check the system status at <ng-container i18n>Check the system status at</ng-container>
<a href="https://status.ghostfol.io" title="Ghostfolio Status" <ng-container>&nbsp;</ng-container>
<a
href="https://status.ghostfol.io"
i18n-title
title="Ghostfolio Status"
>status.ghostfol.io</a >status.ghostfol.io</a
>. >.
} }
</p> </p>
<p> <p>
If you encounter a bug or would like to suggest an improvement or a <ng-container i18n>
If you encounter a bug, would like to suggest an improvement or a
new new
<a [routerLink]="routerLinkFeatures">feature</a>, please join the <a [routerLink]="routerLinkFeatures">feature</a>, please join the
Ghostfolio Ghostfolio
@ -60,14 +78,19 @@
href="https://x.com/ghostfolio_" href="https://x.com/ghostfolio_"
title="Post to Ghostfolio on X (formerly Twitter)" title="Post to Ghostfolio on X (formerly Twitter)"
>&#64;ghostfolio_</a >&#64;ghostfolio_</a
></ng-container
> >
@if (user?.subscription?.type === 'Premium') { @if (user?.subscription?.type === 'Premium') {
, send an e-mail to <ng-container>, </ng-container>
<a href="mailto:hi@ghostfol.io" title="Send an e-mail" <ng-container i18n>send an e-mail to</ng-container>
<ng-container>&nbsp;</ng-container>
<a href="mailto:hi@ghostfol.io" i18n-title title="Send an e-mail"
>hi&#64;ghostfol.io</a >hi&#64;ghostfol.io</a
> >
} }
or start a discussion at <ng-container>&nbsp;</ng-container>
<ng-container i18n>or start a discussion at</ng-container>
<ng-container>&nbsp;</ng-container>
<a <a
href="https://github.com/ghostfolio/ghostfolio" href="https://github.com/ghostfolio/ghostfolio"
i18n-title i18n-title

43
package-lock.json

@ -47,7 +47,7 @@
"@prisma/client": "6.14.0", "@prisma/client": "6.14.0",
"@simplewebauthn/browser": "13.1.0", "@simplewebauthn/browser": "13.1.0",
"@simplewebauthn/server": "13.1.1", "@simplewebauthn/server": "13.1.1",
"@stripe/stripe-js": "7.6.1", "@stripe/stripe-js": "7.9.0",
"ai": "4.3.16", "ai": "4.3.16",
"alphavantage": "2.2.0", "alphavantage": "2.2.0",
"big.js": "7.0.1", "big.js": "7.0.1",
@ -77,9 +77,9 @@
"marked": "15.0.4", "marked": "15.0.4",
"ms": "3.0.0-canary.1", "ms": "3.0.0-canary.1",
"ng-extract-i18n-merge": "3.0.0", "ng-extract-i18n-merge": "3.0.0",
"ngx-device-detector": "10.0.2", "ngx-device-detector": "10.1.0",
"ngx-markdown": "20.0.0", "ngx-markdown": "20.0.0",
"ngx-skeleton-loader": "11.2.1", "ngx-skeleton-loader": "11.3.0",
"ngx-stripe": "20.7.0", "ngx-stripe": "20.7.0",
"open-color": "1.9.1", "open-color": "1.9.1",
"papaparse": "5.3.1", "papaparse": "5.3.1",
@ -89,11 +89,11 @@
"passport-jwt": "4.0.1", "passport-jwt": "4.0.1",
"reflect-metadata": "0.2.2", "reflect-metadata": "0.2.2",
"rxjs": "7.8.1", "rxjs": "7.8.1",
"stripe": "18.3.0", "stripe": "18.5.0",
"svgmap": "2.12.2", "svgmap": "2.12.2",
"twitter-api-v2": "1.23.0", "twitter-api-v2": "1.23.0",
"uuid": "11.1.0", "uuid": "11.1.0",
"yahoo-finance2": "3.6.4", "yahoo-finance2": "3.8.0",
"zone.js": "0.15.1" "zone.js": "0.15.1"
}, },
"devDependencies": { "devDependencies": {
@ -11924,9 +11924,9 @@
} }
}, },
"node_modules/@stripe/stripe-js": { "node_modules/@stripe/stripe-js": {
"version": "7.6.1", "version": "7.9.0",
"resolved": "https://registry.npmjs.org/@stripe/stripe-js/-/stripe-js-7.6.1.tgz", "resolved": "https://registry.npmjs.org/@stripe/stripe-js/-/stripe-js-7.9.0.tgz",
"integrity": "sha512-BUDj5gujbtx53/Cexws0+aPrEBsKAN8ExPf9UfuTCivVU6ug2PjqI0zUeL1jon3795eOLlyqvCDjp6VNknjE0A==", "integrity": "sha512-ggs5k+/0FUJcIgNY08aZTqpBTtbExkJMYMLSMwyucrhtWexVOEY1KJmhBsxf+E/Q15f5rbwBpj+t0t2AW2oCsQ==",
"license": "MIT", "license": "MIT",
"engines": { "engines": {
"node": ">=12.16" "node": ">=12.16"
@ -31562,9 +31562,9 @@
} }
}, },
"node_modules/ngx-device-detector": { "node_modules/ngx-device-detector": {
"version": "10.0.2", "version": "10.1.0",
"resolved": "https://registry.npmjs.org/ngx-device-detector/-/ngx-device-detector-10.0.2.tgz", "resolved": "https://registry.npmjs.org/ngx-device-detector/-/ngx-device-detector-10.1.0.tgz",
"integrity": "sha512-KLbd2hJtpUT7lRek+9pRUINvxa6yG4YDZ6RKzYmMbIbNpYEPJwXVmszG2fMPq+DarXABdqOYwp7wUQ2DQFgihw==", "integrity": "sha512-+MrJReetLq9Flp/IoncJYvmnOP8X6vEFK/qR+2PghoqUXwDlyNjh8ujX/nx2SK/5khK2Yr0bj7ICowhXjhgC/w==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"tslib": "^2.6.3" "tslib": "^2.6.3"
@ -31599,9 +31599,9 @@
} }
}, },
"node_modules/ngx-skeleton-loader": { "node_modules/ngx-skeleton-loader": {
"version": "11.2.1", "version": "11.3.0",
"resolved": "https://registry.npmjs.org/ngx-skeleton-loader/-/ngx-skeleton-loader-11.2.1.tgz", "resolved": "https://registry.npmjs.org/ngx-skeleton-loader/-/ngx-skeleton-loader-11.3.0.tgz",
"integrity": "sha512-0YWwQgK3X4trtiLvTv3/CMGxcvjPkUbtTTKJJ2EOHhFuvPf0b+XO1KwguK0Ub9BMHnsqK8xOol0cEoVXyNh64Q==", "integrity": "sha512-MLm5shgXGiCA1W5NEqct6glBFx2AEgEKbk8pDyY15BsZ2zTGUwa5jw4pe6nJdrCj6xcl/d9oFTinQHrO0q+3RA==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"tslib": "^2.0.0" "tslib": "^2.0.0"
@ -37591,9 +37591,9 @@
} }
}, },
"node_modules/stripe": { "node_modules/stripe": {
"version": "18.3.0", "version": "18.5.0",
"resolved": "https://registry.npmjs.org/stripe/-/stripe-18.3.0.tgz", "resolved": "https://registry.npmjs.org/stripe/-/stripe-18.5.0.tgz",
"integrity": "sha512-FkxrTUUcWB4CVN2yzgsfF/YHD6WgYHduaa7VmokCy5TLCgl5UNJkwortxcedrxSavQ8Qfa4Ir4JxcbIYiBsyLg==", "integrity": "sha512-Hp+wFiEQtCB0LlNgcFh5uVyKznpDjzyUZ+CNVEf+I3fhlYvh7rZruIg+jOwzJRCpy0ZTPMjlzm7J2/M2N6d+DA==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"qs": "^6.11.0" "qs": "^6.11.0"
@ -40823,18 +40823,19 @@
} }
}, },
"node_modules/yahoo-finance2": { "node_modules/yahoo-finance2": {
"version": "3.6.4", "version": "3.8.0",
"resolved": "https://registry.npmjs.org/yahoo-finance2/-/yahoo-finance2-3.6.4.tgz", "resolved": "https://registry.npmjs.org/yahoo-finance2/-/yahoo-finance2-3.8.0.tgz",
"integrity": "sha512-IoMU8Hb4BEaNPVnamZjRBuorTGDbaaiV/tM/m3KI8dzwrR6BGmeuT40OX+5IqRiSkMlD8g0kAwGi9E4bY3rLvg==", "integrity": "sha512-em11JOlfSg23wevm4kXs1+A/CoSWD9eg7/hKRU3zKWuPknCfE4NkIhGVb601Nokid+KPE8Q0eoXK4qgLsMIjKA==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@deno/shim-deno": "~0.18.0", "@deno/shim-deno": "~0.18.0",
"fetch-mock-cache": "npm:fetch-mock-cache@^2.1.3", "fetch-mock-cache": "npm:fetch-mock-cache@^2.1.3",
"json-schema": "^0.4.0",
"tough-cookie": "npm:tough-cookie@^5.1.1", "tough-cookie": "npm:tough-cookie@^5.1.1",
"tough-cookie-file-store": "npm:tough-cookie-file-store@^2.0.3" "tough-cookie-file-store": "npm:tough-cookie-file-store@^2.0.3"
}, },
"bin": { "bin": {
"yahoo-finance": "bin/yahoo-finance.mjs" "yahoo-finance": "esm/bin/yahoo-finance.js"
}, },
"engines": { "engines": {
"node": ">=20.0.0" "node": ">=20.0.0"

10
package.json

@ -93,7 +93,7 @@
"@prisma/client": "6.14.0", "@prisma/client": "6.14.0",
"@simplewebauthn/browser": "13.1.0", "@simplewebauthn/browser": "13.1.0",
"@simplewebauthn/server": "13.1.1", "@simplewebauthn/server": "13.1.1",
"@stripe/stripe-js": "7.6.1", "@stripe/stripe-js": "7.9.0",
"ai": "4.3.16", "ai": "4.3.16",
"alphavantage": "2.2.0", "alphavantage": "2.2.0",
"big.js": "7.0.1", "big.js": "7.0.1",
@ -123,9 +123,9 @@
"marked": "15.0.4", "marked": "15.0.4",
"ms": "3.0.0-canary.1", "ms": "3.0.0-canary.1",
"ng-extract-i18n-merge": "3.0.0", "ng-extract-i18n-merge": "3.0.0",
"ngx-device-detector": "10.0.2", "ngx-device-detector": "10.1.0",
"ngx-markdown": "20.0.0", "ngx-markdown": "20.0.0",
"ngx-skeleton-loader": "11.2.1", "ngx-skeleton-loader": "11.3.0",
"ngx-stripe": "20.7.0", "ngx-stripe": "20.7.0",
"open-color": "1.9.1", "open-color": "1.9.1",
"papaparse": "5.3.1", "papaparse": "5.3.1",
@ -135,11 +135,11 @@
"passport-jwt": "4.0.1", "passport-jwt": "4.0.1",
"reflect-metadata": "0.2.2", "reflect-metadata": "0.2.2",
"rxjs": "7.8.1", "rxjs": "7.8.1",
"stripe": "18.3.0", "stripe": "18.5.0",
"svgmap": "2.12.2", "svgmap": "2.12.2",
"twitter-api-v2": "1.23.0", "twitter-api-v2": "1.23.0",
"uuid": "11.1.0", "uuid": "11.1.0",
"yahoo-finance2": "3.6.4", "yahoo-finance2": "3.8.0",
"zone.js": "0.15.1" "zone.js": "0.15.1"
}, },
"devDependencies": { "devDependencies": {

Loading…
Cancel
Save