diff --git a/.github/workflows/build-code.yml b/.github/workflows/build-code.yml index 18240ebc4..7a8f72ac4 100644 --- a/.github/workflows/build-code.yml +++ b/.github/workflows/build-code.yml @@ -13,7 +13,7 @@ jobs: strategy: matrix: node_version: - - 20 + - 22 steps: - name: Checkout code uses: actions/checkout@v4 diff --git a/.nvmrc b/.nvmrc index 9a2a0e219..53d1c14db 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -v20 +v22 diff --git a/CHANGELOG.md b/CHANGELOG.md index 4ebd488dc..745d792af 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,15 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## Unreleased + +### Changed + +- Improved the language localization for French (`fr`) +- Improved the language localization for Polish (`pl`) +- Improved the language localization for Spanish (`es`) +- Upgraded `Node.js` from version `20` to `22` (`Dockerfile`) + ## 2.163.0 - 2025-05-26 ### Changed @@ -34,12 +43,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Improved the language localization for Catalan (`ca`) - Improved the language localization for Chinese (`zh`) - Improved the language localization for Dutch (`nl`) -- Improved the language localization for Español (`es`) - Improved the language localization for French (`fr`) - Improved the language localization for German (`de`) - Improved the language localization for Italian (`it`) - Improved the language localization for Polish (`pl`) - Improved the language localization for Portuguese (`pt`) +- Improved the language localization for Spanish (`es`) - Upgraded `countup.js` from version `2.8.0` to `2.8.2` - Upgraded `nestjs` from version `10.4.15` to `11.0.12` - Upgraded `prisma` from version `6.7.0` to `6.8.2` @@ -96,7 +105,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed -- Improved the language localization for Français (`fr`) +- Improved the language localization for French (`fr`) - Upgraded `bootstrap` from version `4.6.0` to `4.6.2` ### Fixed @@ -137,7 +146,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Improved the error message of the currency code validation - Tightened the currency code validation by requiring uppercase letters - Respected the watcher count for the delete asset profiles checkbox in the historical market data table of the admin control panel -- Improved the language localization for Français (`fr`) +- Improved the language localization for French (`fr`) - Upgraded `ngx-skeleton-loader` from version `10.0.0` to `11.0.0` - Upgraded `Nx` from version `20.8.0` to `20.8.1` @@ -237,7 +246,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed - Improved the check for duplicates in the preview step of the activities import (allow different comments) -- Improved the language localization for Français (`fr`) +- Improved the language localization for French (`fr`) - Improved the language localization for German (`de`) - Improved the language localization for Polish (`pl`) - Upgraded `ng-extract-i18n-merge` from version `2.14.1` to `2.14.3` @@ -3692,7 +3701,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added -- Added the language localization for Français (`fr`) +- Added the language localization for French (`fr`) - Extended the landing page by a global heat map of subscribers - Added support for the thousand separator in the global heat map component @@ -3721,7 +3730,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Added support for the dividend timeline grouped by year - Added support for the investment timeline grouped by year -- Set up the language localization for Français (`fr`) +- Set up the language localization for French (`fr`) ### Changed @@ -3830,7 +3839,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed - Improved the value redaction interceptor (including `comment`) -- Improved the language localization for Español (`es`) +- Improved the language localization for Spanish (`es`) - Upgraded `cheerio` from version `1.0.0-rc.6` to `1.0.0-rc.12` - Upgraded `prisma` from version `4.6.1` to `4.7.1` @@ -4059,7 +4068,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed - Improved the usage of the value component in the admin control panel -- Improved the language localization for Español (`es`) +- Improved the language localization for Spanish (`es`) ### Fixed @@ -4081,7 +4090,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added -- Set up the language localization for Español (`es`) +- Set up the language localization for Spanish (`es`) - Added support for sectors in mutual funds ## 1.198.0 - 25.09.2022 diff --git a/DEVELOPMENT.md b/DEVELOPMENT.md index 1c45aeca1..51de2ad25 100644 --- a/DEVELOPMENT.md +++ b/DEVELOPMENT.md @@ -5,7 +5,7 @@ ### Prerequisites - [Docker](https://www.docker.com/products/docker-desktop) -- [Node.js](https://nodejs.org/en/download) (version 20+) +- [Node.js](https://nodejs.org/en/download) (version 22+) - Create a local copy of this Git repository (clone) - Copy the file `.env.dev` to `.env` and populate it with your data (`cp .env.dev .env`) diff --git a/Dockerfile b/Dockerfile index 103dc3b9e..922b880e3 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM --platform=$BUILDPLATFORM node:20-slim AS builder +FROM --platform=$BUILDPLATFORM node:22-slim AS builder # Build application and add additional files WORKDIR /ghostfolio @@ -50,7 +50,7 @@ COPY package.json /ghostfolio/dist/apps/api RUN npm run database:generate-typings # Image to run, copy everything needed from builder -FROM node:20-slim +FROM node:22-slim LABEL org.opencontainers.image.source="https://github.com/ghostfolio/ghostfolio" ENV NODE_ENV=production diff --git a/apps/api/src/assets/sitemap.xml b/apps/api/src/assets/sitemap.xml index c7e6c982f..a2876c696 100644 --- a/apps/api/src/assets/sitemap.xml +++ b/apps/api/src/assets/sitemap.xml @@ -317,7 +317,7 @@ ${currentDate}T00:00:00+00:00 - https://ghostfol.io/fr/a-propos/changelog + https://ghostfol.io/fr/a-propos/journal-des-modifications ${currentDate}T00:00:00+00:00 diff --git a/apps/client/src/locales/messages.es.xlf b/apps/client/src/locales/messages.es.xlf index 0f0c5b736..01b51e793 100644 --- a/apps/client/src/locales/messages.es.xlf +++ b/apps/client/src/locales/messages.es.xlf @@ -4620,7 +4620,7 @@ Get a comprehensive financial overview by adding your bank and brokerage accounts. - Get a comprehensive financial overview by adding your bank and brokerage accounts. + Obtén una visión financiera completa agregando tus cuentas bancarias y de corretaje. apps/client/src/app/components/home-overview/home-overview.html 17 @@ -4628,7 +4628,7 @@ Capture your activities - Capture your activities + Captura tus actividades apps/client/src/app/components/home-overview/home-overview.html 24 @@ -4636,7 +4636,7 @@ Record your investment activities to keep your portfolio up to date. - Record your investment activities to keep your portfolio up to date. + Registra tus actividades de inversión para mantener tu portafolio actualizado. apps/client/src/app/components/home-overview/home-overview.html 26 @@ -4644,7 +4644,7 @@ Monitor and analyze your portfolio - Monitor and analyze your portfolio + Monitorea y analiza tu portafolio apps/client/src/app/components/home-overview/home-overview.html 33 @@ -4652,7 +4652,7 @@ Track your progress in real-time with comprehensive analysis and insights. - Track your progress in real-time with comprehensive analysis and insights. + Sigue tu progreso en tiempo real con análisis e información detallada. apps/client/src/app/components/home-overview/home-overview.html 35 @@ -4660,7 +4660,7 @@ No data available - No data available + No hay datos disponibles. apps/client/src/app/pages/portfolio/allocations/allocations-page.html 250 @@ -4680,7 +4680,7 @@ Ready to take control of your personal finances? - Ready to take control of your personal finances? + ¿Listo para tomar el control de tus finanzas personales? apps/client/src/app/components/home-overview/home-overview.html 8 @@ -4688,7 +4688,7 @@ Setup accounts - Setup accounts + Configura tus cuentas apps/client/src/app/components/home-overview/home-overview.html 48 @@ -4696,7 +4696,7 @@ Biometric Authentication - Biometric Authentication + Autenticación biométrica apps/client/src/app/components/user-account-settings/user-account-settings.html 218 @@ -4704,7 +4704,7 @@ At Ghostfolio, transparency is at the core of our values. We publish the source code as open source software (OSS) under the AGPL-3.0 license and we openly share aggregated key metrics of the platform’s operational status. - At Ghostfolio, transparency is at the core of our values. We publish the source code as open source software (OSS) under the AGPL-3.0 license and we openly share aggregated key metrics of the platform’s operational status. + En Ghostfolio, la transparencia está en el centro de nuestros valores. Publicamos el código fuente como software de código abierto (OSS) bajo la licencia Licencia AGPL-3.0 y compartimos abiertamente métricas clave agregadas sobre el estado operativo de la plataforma. apps/client/src/app/pages/open/open-page.html 6 @@ -4712,7 +4712,7 @@ Active Users - Active Users + Usuarios activos apps/client/src/app/pages/open/open-page.html 40 @@ -4724,7 +4724,7 @@ New Users - New Users + Nuevos usuarios apps/client/src/app/pages/open/open-page.html 51 @@ -4732,7 +4732,7 @@ Users in Slack community - Users in Slack community + Usuarios en la comunidad de Slack apps/client/src/app/pages/open/open-page.html 75 @@ -4740,7 +4740,7 @@ Contributors on GitHub - Contributors on GitHub + Colaboradores en GitHub apps/client/src/app/pages/open/open-page.html 89 @@ -4748,7 +4748,7 @@ Stars on GitHub - Stars on GitHub + Estrellas en GitHub apps/client/src/app/pages/landing/landing-page.html 88 @@ -4760,7 +4760,7 @@ Pulls on Docker Hub - Pulls on Docker Hub + Descargas en Docker Hub apps/client/src/app/pages/landing/landing-page.html 106 @@ -4772,7 +4772,7 @@ Uptime - Uptime + Tiempo de actividad apps/client/src/app/pages/open/open-page.html 132 @@ -4780,7 +4780,7 @@ Export Data - Export Data + Exportar datos apps/client/src/app/components/user-account-settings/user-account-settings.html 260 @@ -4788,7 +4788,7 @@ Currencies - Currencies + Monedas apps/client/src/app/components/admin-market-data/admin-market-data.component.ts 86 @@ -4796,7 +4796,7 @@ Our - Our + Nuestro apps/client/src/app/pages/about/oss-friends/oss-friends-page.html 6 @@ -4804,7 +4804,7 @@ Visit - Visit + Visitar apps/client/src/app/pages/about/oss-friends/oss-friends-page.html 28 @@ -4812,7 +4812,7 @@ Discover other exciting Open Source Software projects - Discover other exciting Open Source Software projects + Descubre otros proyectos emocionantes de software de código abierto apps/client/src/app/pages/about/oss-friends/oss-friends-page.html 9 @@ -4820,7 +4820,7 @@ Frequently Asked Questions (FAQ) - Frequently Asked Questions (FAQ) + Preguntas Frecuentes (FAQ) apps/client/src/app/pages/faq/overview/faq-overview-page.html 4 @@ -4836,7 +4836,7 @@ Check out the numerous features of Ghostfolio to manage your wealth - Check out the numerous features of Ghostfolio to manage your wealth + Descubra las numerosas funciones de Ghostfolio para gestionar su patrimonio apps/client/src/app/pages/features/features-page.html 6 @@ -4844,7 +4844,7 @@ Discover the latest Ghostfolio updates and insights on personal finance - Discover the latest Ghostfolio updates and insights on personal finance + Conoce las últimas actualizaciones de Ghostfolio y obtén información sobre finanzas personales apps/client/src/app/pages/blog/blog-page.html 7 @@ -4852,7 +4852,7 @@ If you prefer to run Ghostfolio on your own infrastructure, please find the source code and further instructions on GitHub. - If you prefer to run Ghostfolio on your own infrastructure, please find the source code and further instructions on GitHub. + Si prefieres ejecutar Ghostfolio en tu propia infraestructura, puedes encontrar el código fuente e instrucciones adicionales en GitHub. apps/client/src/app/pages/pricing/pricing-page.html 26 @@ -4860,7 +4860,7 @@ Manage your wealth like a boss - Manage your wealth like a boss + Gestiona tu patrimonio como un jefe apps/client/src/app/pages/landing/landing-page.html 5 @@ -4868,7 +4868,7 @@ Ghostfolio is a privacy-first, open source dashboard for your personal finances. Break down your asset allocation, know your net worth and make solid, data-driven investment decisions. - Ghostfolio is a privacy-first, open source dashboard for your personal finances. Break down your asset allocation, know your net worth and make solid, data-driven investment decisions. + Ghostfolio es un panel de control de código abierto y centrado en la privacidad para tus finanzas personales. Analiza la asignación de tus activos, conoce tu patrimonio neto y toma decisiones de inversión sólidas basadas en datos. apps/client/src/app/pages/landing/landing-page.html 9 @@ -4888,7 +4888,7 @@ Monthly Active Users - Monthly Active Users + Usuarios activos mensuales apps/client/src/app/pages/landing/landing-page.html 70 @@ -4896,7 +4896,7 @@ As seen in - As seen in + Visto en apps/client/src/app/pages/landing/landing-page.html 115 @@ -4904,7 +4904,7 @@ Protect your assets. Refine your personal investment strategy. - Protect your assets. Refine your personal investment strategy. + Protege tus assets. Mejora tu estrategia de inversión personal. apps/client/src/app/pages/landing/landing-page.html 225 @@ -4912,7 +4912,7 @@ Ghostfolio empowers busy people to keep track of stocks, ETFs or cryptocurrencies without being tracked. - Ghostfolio empowers busy people to keep track of stocks, ETFs or cryptocurrencies without being tracked. + Ghostfolio permite a las personas ocupadas hacer un seguimiento de acciones, ETFs o criptomonedas sin ser rastreadas. apps/client/src/app/pages/landing/landing-page.html 229 @@ -4920,7 +4920,7 @@ 360° View - 360° View + Vista 360° apps/client/src/app/pages/landing/landing-page.html 240 @@ -4928,7 +4928,7 @@ Web3 Ready - Web3 Ready + Preparado para Web3 apps/client/src/app/pages/landing/landing-page.html 251 @@ -4936,7 +4936,7 @@ Use Ghostfolio anonymously and own your financial data. - Use Ghostfolio anonymously and own your financial data. + Usa Ghostfolio de forma anónima y sé dueño de tus datos financieros. apps/client/src/app/pages/landing/landing-page.html 253 @@ -4944,7 +4944,7 @@ Open Source - Open Source + Código Abierto apps/client/src/app/pages/landing/landing-page.html 261 @@ -4952,7 +4952,7 @@ Benefit from continuous improvements through a strong community. - Benefit from continuous improvements through a strong community. + Disfruta de mejoras continuas gracias a una comunidad sólida. apps/client/src/app/pages/landing/landing-page.html 263 @@ -4960,7 +4960,7 @@ Why Ghostfolio? - Why Ghostfolio? + ¿Por qué Ghostfolio? apps/client/src/app/pages/landing/landing-page.html 272 @@ -4968,7 +4968,7 @@ Ghostfolio is for you if you are... - Ghostfolio is for you if you are... + Ghostfolio es para ti si estás... apps/client/src/app/pages/landing/landing-page.html 273 @@ -4976,7 +4976,7 @@ trading stocks, ETFs or cryptocurrencies on multiple platforms - trading stocks, ETFs or cryptocurrencies on multiple platforms + operando con acciones, ETFs o criptomonedas en múltiples plataformas apps/client/src/app/pages/landing/landing-page.html 280 @@ -4984,7 +4984,7 @@ pursuing a buy & hold strategy - pursuing a buy & hold strategy + persiguiendo una compra & mantener estrategia apps/client/src/app/pages/landing/landing-page.html 286 @@ -4992,7 +4992,7 @@ interested in getting insights of your portfolio composition - interested in getting insights of your portfolio composition + interesado en obtener información sobre la composición de tu portafolio apps/client/src/app/pages/landing/landing-page.html 291 @@ -5000,7 +5000,7 @@ valuing privacy and data ownership - valuing privacy and data ownership + valorando la privacidad y la propiedad de tus datos apps/client/src/app/pages/landing/landing-page.html 296 diff --git a/apps/client/src/locales/messages.fr.xlf b/apps/client/src/locales/messages.fr.xlf index 27ed1b444..202082270 100644 --- a/apps/client/src/locales/messages.fr.xlf +++ b/apps/client/src/locales/messages.fr.xlf @@ -7589,7 +7589,7 @@ Calculations are based on delayed market data and may not be displayed in real-time. - Calculations are based on delayed market data and may not be displayed in real-time. + Les calculs sont basés sur des données de marché retardées et peuvent ne pas être affichés en temps réel. apps/client/src/app/components/home-market/home-market.html 41 @@ -7597,7 +7597,7 @@ changelog - changelog + journal-des-modifications kebab-case libs/common/src/lib/paths.ts diff --git a/apps/client/src/locales/messages.pl.xlf b/apps/client/src/locales/messages.pl.xlf index 40d67e1b5..3d5c28be9 100644 --- a/apps/client/src/locales/messages.pl.xlf +++ b/apps/client/src/locales/messages.pl.xlf @@ -6898,7 +6898,7 @@ Get access to 80’000+ tickers from over 50 exchanges - Uzyskaj dostęp do ponad 100 000 pasków notowań giełdowych z ponad 50 giełd + Uzyskaj dostęp do ponad 80 000 pasków notowań giełdowych z ponad 50 giełd libs/ui/src/lib/i18n.ts 24 diff --git a/package-lock.json b/package-lock.json index 484ce76d1..9ba1a72a0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -129,7 +129,7 @@ "@types/google-spreadsheet": "3.1.5", "@types/jest": "29.5.13", "@types/lodash": "4.17.16", - "@types/node": "20.14.10", + "@types/node": "22.15.17", "@types/papaparse": "5.3.7", "@types/passport-google-oauth20": "2.0.16", "@typescript-eslint/eslint-plugin": "8.29.0", @@ -161,7 +161,7 @@ "webpack-bundle-analyzer": "4.10.2" }, "engines": { - "node": ">=20" + "node": ">=22" } }, "node_modules/@adobe/css-tools": { @@ -13002,12 +13002,12 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "20.14.10", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.10.tgz", - "integrity": "sha512-MdiXf+nDuMvY0gJKxyfZ7/6UFsETO7mGKF54MVD/ekJS6HdFtpZFBgrh6Pseu64XTb2MLyFPlbW6hj8HYRQNOQ==", + "version": "22.15.17", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.15.17.tgz", + "integrity": "sha512-wIX2aSZL5FE+MR0JlvF87BNVrtFWf6AE6rxSE9X7OwnVvoyCQjpzSRJ+M87se/4QCkCiebQAqrJ0y6fwIyi7nw==", "license": "MIT", "dependencies": { - "undici-types": "~5.26.4" + "undici-types": "~6.21.0" } }, "node_modules/@types/node-forge": { @@ -34266,9 +34266,9 @@ } }, "node_modules/undici-types": { - "version": "5.26.5", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", - "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", + "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", "license": "MIT" }, "node_modules/unicode-canonical-property-names-ecmascript": { diff --git a/package.json b/package.json index 3e203fbc9..e1877d2ef 100644 --- a/package.json +++ b/package.json @@ -175,7 +175,7 @@ "@types/google-spreadsheet": "3.1.5", "@types/jest": "29.5.13", "@types/lodash": "4.17.16", - "@types/node": "20.14.10", + "@types/node": "22.15.17", "@types/papaparse": "5.3.7", "@types/passport-google-oauth20": "2.0.16", "@typescript-eslint/eslint-plugin": "8.29.0", @@ -207,7 +207,7 @@ "webpack-bundle-analyzer": "4.10.2" }, "engines": { - "node": ">=20" + "node": ">=22" }, "prisma": { "seed": "npx ts-node --compiler-options {\"module\":\"CommonJS\"} prisma/seed.ts"