diff --git a/CHANGELOG.md b/CHANGELOG.md index affe6bc3b..a4e3e3b04 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,13 +7,24 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## Unreleased +### Changed + +- Improved the language localization for German (`de`) +- Upgraded `@internationalized/number` from version `3.5.2` to `3.6.0` + +### Fixed + +- Fixed the import of `jsonpath` to support REST APIs (`JSON`) via the scraper configuration + +## 2.127.0 - 2024-12-08 + ### Added - Extended the _X-ray_ page by a summary -### Changed +### Fixed -- Improved the language localization for German (`de`) +- Fixed an exception in the caching of the portfolio snapshot in the portfolio calculator ## 2.126.1 - 2024-12-07 diff --git a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator.ts b/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator.ts index 6c0d230b0..3f53ee04b 100644 --- a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator.ts +++ b/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator.ts @@ -101,6 +101,7 @@ export class TWRPortfolioCalculator extends PortfolioCalculator { totalInterestWithCurrencyEffect, totalInvestment, totalInvestmentWithCurrencyEffect, + errors: [], historicalData: [], totalLiabilitiesWithCurrencyEffect: new Big(0), totalValuablesWithCurrencyEffect: new Big(0) diff --git a/apps/api/src/services/data-provider/manual/manual.service.ts b/apps/api/src/services/data-provider/manual/manual.service.ts index 30c7efa6a..c3e274005 100644 --- a/apps/api/src/services/data-provider/manual/manual.service.ts +++ b/apps/api/src/services/data-provider/manual/manual.service.ts @@ -29,7 +29,7 @@ import * as cheerio from 'cheerio'; import { isUUID } from 'class-validator'; import { addDays, format, isBefore } from 'date-fns'; import got, { Headers } from 'got'; -import jsonpath from 'jsonpath'; +import * as jsonpath from 'jsonpath'; @Injectable() export class ManualService implements DataProviderInterface { diff --git a/libs/common/src/lib/helper.spec.ts b/libs/common/src/lib/helper.spec.ts index 22a171168..1126c3573 100644 --- a/libs/common/src/lib/helper.spec.ts +++ b/libs/common/src/lib/helper.spec.ts @@ -2,37 +2,37 @@ import { extractNumberFromString } from '@ghostfolio/common/helper'; describe('Helper', () => { describe('Extract number from string', () => { - it('Get decimal number', async () => { + it('Get decimal number', () => { expect(extractNumberFromString({ value: '999.99' })).toEqual(999.99); }); - it('Get decimal number (with spaces)', async () => { + it('Get decimal number (with spaces)', () => { expect(extractNumberFromString({ value: ' 999.99 ' })).toEqual(999.99); }); - it('Get decimal number (with currency)', async () => { + it('Get decimal number (with currency)', () => { expect(extractNumberFromString({ value: '999.99 CHF' })).toEqual(999.99); }); - it('Get decimal number (comma notation)', async () => { + it('Get decimal number (comma notation)', () => { expect( extractNumberFromString({ locale: 'de-DE', value: '999,99' }) ).toEqual(999.99); }); - it('Get decimal number with group (dot notation)', async () => { + it('Get decimal number with group (dot notation)', () => { expect( extractNumberFromString({ locale: 'de-CH', value: '99’999.99' }) ).toEqual(99999.99); }); - it('Get decimal number with group (comma notation)', async () => { + it('Get decimal number with group (comma notation)', () => { expect( extractNumberFromString({ locale: 'de-DE', value: '99.999,99' }) ).toEqual(99999.99); }); - it('Not a number', async () => { + it('Not a number', () => { expect(extractNumberFromString({ value: 'X' })).toEqual(NaN); }); }); diff --git a/libs/common/src/lib/models/portfolio-snapshot.ts b/libs/common/src/lib/models/portfolio-snapshot.ts index e51931711..46bd5c18f 100644 --- a/libs/common/src/lib/models/portfolio-snapshot.ts +++ b/libs/common/src/lib/models/portfolio-snapshot.ts @@ -13,7 +13,7 @@ export class PortfolioSnapshot { @Type(() => Big) currentValueInBaseCurrency: Big; - errors?: AssetProfileIdentifier[]; + errors: AssetProfileIdentifier[]; hasErrors: boolean; diff --git a/package-lock.json b/package-lock.json index ecbc91c56..11a3138ff 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "ghostfolio", - "version": "2.126.1", + "version": "2.127.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "ghostfolio", - "version": "2.126.1", + "version": "2.127.0", "hasInstallScript": true, "license": "AGPL-3.0", "dependencies": { @@ -28,7 +28,7 @@ "@dfinity/identity": "0.15.7", "@dfinity/principal": "0.15.7", "@dinero.js/currencies": "2.0.0-alpha.8", - "@internationalized/number": "3.5.2", + "@internationalized/number": "3.6.0", "@nestjs/bull": "10.0.1", "@nestjs/cache-manager": "2.2.2", "@nestjs/common": "10.1.3", @@ -4126,9 +4126,9 @@ } }, "node_modules/@internationalized/number": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/@internationalized/number/-/number-3.5.2.tgz", - "integrity": "sha512-4FGHTi0rOEX1giSkt5MH4/te0eHBq3cvAYsfLlpguV6pzJAReXymiYpE5wPCqKqjkUO3PIsyvk+tBiIV1pZtbA==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/@internationalized/number/-/number-3.6.0.tgz", + "integrity": "sha512-PtrRcJVy7nw++wn4W2OuePQQfTqDzfusSuY1QTtui4wa7r+rGVtR75pO8CyKvHvzyQYi3Q1uO5sY0AsB4e65Bw==", "license": "Apache-2.0", "dependencies": { "@swc/helpers": "^0.5.0" diff --git a/package.json b/package.json index 738f2db8a..135829b1e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ghostfolio", - "version": "2.126.1", + "version": "2.127.0", "homepage": "https://ghostfol.io", "license": "AGPL-3.0", "repository": "https://github.com/ghostfolio/ghostfolio", @@ -74,7 +74,7 @@ "@dfinity/identity": "0.15.7", "@dfinity/principal": "0.15.7", "@dinero.js/currencies": "2.0.0-alpha.8", - "@internationalized/number": "3.5.2", + "@internationalized/number": "3.6.0", "@nestjs/bull": "10.0.1", "@nestjs/cache-manager": "2.2.2", "@nestjs/common": "10.1.3",