Browse Source

Merge remote-tracking branch 'origin/main' into feature/extend-search-in-assistant-by-quick-links

pull/4870/head
KenTandrian 3 weeks ago
parent
commit
b1a8327259
  1. 12
      CHANGELOG.md
  2. 73
      apps/client/src/app/app.component.ts
  3. 52
      apps/client/src/locales/messages.pt.xlf
  4. 88
      package-lock.json
  5. 4
      package.json

12
CHANGELOG.md

@ -5,6 +5,18 @@ 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 Portuguese (`pt`)
- Upgraded `@keyv/redis` from version `4.3.4` to `4.4.0`
- Upgraded `zone.js` from version `0.15.0` to `0.15.1`
### Fixed
- Restricted the date range change permission in the _Zen Mode_
## 2.169.0 - 2025-06-08
### Changed

73
apps/client/src/app/app.component.ts

@ -3,7 +3,11 @@ import { HoldingDetailDialogParams } from '@ghostfolio/client/components/holding
import { getCssVariable } from '@ghostfolio/common/helper';
import { InfoItem, User } from '@ghostfolio/common/interfaces';
import { hasPermission, permissions } from '@ghostfolio/common/permissions';
import { publicRoutes, routes } from '@ghostfolio/common/routes/routes';
import {
internalRoutes,
publicRoutes,
routes
} from '@ghostfolio/common/routes/routes';
import { ColorScheme } from '@ghostfolio/common/types';
import { DOCUMENT } from '@angular/common';
@ -160,12 +164,14 @@ export class AppComponent implements OnDestroy, OnInit {
this.currentSubRoute = urlSegments[1]?.path;
if (
(this.currentRoute === 'home' && !this.currentSubRoute) ||
(this.currentRoute === 'home' &&
this.currentSubRoute === 'holdings') ||
(this.currentRoute === 'portfolio' && !this.currentSubRoute) ||
(this.currentRoute === 'zen' && !this.currentSubRoute) ||
(this.currentRoute === 'zen' && this.currentSubRoute === 'holdings')
((this.currentRoute === internalRoutes.home.path &&
!this.currentSubRoute) ||
(this.currentRoute === internalRoutes.home.path &&
this.currentSubRoute ===
internalRoutes.home.subRoutes.holdings.path) ||
(this.currentRoute === internalRoutes.portfolio.path &&
!this.currentSubRoute)) &&
this.user?.settings?.viewMode !== 'ZEN'
) {
this.hasPermissionToChangeDateRange = true;
} else {
@ -173,14 +179,19 @@ export class AppComponent implements OnDestroy, OnInit {
}
if (
(this.currentRoute === 'home' &&
this.currentSubRoute === 'holdings') ||
(this.currentRoute === 'portfolio' && !this.currentSubRoute) ||
(this.currentRoute === 'portfolio' &&
this.currentSubRoute === 'activities') ||
(this.currentRoute === 'portfolio' &&
this.currentSubRoute === 'allocations') ||
(this.currentRoute === 'zen' && this.currentSubRoute === 'holdings')
(this.currentRoute === internalRoutes.home.path &&
this.currentSubRoute ===
internalRoutes.home.subRoutes.holdings.path) ||
(this.currentRoute === internalRoutes.portfolio.path &&
!this.currentSubRoute) ||
(this.currentRoute === internalRoutes.portfolio.path &&
this.currentSubRoute ===
internalRoutes.portfolio.subRoutes.activities.path) ||
(this.currentRoute === internalRoutes.portfolio.path &&
this.currentSubRoute === routes.allocations) ||
(this.currentRoute === internalRoutes.zen.path &&
this.currentSubRoute ===
internalRoutes.home.subRoutes.holdings.path)
) {
this.hasPermissionToChangeFilters = true;
} else {
@ -188,25 +199,25 @@ export class AppComponent implements OnDestroy, OnInit {
}
this.hasTabs =
(this.currentRoute === this.routerLinkAbout[0].slice(1) ||
this.currentRoute === this.routerLinkFaq[0].slice(1) ||
this.currentRoute === this.routerLinkResources[0].slice(1) ||
this.currentRoute === 'account' ||
this.currentRoute === 'admin' ||
this.currentRoute === 'home' ||
this.currentRoute === 'portfolio' ||
this.currentRoute === 'zen') &&
(this.currentRoute === routes.about ||
this.currentRoute === routes.faq ||
this.currentRoute === routes.resources ||
this.currentRoute === routes.account ||
this.currentRoute === routes.adminControl ||
this.currentRoute === internalRoutes.home.path ||
this.currentRoute === internalRoutes.portfolio.path ||
this.currentRoute === internalRoutes.zen.path) &&
this.deviceType !== 'mobile';
this.showFooter =
(this.currentRoute === 'blog' ||
this.currentRoute === this.routerLinkFeatures[0].slice(1) ||
this.currentRoute === this.routerLinkMarkets[0].slice(1) ||
this.currentRoute === 'open' ||
this.currentRoute === 'p' ||
this.currentRoute === this.routerLinkPricing[0].slice(1) ||
this.currentRoute === this.routerLinkRegister[0].slice(1) ||
this.currentRoute === 'start') &&
(this.currentRoute === routes.blog ||
this.currentRoute === routes.features ||
this.currentRoute === routes.markets ||
this.currentRoute === publicRoutes.openStartup.path ||
this.currentRoute === routes.public ||
this.currentRoute === routes.pricing ||
this.currentRoute === publicRoutes.register.path ||
this.currentRoute === routes.start) &&
this.deviceType !== 'mobile';
if (this.deviceType === 'mobile') {

52
apps/client/src/locales/messages.pt.xlf

@ -5095,7 +5095,7 @@
</trans-unit>
<trans-unit id="80abe38d82bca467f47bbb65f821a115cf9dfdc1" datatype="html">
<source> Are <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="&lt;strong&gt;"/>you<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="&lt;/strong&gt;"/> ready? </source>
<target state="new"> Are <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="&lt;strong&gt;"/>you<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="&lt;/strong&gt;"/> ready? </target>
<target state="translated"> São <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="&lt;strong&gt;"/>you<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="&lt;/strong&gt;"/> preparar? </target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
<context context-type="linenumber">431</context>
@ -5216,7 +5216,7 @@
</trans-unit>
<trans-unit id="a92a0e8a2e70e4a0735b714680629187d2b6f23e" datatype="html">
<source> This overview page features a curated collection of personal finance tools compared to the open source alternative <x id="START_LINK" ctype="x-a" equiv-text="&lt;a [routerLink]=&quot;routerLinkAbout&quot;&gt;"/>Ghostfolio<x id="CLOSE_LINK" ctype="x-a" equiv-text="&lt;/a&gt;"/>. If you value transparency, data privacy, and community collaboration, Ghostfolio provides an excellent opportunity to take control of your financial management. </source>
<target state="new"> This overview page features a curated collection of personal finance tools compared to the open source alternative <x id="START_LINK" ctype="x-a" equiv-text="&lt;a [routerLink]=&quot;routerLinkAbout&quot;&gt;"/>Ghostfolio<x id="CLOSE_LINK" ctype="x-a" equiv-text="&lt;/a&gt;"/>. If you value transparency, data privacy, and community collaboration, Ghostfolio provides an excellent opportunity to take control of your financial management. </target>
<target state="translated"> Esta página de visão geral apresenta uma coleção selecionada de ferramentas de finanças pessoais em comparação com a alternativa de código aberto<x id="START_LINK" ctype="x-a" equiv-text="&lt;a [routerLink]=&quot;routerLinkAbout&quot;&gt;"/>Ghostfolio<x id="CLOSE_LINK" ctype="x-a" equiv-text="&lt;/a&gt;"/>. Se você valoriza transparência, privacidade de dados e colaboração comunitária, o Ghostfolio oferece uma excelente oportunidade para assumir o controle de sua gestão financeira. </target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.html</context>
<context context-type="linenumber">8</context>
@ -5589,7 +5589,7 @@
</trans-unit>
<trans-unit id="7e892ba15f2c6c17e83510e273b3e10fc32ea016" datatype="html">
<source>Search</source>
<target state="new">Search</target>
<target state="translated">Procurar</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html</context>
<context context-type="linenumber">16</context>
@ -5621,7 +5621,7 @@
</trans-unit>
<trans-unit id="a3db2898b85fed425f03294b839a98cef247a2dc" datatype="html">
<source> User </source>
<target state="new"> User </target>
<target state="translated"> Usuário </target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-users/admin-users.html</context>
<context context-type="linenumber">29</context>
@ -5637,7 +5637,7 @@
</trans-unit>
<trans-unit id="slogan" datatype="html">
<source>Open Source Wealth Management Software</source>
<target state="new">Open Source Wealth Management Software</target>
<target state="translated">Software de gerenciamento de patrimônio de código aberto</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/i18n/i18n-page.html</context>
<context context-type="linenumber">30</context>
@ -5645,7 +5645,7 @@
</trans-unit>
<trans-unit id="metaKeywords" datatype="html">
<source> app, asset, cryptocurrency, dashboard, etf, finance, management, performance, portfolio, software, stock, trading, wealth, web3 </source>
<target state="new"> app, asset, cryptocurrency, dashboard, etf, finance, management, performance, portfolio, software, stock, trading, wealth, web3 </target>
<target state="translated"> aplicativo, ativo, criptomoeda, painel, etf, finanças, gestão, desempenho, portfólio, software, ação, negociação, riqueza, web3 </target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/i18n/i18n-page.html</context>
<context context-type="linenumber">9</context>
@ -5653,7 +5653,7 @@
</trans-unit>
<trans-unit id="1868064391111970959" datatype="html">
<source>Oops, cash balance transfer has failed.</source>
<target state="new">Oops, cash balance transfer has failed.</target>
<target state="translated">Ops, a transferência do saldo em dinheiro falhou.</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/accounts/accounts-page.component.ts</context>
<context context-type="linenumber">318</context>
@ -5661,7 +5661,7 @@
</trans-unit>
<trans-unit id="1189482335778578193" datatype="html">
<source>Extreme Fear</source>
<target state="new">Extreme Fear</target>
<target state="translated">Medo Extremo</target>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
<context context-type="linenumber">100</context>
@ -5669,7 +5669,7 @@
</trans-unit>
<trans-unit id="2634398159221205491" datatype="html">
<source>Extreme Greed</source>
<target state="new">Extreme Greed</target>
<target state="translated">Ganância Extrema</target>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
<context context-type="linenumber">101</context>
@ -5677,7 +5677,7 @@
</trans-unit>
<trans-unit id="3511545370905854666" datatype="html">
<source>Neutral</source>
<target state="new">Neutral</target>
<target state="translated">Neutro</target>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
<context context-type="linenumber">104</context>
@ -5685,7 +5685,7 @@
</trans-unit>
<trans-unit id="7183719827884539616" datatype="html">
<source>Oops! Could not parse historical data.</source>
<target state="new">Oops! Could not parse historical data.</target>
<target state="translated">Ops! Não foi possível analisar os dados históricos.</target>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.ts</context>
<context context-type="linenumber">262</context>
@ -5693,7 +5693,7 @@
</trans-unit>
<trans-unit id="297546430113071258" datatype="html">
<source>Do you really want to delete this system message?</source>
<target state="new">Do you really want to delete this system message?</target>
<target state="translated">Você realmente deseja excluir esta mensagem do sistema?</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
<context context-type="linenumber">155</context>
@ -5701,7 +5701,7 @@
</trans-unit>
<trans-unit id="d762c43328624b5dd81f3c6a3023203ae9a7553f" datatype="html">
<source>50-Day Trend</source>
<target state="new">50-Day Trend</target>
<target state="translated">Tendência de 50 dias</target>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/benchmark/benchmark.component.html</context>
<context context-type="linenumber">25</context>
@ -5709,7 +5709,7 @@
</trans-unit>
<trans-unit id="7cca44e647a4b3a6deff49cd29055e21e245f5ee" datatype="html">
<source>200-Day Trend</source>
<target state="new">200-Day Trend</target>
<target state="translated">Tendência de 200 dias</target>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/benchmark/benchmark.component.html</context>
<context context-type="linenumber">54</context>
@ -5717,7 +5717,7 @@
</trans-unit>
<trans-unit id="06c32fe06e23571d90965046809c0e29b37a6ef3" datatype="html">
<source>Cash Balances</source>
<target state="new">Cash Balances</target>
<target state="translated">Saldos de caixa</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html</context>
<context context-type="linenumber">124</context>
@ -5725,7 +5725,7 @@
</trans-unit>
<trans-unit id="ef3b860007773ebddac904fb42a1694b12d285c6" datatype="html">
<source>Starting from</source>
<target state="new">Starting from</target>
<target state="translated">A partir de</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/resources/personal-finance-tools/product-page.html</context>
<context context-type="linenumber">289</context>
@ -5737,7 +5737,7 @@
</trans-unit>
<trans-unit id="752daa6baad0f8b4684b5c6775345b02bed6746e" datatype="html">
<source>year</source>
<target state="new">year</target>
<target state="translated">ano</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/resources/personal-finance-tools/product-page.html</context>
<context context-type="linenumber">290</context>
@ -5749,7 +5749,7 @@
</trans-unit>
<trans-unit id="2263595996673750436" datatype="html">
<source>Do you really want to delete this account balance?</source>
<target state="new">Do you really want to delete this account balance?</target>
<target state="translated">Você realmente deseja excluir o saldo desta conta?</target>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/account-balances/account-balances.component.ts</context>
<context context-type="linenumber">109</context>
@ -5757,7 +5757,7 @@
</trans-unit>
<trans-unit id="62c28ddba8fedb2ae7b0fff9a641778b59791aa2" datatype="html">
<source> If a translation is missing, kindly support us in extending it <x id="START_LINK" ctype="x-a" equiv-text="&lt;a href=&quot;https://github.com/ghostfolio/ghostfolio/blob/main/apps/client/src/locales/messages.{{ language }}.xlf&quot; target=&quot;_blank&quot; &gt;"/>here<x id="CLOSE_LINK" ctype="x-a" equiv-text="&lt;/a &gt;"/>. </source>
<target state="new"> If a translation is missing, kindly support us in extending it <x id="START_LINK" ctype="x-a" equiv-text="&lt;a href=&quot;https://github.com/ghostfolio/ghostfolio/blob/main/apps/client/src/locales/messages.{{ language }}.xlf&quot; target=&quot;_blank&quot; &gt;"/>here<x id="CLOSE_LINK" ctype="x-a" equiv-text="&lt;/a &gt;"/>. </target>
<target state="translated"> Se faltar uma tradução, por favor, ajude-nos a estendê-la <x id="START_LINK" ctype="x-a" equiv-text="&lt;a href=&quot;https://github.com/ghostfolio/ghostfolio/blob/main/apps/client/src/locales/messages.{{ language }}.xlf&quot; target=&quot;_blank&quot; &gt;"/>here<x id="CLOSE_LINK" ctype="x-a" equiv-text="&lt;/a &gt;"/>. </target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
<context context-type="linenumber">58</context>
@ -5765,7 +5765,7 @@
</trans-unit>
<trans-unit id="4405333887341433096" datatype="html">
<source>The current market price is</source>
<target state="new">The current market price is</target>
<target state="translated">O preço de mercado atual é</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts</context>
<context context-type="linenumber">536</context>
@ -5773,7 +5773,7 @@
</trans-unit>
<trans-unit id="a79d938b5ed20249b4ab6bef86c12633d2f346a0" datatype="html">
<source>Test</source>
<target state="new">Test</target>
<target state="translated">Teste</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html</context>
<context context-type="linenumber">473</context>
@ -5781,7 +5781,7 @@
</trans-unit>
<trans-unit id="14c9ea2fbedf3057aac46aa68312770460312107" datatype="html">
<source>Date Range</source>
<target state="new">Date Range</target>
<target state="translated">Período</target>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/assistant/assistant.html</context>
<context context-type="linenumber">95</context>
@ -5801,7 +5801,7 @@
</trans-unit>
<trans-unit id="97bad3b5e318e5c7c755cd99062f2973efcf17e5" datatype="html">
<source>Restricted view</source>
<target state="new">Restricted view</target>
<target state="translated">Visualização restrita</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/access-table/access-table.component.html</context>
<context context-type="linenumber">26</context>
@ -5813,7 +5813,7 @@
</trans-unit>
<trans-unit id="2570446216260149991" datatype="html">
<source>Oops! Could not grant access.</source>
<target state="new">Oops! Could not grant access.</target>
<target state="translated">Ops! Não foi possível conceder acesso.</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.component.ts</context>
<context context-type="linenumber">91</context>
@ -5821,7 +5821,7 @@
</trans-unit>
<trans-unit id="ddd8a4986d2d1717a274a5a0fbed04988a819e69" datatype="html">
<source>Private</source>
<target state="new">Private</target>
<target state="translated">Privado</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html</context>
<context context-type="linenumber">24</context>
@ -5829,7 +5829,7 @@
</trans-unit>
<trans-unit id="5570511897986600686" datatype="html">
<source>Job Queue</source>
<target state="new">Job Queue</target>
<target state="translated">Fila de trabalhos</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/admin/admin-page-routing.module.ts</context>
<context context-type="linenumber">26</context>

88
package-lock.json

@ -30,7 +30,7 @@
"@dfinity/principal": "0.15.7",
"@dinero.js/currencies": "2.0.0-alpha.8",
"@internationalized/number": "3.6.0",
"@keyv/redis": "4.3.4",
"@keyv/redis": "4.4.0",
"@nestjs/bull": "11.0.2",
"@nestjs/cache-manager": "3.0.1",
"@nestjs/common": "11.1.3",
@ -90,7 +90,7 @@
"twitter-api-v2": "1.23.0",
"uuid": "11.1.0",
"yahoo-finance2": "3.3.5",
"zone.js": "0.15.0"
"zone.js": "0.15.1"
},
"devDependencies": {
"@angular-devkit/build-angular": "19.2.1",
@ -4962,13 +4962,13 @@
}
},
"node_modules/@keyv/redis": {
"version": "4.3.4",
"resolved": "https://registry.npmjs.org/@keyv/redis/-/redis-4.3.4.tgz",
"integrity": "sha512-PLWmawfq9McxEvtHa2Uj5WjI7g6qWtv2eOvXvXJ9tkwEV5vLkqA+pFeZ/0pz9xvP20NQiAkGm4521YJ0DhuFiw==",
"version": "4.4.0",
"resolved": "https://registry.npmjs.org/@keyv/redis/-/redis-4.4.0.tgz",
"integrity": "sha512-n/KEj3S7crVkoykggqsMUtcjNGvjagGPlJYgO/r6m9hhGZfhp1txJElHxcdJ1ANi/LJoBuOSILj15g6HD2ucqQ==",
"license": "MIT",
"dependencies": {
"cluster-key-slot": "^1.1.2",
"redis": "^4.7.0"
"@redis/client": "^1.6.0",
"cluster-key-slot": "^1.1.2"
},
"engines": {
"node": ">= 18"
@ -9875,19 +9875,10 @@
"@prisma/debug": "6.8.2"
}
},
"node_modules/@redis/bloom": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/@redis/bloom/-/bloom-1.2.0.tgz",
"integrity": "sha512-HG2DFjYKbpNmVXsa0keLHp/3leGJz1mjh09f2RLGGLQZzSHpkmZWuwJbAvo3QcRY8p80m5+ZdXZdYOSBLlp7Cg==",
"license": "MIT",
"peerDependencies": {
"@redis/client": "^1.0.0"
}
},
"node_modules/@redis/client": {
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/@redis/client/-/client-1.6.0.tgz",
"integrity": "sha512-aR0uffYI700OEEH4gYnitAnv3vzVGXCFvYfdpu/CJKvk4pHfLPEy/JSZyrpQ+15WhXe1yJRXLtfQ84s4mEXnPg==",
"version": "1.6.1",
"resolved": "https://registry.npmjs.org/@redis/client/-/client-1.6.1.tgz",
"integrity": "sha512-/KCsg3xSlR+nCK8/8ZYSknYxvXHwubJrU82F3Lm1Fp6789VQ0/3RJKfsmRXjqfaTA++23CvC3hqmqe/2GEt6Kw==",
"license": "MIT",
"dependencies": {
"cluster-key-slot": "1.1.2",
@ -9898,42 +9889,6 @@
"node": ">=14"
}
},
"node_modules/@redis/graph": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/@redis/graph/-/graph-1.1.1.tgz",
"integrity": "sha512-FEMTcTHZozZciLRl6GiiIB4zGm5z5F3F6a6FZCyrfxdKOhFlGkiAqlexWMBzCi4DcRoyiOsuLfW+cjlGWyExOw==",
"license": "MIT",
"peerDependencies": {
"@redis/client": "^1.0.0"
}
},
"node_modules/@redis/json": {
"version": "1.0.7",
"resolved": "https://registry.npmjs.org/@redis/json/-/json-1.0.7.tgz",
"integrity": "sha512-6UyXfjVaTBTJtKNG4/9Z8PSpKE6XgSyEb8iwaqDcy+uKrd/DGYHTWkUdnQDyzm727V7p21WUMhsqz5oy65kPcQ==",
"license": "MIT",
"peerDependencies": {
"@redis/client": "^1.0.0"
}
},
"node_modules/@redis/search": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/@redis/search/-/search-1.2.0.tgz",
"integrity": "sha512-tYoDBbtqOVigEDMAcTGsRlMycIIjwMCgD8eR2t0NANeQmgK/lvxNAvYyb6bZDD4frHRhIHkJu2TBRvB0ERkOmw==",
"license": "MIT",
"peerDependencies": {
"@redis/client": "^1.0.0"
}
},
"node_modules/@redis/time-series": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/@redis/time-series/-/time-series-1.1.0.tgz",
"integrity": "sha512-c1Q99M5ljsIuc4YdaCwfUEXsofakb9c8+Zse2qxTadu8TalLXuAESzLvFAvNVbkmSlvlzIQOLpBCmWI9wTOt+g==",
"license": "MIT",
"peerDependencies": {
"@redis/client": "^1.0.0"
}
},
"node_modules/@rollup/rollup-android-arm-eabi": {
"version": "4.34.8",
"resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.34.8.tgz",
@ -29778,23 +29733,6 @@
"node": ">=8"
}
},
"node_modules/redis": {
"version": "4.7.0",
"resolved": "https://registry.npmjs.org/redis/-/redis-4.7.0.tgz",
"integrity": "sha512-zvmkHEAdGMn+hMRXuMBtu4Vo5P6rHQjLoHftu+lBqq8ZTA3RCVC/WzD790bkKKiNFp7d5/9PcSD19fJyyRvOdQ==",
"license": "MIT",
"workspaces": [
"./packages/*"
],
"dependencies": {
"@redis/bloom": "1.2.0",
"@redis/client": "1.6.0",
"@redis/graph": "1.1.1",
"@redis/json": "1.0.7",
"@redis/search": "1.2.0",
"@redis/time-series": "1.1.0"
}
},
"node_modules/redis-errors": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/redis-errors/-/redis-errors-1.2.0.tgz",
@ -35854,9 +35792,9 @@
}
},
"node_modules/zone.js": {
"version": "0.15.0",
"resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.15.0.tgz",
"integrity": "sha512-9oxn0IIjbCZkJ67L+LkhYWRyAy7axphb3VgE2MBDlOqnmHMPWGYMxJxBYFueFq/JGY2GMwS0rU+UCLunEmy5UA==",
"version": "0.15.1",
"resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.15.1.tgz",
"integrity": "sha512-XE96n56IQpJM7NAoXswY3XRLcWFW83xe0BiAOeMD7K5k5xecOeul3Qcpx6GqEeeHNkW5DWL5zOyTbEfB4eti8w==",
"license": "MIT"
}
}

4
package.json

@ -76,7 +76,7 @@
"@dfinity/principal": "0.15.7",
"@dinero.js/currencies": "2.0.0-alpha.8",
"@internationalized/number": "3.6.0",
"@keyv/redis": "4.3.4",
"@keyv/redis": "4.4.0",
"@nestjs/bull": "11.0.2",
"@nestjs/cache-manager": "3.0.1",
"@nestjs/common": "11.1.3",
@ -136,7 +136,7 @@
"twitter-api-v2": "1.23.0",
"uuid": "11.1.0",
"yahoo-finance2": "3.3.5",
"zone.js": "0.15.0"
"zone.js": "0.15.1"
},
"devDependencies": {
"@angular-devkit/build-angular": "19.2.1",

Loading…
Cancel
Save