From 45095cfac0c4d563ad2dd913f7fa9d445264588f Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Sat, 7 Dec 2024 10:12:52 +0100 Subject: [PATCH 01/63] Feature/expire cache entries immediately in case of errors in portfolio snapshot calculation (#4099) * Expire cache entries immediately in case of errors * Update changelog --- CHANGELOG.md | 1 + .../queues/portfolio-snapshot/portfolio-snapshot.processor.ts | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1ba5bf3a..fcefd564 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,6 +14,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed - Improved the labels of the assistant +- Improved the caching of the portfolio snapshot in the portfolio calculator by expiring cache entries immediately in case of errors - Extracted the historical market data editor to a reusable component ## 2.125.0 - 2024-11-30 diff --git a/apps/api/src/services/queues/portfolio-snapshot/portfolio-snapshot.processor.ts b/apps/api/src/services/queues/portfolio-snapshot/portfolio-snapshot.processor.ts index a5a9a37e..72e2a7ce 100644 --- a/apps/api/src/services/queues/portfolio-snapshot/portfolio-snapshot.processor.ts +++ b/apps/api/src/services/queues/portfolio-snapshot/portfolio-snapshot.processor.ts @@ -86,7 +86,9 @@ export class PortfolioSnapshotProcessor { const expiration = addMilliseconds( new Date(), - this.configurationService.get('CACHE_QUOTES_TTL') + snapshot.errors.length === 0 + ? this.configurationService.get('CACHE_QUOTES_TTL') + : 0 ); this.redisCacheService.set( From 13582afd93d1677ca658ad4ac9bb4632ca884f22 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Sat, 7 Dec 2024 15:13:12 +0100 Subject: [PATCH 02/63] Feature/Setup API keys for Ghostfolio data provider (#4093) * Setup API keys for Ghostfolio data provider --- apps/api/src/app/app.module.ts | 2 + apps/api/src/app/auth/api-key.strategy.ts | 76 ++++++++ apps/api/src/app/auth/auth.module.ts | 4 + .../endpoints/api-keys/api-keys.controller.ts | 25 +++ .../app/endpoints/api-keys/api-keys.module.ts | 11 ++ .../ghostfolio/ghostfolio.controller.ts | 181 +++++++++++++++++- .../ghostfolio/ghostfolio.service.ts | 3 +- apps/api/src/app/user/user.service.ts | 25 +-- apps/api/src/helper/string.helper.ts | 14 ++ .../src/services/api-key/api-key.module.ts | 12 ++ .../src/services/api-key/api-key.service.ts | 63 ++++++ .../ghostfolio/ghostfolio.service.ts | 50 +++-- .../user-account-membership.component.ts | 56 +++++- .../user-account-membership.html | 2 + .../src/app/pages/api/api-page.component.ts | 43 ++++- apps/client/src/app/services/admin.service.ts | 16 +- apps/client/src/app/services/data.service.ts | 23 ++- libs/common/src/lib/interfaces/index.ts | 2 + .../responses/api-key-response.interface.ts | 3 + libs/common/src/lib/permissions.ts | 1 + .../membership-card.component.html | 19 ++ .../membership-card.component.scss | 6 + .../membership-card.component.ts | 17 +- package-lock.json | 11 ++ package.json | 1 + 25 files changed, 592 insertions(+), 74 deletions(-) create mode 100644 apps/api/src/app/auth/api-key.strategy.ts create mode 100644 apps/api/src/app/endpoints/api-keys/api-keys.controller.ts create mode 100644 apps/api/src/app/endpoints/api-keys/api-keys.module.ts create mode 100644 apps/api/src/helper/string.helper.ts create mode 100644 apps/api/src/services/api-key/api-key.module.ts create mode 100644 apps/api/src/services/api-key/api-key.service.ts create mode 100644 libs/common/src/lib/interfaces/responses/api-key-response.interface.ts diff --git a/apps/api/src/app/app.module.ts b/apps/api/src/app/app.module.ts index 4fbdafb0..b1a24023 100644 --- a/apps/api/src/app/app.module.ts +++ b/apps/api/src/app/app.module.ts @@ -31,6 +31,7 @@ import { AuthDeviceModule } from './auth-device/auth-device.module'; import { AuthModule } from './auth/auth.module'; import { BenchmarkModule } from './benchmark/benchmark.module'; import { CacheModule } from './cache/cache.module'; +import { ApiKeysModule } from './endpoints/api-keys/api-keys.module'; import { GhostfolioModule } from './endpoints/data-providers/ghostfolio/ghostfolio.module'; import { PublicModule } from './endpoints/public/public.module'; import { ExchangeRateModule } from './exchange-rate/exchange-rate.module'; @@ -55,6 +56,7 @@ import { UserModule } from './user/user.module'; AdminModule, AccessModule, AccountModule, + ApiKeysModule, AssetModule, AuthDeviceModule, AuthModule, diff --git a/apps/api/src/app/auth/api-key.strategy.ts b/apps/api/src/app/auth/api-key.strategy.ts new file mode 100644 index 00000000..ace7fb24 --- /dev/null +++ b/apps/api/src/app/auth/api-key.strategy.ts @@ -0,0 +1,76 @@ +import { UserService } from '@ghostfolio/api/app/user/user.service'; +import { ApiKeyService } from '@ghostfolio/api/services/api-key/api-key.service'; +import { ConfigurationService } from '@ghostfolio/api/services/configuration/configuration.service'; +import { PrismaService } from '@ghostfolio/api/services/prisma/prisma.service'; +import { HEADER_KEY_TOKEN } from '@ghostfolio/common/config'; +import { hasRole } from '@ghostfolio/common/permissions'; + +import { HttpException, Injectable } from '@nestjs/common'; +import { PassportStrategy } from '@nestjs/passport'; +import { StatusCodes, getReasonPhrase } from 'http-status-codes'; +import { HeaderAPIKeyStrategy } from 'passport-headerapikey'; + +@Injectable() +export class ApiKeyStrategy extends PassportStrategy( + HeaderAPIKeyStrategy, + 'api-key' +) { + public constructor( + private readonly apiKeyService: ApiKeyService, + private readonly configurationService: ConfigurationService, + private readonly prismaService: PrismaService, + private readonly userService: UserService + ) { + super( + { header: HEADER_KEY_TOKEN, prefix: 'Api-Key ' }, + true, + async (apiKey: string, done: (error: any, user?: any) => void) => { + try { + const user = await this.validateApiKey(apiKey); + + if (this.configurationService.get('ENABLE_FEATURE_SUBSCRIPTION')) { + if (hasRole(user, 'INACTIVE')) { + throw new HttpException( + getReasonPhrase(StatusCodes.TOO_MANY_REQUESTS), + StatusCodes.TOO_MANY_REQUESTS + ); + } + + await this.prismaService.analytics.upsert({ + create: { User: { connect: { id: user.id } } }, + update: { + activityCount: { increment: 1 }, + lastRequestAt: new Date() + }, + where: { userId: user.id } + }); + } + + done(null, user); + } catch (error) { + done(error, null); + } + } + ); + } + + private async validateApiKey(apiKey: string) { + if (!apiKey) { + throw new HttpException( + getReasonPhrase(StatusCodes.UNAUTHORIZED), + StatusCodes.UNAUTHORIZED + ); + } + + try { + const { id } = await this.apiKeyService.getUserByApiKey(apiKey); + + return this.userService.user({ id }); + } catch { + throw new HttpException( + getReasonPhrase(StatusCodes.UNAUTHORIZED), + StatusCodes.UNAUTHORIZED + ); + } + } +} diff --git a/apps/api/src/app/auth/auth.module.ts b/apps/api/src/app/auth/auth.module.ts index 67b078c9..824c432b 100644 --- a/apps/api/src/app/auth/auth.module.ts +++ b/apps/api/src/app/auth/auth.module.ts @@ -2,6 +2,7 @@ import { AuthDeviceService } from '@ghostfolio/api/app/auth-device/auth-device.s import { WebAuthService } from '@ghostfolio/api/app/auth/web-auth.service'; import { SubscriptionModule } from '@ghostfolio/api/app/subscription/subscription.module'; import { UserModule } from '@ghostfolio/api/app/user/user.module'; +import { ApiKeyService } from '@ghostfolio/api/services/api-key/api-key.service'; import { ConfigurationModule } from '@ghostfolio/api/services/configuration/configuration.module'; import { PrismaModule } from '@ghostfolio/api/services/prisma/prisma.module'; import { PropertyModule } from '@ghostfolio/api/services/property/property.module'; @@ -9,6 +10,7 @@ import { PropertyModule } from '@ghostfolio/api/services/property/property.modul import { Module } from '@nestjs/common'; import { JwtModule } from '@nestjs/jwt'; +import { ApiKeyStrategy } from './api-key.strategy'; import { AuthController } from './auth.controller'; import { AuthService } from './auth.service'; import { GoogleStrategy } from './google.strategy'; @@ -28,6 +30,8 @@ import { JwtStrategy } from './jwt.strategy'; UserModule ], providers: [ + ApiKeyService, + ApiKeyStrategy, AuthDeviceService, AuthService, GoogleStrategy, diff --git a/apps/api/src/app/endpoints/api-keys/api-keys.controller.ts b/apps/api/src/app/endpoints/api-keys/api-keys.controller.ts new file mode 100644 index 00000000..cbc68df9 --- /dev/null +++ b/apps/api/src/app/endpoints/api-keys/api-keys.controller.ts @@ -0,0 +1,25 @@ +import { HasPermission } from '@ghostfolio/api/decorators/has-permission.decorator'; +import { HasPermissionGuard } from '@ghostfolio/api/guards/has-permission.guard'; +import { ApiKeyService } from '@ghostfolio/api/services/api-key/api-key.service'; +import { ApiKeyResponse } from '@ghostfolio/common/interfaces'; +import { permissions } from '@ghostfolio/common/permissions'; +import type { RequestWithUser } from '@ghostfolio/common/types'; + +import { Controller, Inject, Post, UseGuards } from '@nestjs/common'; +import { REQUEST } from '@nestjs/core'; +import { AuthGuard } from '@nestjs/passport'; + +@Controller('api-keys') +export class ApiKeysController { + public constructor( + private readonly apiKeyService: ApiKeyService, + @Inject(REQUEST) private readonly request: RequestWithUser + ) {} + + @HasPermission(permissions.createApiKey) + @Post() + @UseGuards(AuthGuard('jwt'), HasPermissionGuard) + public async createApiKey(): Promise { + return this.apiKeyService.create({ userId: this.request.user.id }); + } +} diff --git a/apps/api/src/app/endpoints/api-keys/api-keys.module.ts b/apps/api/src/app/endpoints/api-keys/api-keys.module.ts new file mode 100644 index 00000000..123f1185 --- /dev/null +++ b/apps/api/src/app/endpoints/api-keys/api-keys.module.ts @@ -0,0 +1,11 @@ +import { ApiKeyModule } from '@ghostfolio/api/services/api-key/api-key.module'; + +import { Module } from '@nestjs/common'; + +import { ApiKeysController } from './api-keys.controller'; + +@Module({ + controllers: [ApiKeysController], + imports: [ApiKeyModule] +}) +export class ApiKeysModule {} diff --git a/apps/api/src/app/endpoints/data-providers/ghostfolio/ghostfolio.controller.ts b/apps/api/src/app/endpoints/data-providers/ghostfolio/ghostfolio.controller.ts index 788cfd1b..f3386f8a 100644 --- a/apps/api/src/app/endpoints/data-providers/ghostfolio/ghostfolio.controller.ts +++ b/apps/api/src/app/endpoints/data-providers/ghostfolio/ghostfolio.controller.ts @@ -18,7 +18,8 @@ import { Inject, Param, Query, - UseGuards + UseGuards, + Version } from '@nestjs/common'; import { REQUEST } from '@nestjs/core'; import { AuthGuard } from '@nestjs/passport'; @@ -36,9 +37,52 @@ export class GhostfolioController { @Inject(REQUEST) private readonly request: RequestWithUser ) {} + /** + * @deprecated + */ @Get('dividends/:symbol') @HasPermission(permissions.enableDataProviderGhostfolio) @UseGuards(AuthGuard('jwt'), HasPermissionGuard) + public async getDividendsV1( + @Param('symbol') symbol: string, + @Query() query: GetDividendsDto + ): Promise { + const maxDailyRequests = await this.ghostfolioService.getMaxDailyRequests(); + + if ( + this.request.user.dataProviderGhostfolioDailyRequests > maxDailyRequests + ) { + throw new HttpException( + getReasonPhrase(StatusCodes.TOO_MANY_REQUESTS), + StatusCodes.TOO_MANY_REQUESTS + ); + } + + try { + const dividends = await this.ghostfolioService.getDividends({ + symbol, + from: parseDate(query.from), + granularity: query.granularity, + to: parseDate(query.to) + }); + + await this.ghostfolioService.incrementDailyRequests({ + userId: this.request.user.id + }); + + return dividends; + } catch { + throw new HttpException( + getReasonPhrase(StatusCodes.INTERNAL_SERVER_ERROR), + StatusCodes.INTERNAL_SERVER_ERROR + ); + } + } + + @Get('dividends/:symbol') + @HasPermission(permissions.enableDataProviderGhostfolio) + @UseGuards(AuthGuard('api-key'), HasPermissionGuard) + @Version('2') public async getDividends( @Param('symbol') symbol: string, @Query() query: GetDividendsDto @@ -75,9 +119,52 @@ export class GhostfolioController { } } + /** + * @deprecated + */ @Get('historical/:symbol') @HasPermission(permissions.enableDataProviderGhostfolio) @UseGuards(AuthGuard('jwt'), HasPermissionGuard) + public async getHistoricalV1( + @Param('symbol') symbol: string, + @Query() query: GetHistoricalDto + ): Promise { + const maxDailyRequests = await this.ghostfolioService.getMaxDailyRequests(); + + if ( + this.request.user.dataProviderGhostfolioDailyRequests > maxDailyRequests + ) { + throw new HttpException( + getReasonPhrase(StatusCodes.TOO_MANY_REQUESTS), + StatusCodes.TOO_MANY_REQUESTS + ); + } + + try { + const historicalData = await this.ghostfolioService.getHistorical({ + symbol, + from: parseDate(query.from), + granularity: query.granularity, + to: parseDate(query.to) + }); + + await this.ghostfolioService.incrementDailyRequests({ + userId: this.request.user.id + }); + + return historicalData; + } catch { + throw new HttpException( + getReasonPhrase(StatusCodes.INTERNAL_SERVER_ERROR), + StatusCodes.INTERNAL_SERVER_ERROR + ); + } + } + + @Get('historical/:symbol') + @HasPermission(permissions.enableDataProviderGhostfolio) + @UseGuards(AuthGuard('api-key'), HasPermissionGuard) + @Version('2') public async getHistorical( @Param('symbol') symbol: string, @Query() query: GetHistoricalDto @@ -114,9 +201,51 @@ export class GhostfolioController { } } + /** + * @deprecated + */ @Get('lookup') @HasPermission(permissions.enableDataProviderGhostfolio) @UseGuards(AuthGuard('jwt'), HasPermissionGuard) + public async lookupSymbolV1( + @Query('includeIndices') includeIndicesParam = 'false', + @Query('query') query = '' + ): Promise { + const includeIndices = includeIndicesParam === 'true'; + const maxDailyRequests = await this.ghostfolioService.getMaxDailyRequests(); + + if ( + this.request.user.dataProviderGhostfolioDailyRequests > maxDailyRequests + ) { + throw new HttpException( + getReasonPhrase(StatusCodes.TOO_MANY_REQUESTS), + StatusCodes.TOO_MANY_REQUESTS + ); + } + + try { + const result = await this.ghostfolioService.lookup({ + includeIndices, + query: query.toLowerCase() + }); + + await this.ghostfolioService.incrementDailyRequests({ + userId: this.request.user.id + }); + + return result; + } catch { + throw new HttpException( + getReasonPhrase(StatusCodes.INTERNAL_SERVER_ERROR), + StatusCodes.INTERNAL_SERVER_ERROR + ); + } + } + + @Get('lookup') + @HasPermission(permissions.enableDataProviderGhostfolio) + @UseGuards(AuthGuard('api-key'), HasPermissionGuard) + @Version('2') public async lookupSymbol( @Query('includeIndices') includeIndicesParam = 'false', @Query('query') query = '' @@ -152,9 +281,48 @@ export class GhostfolioController { } } + /** + * @deprecated + */ @Get('quotes') @HasPermission(permissions.enableDataProviderGhostfolio) @UseGuards(AuthGuard('jwt'), HasPermissionGuard) + public async getQuotesV1( + @Query() query: GetQuotesDto + ): Promise { + const maxDailyRequests = await this.ghostfolioService.getMaxDailyRequests(); + + if ( + this.request.user.dataProviderGhostfolioDailyRequests > maxDailyRequests + ) { + throw new HttpException( + getReasonPhrase(StatusCodes.TOO_MANY_REQUESTS), + StatusCodes.TOO_MANY_REQUESTS + ); + } + + try { + const quotes = await this.ghostfolioService.getQuotes({ + symbols: query.symbols + }); + + await this.ghostfolioService.incrementDailyRequests({ + userId: this.request.user.id + }); + + return quotes; + } catch { + throw new HttpException( + getReasonPhrase(StatusCodes.INTERNAL_SERVER_ERROR), + StatusCodes.INTERNAL_SERVER_ERROR + ); + } + } + + @Get('quotes') + @HasPermission(permissions.enableDataProviderGhostfolio) + @UseGuards(AuthGuard('api-key'), HasPermissionGuard) + @Version('2') public async getQuotes( @Query() query: GetQuotesDto ): Promise { @@ -187,9 +355,20 @@ export class GhostfolioController { } } + /** + * @deprecated + */ @Get('status') @HasPermission(permissions.enableDataProviderGhostfolio) @UseGuards(AuthGuard('jwt'), HasPermissionGuard) + public async getStatusV1(): Promise { + return this.ghostfolioService.getStatus({ user: this.request.user }); + } + + @Get('status') + @HasPermission(permissions.enableDataProviderGhostfolio) + @UseGuards(AuthGuard('api-key'), HasPermissionGuard) + @Version('2') public async getStatus(): Promise { return this.ghostfolioService.getStatus({ user: this.request.user }); } diff --git a/apps/api/src/app/endpoints/data-providers/ghostfolio/ghostfolio.service.ts b/apps/api/src/app/endpoints/data-providers/ghostfolio/ghostfolio.service.ts index 7858e24f..78685a61 100644 --- a/apps/api/src/app/endpoints/data-providers/ghostfolio/ghostfolio.service.ts +++ b/apps/api/src/app/endpoints/data-providers/ghostfolio/ghostfolio.service.ts @@ -220,8 +220,7 @@ export class GhostfolioService { public async incrementDailyRequests({ userId }: { userId: string }) { await this.prismaService.analytics.update({ data: { - dataProviderGhostfolioDailyRequests: { increment: 1 }, - lastRequestAt: new Date() + dataProviderGhostfolioDailyRequests: { increment: 1 } }, where: { userId } }); diff --git a/apps/api/src/app/user/user.service.ts b/apps/api/src/app/user/user.service.ts index 54dafda2..6676a00b 100644 --- a/apps/api/src/app/user/user.service.ts +++ b/apps/api/src/app/user/user.service.ts @@ -2,6 +2,7 @@ import { OrderService } from '@ghostfolio/api/app/order/order.service'; import { SubscriptionService } from '@ghostfolio/api/app/subscription/subscription.service'; import { environment } from '@ghostfolio/api/environments/environment'; import { PortfolioChangedEvent } from '@ghostfolio/api/events/portfolio-changed.event'; +import { getRandomString } from '@ghostfolio/api/helper/string.helper'; import { AccountClusterRiskCurrentInvestment } from '@ghostfolio/api/models/rules/account-cluster-risk/current-investment'; import { AccountClusterRiskSingleAccount } from '@ghostfolio/api/models/rules/account-cluster-risk/single-account'; import { CurrencyClusterRiskBaseCurrencyCurrentInvestment } from '@ghostfolio/api/models/rules/currency-cluster-risk/base-currency-current-investment'; @@ -37,11 +38,10 @@ import { UserWithSettings } from '@ghostfolio/common/types'; import { Injectable } from '@nestjs/common'; import { EventEmitter2 } from '@nestjs/event-emitter'; import { Prisma, Role, User } from '@prisma/client'; +import { createHmac } from 'crypto'; import { differenceInDays, subDays } from 'date-fns'; import { sortBy, without } from 'lodash'; -const crypto = require('crypto'); - @Injectable() export class UserService { private i18nService = new I18nService(); @@ -61,7 +61,7 @@ export class UserService { } public createAccessToken(password: string, salt: string): string { - const hash = crypto.createHmac('sha512', salt); + const hash = createHmac('sha512', salt); hash.update(password); return hash.digest('hex'); @@ -309,6 +309,7 @@ export class UserService { // Reset holdings view mode user.Settings.settings.holdingsViewMode = undefined; } else if (user.subscription?.type === 'Premium') { + currentPermissions.push(permissions.createApiKey); currentPermissions.push(permissions.enableDataProviderGhostfolio); currentPermissions.push(permissions.reportDataGlitch); @@ -408,10 +409,7 @@ export class UserService { } if (data.provider === 'ANONYMOUS') { - const accessToken = this.createAccessToken( - user.id, - this.getRandomString(10) - ); + const accessToken = this.createAccessToken(user.id, getRandomString(10)); const hashedAccessToken = this.createAccessToken( accessToken, @@ -528,17 +526,4 @@ export class UserService { return settings; } - - private getRandomString(length: number) { - const bytes = crypto.randomBytes(length); - const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'; - const result = []; - - for (let i = 0; i < length; i++) { - const randomByte = bytes[i]; - result.push(characters[randomByte % characters.length]); - } - - return result.join(''); - } } diff --git a/apps/api/src/helper/string.helper.ts b/apps/api/src/helper/string.helper.ts new file mode 100644 index 00000000..38bac79f --- /dev/null +++ b/apps/api/src/helper/string.helper.ts @@ -0,0 +1,14 @@ +import { randomBytes } from 'crypto'; + +export function getRandomString(length: number) { + const bytes = randomBytes(length); + const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'; + const result = []; + + for (let i = 0; i < length; i++) { + const randomByte = bytes[i]; + result.push(characters[randomByte % characters.length]); + } + + return result.join(''); +} diff --git a/apps/api/src/services/api-key/api-key.module.ts b/apps/api/src/services/api-key/api-key.module.ts new file mode 100644 index 00000000..8681e3ad --- /dev/null +++ b/apps/api/src/services/api-key/api-key.module.ts @@ -0,0 +1,12 @@ +import { PrismaModule } from '@ghostfolio/api/services/prisma/prisma.module'; + +import { Module } from '@nestjs/common'; + +import { ApiKeyService } from './api-key.service'; + +@Module({ + exports: [ApiKeyService], + imports: [PrismaModule], + providers: [ApiKeyService] +}) +export class ApiKeyModule {} diff --git a/apps/api/src/services/api-key/api-key.service.ts b/apps/api/src/services/api-key/api-key.service.ts new file mode 100644 index 00000000..2a1f14d0 --- /dev/null +++ b/apps/api/src/services/api-key/api-key.service.ts @@ -0,0 +1,63 @@ +import { getRandomString } from '@ghostfolio/api/helper/string.helper'; +import { PrismaService } from '@ghostfolio/api/services/prisma/prisma.service'; +import { ApiKeyResponse } from '@ghostfolio/common/interfaces'; + +import { Injectable } from '@nestjs/common'; +import { pbkdf2Sync } from 'crypto'; + +@Injectable() +export class ApiKeyService { + private readonly algorithm = 'sha256'; + private readonly iterations = 100000; + private readonly keyLength = 64; + + public constructor(private readonly prismaService: PrismaService) {} + + public async create({ userId }: { userId: string }): Promise { + const apiKey = this.generateApiKey(); + const hashedKey = this.hashApiKey(apiKey); + + await this.prismaService.apiKey.deleteMany({ where: { userId } }); + + await this.prismaService.apiKey.create({ + data: { + hashedKey, + userId + } + }); + + return { apiKey }; + } + + public async getUserByApiKey(apiKey: string) { + const hashedKey = this.hashApiKey(apiKey); + + const { user } = await this.prismaService.apiKey.findFirst({ + include: { user: true }, + where: { hashedKey } + }); + + return user; + } + + public hashApiKey(apiKey: string): string { + return pbkdf2Sync( + apiKey, + '', + this.iterations, + this.keyLength, + this.algorithm + ).toString('hex'); + } + + private generateApiKey(): string { + return getRandomString(32) + .split('') + .reduce((acc, char, index) => { + const chunkIndex = Math.floor(index / 4); + acc[chunkIndex] = (acc[chunkIndex] || '') + char; + return acc; + }, []) + .join('-'); + } +} diff --git a/apps/api/src/services/data-provider/ghostfolio/ghostfolio.service.ts b/apps/api/src/services/data-provider/ghostfolio/ghostfolio.service.ts index 25ffdc67..7102176a 100644 --- a/apps/api/src/services/data-provider/ghostfolio/ghostfolio.service.ts +++ b/apps/api/src/services/data-provider/ghostfolio/ghostfolio.service.ts @@ -93,7 +93,7 @@ export class GhostfolioService implements DataProviderInterface { }, requestTimeout); const { dividends } = await got( - `${this.URL}/v1/data-providers/ghostfolio/dividends/${symbol}?from=${format(from, DATE_FORMAT)}&granularity=${granularity}&to=${format( + `${this.URL}/v2/data-providers/ghostfolio/dividends/${symbol}?from=${format(from, DATE_FORMAT)}&granularity=${granularity}&to=${format( to, DATE_FORMAT )}`, @@ -111,8 +111,13 @@ export class GhostfolioService implements DataProviderInterface { if (error.response?.statusCode === StatusCodes.TOO_MANY_REQUESTS) { message = 'RequestError: The daily request limit has been exceeded'; } else if (error.response?.statusCode === StatusCodes.UNAUTHORIZED) { - message = - 'RequestError: The provided API key is invalid. Please update it in the Settings section of the Admin Control panel.'; + if (!error.request?.options?.headers?.authorization?.includes('-')) { + message = + 'RequestError: The provided API key is invalid. Please update it in the Settings section of the Admin Control panel.'; + } else { + message = + 'RequestError: The provided API key has expired. Please request a new one and update it in the Settings section of the Admin Control panel.'; + } } Logger.error(message, 'GhostfolioService'); @@ -138,7 +143,7 @@ export class GhostfolioService implements DataProviderInterface { }, requestTimeout); const { historicalData } = await got( - `${this.URL}/v1/data-providers/ghostfolio/historical/${symbol}?from=${format(from, DATE_FORMAT)}&granularity=${granularity}&to=${format( + `${this.URL}/v2/data-providers/ghostfolio/historical/${symbol}?from=${format(from, DATE_FORMAT)}&granularity=${granularity}&to=${format( to, DATE_FORMAT )}`, @@ -158,8 +163,13 @@ export class GhostfolioService implements DataProviderInterface { if (error.response?.statusCode === StatusCodes.TOO_MANY_REQUESTS) { message = 'RequestError: The daily request limit has been exceeded'; } else if (error.response?.statusCode === StatusCodes.UNAUTHORIZED) { - message = - 'RequestError: The provided API key is invalid. Please update it in the Settings section of the Admin Control panel.'; + if (!error.request?.options?.headers?.authorization?.includes('-')) { + message = + 'RequestError: The provided API key is invalid. Please update it in the Settings section of the Admin Control panel.'; + } else { + message = + 'RequestError: The provided API key has expired. Please request a new one and update it in the Settings section of the Admin Control panel.'; + } } Logger.error(message, 'GhostfolioService'); @@ -201,7 +211,7 @@ export class GhostfolioService implements DataProviderInterface { }, requestTimeout); const { quotes } = await got( - `${this.URL}/v1/data-providers/ghostfolio/quotes?symbols=${symbols.join(',')}`, + `${this.URL}/v2/data-providers/ghostfolio/quotes?symbols=${symbols.join(',')}`, { headers: await this.getRequestHeaders(), // @ts-ignore @@ -213,15 +223,20 @@ export class GhostfolioService implements DataProviderInterface { } catch (error) { let message = error; - if (error?.code === 'ABORT_ERR') { + if (error.code === 'ABORT_ERR') { message = `RequestError: The operation to get the quotes was aborted because the request to the data provider took more than ${( this.configurationService.get('REQUEST_TIMEOUT') / 1000 ).toFixed(3)} seconds`; } else if (error.response?.statusCode === StatusCodes.TOO_MANY_REQUESTS) { message = 'RequestError: The daily request limit has been exceeded'; } else if (error.response?.statusCode === StatusCodes.UNAUTHORIZED) { - message = - 'RequestError: The provided API key is invalid. Please update it in the Settings section of the Admin Control panel.'; + if (!error.request?.options?.headers?.authorization?.includes('-')) { + message = + 'RequestError: The provided API key is invalid. Please update it in the Settings section of the Admin Control panel.'; + } else { + message = + 'RequestError: The provided API key has expired. Please request a new one and update it in the Settings section of the Admin Control panel.'; + } } Logger.error(message, 'GhostfolioService'); @@ -245,7 +260,7 @@ export class GhostfolioService implements DataProviderInterface { }, this.configurationService.get('REQUEST_TIMEOUT')); searchResult = await got( - `${this.URL}/v1/data-providers/ghostfolio/lookup?query=${query}`, + `${this.URL}/v2/data-providers/ghostfolio/lookup?query=${query}`, { headers: await this.getRequestHeaders(), // @ts-ignore @@ -255,15 +270,20 @@ export class GhostfolioService implements DataProviderInterface { } catch (error) { let message = error; - if (error?.code === 'ABORT_ERR') { + if (error.code === 'ABORT_ERR') { message = `RequestError: The operation to search for ${query} was aborted because the request to the data provider took more than ${( this.configurationService.get('REQUEST_TIMEOUT') / 1000 ).toFixed(3)} seconds`; } else if (error.response?.statusCode === StatusCodes.TOO_MANY_REQUESTS) { message = 'RequestError: The daily request limit has been exceeded'; } else if (error.response?.statusCode === StatusCodes.UNAUTHORIZED) { - message = - 'RequestError: The provided API key is invalid. Please update it in the Settings section of the Admin Control panel.'; + if (!error.request?.options?.headers?.authorization?.includes('-')) { + message = + 'RequestError: The provided API key is invalid. Please update it in the Settings section of the Admin Control panel.'; + } else { + message = + 'RequestError: The provided API key has expired. Please request a new one and update it in the Settings section of the Admin Control panel.'; + } } Logger.error(message, 'GhostfolioService'); @@ -278,7 +298,7 @@ export class GhostfolioService implements DataProviderInterface { )) as string; return { - [HEADER_KEY_TOKEN]: `Bearer ${apiKey}` + [HEADER_KEY_TOKEN]: `Api-Key ${apiKey}` }; } } diff --git a/apps/client/src/app/components/user-account-membership/user-account-membership.component.ts b/apps/client/src/app/components/user-account-membership/user-account-membership.component.ts index bde555d8..9b9242df 100644 --- a/apps/client/src/app/components/user-account-membership/user-account-membership.component.ts +++ b/apps/client/src/app/components/user-account-membership/user-account-membership.component.ts @@ -1,3 +1,4 @@ +import { ConfirmationDialogType } from '@ghostfolio/client/core/notification/confirmation-dialog/confirmation-dialog.type'; import { NotificationService } from '@ghostfolio/client/core/notification/notification.service'; import { DataService } from '@ghostfolio/client/services/data.service'; import { UserService } from '@ghostfolio/client/services/user/user.service'; @@ -16,7 +17,7 @@ import { MatSnackBarRef, TextOnlySnackBar } from '@angular/material/snack-bar'; -import { StringValue } from 'ms'; +import ms, { StringValue } from 'ms'; import { StripeService } from 'ngx-stripe'; import { EMPTY, Subject } from 'rxjs'; import { catchError, switchMap, takeUntil } from 'rxjs/operators'; @@ -34,6 +35,7 @@ export class UserAccountMembershipComponent implements OnDestroy { public defaultDateFormat: string; public durationExtension: StringValue; public hasPermissionForSubscription: boolean; + public hasPermissionToCreateApiKey: boolean; public hasPermissionToUpdateUserSettings: boolean; public price: number; public priceId: string; @@ -73,6 +75,11 @@ export class UserAccountMembershipComponent implements OnDestroy { this.user.settings.locale ); + this.hasPermissionToCreateApiKey = hasPermission( + this.user.permissions, + permissions.createApiKey + ); + this.hasPermissionToUpdateUserSettings = hasPermission( this.user.permissions, permissions.updateUserSettings @@ -100,15 +107,15 @@ export class UserAccountMembershipComponent implements OnDestroy { this.dataService .createCheckoutSession({ couponId: this.couponId, priceId: this.priceId }) .pipe( - switchMap(({ sessionId }: { sessionId: string }) => { - return this.stripeService.redirectToCheckout({ sessionId }); - }), catchError((error) => { this.notificationService.alert({ title: error.message }); throw error; + }), + switchMap(({ sessionId }: { sessionId: string }) => { + return this.stripeService.redirectToCheckout({ sessionId }); }) ) .subscribe((result) => { @@ -120,6 +127,41 @@ export class UserAccountMembershipComponent implements OnDestroy { }); } + public onGenerateApiKey() { + this.notificationService.confirm({ + confirmFn: () => { + this.dataService + .postApiKey() + .pipe( + catchError(() => { + this.snackBar.open( + '😞 ' + $localize`Could not generate an API key`, + undefined, + { + duration: ms('3 seconds') + } + ); + + return EMPTY; + }), + takeUntil(this.unsubscribeSubject) + ) + .subscribe(({ apiKey }) => { + this.notificationService.alert({ + discardLabel: $localize`Okay`, + message: + $localize`Set this API key in your self-hosted environment:` + + '
' + + apiKey, + title: $localize`Ghostfolio Premium Data Provider API Key` + }); + }); + }, + confirmType: ConfirmationDialogType.Primary, + title: $localize`Do you really want to generate a new API key?` + }); + } + public onRedeemCoupon() { let couponCode = prompt($localize`Please enter your coupon code:`); couponCode = couponCode?.trim(); @@ -128,18 +170,18 @@ export class UserAccountMembershipComponent implements OnDestroy { this.dataService .redeemCoupon(couponCode) .pipe( - takeUntil(this.unsubscribeSubject), catchError(() => { this.snackBar.open( '😞 ' + $localize`Could not redeem coupon code`, undefined, { - duration: 3000 + duration: ms('3 seconds') } ); return EMPTY; - }) + }), + takeUntil(this.unsubscribeSubject) ) .subscribe(() => { this.snackBarRef = this.snackBar.open( diff --git a/apps/client/src/app/components/user-account-membership/user-account-membership.html b/apps/client/src/app/components/user-account-membership/user-account-membership.html index 82b329a6..64dd2ce8 100644 --- a/apps/client/src/app/components/user-account-membership/user-account-membership.html +++ b/apps/client/src/app/components/user-account-membership/user-account-membership.html @@ -4,7 +4,9 @@
@if (user?.subscription?.type === 'Basic') {
diff --git a/apps/client/src/app/pages/api/api-page.component.ts b/apps/client/src/app/pages/api/api-page.component.ts index aa176c0f..a45efd9b 100644 --- a/apps/client/src/app/pages/api/api-page.component.ts +++ b/apps/client/src/app/pages/api/api-page.component.ts @@ -1,3 +1,7 @@ +import { + HEADER_KEY_SKIP_INTERCEPTOR, + HEADER_KEY_TOKEN +} from '@ghostfolio/common/config'; import { DATE_FORMAT } from '@ghostfolio/common/helper'; import { DataProviderGhostfolioStatusResponse, @@ -8,7 +12,7 @@ import { } from '@ghostfolio/common/interfaces'; import { CommonModule } from '@angular/common'; -import { HttpClient, HttpParams } from '@angular/common/http'; +import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http'; import { Component, OnInit } from '@angular/core'; import { format, startOfYear } from 'date-fns'; import { map, Observable, Subject, takeUntil } from 'rxjs'; @@ -28,11 +32,14 @@ export class GfApiPageComponent implements OnInit { public status$: Observable; public symbols$: Observable; + private apiKey: string; private unsubscribeSubject = new Subject(); public constructor(private http: HttpClient) {} public ngOnInit() { + this.apiKey = prompt($localize`Please enter your Ghostfolio API key:`); + this.dividends$ = this.fetchDividends({ symbol: 'KO' }); this.historicalData$ = this.fetchHistoricalData({ symbol: 'AAPL.US' }); this.quotes$ = this.fetchQuotes({ symbols: ['AAPL.US', 'VOO.US'] }); @@ -52,8 +59,11 @@ export class GfApiPageComponent implements OnInit { return this.http .get( - `/api/v1/data-providers/ghostfolio/dividends/${symbol}`, - { params } + `/api/v2/data-providers/ghostfolio/dividends/${symbol}`, + { + params, + headers: this.getHeaders() + } ) .pipe( map(({ dividends }) => { @@ -70,8 +80,11 @@ export class GfApiPageComponent implements OnInit { return this.http .get( - `/api/v1/data-providers/ghostfolio/historical/${symbol}`, - { params } + `/api/v2/data-providers/ghostfolio/historical/${symbol}`, + { + params, + headers: this.getHeaders() + } ) .pipe( map(({ historicalData }) => { @@ -85,8 +98,9 @@ export class GfApiPageComponent implements OnInit { const params = new HttpParams().set('symbols', symbols.join(',')); return this.http - .get('/api/v1/data-providers/ghostfolio/quotes', { - params + .get('/api/v2/data-providers/ghostfolio/quotes', { + params, + headers: this.getHeaders() }) .pipe( map(({ quotes }) => { @@ -99,7 +113,8 @@ export class GfApiPageComponent implements OnInit { private fetchStatus() { return this.http .get( - '/api/v1/data-providers/ghostfolio/status' + '/api/v2/data-providers/ghostfolio/status', + { headers: this.getHeaders() } ) .pipe(takeUntil(this.unsubscribeSubject)); } @@ -118,8 +133,9 @@ export class GfApiPageComponent implements OnInit { } return this.http - .get('/api/v1/data-providers/ghostfolio/lookup', { - params + .get('/api/v2/data-providers/ghostfolio/lookup', { + params, + headers: this.getHeaders() }) .pipe( map(({ items }) => { @@ -128,4 +144,11 @@ export class GfApiPageComponent implements OnInit { takeUntil(this.unsubscribeSubject) ); } + + private getHeaders() { + return new HttpHeaders({ + [HEADER_KEY_SKIP_INTERCEPTOR]: 'true', + [HEADER_KEY_TOKEN]: `Api-Key ${this.apiKey}` + }); + } } diff --git a/apps/client/src/app/services/admin.service.ts b/apps/client/src/app/services/admin.service.ts index 5d252f00..77d135f5 100644 --- a/apps/client/src/app/services/admin.service.ts +++ b/apps/client/src/app/services/admin.service.ts @@ -24,7 +24,7 @@ import { Filter } from '@ghostfolio/common/interfaces'; -import { HttpClient, HttpParams } from '@angular/common/http'; +import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http'; import { Injectable } from '@angular/core'; import { SortDirection } from '@angular/material/sort'; import { DataSource, MarketData, Platform, Tag } from '@prisma/client'; @@ -147,14 +147,14 @@ export class AdminService { public fetchGhostfolioDataProviderStatus() { return this.fetchAdminData().pipe( switchMap(({ settings }) => { + const headers = new HttpHeaders({ + [HEADER_KEY_SKIP_INTERCEPTOR]: 'true', + [HEADER_KEY_TOKEN]: `Api-Key ${settings[PROPERTY_API_KEY_GHOSTFOLIO]}` + }); + return this.http.get( - `${environment.production ? 'https://ghostfol.io' : ''}/api/v1/data-providers/ghostfolio/status`, - { - headers: { - [HEADER_KEY_SKIP_INTERCEPTOR]: 'true', - [HEADER_KEY_TOKEN]: `Bearer ${settings[PROPERTY_API_KEY_GHOSTFOLIO]}` - } - } + `${environment.production ? 'https://ghostfol.io' : ''}/api/v2/data-providers/ghostfolio/status`, + { headers } ); }) ); diff --git a/apps/client/src/app/services/data.service.ts b/apps/client/src/app/services/data.service.ts index dccbb064..92d03082 100644 --- a/apps/client/src/app/services/data.service.ts +++ b/apps/client/src/app/services/data.service.ts @@ -22,6 +22,7 @@ import { AccountBalancesResponse, Accounts, AdminMarketDataDetails, + ApiKeyResponse, AssetProfileIdentifier, BenchmarkMarketDataDetails, BenchmarkResponse, @@ -289,7 +290,7 @@ export class DataService { public deleteActivities({ filters }) { const params = this.buildFiltersAsQueryParams({ filters }); - return this.http.delete(`/api/v1/order`, { params }); + return this.http.delete('/api/v1/order', { params }); } public deleteActivity(aId: string) { @@ -636,36 +637,40 @@ export class DataService { } public loginAnonymous(accessToken: string) { - return this.http.post(`/api/v1/auth/anonymous`, { + return this.http.post('/api/v1/auth/anonymous', { accessToken }); } public postAccess(aAccess: CreateAccessDto) { - return this.http.post(`/api/v1/access`, aAccess); + return this.http.post('/api/v1/access', aAccess); } public postAccount(aAccount: CreateAccountDto) { - return this.http.post(`/api/v1/account`, aAccount); + return this.http.post('/api/v1/account', aAccount); } public postAccountBalance(aAccountBalance: CreateAccountBalanceDto) { return this.http.post( - `/api/v1/account-balance`, + '/api/v1/account-balance', aAccountBalance ); } + public postApiKey() { + return this.http.post('/api/v1/api-keys', {}); + } + public postBenchmark(benchmark: AssetProfileIdentifier) { - return this.http.post(`/api/v1/benchmark`, benchmark); + return this.http.post('/api/v1/benchmark', benchmark); } public postOrder(aOrder: CreateOrderDto) { - return this.http.post(`/api/v1/order`, aOrder); + return this.http.post('/api/v1/order', aOrder); } public postUser() { - return this.http.post(`/api/v1/user`, {}); + return this.http.post('/api/v1/user', {}); } public putAccount(aAccount: UpdateAccountDto) { @@ -692,7 +697,7 @@ export class DataService { } public putUserSetting(aData: UpdateUserSettingDto) { - return this.http.put(`/api/v1/user/setting`, aData); + return this.http.put('/api/v1/user/setting', aData); } public redeemCoupon(couponCode: string) { diff --git a/libs/common/src/lib/interfaces/index.ts b/libs/common/src/lib/interfaces/index.ts index 4d5ce66d..344a1f96 100644 --- a/libs/common/src/lib/interfaces/index.ts +++ b/libs/common/src/lib/interfaces/index.ts @@ -39,6 +39,7 @@ import type { PortfolioSummary } from './portfolio-summary.interface'; import type { Position } from './position.interface'; import type { Product } from './product'; import type { AccountBalancesResponse } from './responses/account-balances-response.interface'; +import type { ApiKeyResponse } from './responses/api-key-response.interface'; import type { BenchmarkResponse } from './responses/benchmark-response.interface'; import type { DataProviderGhostfolioStatusResponse } from './responses/data-provider-ghostfolio-status-response.interface'; import type { DividendsResponse } from './responses/dividends-response.interface'; @@ -72,6 +73,7 @@ export { AdminMarketDataDetails, AdminMarketDataItem, AdminUsers, + ApiKeyResponse, AssetProfileIdentifier, Benchmark, BenchmarkMarketDataDetails, diff --git a/libs/common/src/lib/interfaces/responses/api-key-response.interface.ts b/libs/common/src/lib/interfaces/responses/api-key-response.interface.ts new file mode 100644 index 00000000..dace14a0 --- /dev/null +++ b/libs/common/src/lib/interfaces/responses/api-key-response.interface.ts @@ -0,0 +1,3 @@ +export interface ApiKeyResponse { + apiKey: string; +} diff --git a/libs/common/src/lib/permissions.ts b/libs/common/src/lib/permissions.ts index 1a81938b..cfee1c9e 100644 --- a/libs/common/src/lib/permissions.ts +++ b/libs/common/src/lib/permissions.ts @@ -9,6 +9,7 @@ export const permissions = { createAccess: 'createAccess', createAccount: 'createAccount', createAccountBalance: 'createAccountBalance', + createApiKey: 'createApiKey', createOrder: 'createOrder', createPlatform: 'createPlatform', createTag: 'createTag', diff --git a/libs/ui/src/lib/membership-card/membership-card.component.html b/libs/ui/src/lib/membership-card/membership-card.component.html index 02a4a03f..37634b02 100644 --- a/libs/ui/src/lib/membership-card/membership-card.component.html +++ b/libs/ui/src/lib/membership-card/membership-card.component.html @@ -13,6 +13,25 @@ [showLabel]="false" />
+ @if (hasPermissionToCreateApiKey) { +
+
API Key
+
+
* * * * * * * * *
+
+ +
+
+
+ }
Membership
diff --git a/libs/ui/src/lib/membership-card/membership-card.component.scss b/libs/ui/src/lib/membership-card/membership-card.component.scss index a7cbce91..270adc0f 100644 --- a/libs/ui/src/lib/membership-card/membership-card.component.scss +++ b/libs/ui/src/lib/membership-card/membership-card.component.scss @@ -42,6 +42,12 @@ background-color: #1d2124; border-radius: calc(var(--borderRadius) - var(--borderWidth)); color: rgba(var(--light-primary-text)); + line-height: 1.2; + + button { + color: rgba(var(--light-primary-text)); + height: 1.5rem; + } .heading { font-size: 13px; diff --git a/libs/ui/src/lib/membership-card/membership-card.component.ts b/libs/ui/src/lib/membership-card/membership-card.component.ts index b1907294..5d05d6fe 100644 --- a/libs/ui/src/lib/membership-card/membership-card.component.ts +++ b/libs/ui/src/lib/membership-card/membership-card.component.ts @@ -3,15 +3,18 @@ import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, - Input + EventEmitter, + Input, + Output } from '@angular/core'; +import { MatButtonModule } from '@angular/material/button'; import { RouterModule } from '@angular/router'; import { GfLogoComponent } from '../logo'; @Component({ changeDetection: ChangeDetectionStrategy.OnPush, - imports: [CommonModule, GfLogoComponent, RouterModule], + imports: [CommonModule, GfLogoComponent, MatButtonModule, RouterModule], schemas: [CUSTOM_ELEMENTS_SCHEMA], selector: 'gf-membership-card', standalone: true, @@ -20,7 +23,17 @@ import { GfLogoComponent } from '../logo'; }) export class GfMembershipCardComponent { @Input() public expiresAt: string; + @Input() public hasPermissionToCreateApiKey: boolean; @Input() public name: string; + @Output() generateApiKeyClicked = new EventEmitter(); + public routerLinkPricing = ['/' + $localize`:snake-case:pricing`]; + + public onGenerateApiKey(event: MouseEvent) { + event.preventDefault(); + event.stopPropagation(); + + this.generateApiKeyClicked.emit(); + } } diff --git a/package-lock.json b/package-lock.json index ae7b60a4..0b93a63b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -83,6 +83,7 @@ "papaparse": "5.3.1", "passport": "0.7.0", "passport-google-oauth20": "2.0.0", + "passport-headerapikey": "1.2.2", "passport-jwt": "4.0.1", "reflect-metadata": "0.1.13", "rxjs": "7.5.6", @@ -28414,6 +28415,16 @@ "node": ">= 0.4.0" } }, + "node_modules/passport-headerapikey": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/passport-headerapikey/-/passport-headerapikey-1.2.2.tgz", + "integrity": "sha512-4BvVJRrWsNJPrd3UoZfcnnl4zvUWYKEtfYkoDsaOKBsrWHYmzTApCjs7qUbncOLexE9ul0IRiYBFfBG0y9IVQA==", + "license": "MIT", + "dependencies": { + "lodash": "^4.17.15", + "passport-strategy": "^1.0.0" + } + }, "node_modules/passport-jwt": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/passport-jwt/-/passport-jwt-4.0.1.tgz", diff --git a/package.json b/package.json index 7f124ea2..24e0d64a 100644 --- a/package.json +++ b/package.json @@ -129,6 +129,7 @@ "papaparse": "5.3.1", "passport": "0.7.0", "passport-google-oauth20": "2.0.0", + "passport-headerapikey": "1.2.2", "passport-jwt": "4.0.1", "reflect-metadata": "0.1.13", "rxjs": "7.5.6", From 1be0a6441787c9b95e8571b76add7aa3c1976db1 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Sat, 7 Dec 2024 15:32:47 +0100 Subject: [PATCH 03/63] Feature/upgrade prettier to version 3.4.2 (#4090) * Upgrade prettier to version 3.4.2 * Update changelog --- CHANGELOG.md | 1 + package-lock.json | 8 ++++---- package.json | 2 +- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index fcefd564..d4043459 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,6 +16,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Improved the labels of the assistant - Improved the caching of the portfolio snapshot in the portfolio calculator by expiring cache entries immediately in case of errors - Extracted the historical market data editor to a reusable component +- Upgraded `prettier` from version `3.3.3` to `3.4.2` ## 2.125.0 - 2024-11-30 diff --git a/package-lock.json b/package-lock.json index 0b93a63b..be8e0a41 100644 --- a/package-lock.json +++ b/package-lock.json @@ -149,7 +149,7 @@ "jest-environment-jsdom": "29.7.0", "jest-preset-angular": "14.1.0", "nx": "20.1.2", - "prettier": "3.3.3", + "prettier": "3.4.2", "prettier-plugin-organize-attributes": "1.0.0", "prisma": "6.0.0", "react": "18.2.0", @@ -29419,9 +29419,9 @@ } }, "node_modules/prettier": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.3.tgz", - "integrity": "sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==", + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.4.2.tgz", + "integrity": "sha512-e9MewbtFo+Fevyuxn/4rrcDAaq0IYxPGLvObpQjiZBMAzB9IGmzlnG9RZy3FFas+eBMu2vA0CszMeduow5dIuQ==", "dev": true, "license": "MIT", "bin": { diff --git a/package.json b/package.json index 24e0d64a..66842262 100644 --- a/package.json +++ b/package.json @@ -195,7 +195,7 @@ "jest-environment-jsdom": "29.7.0", "jest-preset-angular": "14.1.0", "nx": "20.1.2", - "prettier": "3.3.3", + "prettier": "3.4.2", "prettier-plugin-organize-attributes": "1.0.0", "prisma": "6.0.0", "react": "18.2.0", From 0e016745527860ecc26a16fc551da489996f9f5b Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Sat, 7 Dec 2024 15:44:53 +0100 Subject: [PATCH 04/63] Feature/set hashedKey of ApiKey to unique (#4103) * Set hashedKey to unique --- apps/api/src/services/api-key/api-key.service.ts | 2 +- .../migration.sql | 5 +++++ prisma/schema.prisma | 3 +-- 3 files changed, 7 insertions(+), 3 deletions(-) create mode 100644 prisma/migrations/20241207142023_set_hashed_key_of_api_key_to_unique/migration.sql diff --git a/apps/api/src/services/api-key/api-key.service.ts b/apps/api/src/services/api-key/api-key.service.ts index 2a1f14d0..f70e5330 100644 --- a/apps/api/src/services/api-key/api-key.service.ts +++ b/apps/api/src/services/api-key/api-key.service.ts @@ -32,7 +32,7 @@ export class ApiKeyService { public async getUserByApiKey(apiKey: string) { const hashedKey = this.hashApiKey(apiKey); - const { user } = await this.prismaService.apiKey.findFirst({ + const { user } = await this.prismaService.apiKey.findUnique({ include: { user: true }, where: { hashedKey } }); diff --git a/prisma/migrations/20241207142023_set_hashed_key_of_api_key_to_unique/migration.sql b/prisma/migrations/20241207142023_set_hashed_key_of_api_key_to_unique/migration.sql new file mode 100644 index 00000000..f9a6eecb --- /dev/null +++ b/prisma/migrations/20241207142023_set_hashed_key_of_api_key_to_unique/migration.sql @@ -0,0 +1,5 @@ +-- DropIndex +DROP INDEX "ApiKey_hashedKey_idx"; + +-- CreateIndex +CREATE UNIQUE INDEX "ApiKey_hashedKey_key" ON "ApiKey"("hashedKey"); diff --git a/prisma/schema.prisma b/prisma/schema.prisma index e2587acf..7df28d69 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -79,13 +79,12 @@ model Analytics { model ApiKey { createdAt DateTime @default(now()) - hashedKey String + hashedKey String @unique id String @id @default(uuid()) updatedAt DateTime @updatedAt userId String user User @relation(fields: [userId], onDelete: Cascade, references: [id]) - @@index([hashedKey]) @@index([userId]) } From 758a52087d7e58ac8c3809ad5d9aaf3f7205bbaf Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Sat, 7 Dec 2024 15:51:55 +0100 Subject: [PATCH 05/63] Feature/upgrade prisma to version 6.0.1 (#4104) * Upgrade prisma to version 6.0.1 * Update changelog --- CHANGELOG.md | 1 + package-lock.json | 54 +++++++++++++++++++++++------------------------ package.json | 4 ++-- 3 files changed, 30 insertions(+), 29 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d4043459..42ab80c8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,6 +17,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Improved the caching of the portfolio snapshot in the portfolio calculator by expiring cache entries immediately in case of errors - Extracted the historical market data editor to a reusable component - Upgraded `prettier` from version `3.3.3` to `3.4.2` +- Upgraded `prisma` from version `6.0.0` to `6.0.1` ## 2.125.0 - 2024-11-30 diff --git a/package-lock.json b/package-lock.json index be8e0a41..212714ba 100644 --- a/package-lock.json +++ b/package-lock.json @@ -40,7 +40,7 @@ "@nestjs/platform-express": "10.1.3", "@nestjs/schedule": "3.0.2", "@nestjs/serve-static": "4.0.0", - "@prisma/client": "6.0.0", + "@prisma/client": "6.0.1", "@simplewebauthn/browser": "9.0.1", "@simplewebauthn/server": "9.0.3", "@stripe/stripe-js": "4.9.0", @@ -151,7 +151,7 @@ "nx": "20.1.2", "prettier": "3.4.2", "prettier-plugin-organize-attributes": "1.0.0", - "prisma": "6.0.0", + "prisma": "6.0.1", "react": "18.2.0", "react-dom": "18.2.0", "replace-in-file": "7.0.1", @@ -8353,9 +8353,9 @@ "license": "MIT" }, "node_modules/@prisma/client": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@prisma/client/-/client-6.0.0.tgz", - "integrity": "sha512-tOBhG35ozqZ/5Y6B0TNOa6cwULUW8ijXqBXcgb12bfozqf6eGMyGs+jphywCsj6uojv5lAZZnxVSoLMVebIP+g==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@prisma/client/-/client-6.0.1.tgz", + "integrity": "sha512-60w7kL6bUxz7M6Gs/V+OWMhwy94FshpngVmOY05TmGD0Lhk+Ac0ZgtjlL6Wll9TD4G03t4Sq1wZekNVy+Xdlbg==", "hasInstallScript": true, "license": "Apache-2.0", "engines": { @@ -8371,24 +8371,24 @@ } }, "node_modules/@prisma/debug": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@prisma/debug/-/debug-6.0.0.tgz", - "integrity": "sha512-eUjoNThlDXdyJ1iQ2d7U6aTVwm59EwvODb5zFVNJEokNoSiQmiYWNzZIwZyDmZ+j51j42/0iTaHIJ4/aZPKFRg==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@prisma/debug/-/debug-6.0.1.tgz", + "integrity": "sha512-jQylgSOf7ibTVxqBacnAlVGvek6fQxJIYCQOeX2KexsfypNzXjJQSS2o5s+Mjj2Np93iSOQUaw6TvPj8syhG4w==", "devOptional": true, "license": "Apache-2.0" }, "node_modules/@prisma/engines": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@prisma/engines/-/engines-6.0.0.tgz", - "integrity": "sha512-ZZCVP3q22ifN6Ex6C8RIcTDBlRtMJS2H1ljV0knCiWNGArvvkEbE88W3uDdq/l4+UvyvHpGzdf9ZsCWSQR7ZQQ==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@prisma/engines/-/engines-6.0.1.tgz", + "integrity": "sha512-4hxzI+YQIR2uuDyVsDooFZGu5AtixbvM2psp+iayDZ4hRrAHo/YwgA17N23UWq7G6gRu18NvuNMb48qjP3DPQw==", "devOptional": true, "hasInstallScript": true, "license": "Apache-2.0", "dependencies": { - "@prisma/debug": "6.0.0", + "@prisma/debug": "6.0.1", "@prisma/engines-version": "5.23.0-27.5dbef10bdbfb579e07d35cc85fb1518d357cb99e", - "@prisma/fetch-engine": "6.0.0", - "@prisma/get-platform": "6.0.0" + "@prisma/fetch-engine": "6.0.1", + "@prisma/get-platform": "6.0.1" } }, "node_modules/@prisma/engines-version": { @@ -8399,25 +8399,25 @@ "license": "Apache-2.0" }, "node_modules/@prisma/fetch-engine": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@prisma/fetch-engine/-/fetch-engine-6.0.0.tgz", - "integrity": "sha512-j2m+iO5RDPRI7SUc7sHo8wX7SA4iTkJ+18Sxch8KinQM46YiCQD1iXKN6qU79C1Fliw5Bw/qDyTHaTsa3JMerA==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@prisma/fetch-engine/-/fetch-engine-6.0.1.tgz", + "integrity": "sha512-T36bWFVGeGYYSyYOj9d+O9G3sBC+pAyMC+jc45iSL63/Haq1GrYjQPgPMxrEj9m739taXrupoysRedQ+VyvM/Q==", "devOptional": true, "license": "Apache-2.0", "dependencies": { - "@prisma/debug": "6.0.0", + "@prisma/debug": "6.0.1", "@prisma/engines-version": "5.23.0-27.5dbef10bdbfb579e07d35cc85fb1518d357cb99e", - "@prisma/get-platform": "6.0.0" + "@prisma/get-platform": "6.0.1" } }, "node_modules/@prisma/get-platform": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@prisma/get-platform/-/get-platform-6.0.0.tgz", - "integrity": "sha512-PS6nYyIm9g8C03E4y7LknOfdCw/t2KyEJxntMPQHQZCOUgOpF82Ma60mdlOD08w90I3fjLiZZ0+MadenR3naDQ==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@prisma/get-platform/-/get-platform-6.0.1.tgz", + "integrity": "sha512-zspC9vlxAqx4E6epMPMLLBMED2VD8axDe8sPnquZ8GOsn6tiacWK0oxrGK4UAHYzYUVuMVUApJbdXB2dFpLhvg==", "devOptional": true, "license": "Apache-2.0", "dependencies": { - "@prisma/debug": "6.0.0" + "@prisma/debug": "6.0.1" } }, "node_modules/@redis/bloom": { @@ -29500,14 +29500,14 @@ } }, "node_modules/prisma": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/prisma/-/prisma-6.0.0.tgz", - "integrity": "sha512-RX7KtbW7IoEByf7MR32JK1PkVYLVYFqeODTtiIX3cqekq1aKdsF3Eud4zp2sUShMLjvdb5Jow0LbUjRq5LVxPw==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/prisma/-/prisma-6.0.1.tgz", + "integrity": "sha512-CaMNFHkf+DDq8zq3X/JJsQ4Koy7dyWwwtOKibkT/Am9j/tDxcfbg7+lB1Dzhx18G/+RQCMgjPYB61bhRqteNBQ==", "devOptional": true, "hasInstallScript": true, "license": "Apache-2.0", "dependencies": { - "@prisma/engines": "6.0.0" + "@prisma/engines": "6.0.1" }, "bin": { "prisma": "build/index.js" diff --git a/package.json b/package.json index 66842262..10ade46d 100644 --- a/package.json +++ b/package.json @@ -86,7 +86,7 @@ "@nestjs/platform-express": "10.1.3", "@nestjs/schedule": "3.0.2", "@nestjs/serve-static": "4.0.0", - "@prisma/client": "6.0.0", + "@prisma/client": "6.0.1", "@simplewebauthn/browser": "9.0.1", "@simplewebauthn/server": "9.0.3", "@stripe/stripe-js": "4.9.0", @@ -197,7 +197,7 @@ "nx": "20.1.2", "prettier": "3.4.2", "prettier-plugin-organize-attributes": "1.0.0", - "prisma": "6.0.0", + "prisma": "6.0.1", "react": "18.2.0", "react-dom": "18.2.0", "replace-in-file": "7.0.1", From 17ffb29275505fda5b670333dc4da0646674a3ff Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Sat, 7 Dec 2024 15:54:29 +0100 Subject: [PATCH 06/63] Release 2.126.0 (#4105) --- CHANGELOG.md | 2 +- package-lock.json | 4 ++-- package.json | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 42ab80c8..b162d220 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,7 +5,7 @@ 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 +## 2.126.0 - 2024-12-07 ### Added diff --git a/package-lock.json b/package-lock.json index 212714ba..4957619e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "ghostfolio", - "version": "2.125.0", + "version": "2.126.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "ghostfolio", - "version": "2.125.0", + "version": "2.126.0", "hasInstallScript": true, "license": "AGPL-3.0", "dependencies": { diff --git a/package.json b/package.json index 10ade46d..f86c028b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ghostfolio", - "version": "2.125.0", + "version": "2.126.0", "homepage": "https://ghostfol.io", "license": "AGPL-3.0", "repository": "https://github.com/ghostfolio/ghostfolio", From ebef361d638e75c64f966408d5385b0d07620745 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Sat, 7 Dec 2024 21:41:21 +0100 Subject: [PATCH 07/63] Bugfix/fix exception in portfolio calculator (#4109) * Fix exception in portfolio calculator * Update changelog --- CHANGELOG.md | 6 ++++++ .../src/app/portfolio/calculator/portfolio-calculator.ts | 1 + 2 files changed, 7 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index b162d220..61d37399 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,12 @@ 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 + +### Fixed + +- Fixed an exception in the caching of the portfolio snapshot in the portfolio calculator + ## 2.126.0 - 2024-12-07 ### Added diff --git a/apps/api/src/app/portfolio/calculator/portfolio-calculator.ts b/apps/api/src/app/portfolio/calculator/portfolio-calculator.ts index dec0e638..eb18b358 100644 --- a/apps/api/src/app/portfolio/calculator/portfolio-calculator.ts +++ b/apps/api/src/app/portfolio/calculator/portfolio-calculator.ts @@ -176,6 +176,7 @@ export abstract class PortfolioCalculator { if (!transactionPoints.length) { return { currentValueInBaseCurrency: new Big(0), + errors: [], hasErrors: false, historicalData: [], positions: [], From d6357487eae6adddeb5974967574b7179d1f26a9 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Sat, 7 Dec 2024 21:43:30 +0100 Subject: [PATCH 08/63] Release 2.126.1 (#4110) --- CHANGELOG.md | 8 +------- package-lock.json | 4 ++-- package.json | 2 +- 3 files changed, 4 insertions(+), 10 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 61d37399..2e8e4a73 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,13 +5,7 @@ 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 - -### Fixed - -- Fixed an exception in the caching of the portfolio snapshot in the portfolio calculator - -## 2.126.0 - 2024-12-07 +## 2.126.1 - 2024-12-07 ### Added diff --git a/package-lock.json b/package-lock.json index 4957619e..ecbc91c5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "ghostfolio", - "version": "2.126.0", + "version": "2.126.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "ghostfolio", - "version": "2.126.0", + "version": "2.126.1", "hasInstallScript": true, "license": "AGPL-3.0", "dependencies": { diff --git a/package.json b/package.json index f86c028b..738f2db8 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ghostfolio", - "version": "2.126.0", + "version": "2.126.1", "homepage": "https://ghostfol.io", "license": "AGPL-3.0", "repository": "https://github.com/ghostfolio/ghostfolio", From 291be3e6051d89e50adb70ca49337dfa90703015 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Sun, 8 Dec 2024 08:05:08 +0100 Subject: [PATCH 09/63] Feature/extend X-ray page by summary (#4107) * Add summary to X-ray page * Update changelog --- CHANGELOG.md | 6 + .../src/app/portfolio/portfolio.controller.ts | 4 +- .../src/app/portfolio/portfolio.service.ts | 164 ++++++++++-------- .../portfolio/x-ray/x-ray-page.component.html | 31 +++- .../portfolio/x-ray/x-ray-page.component.ts | 52 +++--- apps/client/src/app/services/data.service.ts | 4 +- libs/common/src/lib/interfaces/index.ts | 4 +- .../interfaces/portfolio-report.interface.ts | 5 - .../responses/portfolio-report.interface.ts | 9 + 9 files changed, 162 insertions(+), 117 deletions(-) delete mode 100644 libs/common/src/lib/interfaces/portfolio-report.interface.ts create mode 100644 libs/common/src/lib/interfaces/responses/portfolio-report.interface.ts diff --git a/CHANGELOG.md b/CHANGELOG.md index 2e8e4a73..7c20027c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,12 @@ 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 + +### Added + +- Extended the _X-ray_ page by a summary + ## 2.126.1 - 2024-12-07 ### Added diff --git a/apps/api/src/app/portfolio/portfolio.controller.ts b/apps/api/src/app/portfolio/portfolio.controller.ts index f2415dff..b15d2226 100644 --- a/apps/api/src/app/portfolio/portfolio.controller.ts +++ b/apps/api/src/app/portfolio/portfolio.controller.ts @@ -23,7 +23,7 @@ import { PortfolioHoldingsResponse, PortfolioInvestments, PortfolioPerformanceResponse, - PortfolioReport + PortfolioReportResponse } from '@ghostfolio/common/interfaces'; import { hasReadRestrictedAccessPermission, @@ -611,7 +611,7 @@ export class PortfolioController { @UseGuards(AuthGuard('jwt'), HasPermissionGuard) public async getReport( @Headers(HEADER_KEY_IMPERSONATION.toLowerCase()) impersonationId: string - ): Promise { + ): Promise { const report = await this.portfolioService.getReport(impersonationId); if ( diff --git a/apps/api/src/app/portfolio/portfolio.service.ts b/apps/api/src/app/portfolio/portfolio.service.ts index 15ca227e..d16a5254 100644 --- a/apps/api/src/app/portfolio/portfolio.service.ts +++ b/apps/api/src/app/portfolio/portfolio.service.ts @@ -37,7 +37,7 @@ import { PortfolioInvestments, PortfolioPerformanceResponse, PortfolioPosition, - PortfolioReport, + PortfolioReportResponse, PortfolioSummary, Position, UserSettings @@ -1162,7 +1162,9 @@ export class PortfolioService { }; } - public async getReport(impersonationId: string): Promise { + public async getReport( + impersonationId: string + ): Promise { const userId = await this.getUserId(impersonationId, this.request.user.id); const userSettings = this.request.user.Settings.settings as UserSettings; @@ -1179,79 +1181,79 @@ export class PortfolioService { }) ).toNumber(); - return { - rules: { - accountClusterRisk: - summary.ordersCount > 0 - ? await this.rulesService.evaluate( - [ - new AccountClusterRiskCurrentInvestment( - this.exchangeRateDataService, - accounts - ), - new AccountClusterRiskSingleAccount( - this.exchangeRateDataService, - accounts - ) - ], - userSettings - ) - : undefined, - economicMarketClusterRisk: - summary.ordersCount > 0 - ? await this.rulesService.evaluate( - [ - new EconomicMarketClusterRiskDevelopedMarkets( - this.exchangeRateDataService, - marketsTotalInBaseCurrency, - markets.developedMarkets.valueInBaseCurrency - ), - new EconomicMarketClusterRiskEmergingMarkets( - this.exchangeRateDataService, - marketsTotalInBaseCurrency, - markets.emergingMarkets.valueInBaseCurrency - ) - ], - userSettings - ) - : undefined, - currencyClusterRisk: - summary.ordersCount > 0 - ? await this.rulesService.evaluate( - [ - new CurrencyClusterRiskBaseCurrencyCurrentInvestment( - this.exchangeRateDataService, - Object.values(holdings) - ), - new CurrencyClusterRiskCurrentInvestment( - this.exchangeRateDataService, - Object.values(holdings) - ) - ], - userSettings - ) - : undefined, - emergencyFund: await this.rulesService.evaluate( - [ - new EmergencyFundSetup( - this.exchangeRateDataService, - userSettings.emergencyFund + const rules: PortfolioReportResponse['rules'] = { + accountClusterRisk: + summary.ordersCount > 0 + ? await this.rulesService.evaluate( + [ + new AccountClusterRiskCurrentInvestment( + this.exchangeRateDataService, + accounts + ), + new AccountClusterRiskSingleAccount( + this.exchangeRateDataService, + accounts + ) + ], + userSettings ) - ], - userSettings - ), - fees: await this.rulesService.evaluate( - [ - new FeeRatioInitialInvestment( - this.exchangeRateDataService, - summary.committedFunds, - summary.fees + : undefined, + economicMarketClusterRisk: + summary.ordersCount > 0 + ? await this.rulesService.evaluate( + [ + new EconomicMarketClusterRiskDevelopedMarkets( + this.exchangeRateDataService, + marketsTotalInBaseCurrency, + markets.developedMarkets.valueInBaseCurrency + ), + new EconomicMarketClusterRiskEmergingMarkets( + this.exchangeRateDataService, + marketsTotalInBaseCurrency, + markets.emergingMarkets.valueInBaseCurrency + ) + ], + userSettings ) - ], - userSettings - ) - } + : undefined, + currencyClusterRisk: + summary.ordersCount > 0 + ? await this.rulesService.evaluate( + [ + new CurrencyClusterRiskBaseCurrencyCurrentInvestment( + this.exchangeRateDataService, + Object.values(holdings) + ), + new CurrencyClusterRiskCurrentInvestment( + this.exchangeRateDataService, + Object.values(holdings) + ) + ], + userSettings + ) + : undefined, + emergencyFund: await this.rulesService.evaluate( + [ + new EmergencyFundSetup( + this.exchangeRateDataService, + userSettings.emergencyFund + ) + ], + userSettings + ), + fees: await this.rulesService.evaluate( + [ + new FeeRatioInitialInvestment( + this.exchangeRateDataService, + summary.committedFunds, + summary.fees + ) + ], + userSettings + ) }; + + return { rules, statistics: this.getReportStatistics(rules) }; } public async updateTags({ @@ -1670,6 +1672,24 @@ export class PortfolioService { return { markets, marketsAdvanced }; } + private getReportStatistics( + evaluatedRules: PortfolioReportResponse['rules'] + ): PortfolioReportResponse['statistics'] { + const rulesActiveCount = Object.values(evaluatedRules) + .flat() + .filter(({ isActive }) => { + return isActive === true; + }).length; + + const rulesFulfilledCount = Object.values(evaluatedRules) + .flat() + .filter(({ value }) => { + return value === true; + }).length; + + return { rulesActiveCount, rulesFulfilledCount }; + } + private getStreaks({ investments, savingsRate diff --git a/apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html b/apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html index cd03b49b..7a0a3512 100644 --- a/apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html +++ b/apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html @@ -2,11 +2,28 @@

X-ray

-

+

Ghostfolio X-ray uses static analysis to uncover potential issues and risks in your portfolio. Adjust the rules below and set custom thresholds to align with your personal investment strategy.

+

+ @if (isLoading) { + + } @else { + {{ statistics?.rulesFulfilledCount }} + of + {{ statistics?.rulesActiveCount }} + rules are currently fulfilled. + } +

Emergency Fund @@ -20,7 +37,7 @@ hasPermissionToUpdateUserSettings && user?.settings?.isExperimentalFeatures " - [isLoading]="isLoadingPortfolioReport" + [isLoading]="isLoading" [rules]="emergencyFundRules" [settings]="user?.settings?.xRayRules" (rulesUpdated)="onRulesUpdated($event)" @@ -39,7 +56,7 @@ hasPermissionToUpdateUserSettings && user?.settings?.isExperimentalFeatures " - [isLoading]="isLoadingPortfolioReport" + [isLoading]="isLoading" [rules]="currencyClusterRiskRules" [settings]="user?.settings?.xRayRules" (rulesUpdated)="onRulesUpdated($event)" @@ -58,7 +75,7 @@ hasPermissionToUpdateUserSettings && user?.settings?.isExperimentalFeatures " - [isLoading]="isLoadingPortfolioReport" + [isLoading]="isLoading" [rules]="accountClusterRiskRules" [settings]="user?.settings?.xRayRules" (rulesUpdated)="onRulesUpdated($event)" @@ -77,7 +94,7 @@ hasPermissionToUpdateUserSettings && user?.settings?.isExperimentalFeatures " - [isLoading]="isLoadingPortfolioReport" + [isLoading]="isLoading" [rules]="economicMarketClusterRiskRules" [settings]="user?.settings?.xRayRules" (rulesUpdated)="onRulesUpdated($event)" @@ -96,7 +113,7 @@ hasPermissionToUpdateUserSettings && user?.settings?.isExperimentalFeatures " - [isLoading]="isLoadingPortfolioReport" + [isLoading]="isLoading" [rules]="feeRules" [settings]="user?.settings?.xRayRules" (rulesUpdated)="onRulesUpdated($event)" @@ -111,7 +128,7 @@ hasPermissionToUpdateUserSettings && user?.settings?.isExperimentalFeatures " - [isLoading]="isLoadingPortfolioReport" + [isLoading]="isLoading" [rules]="inactiveRules" [settings]="user?.settings?.xRayRules" (rulesUpdated)="onRulesUpdated($event)" diff --git a/apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.ts b/apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.ts index 36f42fc3..86bc3773 100644 --- a/apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.ts +++ b/apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.ts @@ -3,8 +3,8 @@ import { DataService } from '@ghostfolio/client/services/data.service'; import { ImpersonationStorageService } from '@ghostfolio/client/services/impersonation-storage.service'; import { UserService } from '@ghostfolio/client/services/user/user.service'; import { - PortfolioReportRule, - PortfolioReport + PortfolioReportResponse, + PortfolioReportRule } from '@ghostfolio/common/interfaces'; import { User } from '@ghostfolio/common/interfaces/user.interface'; import { hasPermission, permissions } from '@ghostfolio/common/permissions'; @@ -26,7 +26,8 @@ export class XRayPageComponent { public hasImpersonationId: boolean; public hasPermissionToUpdateUserSettings: boolean; public inactiveRules: PortfolioReportRule[]; - public isLoadingPortfolioReport = false; + public isLoading = false; + public statistics: PortfolioReportResponse['statistics']; public user: User; private unsubscribeSubject = new Subject(); @@ -87,56 +88,53 @@ export class XRayPageComponent { } private initializePortfolioReport() { - this.isLoadingPortfolioReport = true; + this.isLoading = true; this.dataService .fetchPortfolioReport() .pipe(takeUntil(this.unsubscribeSubject)) - .subscribe((portfolioReport) => { - this.inactiveRules = this.mergeInactiveRules(portfolioReport); + .subscribe(({ rules, statistics }) => { + this.inactiveRules = this.mergeInactiveRules(rules); + this.statistics = statistics; this.accountClusterRiskRules = - portfolioReport.rules['accountClusterRisk']?.filter( - ({ isActive }) => { - return isActive; - } - ) ?? null; + rules['accountClusterRisk']?.filter(({ isActive }) => { + return isActive; + }) ?? null; this.currencyClusterRiskRules = - portfolioReport.rules['currencyClusterRisk']?.filter( - ({ isActive }) => { - return isActive; - } - ) ?? null; + rules['currencyClusterRisk']?.filter(({ isActive }) => { + return isActive; + }) ?? null; this.economicMarketClusterRiskRules = - portfolioReport.rules['economicMarketClusterRisk']?.filter( - ({ isActive }) => { - return isActive; - } - ) ?? null; + rules['economicMarketClusterRisk']?.filter(({ isActive }) => { + return isActive; + }) ?? null; this.emergencyFundRules = - portfolioReport.rules['emergencyFund']?.filter(({ isActive }) => { + rules['emergencyFund']?.filter(({ isActive }) => { return isActive; }) ?? null; this.feeRules = - portfolioReport.rules['fees']?.filter(({ isActive }) => { + rules['fees']?.filter(({ isActive }) => { return isActive; }) ?? null; - this.isLoadingPortfolioReport = false; + this.isLoading = false; this.changeDetectorRef.markForCheck(); }); } - private mergeInactiveRules(report: PortfolioReport): PortfolioReportRule[] { + private mergeInactiveRules( + rules: PortfolioReportResponse['rules'] + ): PortfolioReportRule[] { let inactiveRules: PortfolioReportRule[] = []; - for (const category in report.rules) { - const rulesArray = report.rules[category]; + for (const category in rules) { + const rulesArray = rules[category]; inactiveRules = inactiveRules.concat( rulesArray.filter(({ isActive }) => { diff --git a/apps/client/src/app/services/data.service.ts b/apps/client/src/app/services/data.service.ts index 92d03082..eef258a5 100644 --- a/apps/client/src/app/services/data.service.ts +++ b/apps/client/src/app/services/data.service.ts @@ -37,7 +37,7 @@ import { PortfolioHoldingsResponse, PortfolioInvestments, PortfolioPerformanceResponse, - PortfolioReport, + PortfolioReportResponse, PublicPortfolioResponse, User } from '@ghostfolio/common/interfaces'; @@ -613,7 +613,7 @@ export class DataService { } public fetchPortfolioReport() { - return this.http.get('/api/v1/portfolio/report'); + return this.http.get('/api/v1/portfolio/report'); } public fetchPublicPortfolio(aAccessId: string) { diff --git a/libs/common/src/lib/interfaces/index.ts b/libs/common/src/lib/interfaces/index.ts index 344a1f96..ed8fd4f2 100644 --- a/libs/common/src/lib/interfaces/index.ts +++ b/libs/common/src/lib/interfaces/index.ts @@ -34,7 +34,6 @@ import type { PortfolioOverview } from './portfolio-overview.interface'; import type { PortfolioPerformance } from './portfolio-performance.interface'; import type { PortfolioPosition } from './portfolio-position.interface'; import type { PortfolioReportRule } from './portfolio-report-rule.interface'; -import type { PortfolioReport } from './portfolio-report.interface'; import type { PortfolioSummary } from './portfolio-summary.interface'; import type { Position } from './position.interface'; import type { Product } from './product'; @@ -50,6 +49,7 @@ import type { LookupResponse } from './responses/lookup-response.interface'; import type { OAuthResponse } from './responses/oauth-response.interface'; import type { PortfolioHoldingsResponse } from './responses/portfolio-holdings-response.interface'; import type { PortfolioPerformanceResponse } from './responses/portfolio-performance-response.interface'; +import type { PortfolioReportResponse } from './responses/portfolio-report.interface'; import type { PublicPortfolioResponse } from './responses/public-portfolio-response.interface'; import type { QuotesResponse } from './responses/quotes-response.interface'; import type { ScraperConfiguration } from './scraper-configuration.interface'; @@ -108,7 +108,7 @@ export { PortfolioPerformance, PortfolioPerformanceResponse, PortfolioPosition, - PortfolioReport, + PortfolioReportResponse, PortfolioReportRule, PortfolioSummary, Position, diff --git a/libs/common/src/lib/interfaces/portfolio-report.interface.ts b/libs/common/src/lib/interfaces/portfolio-report.interface.ts deleted file mode 100644 index a33a0aae..00000000 --- a/libs/common/src/lib/interfaces/portfolio-report.interface.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { PortfolioReportRule } from './portfolio-report-rule.interface'; - -export interface PortfolioReport { - rules: { [group: string]: PortfolioReportRule[] }; -} diff --git a/libs/common/src/lib/interfaces/responses/portfolio-report.interface.ts b/libs/common/src/lib/interfaces/responses/portfolio-report.interface.ts new file mode 100644 index 00000000..35ff033e --- /dev/null +++ b/libs/common/src/lib/interfaces/responses/portfolio-report.interface.ts @@ -0,0 +1,9 @@ +import { PortfolioReportRule } from '../portfolio-report-rule.interface'; + +export interface PortfolioReportResponse { + rules: { [group: string]: PortfolioReportRule[] }; + statistics: { + rulesActiveCount: number; + rulesFulfilledCount: number; + }; +} From 0841f8bd5ba844f8ee1c81a79bc5bb7498d3be89 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Sun, 8 Dec 2024 18:57:22 +0100 Subject: [PATCH 10/63] Bugfix/fix exception in portfolio calculator (#4113) * Fix exception in portfolio calculator * Update changelog --- CHANGELOG.md | 4 ++++ .../src/app/portfolio/calculator/twr/portfolio-calculator.ts | 1 + libs/common/src/lib/models/portfolio-snapshot.ts | 2 +- 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7c20027c..637da61e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Extended the _X-ray_ page by a summary +### Fixed + +- Fixed an exception in the caching of the portfolio snapshot in the portfolio calculator + ## 2.126.1 - 2024-12-07 ### Added 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 6c0d230b..3f53ee04 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/libs/common/src/lib/models/portfolio-snapshot.ts b/libs/common/src/lib/models/portfolio-snapshot.ts index e5193171..46bd5c18 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; From 618a918423d8f549ffbb258558c8ec929a07f713 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Sun, 8 Dec 2024 18:59:33 +0100 Subject: [PATCH 11/63] Release 2.127.0 (#4114) --- CHANGELOG.md | 2 +- package-lock.json | 4 ++-- package.json | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 637da61e..f4771dc6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,7 +5,7 @@ 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 +## 2.127.0 - 2024-12-08 ### Added diff --git a/package-lock.json b/package-lock.json index ecbc91c5..9db36948 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": { diff --git a/package.json b/package.json index 738f2db8..598bc40b 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", From 801030ce64c4cf45acfbb45bdee0d4ff42de9ff3 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Tue, 10 Dec 2024 14:37:44 +0100 Subject: [PATCH 12/63] Feature/upgrade internationalized number to version 3.6.0 (#4112) * Upgrade @internationalized/number to version 3.6.0 * Refactoring * Update changelog --- CHANGELOG.md | 6 ++++++ libs/common/src/lib/helper.spec.ts | 14 +++++++------- package-lock.json | 8 ++++---- package.json | 2 +- 4 files changed, 18 insertions(+), 12 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f4771dc6..89651095 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,12 @@ 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 + +- Upgraded `@internationalized/number` from version `3.5.2` to `3.6.0` + ## 2.127.0 - 2024-12-08 ### Added diff --git a/libs/common/src/lib/helper.spec.ts b/libs/common/src/lib/helper.spec.ts index 22a17116..1126c357 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/package-lock.json b/package-lock.json index 9db36948..11a3138f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -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 598bc40b..135829b1 100644 --- a/package.json +++ b/package.json @@ -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", From febb4119c661955debd04d0e4de0a01663b11306 Mon Sep 17 00:00:00 2001 From: Ed <35842874+calmandhandsome@users.noreply.github.com> Date: Wed, 11 Dec 2024 04:04:15 +0700 Subject: [PATCH 13/63] Bugfix/fix jsonpath import (#4115) * Fix jsonpath import * Update changelog --- CHANGELOG.md | 4 ++++ apps/api/src/services/data-provider/manual/manual.service.ts | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 89651095..758e93ce 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - 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 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 30c7efa6..c3e27400 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 { From 41eb9c56dd12dee6fdd2dadb209c24b7beddf10d Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Wed, 11 Dec 2024 14:38:23 +0100 Subject: [PATCH 14/63] Feature/improve language localization for de 20241207 (#4106) * Update translations * Update changelog --- CHANGELOG.md | 1 + apps/client/src/locales/messages.ca.xlf | 256 +++++++++++++++--------- apps/client/src/locales/messages.de.xlf | 256 +++++++++++++++--------- apps/client/src/locales/messages.es.xlf | 256 +++++++++++++++--------- apps/client/src/locales/messages.fr.xlf | 256 +++++++++++++++--------- apps/client/src/locales/messages.it.xlf | 256 +++++++++++++++--------- apps/client/src/locales/messages.nl.xlf | 256 +++++++++++++++--------- apps/client/src/locales/messages.pl.xlf | 256 +++++++++++++++--------- apps/client/src/locales/messages.pt.xlf | 256 +++++++++++++++--------- apps/client/src/locales/messages.tr.xlf | 256 +++++++++++++++--------- apps/client/src/locales/messages.xlf | 247 ++++++++++++++--------- apps/client/src/locales/messages.zh.xlf | 256 +++++++++++++++--------- 12 files changed, 1775 insertions(+), 1033 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 758e93ce..a4e3e3b0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed +- Improved the language localization for German (`de`) - Upgraded `@internationalized/number` from version `3.5.2` to `3.6.0` ### Fixed diff --git a/apps/client/src/locales/messages.ca.xlf b/apps/client/src/locales/messages.ca.xlf index 751ef908..d32f8c1e 100644 --- a/apps/client/src/locales/messages.ca.xlf +++ b/apps/client/src/locales/messages.ca.xlf @@ -633,7 +633,7 @@ apps/client/src/app/components/admin-settings/admin-settings.component.ts - 61 + 73 apps/client/src/app/components/header/header.component.ts @@ -649,7 +649,7 @@ apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 40 + 42 apps/client/src/app/core/http-response.interceptor.ts @@ -697,7 +697,7 @@ libs/ui/src/lib/membership-card/membership-card.component.ts - 25 + 31 @@ -923,7 +923,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 153 + 131 apps/client/src/app/components/admin-tag/admin-tag.component.html @@ -1015,7 +1015,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 229 + 207 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -1075,11 +1075,11 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 133 + 111 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 236 + 214 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -1291,7 +1291,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 118 + 96 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -1315,7 +1315,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 128 + 106 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -1406,17 +1406,13 @@ Details for Detalls de - apps/client/src/app/components/admin-market-data-detail/market-data-detail-dialog/market-data-detail-dialog.html + libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html 2 Date Data - - apps/client/src/app/components/admin-market-data-detail/market-data-detail-dialog/market-data-detail-dialog.html - 6 - apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html 160 @@ -1429,14 +1425,14 @@ libs/ui/src/lib/activities-table/activities-table.component.html 170 + + libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html + 6 + Market Price Preu de Mercat - - apps/client/src/app/components/admin-market-data-detail/market-data-detail-dialog/market-data-detail-dialog.html - 26 - apps/client/src/app/components/admin-market-data/admin-market-data.html 104 @@ -1445,17 +1441,17 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html 98 + + libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html + 26 + Cancel Cancel·lar - - apps/client/src/app/components/admin-market-data-detail/market-data-detail-dialog/market-data-detail-dialog.html - 46 - apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 379 + 357 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -1489,17 +1485,17 @@ apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html 38 + + libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html + 46 + Save Guardar - - apps/client/src/app/components/admin-market-data-detail/market-data-detail-dialog/market-data-detail-dialog.html - 48 - apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 386 + 364 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -1529,6 +1525,10 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html 434 + + libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html + 48 + Benchmarks @@ -1579,11 +1579,11 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 162 + 140 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 246 + 224 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -1593,6 +1593,10 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html 354 + + libs/ui/src/lib/assistant/assistant.html + 166 + Asset Sub Class @@ -1603,11 +1607,11 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 171 + 149 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 259 + 237 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -1627,7 +1631,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 144 + 122 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -1654,8 +1658,8 @@ 137 - apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 85 + libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.html + 44 @@ -1738,8 +1742,8 @@ Oops! Could not parse historical data. Oooh! No s’han pogut recopilar les dades históriques. - apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 237 + libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.ts + 263 @@ -1747,7 +1751,7 @@ El preu de mercat actual és apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 345 + 325 @@ -1769,10 +1773,6 @@ Import Importar - - apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 111 - apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html 153 @@ -1781,13 +1781,17 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html 186 + + libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.html + 70 + Sector Sector apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 188 + 166 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -1799,7 +1803,7 @@ País apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 199 + 177 apps/client/src/app/components/admin-users/admin-users.html @@ -1815,11 +1819,11 @@ Sectors apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 205 + 183 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 330 + 308 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -1835,11 +1839,11 @@ Països apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 215 + 193 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 341 + 319 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -1851,7 +1855,7 @@ Referència apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 287 + 265 @@ -1859,7 +1863,7 @@ Mapatge de Símbols apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 293 + 271 @@ -1867,7 +1871,7 @@ Configuració del Proveïdor de Dades apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 305 + 283 @@ -1875,7 +1879,7 @@ Prova apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 323 + 301 @@ -1883,7 +1887,7 @@ Url apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 353 + 331 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -1899,7 +1903,7 @@ Notes apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 366 + 344 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html @@ -2165,10 +2169,6 @@ apps/client/src/app/pages/accounts/accounts-page.html 4 - - libs/ui/src/lib/assistant/assistant.html - 107 - Do you really want to delete this platform? @@ -2199,7 +2199,7 @@ Plataformes apps/client/src/app/components/admin-settings/admin-settings.component.html - 59 + 79 @@ -2207,7 +2207,7 @@ Etiquetes apps/client/src/app/components/admin-settings/admin-settings.component.html - 65 + 85 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -2221,10 +2221,6 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html 383 - - libs/ui/src/lib/assistant/assistant.html - 155 - Add Tag @@ -2263,7 +2259,7 @@ Està segur que vol eliminar aquest usuari? apps/client/src/app/components/admin-users/admin-users.component.ts - 125 + 138 @@ -2295,7 +2291,7 @@ Última Solicitut apps/client/src/app/components/admin-users/admin-users.html - 181 + 202 @@ -2303,7 +2299,7 @@ Actuar com un altre Usuari apps/client/src/app/components/admin-users/admin-users.html - 218 + 239 @@ -2311,7 +2307,7 @@ Eliminar Usuari apps/client/src/app/components/admin-users/admin-users.html - 230 + 251 @@ -2423,7 +2419,7 @@ apps/client/src/app/components/user-account-membership/user-account-membership.html - 16 + 18 apps/client/src/app/pages/pricing/pricing-page.html @@ -2439,7 +2435,7 @@ apps/client/src/app/components/user-account-membership/user-account-membership.html - 22 + 24 apps/client/src/app/pages/pricing/pricing-page.html @@ -3319,7 +3315,7 @@ Please enter your coupon code: apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 124 + 166 @@ -3327,7 +3323,7 @@ Could not redeem coupon code apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 134 + 175 @@ -3335,7 +3331,7 @@ Coupon code has been redeemed apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 146 + 188 @@ -3343,7 +3339,7 @@ Reload apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 147 + 189 @@ -3351,7 +3347,7 @@ per year apps/client/src/app/components/user-account-membership/user-account-membership.html - 34 + 36 apps/client/src/app/pages/pricing/pricing-page.html @@ -3363,7 +3359,7 @@ Try Premium apps/client/src/app/components/user-account-membership/user-account-membership.html - 51 + 53 @@ -3371,7 +3367,7 @@ Redeem Coupon apps/client/src/app/components/user-account-membership/user-account-membership.html - 65 + 67 @@ -3625,6 +3621,10 @@ Okay Okay + + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 151 + apps/client/src/app/core/http-response.interceptor.ts 81 @@ -4677,6 +4677,10 @@ libs/ui/src/lib/activities-table/activities-table.component.html 308 + + libs/ui/src/lib/assistant/assistant.html + 107 + Update Cash Balance @@ -6134,14 +6138,6 @@ 93 - - Asset Classes - Asset Classes - - libs/ui/src/lib/assistant/assistant.html - 166 - - Reset Filters Reset Filters @@ -6723,15 +6719,19 @@ Membership libs/ui/src/lib/membership-card/membership-card.component.html - 18 + 37 Valid until Valid until + + apps/client/src/app/components/admin-settings/admin-settings.component.html + 26 + libs/ui/src/lib/membership-card/membership-card.component.html - 23 + 42 @@ -7023,7 +7023,7 @@ Error apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 336 + 316 @@ -7143,7 +7143,7 @@ No auto-renewal. apps/client/src/app/components/user-account-membership/user-account-membership.html - 72 + 74 @@ -7343,7 +7343,7 @@ Set API key apps/client/src/app/components/admin-settings/admin-settings.component.html - 48 + 68 @@ -7465,7 +7465,7 @@ of apps/client/src/app/components/admin-settings/admin-settings.component.html - 29 + 40 @@ -7473,7 +7473,7 @@ daily requests apps/client/src/app/components/admin-settings/admin-settings.component.html - 31 + 42 @@ -7481,7 +7481,7 @@ Remove API key apps/client/src/app/components/admin-settings/admin-settings.component.html - 38 + 56 @@ -7489,7 +7489,7 @@ Do you really want to delete the API key? apps/client/src/app/components/admin-settings/admin-settings.component.ts - 80 + 92 @@ -7499,6 +7499,10 @@ apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/ghostfolio-premium-api-dialog.component.ts 45 + + apps/client/src/app/pages/api/api-page.component.ts + 41 + Notify me @@ -7516,6 +7520,70 @@ 42 + + API Requests Today + API Requests Today + + apps/client/src/app/components/admin-users/admin-users.html + 178 + + + + Could not generate an API key + Could not generate an API key + + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 138 + + + + Set this API key in your self-hosted environment: + Set this API key in your self-hosted environment: + + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 153 + + + + Ghostfolio Premium Data Provider API Key + Ghostfolio Premium Data Provider API Key + + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 156 + + + + Do you really want to generate a new API key? + Do you really want to generate a new API key? + + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 161 + + + + Tag + Tag + + libs/ui/src/lib/assistant/assistant.html + 155 + + + + API Key + API Key + + libs/ui/src/lib/membership-card/membership-card.component.html + 18 + + + + Generate Ghostfolio Premium Data Provider API key for self-hosted environments... + Generate Ghostfolio Premium Data Provider API key for self-hosted environments... + + libs/ui/src/lib/membership-card/membership-card.component.html + 26 + + diff --git a/apps/client/src/locales/messages.de.xlf b/apps/client/src/locales/messages.de.xlf index b57ae2c1..89745376 100644 --- a/apps/client/src/locales/messages.de.xlf +++ b/apps/client/src/locales/messages.de.xlf @@ -94,7 +94,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 153 + 131 apps/client/src/app/components/admin-tag/admin-tag.component.html @@ -130,7 +130,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 229 + 207 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -346,7 +346,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 118 + 96 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -370,7 +370,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 128 + 106 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -453,17 +453,13 @@ Details for Details für - apps/client/src/app/components/admin-market-data-detail/market-data-detail-dialog/market-data-detail-dialog.html + libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html 2 Date Datum - - apps/client/src/app/components/admin-market-data-detail/market-data-detail-dialog/market-data-detail-dialog.html - 6 - apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html 160 @@ -476,14 +472,14 @@ libs/ui/src/lib/activities-table/activities-table.component.html 170 + + libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html + 6 + Market Price Marktpreis - - apps/client/src/app/components/admin-market-data-detail/market-data-detail-dialog/market-data-detail-dialog.html - 26 - apps/client/src/app/components/admin-market-data/admin-market-data.html 104 @@ -492,17 +488,17 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html 98 + + libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html + 26 + Cancel Abbrechen - - apps/client/src/app/components/admin-market-data-detail/market-data-detail-dialog/market-data-detail-dialog.html - 46 - apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 379 + 357 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -536,17 +532,17 @@ apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html 38 + + libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html + 46 + Save Speichern - - apps/client/src/app/components/admin-market-data-detail/market-data-detail-dialog/market-data-detail-dialog.html - 48 - apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 386 + 364 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -576,6 +572,10 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html 434 + + libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html + 48 + First Activity @@ -586,7 +586,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 144 + 122 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -613,8 +613,8 @@ 137 - apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 85 + libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.html + 44 @@ -786,7 +786,7 @@ Möchtest du diesen Benutzer wirklich löschen? apps/client/src/app/components/admin-users/admin-users.component.ts - 125 + 138 @@ -822,7 +822,7 @@ Letzte Abfrage apps/client/src/app/components/admin-users/admin-users.html - 181 + 202 @@ -884,10 +884,6 @@ apps/client/src/app/pages/accounts/accounts-page.html 4 - - libs/ui/src/lib/assistant/assistant.html - 107 - Admin Control @@ -1322,11 +1318,11 @@ Sektoren apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 205 + 183 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 330 + 308 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -1342,11 +1338,11 @@ Länder apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 215 + 193 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 341 + 319 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -1358,7 +1354,7 @@ Tags apps/client/src/app/components/admin-settings/admin-settings.component.html - 65 + 85 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -1372,10 +1368,6 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html 383 - - libs/ui/src/lib/assistant/assistant.html - 155 - Report Data Glitch @@ -1484,6 +1476,10 @@ Okay Okay + + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 151 + apps/client/src/app/core/http-response.interceptor.ts 81 @@ -1666,7 +1662,7 @@ Bitte gebe deinen Gutscheincode ein: apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 124 + 166 @@ -1674,7 +1670,7 @@ Gutscheincode konnte nicht eingelöst werden apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 134 + 175 @@ -1682,7 +1678,7 @@ Gutscheincode wurde eingelöst apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 146 + 188 @@ -1690,7 +1686,7 @@ Neu laden apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 147 + 189 @@ -1712,13 +1708,17 @@ libs/ui/src/lib/activities-table/activities-table.component.html 308 + + libs/ui/src/lib/assistant/assistant.html + 107 + Membership Mitgliedschaft libs/ui/src/lib/membership-card/membership-card.component.html - 18 + 37 @@ -1726,7 +1726,7 @@ pro Jahr apps/client/src/app/components/user-account-membership/user-account-membership.html - 34 + 36 apps/client/src/app/pages/pricing/pricing-page.html @@ -1738,7 +1738,7 @@ Premium ausprobieren apps/client/src/app/components/user-account-membership/user-account-membership.html - 51 + 53 @@ -1746,7 +1746,7 @@ Gutschein einlösen apps/client/src/app/components/user-account-membership/user-account-membership.html - 65 + 67 @@ -1878,11 +1878,11 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 133 + 111 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 236 + 214 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -2322,7 +2322,7 @@ Kommentar apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 366 + 344 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html @@ -2342,11 +2342,11 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 162 + 140 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 246 + 224 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -2356,6 +2356,10 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html 354 + + libs/ui/src/lib/assistant/assistant.html + 166 + Activities @@ -2710,11 +2714,11 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 171 + 149 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 259 + 237 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -2730,7 +2734,7 @@ Sektor apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 188 + 166 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -2742,7 +2746,7 @@ Land apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 199 + 177 apps/client/src/app/components/admin-users/admin-users.html @@ -3302,7 +3306,7 @@ Symbol Zuordnung apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 293 + 271 @@ -3352,10 +3356,6 @@ Import Importieren - - apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 111 - apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html 153 @@ -3364,6 +3364,10 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html 186 + + libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.html + 70 + Market Data @@ -3440,9 +3444,13 @@ Valid until Gültig bis + + apps/client/src/app/components/admin-settings/admin-settings.component.html + 26 + libs/ui/src/lib/membership-card/membership-card.component.html - 23 + 42 @@ -3610,7 +3618,7 @@ apps/client/src/app/components/user-account-membership/user-account-membership.html - 16 + 18 apps/client/src/app/pages/pricing/pricing-page.html @@ -3906,7 +3914,7 @@ apps/client/src/app/components/user-account-membership/user-account-membership.html - 22 + 24 apps/client/src/app/pages/pricing/pricing-page.html @@ -3926,7 +3934,7 @@ Benutzer verwenden apps/client/src/app/components/admin-users/admin-users.html - 218 + 239 @@ -3934,7 +3942,7 @@ Benutzer löschen apps/client/src/app/components/admin-users/admin-users.html - 230 + 251 @@ -3974,7 +3982,7 @@ Url apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 353 + 331 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -3998,7 +4006,7 @@ Plattformen apps/client/src/app/components/admin-settings/admin-settings.component.html - 59 + 79 @@ -4362,7 +4370,7 @@ Scraper Konfiguration apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 305 + 283 @@ -5477,7 +5485,7 @@ apps/client/src/app/components/admin-settings/admin-settings.component.ts - 61 + 73 apps/client/src/app/components/header/header.component.ts @@ -5493,7 +5501,7 @@ apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 40 + 42 apps/client/src/app/core/http-response.interceptor.ts @@ -5541,7 +5549,7 @@ libs/ui/src/lib/membership-card/membership-card.component.ts - 25 + 31 @@ -5927,7 +5935,7 @@ Benchmark apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 287 + 265 @@ -6130,8 +6138,8 @@ Oops! Could not parse historical data. Ups! Die historischen Daten konnten nicht geparsed werden. - apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 237 + libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.ts + 263 @@ -6219,7 +6227,7 @@ Der aktuelle Marktpreis ist apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 345 + 325 @@ -6227,7 +6235,7 @@ Test apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 323 + 301 @@ -6454,14 +6462,6 @@ 259 - - Asset Classes - Anlageklassen - - libs/ui/src/lib/assistant/assistant.html - 166 - - Apply Filters Filter anwenden @@ -7023,7 +7023,7 @@ Fehler apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 336 + 316 @@ -7143,7 +7143,7 @@ Keine automatische Erneuerung. apps/client/src/app/components/user-account-membership/user-account-membership.html - 72 + 74 @@ -7343,7 +7343,7 @@ API-Schlüssel setzen apps/client/src/app/components/admin-settings/admin-settings.component.html - 48 + 68 @@ -7465,7 +7465,7 @@ von apps/client/src/app/components/admin-settings/admin-settings.component.html - 29 + 40 @@ -7473,7 +7473,7 @@ täglichen Anfragen apps/client/src/app/components/admin-settings/admin-settings.component.html - 31 + 42 @@ -7481,7 +7481,7 @@ API-Schlüssel löschen apps/client/src/app/components/admin-settings/admin-settings.component.html - 38 + 56 @@ -7489,7 +7489,7 @@ Möchtest du den API-Schlüssel wirklich löschen? apps/client/src/app/components/admin-settings/admin-settings.component.ts - 80 + 92 @@ -7499,6 +7499,10 @@ apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/ghostfolio-premium-api-dialog.component.ts 45 + + apps/client/src/app/pages/api/api-page.component.ts + 41 + Notify me @@ -7516,6 +7520,70 @@ 42 + + API Requests Today + Heutige API Anfragen + + apps/client/src/app/components/admin-users/admin-users.html + 178 + + + + Could not generate an API key + API-Schlüssel konnte nicht erstellt werden + + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 138 + + + + Set this API key in your self-hosted environment: + Setze diesen API-Schlüssel in deiner selbst gehosteten Umgebung: + + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 153 + + + + Ghostfolio Premium Data Provider API Key + API-Schlüssel für den Ghostfolio Premium Datenanbieter + + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 156 + + + + Do you really want to generate a new API key? + Möchtest du wirklich einen neuen API-Schlüssel erstellen? + + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 161 + + + + Tag + Tag + + libs/ui/src/lib/assistant/assistant.html + 155 + + + + API Key + API-Schlüssel + + libs/ui/src/lib/membership-card/membership-card.component.html + 18 + + + + Generate Ghostfolio Premium Data Provider API key for self-hosted environments... + Ghostfolio Premium Datenanbieter API-Schlüssel für selbst gehostete Umgebungen erstellen... + + libs/ui/src/lib/membership-card/membership-card.component.html + 26 + + diff --git a/apps/client/src/locales/messages.es.xlf b/apps/client/src/locales/messages.es.xlf index 13d3706b..b2dcc61c 100644 --- a/apps/client/src/locales/messages.es.xlf +++ b/apps/client/src/locales/messages.es.xlf @@ -95,7 +95,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 153 + 131 apps/client/src/app/components/admin-tag/admin-tag.component.html @@ -131,7 +131,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 229 + 207 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -347,7 +347,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 118 + 96 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -371,7 +371,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 128 + 106 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -454,17 +454,13 @@ Details for Detalles para - apps/client/src/app/components/admin-market-data-detail/market-data-detail-dialog/market-data-detail-dialog.html + libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html 2 Date Fecha - - apps/client/src/app/components/admin-market-data-detail/market-data-detail-dialog/market-data-detail-dialog.html - 6 - apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html 160 @@ -477,14 +473,14 @@ libs/ui/src/lib/activities-table/activities-table.component.html 170 + + libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html + 6 + Market Price Precio de mercado - - apps/client/src/app/components/admin-market-data-detail/market-data-detail-dialog/market-data-detail-dialog.html - 26 - apps/client/src/app/components/admin-market-data/admin-market-data.html 104 @@ -493,17 +489,17 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html 98 + + libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html + 26 + Cancel Cancela - - apps/client/src/app/components/admin-market-data-detail/market-data-detail-dialog/market-data-detail-dialog.html - 46 - apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 379 + 357 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -537,17 +533,17 @@ apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html 38 + + libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html + 46 + Save Guarda - - apps/client/src/app/components/admin-market-data-detail/market-data-detail-dialog/market-data-detail-dialog.html - 48 - apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 386 + 364 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -577,6 +573,10 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html 434 + + libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html + 48 + First Activity @@ -587,7 +587,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 144 + 122 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -614,8 +614,8 @@ 137 - apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 85 + libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.html + 44 @@ -787,7 +787,7 @@ ¿Estás seguro de eliminar este usuario? apps/client/src/app/components/admin-users/admin-users.component.ts - 125 + 138 @@ -823,7 +823,7 @@ Última petición apps/client/src/app/components/admin-users/admin-users.html - 181 + 202 @@ -885,10 +885,6 @@ apps/client/src/app/pages/accounts/accounts-page.html 4 - - libs/ui/src/lib/assistant/assistant.html - 107 - Admin Control @@ -1323,11 +1319,11 @@ Sectores apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 205 + 183 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 330 + 308 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -1343,11 +1339,11 @@ Países apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 215 + 193 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 341 + 319 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -1359,7 +1355,7 @@ Etiquetas apps/client/src/app/components/admin-settings/admin-settings.component.html - 65 + 85 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -1373,10 +1369,6 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html 383 - - libs/ui/src/lib/assistant/assistant.html - 155 - Report Data Glitch @@ -1485,6 +1477,10 @@ Okay De acuerdo + + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 151 + apps/client/src/app/core/http-response.interceptor.ts 81 @@ -1667,7 +1663,7 @@ Por favor, ingresa tu código de cupón: apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 124 + 166 @@ -1675,7 +1671,7 @@ No se puede canjear este código de cupón apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 134 + 175 @@ -1683,7 +1679,7 @@ El codigo de cupón ha sido canjeado apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 146 + 188 @@ -1691,7 +1687,7 @@ Refrescar apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 147 + 189 @@ -1713,13 +1709,17 @@ libs/ui/src/lib/activities-table/activities-table.component.html 308 + + libs/ui/src/lib/assistant/assistant.html + 107 + Membership Suscripción libs/ui/src/lib/membership-card/membership-card.component.html - 18 + 37 @@ -1727,7 +1727,7 @@ por año apps/client/src/app/components/user-account-membership/user-account-membership.html - 34 + 36 apps/client/src/app/pages/pricing/pricing-page.html @@ -1739,7 +1739,7 @@ Prueba Premium apps/client/src/app/components/user-account-membership/user-account-membership.html - 51 + 53 @@ -1747,7 +1747,7 @@ Canjea el cupón apps/client/src/app/components/user-account-membership/user-account-membership.html - 65 + 67 @@ -1879,11 +1879,11 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 133 + 111 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 236 + 214 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -2323,7 +2323,7 @@ Nota apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 366 + 344 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html @@ -2343,11 +2343,11 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 162 + 140 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 246 + 224 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -2357,6 +2357,10 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html 354 + + libs/ui/src/lib/assistant/assistant.html + 166 + Activities @@ -2699,11 +2703,11 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 171 + 149 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 259 + 237 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -2759,7 +2763,7 @@ Sector apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 188 + 166 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -2771,7 +2775,7 @@ País apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 199 + 177 apps/client/src/app/components/admin-users/admin-users.html @@ -3303,7 +3307,7 @@ Mapeo de símbolos apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 293 + 271 @@ -3353,10 +3357,6 @@ Import Importar - - apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 111 - apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html 153 @@ -3365,6 +3365,10 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html 186 + + libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.html + 70 + Market Data @@ -3441,9 +3445,13 @@ Valid until Válido hasta + + apps/client/src/app/components/admin-settings/admin-settings.component.html + 26 + libs/ui/src/lib/membership-card/membership-card.component.html - 23 + 42 @@ -3611,7 +3619,7 @@ apps/client/src/app/components/user-account-membership/user-account-membership.html - 16 + 18 apps/client/src/app/pages/pricing/pricing-page.html @@ -3907,7 +3915,7 @@ apps/client/src/app/components/user-account-membership/user-account-membership.html - 22 + 24 apps/client/src/app/pages/pricing/pricing-page.html @@ -3927,7 +3935,7 @@ Impersonate User apps/client/src/app/components/admin-users/admin-users.html - 218 + 239 @@ -3935,7 +3943,7 @@ Delete User apps/client/src/app/components/admin-users/admin-users.html - 230 + 251 @@ -3975,7 +3983,7 @@ Url apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 353 + 331 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -3999,7 +4007,7 @@ Platforms apps/client/src/app/components/admin-settings/admin-settings.component.html - 59 + 79 @@ -4363,7 +4371,7 @@ Scraper Configuration apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 305 + 283 @@ -5478,7 +5486,7 @@ apps/client/src/app/components/admin-settings/admin-settings.component.ts - 61 + 73 apps/client/src/app/components/header/header.component.ts @@ -5494,7 +5502,7 @@ apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 40 + 42 apps/client/src/app/core/http-response.interceptor.ts @@ -5542,7 +5550,7 @@ libs/ui/src/lib/membership-card/membership-card.component.ts - 25 + 31 @@ -5928,7 +5936,7 @@ Benchmark apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 287 + 265 @@ -6131,8 +6139,8 @@ Oops! Could not parse historical data. Oops! Could not parse historical data. - apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 237 + libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.ts + 263 @@ -6220,7 +6228,7 @@ The current market price is apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 345 + 325 @@ -6228,7 +6236,7 @@ Test apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 323 + 301 @@ -6455,14 +6463,6 @@ 259 - - Asset Classes - Asset Classes - - libs/ui/src/lib/assistant/assistant.html - 166 - - Apply Filters Aplicar filtros @@ -7024,7 +7024,7 @@ Error apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 336 + 316 @@ -7144,7 +7144,7 @@ No auto-renewal. apps/client/src/app/components/user-account-membership/user-account-membership.html - 72 + 74 @@ -7344,7 +7344,7 @@ Set API key apps/client/src/app/components/admin-settings/admin-settings.component.html - 48 + 68 @@ -7466,7 +7466,7 @@ of apps/client/src/app/components/admin-settings/admin-settings.component.html - 29 + 40 @@ -7474,7 +7474,7 @@ daily requests apps/client/src/app/components/admin-settings/admin-settings.component.html - 31 + 42 @@ -7482,7 +7482,7 @@ Remove API key apps/client/src/app/components/admin-settings/admin-settings.component.html - 38 + 56 @@ -7490,7 +7490,7 @@ Do you really want to delete the API key? apps/client/src/app/components/admin-settings/admin-settings.component.ts - 80 + 92 @@ -7500,6 +7500,10 @@ apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/ghostfolio-premium-api-dialog.component.ts 45 + + apps/client/src/app/pages/api/api-page.component.ts + 41 + Notify me @@ -7517,6 +7521,70 @@ 42 + + API Requests Today + API Requests Today + + apps/client/src/app/components/admin-users/admin-users.html + 178 + + + + Could not generate an API key + Could not generate an API key + + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 138 + + + + Set this API key in your self-hosted environment: + Set this API key in your self-hosted environment: + + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 153 + + + + Ghostfolio Premium Data Provider API Key + Ghostfolio Premium Data Provider API Key + + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 156 + + + + Do you really want to generate a new API key? + Do you really want to generate a new API key? + + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 161 + + + + Tag + Tag + + libs/ui/src/lib/assistant/assistant.html + 155 + + + + API Key + API Key + + libs/ui/src/lib/membership-card/membership-card.component.html + 18 + + + + Generate Ghostfolio Premium Data Provider API key for self-hosted environments... + Generate Ghostfolio Premium Data Provider API key for self-hosted environments... + + libs/ui/src/lib/membership-card/membership-card.component.html + 26 + + diff --git a/apps/client/src/locales/messages.fr.xlf b/apps/client/src/locales/messages.fr.xlf index ee5c6eb6..fd29241b 100644 --- a/apps/client/src/locales/messages.fr.xlf +++ b/apps/client/src/locales/messages.fr.xlf @@ -106,7 +106,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 153 + 131 apps/client/src/app/components/admin-tag/admin-tag.component.html @@ -142,7 +142,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 229 + 207 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -202,11 +202,11 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 133 + 111 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 236 + 214 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -398,7 +398,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 118 + 96 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -422,7 +422,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 128 + 106 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -513,17 +513,13 @@ Details for Détails pour - apps/client/src/app/components/admin-market-data-detail/market-data-detail-dialog/market-data-detail-dialog.html + libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html 2 Date Date - - apps/client/src/app/components/admin-market-data-detail/market-data-detail-dialog/market-data-detail-dialog.html - 6 - apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html 160 @@ -536,14 +532,14 @@ libs/ui/src/lib/activities-table/activities-table.component.html 170 + + libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html + 6 + Market Price Prix du Marché - - apps/client/src/app/components/admin-market-data-detail/market-data-detail-dialog/market-data-detail-dialog.html - 26 - apps/client/src/app/components/admin-market-data/admin-market-data.html 104 @@ -552,17 +548,17 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html 98 + + libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html + 26 + Cancel Annuler - - apps/client/src/app/components/admin-market-data-detail/market-data-detail-dialog/market-data-detail-dialog.html - 46 - apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 379 + 357 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -596,17 +592,17 @@ apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html 38 + + libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html + 46 + Save Sauvegarder - - apps/client/src/app/components/admin-market-data-detail/market-data-detail-dialog/market-data-detail-dialog.html - 48 - apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 386 + 364 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -636,6 +632,10 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html 434 + + libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html + 48 + Filter by... @@ -654,11 +654,11 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 162 + 140 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 246 + 224 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -668,6 +668,10 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html 354 + + libs/ui/src/lib/assistant/assistant.html + 166 + Asset Sub Class @@ -678,11 +682,11 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 171 + 149 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 259 + 237 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -702,7 +706,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 144 + 122 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -729,8 +733,8 @@ 137 - apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 85 + libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.html + 44 @@ -790,7 +794,7 @@ Secteur apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 188 + 166 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -802,7 +806,7 @@ Pays apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 199 + 177 apps/client/src/app/components/admin-users/admin-users.html @@ -818,11 +822,11 @@ Secteurs apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 205 + 183 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 330 + 308 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -838,11 +842,11 @@ Pays apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 215 + 193 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 341 + 319 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -854,7 +858,7 @@ Équivalence de Symboles apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 293 + 271 @@ -862,7 +866,7 @@ Note apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 366 + 344 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html @@ -962,7 +966,7 @@ Étiquettes apps/client/src/app/components/admin-settings/admin-settings.component.html - 65 + 85 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -976,10 +980,6 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html 383 - - libs/ui/src/lib/assistant/assistant.html - 155 - User Signup @@ -1054,7 +1054,7 @@ Voulez-vous vraiment supprimer cet·te utilisateur·rice ? apps/client/src/app/components/admin-users/admin-users.component.ts - 125 + 138 @@ -1104,10 +1104,6 @@ apps/client/src/app/pages/accounts/accounts-page.html 4 - - libs/ui/src/lib/assistant/assistant.html - 107 - Engagement per Day @@ -1122,7 +1118,7 @@ Dernière Requête apps/client/src/app/components/admin-users/admin-users.html - 181 + 202 @@ -1828,6 +1824,10 @@ Okay D’accord + + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 151 + apps/client/src/app/core/http-response.interceptor.ts 81 @@ -1922,7 +1922,7 @@ Veuillez entrer votre code promotionnel : apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 124 + 166 @@ -1930,7 +1930,7 @@ Le code promotionnel n’a pas pu être appliqué apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 134 + 175 @@ -1938,7 +1938,7 @@ Le code promotionnel a été appliqué apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 146 + 188 @@ -1946,7 +1946,7 @@ Rafraîchir apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 147 + 189 @@ -1968,13 +1968,17 @@ libs/ui/src/lib/activities-table/activities-table.component.html 308 + + libs/ui/src/lib/assistant/assistant.html + 107 + Membership Adhésion libs/ui/src/lib/membership-card/membership-card.component.html - 18 + 37 @@ -1982,7 +1986,7 @@ par an apps/client/src/app/components/user-account-membership/user-account-membership.html - 34 + 36 apps/client/src/app/pages/pricing/pricing-page.html @@ -1994,7 +1998,7 @@ Essayer Premium apps/client/src/app/components/user-account-membership/user-account-membership.html - 51 + 53 @@ -2002,7 +2006,7 @@ Utiliser un Code Promotionnel apps/client/src/app/components/user-account-membership/user-account-membership.html - 65 + 67 @@ -2580,10 +2584,6 @@ Import Importer - - apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 111 - apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html 153 @@ -2592,6 +2592,10 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html 186 + + libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.html + 70 + Allocations @@ -3440,9 +3444,13 @@ Valid until Valide jusqu’au + + apps/client/src/app/components/admin-settings/admin-settings.component.html + 26 + libs/ui/src/lib/membership-card/membership-card.component.html - 23 + 42 @@ -3610,7 +3618,7 @@ apps/client/src/app/components/user-account-membership/user-account-membership.html - 16 + 18 apps/client/src/app/pages/pricing/pricing-page.html @@ -3906,7 +3914,7 @@ apps/client/src/app/components/user-account-membership/user-account-membership.html - 22 + 24 apps/client/src/app/pages/pricing/pricing-page.html @@ -3926,7 +3934,7 @@ Voir en tant que ... apps/client/src/app/components/admin-users/admin-users.html - 218 + 239 @@ -3934,7 +3942,7 @@ Supprimer l’Utilisateur apps/client/src/app/components/admin-users/admin-users.html - 230 + 251 @@ -3974,7 +3982,7 @@ Lien apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 353 + 331 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -3998,7 +4006,7 @@ Platformes apps/client/src/app/components/admin-settings/admin-settings.component.html - 59 + 79 @@ -4362,7 +4370,7 @@ Configuration du Scraper apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 305 + 283 @@ -5477,7 +5485,7 @@ apps/client/src/app/components/admin-settings/admin-settings.component.ts - 61 + 73 apps/client/src/app/components/header/header.component.ts @@ -5493,7 +5501,7 @@ apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 40 + 42 apps/client/src/app/core/http-response.interceptor.ts @@ -5541,7 +5549,7 @@ libs/ui/src/lib/membership-card/membership-card.component.ts - 25 + 31 @@ -5927,7 +5935,7 @@ Benchmark apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 287 + 265 @@ -6130,8 +6138,8 @@ Oops! Could not parse historical data. Oops! Echec du parsing des données historiques. - apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 237 + libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.ts + 263 @@ -6219,7 +6227,7 @@ Le prix actuel du marché est apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 345 + 325 @@ -6227,7 +6235,7 @@ Test apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 323 + 301 @@ -6454,14 +6462,6 @@ 259 - - Asset Classes - Types d'Actifs - - libs/ui/src/lib/assistant/assistant.html - 166 - - Apply Filters Appliquer les Filtres @@ -7023,7 +7023,7 @@ Erreur apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 336 + 316 @@ -7143,7 +7143,7 @@ No auto-renewal. apps/client/src/app/components/user-account-membership/user-account-membership.html - 72 + 74 @@ -7343,7 +7343,7 @@ Set API key apps/client/src/app/components/admin-settings/admin-settings.component.html - 48 + 68 @@ -7465,7 +7465,7 @@ of apps/client/src/app/components/admin-settings/admin-settings.component.html - 29 + 40 @@ -7473,7 +7473,7 @@ daily requests apps/client/src/app/components/admin-settings/admin-settings.component.html - 31 + 42 @@ -7481,7 +7481,7 @@ Remove API key apps/client/src/app/components/admin-settings/admin-settings.component.html - 38 + 56 @@ -7489,7 +7489,7 @@ Do you really want to delete the API key? apps/client/src/app/components/admin-settings/admin-settings.component.ts - 80 + 92 @@ -7499,6 +7499,10 @@ apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/ghostfolio-premium-api-dialog.component.ts 45 + + apps/client/src/app/pages/api/api-page.component.ts + 41 + Notify me @@ -7516,6 +7520,70 @@ 42 + + API Requests Today + API Requests Today + + apps/client/src/app/components/admin-users/admin-users.html + 178 + + + + Could not generate an API key + Could not generate an API key + + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 138 + + + + Set this API key in your self-hosted environment: + Set this API key in your self-hosted environment: + + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 153 + + + + Ghostfolio Premium Data Provider API Key + Ghostfolio Premium Data Provider API Key + + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 156 + + + + Do you really want to generate a new API key? + Do you really want to generate a new API key? + + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 161 + + + + Tag + Tag + + libs/ui/src/lib/assistant/assistant.html + 155 + + + + API Key + API Key + + libs/ui/src/lib/membership-card/membership-card.component.html + 18 + + + + Generate Ghostfolio Premium Data Provider API key for self-hosted environments... + Generate Ghostfolio Premium Data Provider API key for self-hosted environments... + + libs/ui/src/lib/membership-card/membership-card.component.html + 26 + + diff --git a/apps/client/src/locales/messages.it.xlf b/apps/client/src/locales/messages.it.xlf index 5d840375..00eb4227 100644 --- a/apps/client/src/locales/messages.it.xlf +++ b/apps/client/src/locales/messages.it.xlf @@ -95,7 +95,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 153 + 131 apps/client/src/app/components/admin-tag/admin-tag.component.html @@ -131,7 +131,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 229 + 207 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -347,7 +347,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 118 + 96 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -371,7 +371,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 128 + 106 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -454,17 +454,13 @@ Details for Dettagli per - apps/client/src/app/components/admin-market-data-detail/market-data-detail-dialog/market-data-detail-dialog.html + libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html 2 Date Data - - apps/client/src/app/components/admin-market-data-detail/market-data-detail-dialog/market-data-detail-dialog.html - 6 - apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html 160 @@ -477,14 +473,14 @@ libs/ui/src/lib/activities-table/activities-table.component.html 170 + + libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html + 6 + Market Price Prezzo di mercato - - apps/client/src/app/components/admin-market-data-detail/market-data-detail-dialog/market-data-detail-dialog.html - 26 - apps/client/src/app/components/admin-market-data/admin-market-data.html 104 @@ -493,17 +489,17 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html 98 + + libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html + 26 + Cancel Annulla - - apps/client/src/app/components/admin-market-data-detail/market-data-detail-dialog/market-data-detail-dialog.html - 46 - apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 379 + 357 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -537,17 +533,17 @@ apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html 38 + + libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html + 46 + Save Salva - - apps/client/src/app/components/admin-market-data-detail/market-data-detail-dialog/market-data-detail-dialog.html - 48 - apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 386 + 364 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -577,6 +573,10 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html 434 + + libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html + 48 + First Activity @@ -587,7 +587,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 144 + 122 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -614,8 +614,8 @@ 137 - apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 85 + libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.html + 44 @@ -787,7 +787,7 @@ Vuoi davvero eliminare questo utente? apps/client/src/app/components/admin-users/admin-users.component.ts - 125 + 138 @@ -823,7 +823,7 @@ Ultima richiesta apps/client/src/app/components/admin-users/admin-users.html - 181 + 202 @@ -885,10 +885,6 @@ apps/client/src/app/pages/accounts/accounts-page.html 4 - - libs/ui/src/lib/assistant/assistant.html - 107 - Admin Control @@ -1323,11 +1319,11 @@ Settori apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 205 + 183 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 330 + 308 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -1343,11 +1339,11 @@ Paesi apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 215 + 193 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 341 + 319 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -1359,7 +1355,7 @@ Tag apps/client/src/app/components/admin-settings/admin-settings.component.html - 65 + 85 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -1373,10 +1369,6 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html 383 - - libs/ui/src/lib/assistant/assistant.html - 155 - Report Data Glitch @@ -1485,6 +1477,10 @@ Okay Bene + + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 151 + apps/client/src/app/core/http-response.interceptor.ts 81 @@ -1667,7 +1663,7 @@ Inserisci il tuo codice del buono: apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 124 + 166 @@ -1675,7 +1671,7 @@ Impossibile riscattare il codice del buono apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 134 + 175 @@ -1683,7 +1679,7 @@ Il codice del buono è stato riscattato apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 146 + 188 @@ -1691,7 +1687,7 @@ Ricarica apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 147 + 189 @@ -1713,13 +1709,17 @@ libs/ui/src/lib/activities-table/activities-table.component.html 308 + + libs/ui/src/lib/assistant/assistant.html + 107 + Membership Iscrizione libs/ui/src/lib/membership-card/membership-card.component.html - 18 + 37 @@ -1727,7 +1727,7 @@ per anno apps/client/src/app/components/user-account-membership/user-account-membership.html - 34 + 36 apps/client/src/app/pages/pricing/pricing-page.html @@ -1739,7 +1739,7 @@ Prova Premium apps/client/src/app/components/user-account-membership/user-account-membership.html - 51 + 53 @@ -1747,7 +1747,7 @@ Riscatta il buono apps/client/src/app/components/user-account-membership/user-account-membership.html - 65 + 67 @@ -1879,11 +1879,11 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 133 + 111 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 236 + 214 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -2323,7 +2323,7 @@ Nota apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 366 + 344 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html @@ -2343,11 +2343,11 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 162 + 140 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 246 + 224 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -2357,6 +2357,10 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html 354 + + libs/ui/src/lib/assistant/assistant.html + 166 + Activities @@ -2699,11 +2703,11 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 171 + 149 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 259 + 237 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -2759,7 +2763,7 @@ Settore apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 188 + 166 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -2771,7 +2775,7 @@ Paese apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 199 + 177 apps/client/src/app/components/admin-users/admin-users.html @@ -3303,7 +3307,7 @@ Mappatura dei simboli apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 293 + 271 @@ -3353,10 +3357,6 @@ Import Importa - - apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 111 - apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html 153 @@ -3365,6 +3365,10 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html 186 + + libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.html + 70 + Market Data @@ -3441,9 +3445,13 @@ Valid until Valido fino a + + apps/client/src/app/components/admin-settings/admin-settings.component.html + 26 + libs/ui/src/lib/membership-card/membership-card.component.html - 23 + 42 @@ -3611,7 +3619,7 @@ apps/client/src/app/components/user-account-membership/user-account-membership.html - 16 + 18 apps/client/src/app/pages/pricing/pricing-page.html @@ -3907,7 +3915,7 @@ apps/client/src/app/components/user-account-membership/user-account-membership.html - 22 + 24 apps/client/src/app/pages/pricing/pricing-page.html @@ -3927,7 +3935,7 @@ Imita l’utente apps/client/src/app/components/admin-users/admin-users.html - 218 + 239 @@ -3935,7 +3943,7 @@ Elimina l’utente apps/client/src/app/components/admin-users/admin-users.html - 230 + 251 @@ -3975,7 +3983,7 @@ Url apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 353 + 331 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -3999,7 +4007,7 @@ Piattaforme apps/client/src/app/components/admin-settings/admin-settings.component.html - 59 + 79 @@ -4363,7 +4371,7 @@ Configurazione dello scraper apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 305 + 283 @@ -5478,7 +5486,7 @@ apps/client/src/app/components/admin-settings/admin-settings.component.ts - 61 + 73 apps/client/src/app/components/header/header.component.ts @@ -5494,7 +5502,7 @@ apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 40 + 42 apps/client/src/app/core/http-response.interceptor.ts @@ -5542,7 +5550,7 @@ libs/ui/src/lib/membership-card/membership-card.component.ts - 25 + 31 @@ -5928,7 +5936,7 @@ Benchmark apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 287 + 265 @@ -6131,8 +6139,8 @@ Oops! Could not parse historical data. Ops! Impossibile elaborare i dati storici. - apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 237 + libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.ts + 263 @@ -6220,7 +6228,7 @@ L'attuale prezzo di mercato è apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 345 + 325 @@ -6228,7 +6236,7 @@ Prova apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 323 + 301 @@ -6455,14 +6463,6 @@ 259 - - Asset Classes - classi degli Asset - - libs/ui/src/lib/assistant/assistant.html - 166 - - Apply Filters Applica i Filtri @@ -7024,7 +7024,7 @@ Errore apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 336 + 316 @@ -7144,7 +7144,7 @@ No rinnovo automatico. apps/client/src/app/components/user-account-membership/user-account-membership.html - 72 + 74 @@ -7344,7 +7344,7 @@ Imposta API Key apps/client/src/app/components/admin-settings/admin-settings.component.html - 48 + 68 @@ -7466,7 +7466,7 @@ of apps/client/src/app/components/admin-settings/admin-settings.component.html - 29 + 40 @@ -7474,7 +7474,7 @@ daily requests apps/client/src/app/components/admin-settings/admin-settings.component.html - 31 + 42 @@ -7482,7 +7482,7 @@ Remove API key apps/client/src/app/components/admin-settings/admin-settings.component.html - 38 + 56 @@ -7490,7 +7490,7 @@ Do you really want to delete the API key? apps/client/src/app/components/admin-settings/admin-settings.component.ts - 80 + 92 @@ -7500,6 +7500,10 @@ apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/ghostfolio-premium-api-dialog.component.ts 45 + + apps/client/src/app/pages/api/api-page.component.ts + 41 + Notify me @@ -7517,6 +7521,70 @@ 42 + + API Requests Today + API Requests Today + + apps/client/src/app/components/admin-users/admin-users.html + 178 + + + + Could not generate an API key + Could not generate an API key + + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 138 + + + + Set this API key in your self-hosted environment: + Set this API key in your self-hosted environment: + + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 153 + + + + Ghostfolio Premium Data Provider API Key + Ghostfolio Premium Data Provider API Key + + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 156 + + + + Do you really want to generate a new API key? + Do you really want to generate a new API key? + + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 161 + + + + Tag + Tag + + libs/ui/src/lib/assistant/assistant.html + 155 + + + + API Key + API Key + + libs/ui/src/lib/membership-card/membership-card.component.html + 18 + + + + Generate Ghostfolio Premium Data Provider API key for self-hosted environments... + Generate Ghostfolio Premium Data Provider API key for self-hosted environments... + + libs/ui/src/lib/membership-card/membership-card.component.html + 26 + + diff --git a/apps/client/src/locales/messages.nl.xlf b/apps/client/src/locales/messages.nl.xlf index b8dbd38a..a2c287c2 100644 --- a/apps/client/src/locales/messages.nl.xlf +++ b/apps/client/src/locales/messages.nl.xlf @@ -94,7 +94,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 153 + 131 apps/client/src/app/components/admin-tag/admin-tag.component.html @@ -130,7 +130,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 229 + 207 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -346,7 +346,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 118 + 96 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -370,7 +370,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 128 + 106 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -453,17 +453,13 @@ Details for Details voor - apps/client/src/app/components/admin-market-data-detail/market-data-detail-dialog/market-data-detail-dialog.html + libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html 2 Date Datum - - apps/client/src/app/components/admin-market-data-detail/market-data-detail-dialog/market-data-detail-dialog.html - 6 - apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html 160 @@ -476,14 +472,14 @@ libs/ui/src/lib/activities-table/activities-table.component.html 170 + + libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html + 6 + Market Price Marktprijs - - apps/client/src/app/components/admin-market-data-detail/market-data-detail-dialog/market-data-detail-dialog.html - 26 - apps/client/src/app/components/admin-market-data/admin-market-data.html 104 @@ -492,17 +488,17 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html 98 + + libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html + 26 + Cancel Annuleren - - apps/client/src/app/components/admin-market-data-detail/market-data-detail-dialog/market-data-detail-dialog.html - 46 - apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 379 + 357 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -536,17 +532,17 @@ apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html 38 + + libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html + 46 + Save Opslaan - - apps/client/src/app/components/admin-market-data-detail/market-data-detail-dialog/market-data-detail-dialog.html - 48 - apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 386 + 364 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -576,6 +572,10 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html 434 + + libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html + 48 + First Activity @@ -586,7 +586,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 144 + 122 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -613,8 +613,8 @@ 137 - apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 85 + libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.html + 44 @@ -786,7 +786,7 @@ Wilt je deze gebruiker echt verwijderen? apps/client/src/app/components/admin-users/admin-users.component.ts - 125 + 138 @@ -822,7 +822,7 @@ Laatste verzoek apps/client/src/app/components/admin-users/admin-users.html - 181 + 202 @@ -884,10 +884,6 @@ apps/client/src/app/pages/accounts/accounts-page.html 4 - - libs/ui/src/lib/assistant/assistant.html - 107 - Admin Control @@ -1322,11 +1318,11 @@ Sectoren apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 205 + 183 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 330 + 308 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -1342,11 +1338,11 @@ Landen apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 215 + 193 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 341 + 319 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -1358,7 +1354,7 @@ Tags apps/client/src/app/components/admin-settings/admin-settings.component.html - 65 + 85 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -1372,10 +1368,6 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html 383 - - libs/ui/src/lib/assistant/assistant.html - 155 - Report Data Glitch @@ -1484,6 +1476,10 @@ Okay Oké + + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 151 + apps/client/src/app/core/http-response.interceptor.ts 81 @@ -1666,7 +1662,7 @@ Voer je couponcode in: apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 124 + 166 @@ -1674,7 +1670,7 @@ Kon je kortingscode niet inwisselen apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 134 + 175 @@ -1682,7 +1678,7 @@ Je couponcode is ingewisseld apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 146 + 188 @@ -1690,7 +1686,7 @@ Herladen apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 147 + 189 @@ -1712,13 +1708,17 @@ libs/ui/src/lib/activities-table/activities-table.component.html 308 + + libs/ui/src/lib/assistant/assistant.html + 107 + Membership Lidmaatschap libs/ui/src/lib/membership-card/membership-card.component.html - 18 + 37 @@ -1726,7 +1726,7 @@ per jaar apps/client/src/app/components/user-account-membership/user-account-membership.html - 34 + 36 apps/client/src/app/pages/pricing/pricing-page.html @@ -1738,7 +1738,7 @@ Probeer Premium apps/client/src/app/components/user-account-membership/user-account-membership.html - 51 + 53 @@ -1746,7 +1746,7 @@ Coupon inwisselen apps/client/src/app/components/user-account-membership/user-account-membership.html - 65 + 67 @@ -1878,11 +1878,11 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 133 + 111 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 236 + 214 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -2322,7 +2322,7 @@ Opmerking apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 366 + 344 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html @@ -2342,11 +2342,11 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 162 + 140 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 246 + 224 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -2356,6 +2356,10 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html 354 + + libs/ui/src/lib/assistant/assistant.html + 166 + Activities @@ -2698,11 +2702,11 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 171 + 149 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 259 + 237 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -2758,7 +2762,7 @@ Sector apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 188 + 166 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -2770,7 +2774,7 @@ Land apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 199 + 177 apps/client/src/app/components/admin-users/admin-users.html @@ -3302,7 +3306,7 @@ Symbool toewijzen apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 293 + 271 @@ -3352,10 +3356,6 @@ Import Importeren - - apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 111 - apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html 153 @@ -3364,6 +3364,10 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html 186 + + libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.html + 70 + Market Data @@ -3440,9 +3444,13 @@ Valid until Geldig tot + + apps/client/src/app/components/admin-settings/admin-settings.component.html + 26 + libs/ui/src/lib/membership-card/membership-card.component.html - 23 + 42 @@ -3610,7 +3618,7 @@ apps/client/src/app/components/user-account-membership/user-account-membership.html - 16 + 18 apps/client/src/app/pages/pricing/pricing-page.html @@ -3906,7 +3914,7 @@ apps/client/src/app/components/user-account-membership/user-account-membership.html - 22 + 24 apps/client/src/app/pages/pricing/pricing-page.html @@ -3926,7 +3934,7 @@ Gebruiker nadoen apps/client/src/app/components/admin-users/admin-users.html - 218 + 239 @@ -3934,7 +3942,7 @@ Gebruiker verwijderen apps/client/src/app/components/admin-users/admin-users.html - 230 + 251 @@ -3974,7 +3982,7 @@ Url apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 353 + 331 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -3998,7 +4006,7 @@ Platforms apps/client/src/app/components/admin-settings/admin-settings.component.html - 59 + 79 @@ -4362,7 +4370,7 @@ Scraper instellingen apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 305 + 283 @@ -5477,7 +5485,7 @@ apps/client/src/app/components/admin-settings/admin-settings.component.ts - 61 + 73 apps/client/src/app/components/header/header.component.ts @@ -5493,7 +5501,7 @@ apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 40 + 42 apps/client/src/app/core/http-response.interceptor.ts @@ -5541,7 +5549,7 @@ libs/ui/src/lib/membership-card/membership-card.component.ts - 25 + 31 @@ -5927,7 +5935,7 @@ Benchmark apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 287 + 265 @@ -6130,8 +6138,8 @@ Oops! Could not parse historical data. Oops! Could not parse historical data. - apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 237 + libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.ts + 263 @@ -6219,7 +6227,7 @@ The current market price is apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 345 + 325 @@ -6227,7 +6235,7 @@ Test apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 323 + 301 @@ -6454,14 +6462,6 @@ 259 - - Asset Classes - Asset Classes - - libs/ui/src/lib/assistant/assistant.html - 166 - - Apply Filters Apply Filters @@ -7023,7 +7023,7 @@ Error apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 336 + 316 @@ -7143,7 +7143,7 @@ No auto-renewal. apps/client/src/app/components/user-account-membership/user-account-membership.html - 72 + 74 @@ -7343,7 +7343,7 @@ Set API key apps/client/src/app/components/admin-settings/admin-settings.component.html - 48 + 68 @@ -7465,7 +7465,7 @@ of apps/client/src/app/components/admin-settings/admin-settings.component.html - 29 + 40 @@ -7473,7 +7473,7 @@ daily requests apps/client/src/app/components/admin-settings/admin-settings.component.html - 31 + 42 @@ -7481,7 +7481,7 @@ Remove API key apps/client/src/app/components/admin-settings/admin-settings.component.html - 38 + 56 @@ -7489,7 +7489,7 @@ Do you really want to delete the API key? apps/client/src/app/components/admin-settings/admin-settings.component.ts - 80 + 92 @@ -7499,6 +7499,10 @@ apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/ghostfolio-premium-api-dialog.component.ts 45 + + apps/client/src/app/pages/api/api-page.component.ts + 41 + Notify me @@ -7516,6 +7520,70 @@ 42 + + API Requests Today + API Requests Today + + apps/client/src/app/components/admin-users/admin-users.html + 178 + + + + Could not generate an API key + Could not generate an API key + + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 138 + + + + Set this API key in your self-hosted environment: + Set this API key in your self-hosted environment: + + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 153 + + + + Ghostfolio Premium Data Provider API Key + Ghostfolio Premium Data Provider API Key + + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 156 + + + + Do you really want to generate a new API key? + Do you really want to generate a new API key? + + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 161 + + + + Tag + Tag + + libs/ui/src/lib/assistant/assistant.html + 155 + + + + API Key + API Key + + libs/ui/src/lib/membership-card/membership-card.component.html + 18 + + + + Generate Ghostfolio Premium Data Provider API key for self-hosted environments... + Generate Ghostfolio Premium Data Provider API key for self-hosted environments... + + libs/ui/src/lib/membership-card/membership-card.component.html + 26 + + diff --git a/apps/client/src/locales/messages.pl.xlf b/apps/client/src/locales/messages.pl.xlf index 76e4decb..c5439f69 100644 --- a/apps/client/src/locales/messages.pl.xlf +++ b/apps/client/src/locales/messages.pl.xlf @@ -260,7 +260,7 @@ apps/client/src/app/components/admin-settings/admin-settings.component.ts - 61 + 73 apps/client/src/app/components/header/header.component.ts @@ -276,7 +276,7 @@ apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 40 + 42 apps/client/src/app/core/http-response.interceptor.ts @@ -324,7 +324,7 @@ libs/ui/src/lib/membership-card/membership-card.component.ts - 25 + 31 @@ -879,7 +879,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 153 + 131 apps/client/src/app/components/admin-tag/admin-tag.component.html @@ -943,7 +943,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 229 + 207 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -1003,11 +1003,11 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 133 + 111 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 236 + 214 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -1199,7 +1199,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 118 + 96 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -1223,7 +1223,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 128 + 106 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -1298,17 +1298,13 @@ Details for Szczegóły dla - apps/client/src/app/components/admin-market-data-detail/market-data-detail-dialog/market-data-detail-dialog.html + libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html 2 Date Data - - apps/client/src/app/components/admin-market-data-detail/market-data-detail-dialog/market-data-detail-dialog.html - 6 - apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html 160 @@ -1321,14 +1317,14 @@ libs/ui/src/lib/activities-table/activities-table.component.html 170 + + libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html + 6 + Market Price Cena Rynkowa - - apps/client/src/app/components/admin-market-data-detail/market-data-detail-dialog/market-data-detail-dialog.html - 26 - apps/client/src/app/components/admin-market-data/admin-market-data.html 104 @@ -1337,17 +1333,17 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html 98 + + libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html + 26 + Cancel Anuluj - - apps/client/src/app/components/admin-market-data-detail/market-data-detail-dialog/market-data-detail-dialog.html - 46 - apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 379 + 357 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -1381,17 +1377,17 @@ apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html 38 + + libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html + 46 + Save Zapisz - - apps/client/src/app/components/admin-market-data-detail/market-data-detail-dialog/market-data-detail-dialog.html - 48 - apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 386 + 364 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -1421,6 +1417,10 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html 434 + + libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html + 48 + Currencies @@ -1471,11 +1471,11 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 162 + 140 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 246 + 224 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -1485,6 +1485,10 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html 354 + + libs/ui/src/lib/assistant/assistant.html + 166 + Asset Sub Class @@ -1495,11 +1499,11 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 171 + 149 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 259 + 237 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -1519,7 +1523,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 144 + 122 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -1546,8 +1550,8 @@ 137 - apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 85 + libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.html + 44 @@ -1598,8 +1602,8 @@ Oops! Could not parse historical data. Ups! Nie udało się sparsować danych historycznych. - apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 237 + libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.ts + 263 @@ -1621,10 +1625,6 @@ Import Importuj - - apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 111 - apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html 153 @@ -1633,13 +1633,17 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html 186 + + libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.html + 70 + Sector Sektor apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 188 + 166 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -1651,7 +1655,7 @@ Kraj apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 199 + 177 apps/client/src/app/components/admin-users/admin-users.html @@ -1667,11 +1671,11 @@ Sektory apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 205 + 183 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 330 + 308 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -1687,11 +1691,11 @@ Kraje apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 215 + 193 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 341 + 319 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -1703,7 +1707,7 @@ Benchmark apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 287 + 265 @@ -1711,7 +1715,7 @@ Mapowanie Symboli apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 293 + 271 @@ -1719,7 +1723,7 @@ Konfiguracja Scrapera apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 305 + 283 @@ -1727,7 +1731,7 @@ Notatka apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 366 + 344 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html @@ -1955,7 +1959,7 @@ Url apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 353 + 331 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -1993,10 +1997,6 @@ apps/client/src/app/pages/accounts/accounts-page.html 4 - - libs/ui/src/lib/assistant/assistant.html - 107 - Do you really want to delete this platform? @@ -2027,7 +2027,7 @@ Platformy apps/client/src/app/components/admin-settings/admin-settings.component.html - 59 + 79 @@ -2035,7 +2035,7 @@ Tagi apps/client/src/app/components/admin-settings/admin-settings.component.html - 65 + 85 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -2049,10 +2049,6 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html 383 - - libs/ui/src/lib/assistant/assistant.html - 155 - Add Tag @@ -2091,7 +2087,7 @@ Czy na pewno chcesz usunąć tego użytkownika? apps/client/src/app/components/admin-users/admin-users.component.ts - 125 + 138 @@ -2123,7 +2119,7 @@ Ostatnie Żądanie apps/client/src/app/components/admin-users/admin-users.html - 181 + 202 @@ -2131,7 +2127,7 @@ Wciel się w Użytkownika apps/client/src/app/components/admin-users/admin-users.html - 218 + 239 @@ -2139,7 +2135,7 @@ Usuń Użytkownika apps/client/src/app/components/admin-users/admin-users.html - 230 + 251 @@ -2947,7 +2943,7 @@ apps/client/src/app/components/user-account-membership/user-account-membership.html - 16 + 18 apps/client/src/app/pages/pricing/pricing-page.html @@ -3043,7 +3039,7 @@ Wpisz kod kuponu: apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 124 + 166 @@ -3051,7 +3047,7 @@ Nie udało się zrealizować kodu kuponu apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 134 + 175 @@ -3059,7 +3055,7 @@ Kupon został zrealizowany apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 146 + 188 @@ -3067,7 +3063,7 @@ Odśwież apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 147 + 189 @@ -3075,7 +3071,7 @@ rocznie apps/client/src/app/components/user-account-membership/user-account-membership.html - 34 + 36 apps/client/src/app/pages/pricing/pricing-page.html @@ -3087,7 +3083,7 @@ Wypróbuj Premium apps/client/src/app/components/user-account-membership/user-account-membership.html - 51 + 53 @@ -3095,7 +3091,7 @@ Wykorzystaj kupon apps/client/src/app/components/user-account-membership/user-account-membership.html - 65 + 67 @@ -3313,6 +3309,10 @@ Okay Okej + + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 151 + apps/client/src/app/core/http-response.interceptor.ts 81 @@ -4285,6 +4285,10 @@ libs/ui/src/lib/activities-table/activities-table.component.html 308 + + libs/ui/src/lib/assistant/assistant.html + 107 + Update Cash Balance @@ -4987,7 +4991,7 @@ apps/client/src/app/components/user-account-membership/user-account-membership.html - 22 + 24 apps/client/src/app/pages/pricing/pricing-page.html @@ -6111,15 +6115,19 @@ Członkostwo libs/ui/src/lib/membership-card/membership-card.component.html - 18 + 37 Valid until Ważność do + + apps/client/src/app/components/admin-settings/admin-settings.component.html + 26 + libs/ui/src/lib/membership-card/membership-card.component.html - 23 + 42 @@ -6219,7 +6227,7 @@ Obecna cena rynkowa wynosi apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 345 + 325 @@ -6227,7 +6235,7 @@ Test apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 323 + 301 @@ -6454,14 +6462,6 @@ 259 - - Asset Classes - Klasy Aktywów - - libs/ui/src/lib/assistant/assistant.html - 166 - - Apply Filters Zastosuj Filtry @@ -7023,7 +7023,7 @@ Błąd apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 336 + 316 @@ -7143,7 +7143,7 @@ No auto-renewal. apps/client/src/app/components/user-account-membership/user-account-membership.html - 72 + 74 @@ -7343,7 +7343,7 @@ Set API key apps/client/src/app/components/admin-settings/admin-settings.component.html - 48 + 68 @@ -7465,7 +7465,7 @@ of apps/client/src/app/components/admin-settings/admin-settings.component.html - 29 + 40 @@ -7473,7 +7473,7 @@ daily requests apps/client/src/app/components/admin-settings/admin-settings.component.html - 31 + 42 @@ -7481,7 +7481,7 @@ Remove API key apps/client/src/app/components/admin-settings/admin-settings.component.html - 38 + 56 @@ -7489,7 +7489,7 @@ Do you really want to delete the API key? apps/client/src/app/components/admin-settings/admin-settings.component.ts - 80 + 92 @@ -7499,6 +7499,10 @@ apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/ghostfolio-premium-api-dialog.component.ts 45 + + apps/client/src/app/pages/api/api-page.component.ts + 41 + Notify me @@ -7516,6 +7520,70 @@ 42 + + API Requests Today + API Requests Today + + apps/client/src/app/components/admin-users/admin-users.html + 178 + + + + Could not generate an API key + Could not generate an API key + + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 138 + + + + Set this API key in your self-hosted environment: + Set this API key in your self-hosted environment: + + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 153 + + + + Ghostfolio Premium Data Provider API Key + Ghostfolio Premium Data Provider API Key + + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 156 + + + + Do you really want to generate a new API key? + Do you really want to generate a new API key? + + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 161 + + + + Tag + Tag + + libs/ui/src/lib/assistant/assistant.html + 155 + + + + API Key + API Key + + libs/ui/src/lib/membership-card/membership-card.component.html + 18 + + + + Generate Ghostfolio Premium Data Provider API key for self-hosted environments... + Generate Ghostfolio Premium Data Provider API key for self-hosted environments... + + libs/ui/src/lib/membership-card/membership-card.component.html + 26 + + diff --git a/apps/client/src/locales/messages.pt.xlf b/apps/client/src/locales/messages.pt.xlf index 404e4d2b..e472770f 100644 --- a/apps/client/src/locales/messages.pt.xlf +++ b/apps/client/src/locales/messages.pt.xlf @@ -106,7 +106,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 153 + 131 apps/client/src/app/components/admin-tag/admin-tag.component.html @@ -142,7 +142,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 229 + 207 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -202,11 +202,11 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 133 + 111 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 236 + 214 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -398,7 +398,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 118 + 96 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -422,7 +422,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 128 + 106 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -513,17 +513,13 @@ Details for Detalhes para - apps/client/src/app/components/admin-market-data-detail/market-data-detail-dialog/market-data-detail-dialog.html + libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html 2 Date Data - - apps/client/src/app/components/admin-market-data-detail/market-data-detail-dialog/market-data-detail-dialog.html - 6 - apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html 160 @@ -536,14 +532,14 @@ libs/ui/src/lib/activities-table/activities-table.component.html 170 + + libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html + 6 + Market Price Preço de Mercado - - apps/client/src/app/components/admin-market-data-detail/market-data-detail-dialog/market-data-detail-dialog.html - 26 - apps/client/src/app/components/admin-market-data/admin-market-data.html 104 @@ -552,17 +548,17 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html 98 + + libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html + 26 + Cancel Cancelar - - apps/client/src/app/components/admin-market-data-detail/market-data-detail-dialog/market-data-detail-dialog.html - 46 - apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 379 + 357 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -596,17 +592,17 @@ apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html 38 + + libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html + 46 + Save Guardar - - apps/client/src/app/components/admin-market-data-detail/market-data-detail-dialog/market-data-detail-dialog.html - 48 - apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 386 + 364 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -636,6 +632,10 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html 434 + + libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html + 48 + Filter by... @@ -654,11 +654,11 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 162 + 140 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 246 + 224 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -668,6 +668,10 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html 354 + + libs/ui/src/lib/assistant/assistant.html + 166 + Asset Sub Class @@ -678,11 +682,11 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 171 + 149 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 259 + 237 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -702,7 +706,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 144 + 122 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -729,8 +733,8 @@ 137 - apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 85 + libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.html + 44 @@ -918,7 +922,7 @@ Deseja realmente excluir este utilizador? apps/client/src/app/components/admin-users/admin-users.component.ts - 125 + 138 @@ -968,10 +972,6 @@ apps/client/src/app/pages/accounts/accounts-page.html 4 - - libs/ui/src/lib/assistant/assistant.html - 107 - Engagement per Day @@ -986,7 +986,7 @@ Último Pedido apps/client/src/app/components/admin-users/admin-users.html - 181 + 202 @@ -1598,7 +1598,7 @@ Setor apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 188 + 166 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -1610,7 +1610,7 @@ País apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 199 + 177 apps/client/src/app/components/admin-users/admin-users.html @@ -1626,11 +1626,11 @@ Setores apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 205 + 183 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 330 + 308 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -1646,11 +1646,11 @@ Países apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 215 + 193 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 341 + 319 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -1662,7 +1662,7 @@ Marcadores apps/client/src/app/components/admin-settings/admin-settings.component.html - 65 + 85 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -1676,10 +1676,6 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html 383 - - libs/ui/src/lib/assistant/assistant.html - 155 - Report Data Glitch @@ -1812,6 +1808,10 @@ Okay OK + + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 151 + apps/client/src/app/core/http-response.interceptor.ts 81 @@ -1906,7 +1906,7 @@ Por favor, insira o seu código de cupão: apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 124 + 166 @@ -1914,7 +1914,7 @@ Não foi possível resgatar o código de cupão apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 134 + 175 @@ -1922,7 +1922,7 @@ Código de cupão foi resgatado apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 146 + 188 @@ -1930,7 +1930,7 @@ Atualizar apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 147 + 189 @@ -1952,13 +1952,17 @@ libs/ui/src/lib/activities-table/activities-table.component.html 308 + + libs/ui/src/lib/assistant/assistant.html + 107 + Membership Filiação libs/ui/src/lib/membership-card/membership-card.component.html - 18 + 37 @@ -1966,7 +1970,7 @@ por ano apps/client/src/app/components/user-account-membership/user-account-membership.html - 34 + 36 apps/client/src/app/pages/pricing/pricing-page.html @@ -1978,7 +1982,7 @@ Experimentar Premium apps/client/src/app/components/user-account-membership/user-account-membership.html - 51 + 53 @@ -1986,7 +1990,7 @@ Resgatar Cupão apps/client/src/app/components/user-account-membership/user-account-membership.html - 65 + 67 @@ -2454,7 +2458,7 @@ Nota apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 366 + 344 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html @@ -3266,7 +3270,7 @@ Mapeamento de Símbolo apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 293 + 271 @@ -3360,10 +3364,6 @@ Import Importar - - apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 111 - apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html 153 @@ -3372,6 +3372,10 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html 186 + + libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.html + 70 + Dividend @@ -3440,9 +3444,13 @@ Valid until Válido até + + apps/client/src/app/components/admin-settings/admin-settings.component.html + 26 + libs/ui/src/lib/membership-card/membership-card.component.html - 23 + 42 @@ -3610,7 +3618,7 @@ apps/client/src/app/components/user-account-membership/user-account-membership.html - 16 + 18 apps/client/src/app/pages/pricing/pricing-page.html @@ -3906,7 +3914,7 @@ apps/client/src/app/components/user-account-membership/user-account-membership.html - 22 + 24 apps/client/src/app/pages/pricing/pricing-page.html @@ -3926,7 +3934,7 @@ Personificar Utilizador apps/client/src/app/components/admin-users/admin-users.html - 218 + 239 @@ -3934,7 +3942,7 @@ Apagar Utilizador apps/client/src/app/components/admin-users/admin-users.html - 230 + 251 @@ -3974,7 +3982,7 @@ Url apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 353 + 331 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -3998,7 +4006,7 @@ Plataformas apps/client/src/app/components/admin-settings/admin-settings.component.html - 59 + 79 @@ -4362,7 +4370,7 @@ Scraper Configuration apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 305 + 283 @@ -5477,7 +5485,7 @@ apps/client/src/app/components/admin-settings/admin-settings.component.ts - 61 + 73 apps/client/src/app/components/header/header.component.ts @@ -5493,7 +5501,7 @@ apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 40 + 42 apps/client/src/app/core/http-response.interceptor.ts @@ -5541,7 +5549,7 @@ libs/ui/src/lib/membership-card/membership-card.component.ts - 25 + 31 @@ -5927,7 +5935,7 @@ Benchmark apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 287 + 265 @@ -6130,8 +6138,8 @@ Oops! Could not parse historical data. Oops! Could not parse historical data. - apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 237 + libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.ts + 263 @@ -6219,7 +6227,7 @@ The current market price is apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 345 + 325 @@ -6227,7 +6235,7 @@ Test apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 323 + 301 @@ -6454,14 +6462,6 @@ 259 - - Asset Classes - Asset Classes - - libs/ui/src/lib/assistant/assistant.html - 166 - - Apply Filters Apply Filters @@ -7023,7 +7023,7 @@ Error apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 336 + 316 @@ -7143,7 +7143,7 @@ No auto-renewal. apps/client/src/app/components/user-account-membership/user-account-membership.html - 72 + 74 @@ -7343,7 +7343,7 @@ Set API key apps/client/src/app/components/admin-settings/admin-settings.component.html - 48 + 68 @@ -7465,7 +7465,7 @@ of apps/client/src/app/components/admin-settings/admin-settings.component.html - 29 + 40 @@ -7473,7 +7473,7 @@ daily requests apps/client/src/app/components/admin-settings/admin-settings.component.html - 31 + 42 @@ -7481,7 +7481,7 @@ Remove API key apps/client/src/app/components/admin-settings/admin-settings.component.html - 38 + 56 @@ -7489,7 +7489,7 @@ Do you really want to delete the API key? apps/client/src/app/components/admin-settings/admin-settings.component.ts - 80 + 92 @@ -7499,6 +7499,10 @@ apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/ghostfolio-premium-api-dialog.component.ts 45 + + apps/client/src/app/pages/api/api-page.component.ts + 41 + Notify me @@ -7516,6 +7520,70 @@ 42 + + API Requests Today + API Requests Today + + apps/client/src/app/components/admin-users/admin-users.html + 178 + + + + Could not generate an API key + Could not generate an API key + + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 138 + + + + Set this API key in your self-hosted environment: + Set this API key in your self-hosted environment: + + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 153 + + + + Ghostfolio Premium Data Provider API Key + Ghostfolio Premium Data Provider API Key + + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 156 + + + + Do you really want to generate a new API key? + Do you really want to generate a new API key? + + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 161 + + + + Tag + Tag + + libs/ui/src/lib/assistant/assistant.html + 155 + + + + API Key + API Key + + libs/ui/src/lib/membership-card/membership-card.component.html + 18 + + + + Generate Ghostfolio Premium Data Provider API key for self-hosted environments... + Generate Ghostfolio Premium Data Provider API key for self-hosted environments... + + libs/ui/src/lib/membership-card/membership-card.component.html + 26 + + diff --git a/apps/client/src/locales/messages.tr.xlf b/apps/client/src/locales/messages.tr.xlf index 307817d0..355488ea 100644 --- a/apps/client/src/locales/messages.tr.xlf +++ b/apps/client/src/locales/messages.tr.xlf @@ -260,7 +260,7 @@ apps/client/src/app/components/admin-settings/admin-settings.component.ts - 61 + 73 apps/client/src/app/components/header/header.component.ts @@ -276,7 +276,7 @@ apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 40 + 42 apps/client/src/app/core/http-response.interceptor.ts @@ -324,7 +324,7 @@ libs/ui/src/lib/membership-card/membership-card.component.ts - 25 + 31 @@ -871,7 +871,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 153 + 131 apps/client/src/app/components/admin-tag/admin-tag.component.html @@ -907,7 +907,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 229 + 207 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -967,11 +967,11 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 133 + 111 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 236 + 214 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -1147,7 +1147,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 118 + 96 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -1171,7 +1171,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 128 + 106 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -1262,17 +1262,13 @@ Details for Detaylar - apps/client/src/app/components/admin-market-data-detail/market-data-detail-dialog/market-data-detail-dialog.html + libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html 2 Date Tarih - - apps/client/src/app/components/admin-market-data-detail/market-data-detail-dialog/market-data-detail-dialog.html - 6 - apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html 160 @@ -1285,14 +1281,14 @@ libs/ui/src/lib/activities-table/activities-table.component.html 170 + + libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html + 6 + Market Price Piyasa Fiyatı - - apps/client/src/app/components/admin-market-data-detail/market-data-detail-dialog/market-data-detail-dialog.html - 26 - apps/client/src/app/components/admin-market-data/admin-market-data.html 104 @@ -1301,17 +1297,17 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html 98 + + libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html + 26 + Cancel İptal - - apps/client/src/app/components/admin-market-data-detail/market-data-detail-dialog/market-data-detail-dialog.html - 46 - apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 379 + 357 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -1345,17 +1341,17 @@ apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html 38 + + libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html + 46 + Save Kaydet - - apps/client/src/app/components/admin-market-data-detail/market-data-detail-dialog/market-data-detail-dialog.html - 48 - apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 386 + 364 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -1385,6 +1381,10 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html 434 + + libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html + 48 + Currencies @@ -1427,11 +1427,11 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 162 + 140 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 246 + 224 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -1441,6 +1441,10 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html 354 + + libs/ui/src/lib/assistant/assistant.html + 166 + Asset Sub Class @@ -1451,11 +1455,11 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 171 + 149 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 259 + 237 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -1475,7 +1479,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 144 + 122 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -1502,8 +1506,8 @@ 137 - apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 85 + libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.html + 44 @@ -1571,7 +1575,7 @@ Sektör apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 188 + 166 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -1583,7 +1587,7 @@ Ülke apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 199 + 177 apps/client/src/app/components/admin-users/admin-users.html @@ -1599,11 +1603,11 @@ Sektörler apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 205 + 183 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 330 + 308 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -1619,11 +1623,11 @@ Ülkeler apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 215 + 193 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 341 + 319 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -1635,7 +1639,7 @@ Sembol Eşleştirme apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 293 + 271 @@ -1643,7 +1647,7 @@ Veri Toplayıcı Yapılandırması apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 305 + 283 @@ -1651,7 +1655,7 @@ Not apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 366 + 344 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html @@ -1771,7 +1775,7 @@ Etiketler apps/client/src/app/components/admin-settings/admin-settings.component.html - 65 + 85 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -1785,10 +1789,6 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html 383 - - libs/ui/src/lib/assistant/assistant.html - 155 - User Signup @@ -1871,7 +1871,7 @@ Url apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 353 + 331 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -1909,10 +1909,6 @@ apps/client/src/app/pages/accounts/accounts-page.html 4 - - libs/ui/src/lib/assistant/assistant.html - 107 - Do you really want to delete this platform? @@ -1943,7 +1939,7 @@ Platformlar apps/client/src/app/components/admin-settings/admin-settings.component.html - 59 + 79 @@ -1951,7 +1947,7 @@ Bu kullanıcıyı silmeyi gerçekten istiyor musunu? apps/client/src/app/components/admin-users/admin-users.component.ts - 125 + 138 @@ -1987,7 +1983,7 @@ Son Talep apps/client/src/app/components/admin-users/admin-users.html - 181 + 202 @@ -1995,7 +1991,7 @@ Kullanıcıyı Taklit Et apps/client/src/app/components/admin-users/admin-users.html - 218 + 239 @@ -2003,7 +1999,7 @@ Kullanıcıyı Sil apps/client/src/app/components/admin-users/admin-users.html - 230 + 251 @@ -2791,7 +2787,7 @@ apps/client/src/app/components/user-account-membership/user-account-membership.html - 16 + 18 apps/client/src/app/pages/pricing/pricing-page.html @@ -2897,6 +2893,10 @@ Okay Tamam + + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 151 + apps/client/src/app/core/http-response.interceptor.ts 81 @@ -3773,6 +3773,10 @@ libs/ui/src/lib/activities-table/activities-table.component.html 308 + + libs/ui/src/lib/assistant/assistant.html + 107 + Update Cash Balance @@ -3937,10 +3941,6 @@ Import İçe Aktar - - apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 111 - apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html 153 @@ -3949,6 +3949,10 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html 186 + + libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.html + 70 + Allocations @@ -4459,7 +4463,7 @@ apps/client/src/app/components/user-account-membership/user-account-membership.html - 22 + 24 apps/client/src/app/pages/pricing/pricing-page.html @@ -4939,7 +4943,7 @@ Lütfen kupon kodunuzu girin: apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 124 + 166 @@ -4947,7 +4951,7 @@ Kupon kodu kullanılamadı apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 134 + 175 @@ -4955,7 +4959,7 @@ Kupon kodu kullanıldı apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 146 + 188 @@ -4963,7 +4967,7 @@ Yeniden Yükle apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 147 + 189 @@ -4979,15 +4983,19 @@ Üyelik libs/ui/src/lib/membership-card/membership-card.component.html - 18 + 37 Valid until Geçerli tarih + + apps/client/src/app/components/admin-settings/admin-settings.component.html + 26 + libs/ui/src/lib/membership-card/membership-card.component.html - 23 + 42 @@ -4995,7 +5003,7 @@ yıllık apps/client/src/app/components/user-account-membership/user-account-membership.html - 34 + 36 apps/client/src/app/pages/pricing/pricing-page.html @@ -5007,7 +5015,7 @@ Premium’u Deneyin apps/client/src/app/components/user-account-membership/user-account-membership.html - 51 + 53 @@ -5015,7 +5023,7 @@ Kupon Kullan apps/client/src/app/components/user-account-membership/user-account-membership.html - 65 + 67 @@ -5927,7 +5935,7 @@ Kıyaslama apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 287 + 265 @@ -6130,8 +6138,8 @@ Oops! Could not parse historical data. Hay Allah! Geçmiş veriler ayrıştırılamadı. - apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 237 + libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.ts + 263 @@ -6219,7 +6227,7 @@ The current market price is apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 345 + 325 @@ -6227,7 +6235,7 @@ Test apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 323 + 301 @@ -6454,14 +6462,6 @@ 259 - - Asset Classes - Asset Classes - - libs/ui/src/lib/assistant/assistant.html - 166 - - Apply Filters Apply Filters @@ -7023,7 +7023,7 @@ Error apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 336 + 316 @@ -7143,7 +7143,7 @@ No auto-renewal. apps/client/src/app/components/user-account-membership/user-account-membership.html - 72 + 74 @@ -7343,7 +7343,7 @@ Set API key apps/client/src/app/components/admin-settings/admin-settings.component.html - 48 + 68 @@ -7465,7 +7465,7 @@ of apps/client/src/app/components/admin-settings/admin-settings.component.html - 29 + 40 @@ -7473,7 +7473,7 @@ daily requests apps/client/src/app/components/admin-settings/admin-settings.component.html - 31 + 42 @@ -7481,7 +7481,7 @@ Remove API key apps/client/src/app/components/admin-settings/admin-settings.component.html - 38 + 56 @@ -7489,7 +7489,7 @@ Do you really want to delete the API key? apps/client/src/app/components/admin-settings/admin-settings.component.ts - 80 + 92 @@ -7499,6 +7499,10 @@ apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/ghostfolio-premium-api-dialog.component.ts 45 + + apps/client/src/app/pages/api/api-page.component.ts + 41 + Notify me @@ -7516,6 +7520,70 @@ 42 + + API Requests Today + API Requests Today + + apps/client/src/app/components/admin-users/admin-users.html + 178 + + + + Could not generate an API key + Could not generate an API key + + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 138 + + + + Set this API key in your self-hosted environment: + Set this API key in your self-hosted environment: + + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 153 + + + + Ghostfolio Premium Data Provider API Key + Ghostfolio Premium Data Provider API Key + + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 156 + + + + Do you really want to generate a new API key? + Do you really want to generate a new API key? + + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 161 + + + + Tag + Tag + + libs/ui/src/lib/assistant/assistant.html + 155 + + + + API Key + API Key + + libs/ui/src/lib/membership-card/membership-card.component.html + 18 + + + + Generate Ghostfolio Premium Data Provider API key for self-hosted environments... + Generate Ghostfolio Premium Data Provider API key for self-hosted environments... + + libs/ui/src/lib/membership-card/membership-card.component.html + 26 + + diff --git a/apps/client/src/locales/messages.xlf b/apps/client/src/locales/messages.xlf index 51a7c32e..0e1c16eb 100644 --- a/apps/client/src/locales/messages.xlf +++ b/apps/client/src/locales/messages.xlf @@ -255,7 +255,7 @@ apps/client/src/app/components/admin-settings/admin-settings.component.ts - 61 + 73 apps/client/src/app/components/header/header.component.ts @@ -271,7 +271,7 @@ apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 40 + 42 apps/client/src/app/core/http-response.interceptor.ts @@ -319,7 +319,7 @@ libs/ui/src/lib/membership-card/membership-card.component.ts - 25 + 31 @@ -847,7 +847,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 153 + 131 apps/client/src/app/components/admin-tag/admin-tag.component.html @@ -915,7 +915,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 229 + 207 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -973,11 +973,11 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 133 + 111 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 236 + 214 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -1162,7 +1162,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 118 + 96 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -1185,7 +1185,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 128 + 106 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -1251,16 +1251,12 @@ Details for - apps/client/src/app/components/admin-market-data-detail/market-data-detail-dialog/market-data-detail-dialog.html + libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html 2 Date - - apps/client/src/app/components/admin-market-data-detail/market-data-detail-dialog/market-data-detail-dialog.html - 6 - apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html 160 @@ -1273,13 +1269,13 @@ libs/ui/src/lib/activities-table/activities-table.component.html 170 + + libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html + 6 + Market Price - - apps/client/src/app/components/admin-market-data-detail/market-data-detail-dialog/market-data-detail-dialog.html - 26 - apps/client/src/app/components/admin-market-data/admin-market-data.html 104 @@ -1288,16 +1284,16 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html 98 + + libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html + 26 + Cancel - - apps/client/src/app/components/admin-market-data-detail/market-data-detail-dialog/market-data-detail-dialog.html - 46 - apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 379 + 357 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -1331,16 +1327,16 @@ apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html 38 + + libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html + 46 + Save - - apps/client/src/app/components/admin-market-data-detail/market-data-detail-dialog/market-data-detail-dialog.html - 48 - apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 386 + 364 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -1370,6 +1366,10 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html 434 + + libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html + 48 + Currencies @@ -1414,11 +1414,11 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 162 + 140 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 246 + 224 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -1428,6 +1428,10 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html 354 + + libs/ui/src/lib/assistant/assistant.html + 166 + Asset Sub Class @@ -1437,11 +1441,11 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 171 + 149 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 259 + 237 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -1460,7 +1464,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 144 + 122 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -1485,8 +1489,8 @@ 137 - apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 85 + libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.html + 44 @@ -1531,8 +1535,8 @@ Oops! Could not parse historical data. - apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 237 + libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.ts + 263 @@ -1551,10 +1555,6 @@ Import - - apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 111 - apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html 153 @@ -1563,12 +1563,16 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html 186 + + libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.html + 70 + Sector apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 188 + 166 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -1579,7 +1583,7 @@ Country apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 199 + 177 apps/client/src/app/components/admin-users/admin-users.html @@ -1594,11 +1598,11 @@ Sectors apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 205 + 183 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 330 + 308 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -1613,11 +1617,11 @@ Countries apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 215 + 193 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 341 + 319 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -1628,28 +1632,28 @@ Benchmark apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 287 + 265 Symbol Mapping apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 293 + 271 Scraper Configuration apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 305 + 283 Note apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 366 + 344 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html @@ -1858,7 +1862,7 @@ Url apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 353 + 331 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -1895,10 +1899,6 @@ apps/client/src/app/pages/accounts/accounts-page.html 4 - - libs/ui/src/lib/assistant/assistant.html - 107 - Do you really want to delete this platform? @@ -1925,14 +1925,14 @@ Platforms apps/client/src/app/components/admin-settings/admin-settings.component.html - 59 + 79 Tags apps/client/src/app/components/admin-settings/admin-settings.component.html - 65 + 85 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -1946,10 +1946,6 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html 383 - - libs/ui/src/lib/assistant/assistant.html - 155 - Add Tag @@ -1983,7 +1979,7 @@ Do you really want to delete this user? apps/client/src/app/components/admin-users/admin-users.component.ts - 125 + 138 @@ -2011,21 +2007,21 @@ Last Request apps/client/src/app/components/admin-users/admin-users.html - 181 + 202 Impersonate User apps/client/src/app/components/admin-users/admin-users.html - 218 + 239 Delete User apps/client/src/app/components/admin-users/admin-users.html - 230 + 251 @@ -2756,7 +2752,7 @@ apps/client/src/app/components/user-account-membership/user-account-membership.html - 16 + 18 apps/client/src/app/pages/pricing/pricing-page.html @@ -2843,35 +2839,35 @@ Please enter your coupon code: apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 124 + 166 Could not redeem coupon code apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 134 + 175 Coupon code has been redeemed apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 146 + 188 Reload apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 147 + 189 per year apps/client/src/app/components/user-account-membership/user-account-membership.html - 34 + 36 apps/client/src/app/pages/pricing/pricing-page.html @@ -2882,14 +2878,14 @@ Try Premium apps/client/src/app/components/user-account-membership/user-account-membership.html - 51 + 53 Redeem Coupon apps/client/src/app/components/user-account-membership/user-account-membership.html - 65 + 67 @@ -3082,6 +3078,10 @@ Okay + + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 151 + apps/client/src/app/core/http-response.interceptor.ts 81 @@ -3951,6 +3951,10 @@ libs/ui/src/lib/activities-table/activities-table.component.html 308 + + libs/ui/src/lib/assistant/assistant.html + 107 + Update Cash Balance @@ -4580,7 +4584,7 @@ apps/client/src/app/components/user-account-membership/user-account-membership.html - 22 + 24 apps/client/src/app/pages/pricing/pricing-page.html @@ -5621,14 +5625,18 @@ Membership libs/ui/src/lib/membership-card/membership-card.component.html - 18 + 37 Valid until + + apps/client/src/app/components/admin-settings/admin-settings.component.html + 26 + libs/ui/src/lib/membership-card/membership-card.component.html - 23 + 42 @@ -5667,14 +5675,14 @@ The current market price is apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 345 + 325 Test apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 323 + 301 @@ -5876,13 +5884,6 @@ 195 - - Asset Classes - - libs/ui/src/lib/assistant/assistant.html - 166 - - self-hosting @@ -6368,7 +6369,7 @@ Error apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 336 + 316 @@ -6473,7 +6474,7 @@ No auto-renewal. apps/client/src/app/components/user-account-membership/user-account-membership.html - 72 + 74 @@ -6648,7 +6649,7 @@ Set API key apps/client/src/app/components/admin-settings/admin-settings.component.html - 48 + 68 @@ -6759,12 +6760,16 @@ apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/ghostfolio-premium-api-dialog.component.ts 45 + + apps/client/src/app/pages/api/api-page.component.ts + 41 + of apps/client/src/app/components/admin-settings/admin-settings.component.html - 29 + 40 @@ -6778,7 +6783,7 @@ Do you really want to delete the API key? apps/client/src/app/components/admin-settings/admin-settings.component.ts - 80 + 92 @@ -6792,14 +6797,70 @@ Remove API key apps/client/src/app/components/admin-settings/admin-settings.component.html - 38 + 56 daily requests apps/client/src/app/components/admin-settings/admin-settings.component.html - 31 + 42 + + + + Generate Ghostfolio Premium Data Provider API key for self-hosted environments... + + libs/ui/src/lib/membership-card/membership-card.component.html + 26 + + + + API Key + + libs/ui/src/lib/membership-card/membership-card.component.html + 18 + + + + Tag + + libs/ui/src/lib/assistant/assistant.html + 155 + + + + API Requests Today + + apps/client/src/app/components/admin-users/admin-users.html + 178 + + + + Could not generate an API key + + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 138 + + + + Do you really want to generate a new API key? + + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 161 + + + + Ghostfolio Premium Data Provider API Key + + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 156 + + + + Set this API key in your self-hosted environment: + + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 153 diff --git a/apps/client/src/locales/messages.zh.xlf b/apps/client/src/locales/messages.zh.xlf index d6b9d7bf..31c897c5 100644 --- a/apps/client/src/locales/messages.zh.xlf +++ b/apps/client/src/locales/messages.zh.xlf @@ -261,7 +261,7 @@ apps/client/src/app/components/admin-settings/admin-settings.component.ts - 61 + 73 apps/client/src/app/components/header/header.component.ts @@ -277,7 +277,7 @@ apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 40 + 42 apps/client/src/app/core/http-response.interceptor.ts @@ -325,7 +325,7 @@ libs/ui/src/lib/membership-card/membership-card.component.ts - 25 + 31 @@ -880,7 +880,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 153 + 131 apps/client/src/app/components/admin-tag/admin-tag.component.html @@ -952,7 +952,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 229 + 207 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -1012,11 +1012,11 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 133 + 111 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 236 + 214 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -1208,7 +1208,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 118 + 96 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -1232,7 +1232,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 128 + 106 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -1307,17 +1307,13 @@ Details for 详细信息 - apps/client/src/app/components/admin-market-data-detail/market-data-detail-dialog/market-data-detail-dialog.html + libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html 2 Date 日期 - - apps/client/src/app/components/admin-market-data-detail/market-data-detail-dialog/market-data-detail-dialog.html - 6 - apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html 160 @@ -1330,14 +1326,14 @@ libs/ui/src/lib/activities-table/activities-table.component.html 170 + + libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html + 6 + Market Price 市场价 - - apps/client/src/app/components/admin-market-data-detail/market-data-detail-dialog/market-data-detail-dialog.html - 26 - apps/client/src/app/components/admin-market-data/admin-market-data.html 104 @@ -1346,17 +1342,17 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html 98 + + libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html + 26 + Cancel 取消 - - apps/client/src/app/components/admin-market-data-detail/market-data-detail-dialog/market-data-detail-dialog.html - 46 - apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 379 + 357 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -1390,17 +1386,17 @@ apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html 38 + + libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html + 46 + Save 保存 - - apps/client/src/app/components/admin-market-data-detail/market-data-detail-dialog/market-data-detail-dialog.html - 48 - apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 386 + 364 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -1430,6 +1426,10 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html 434 + + libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html + 48 + Currencies @@ -1480,11 +1480,11 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 162 + 140 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 246 + 224 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -1494,6 +1494,10 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html 354 + + libs/ui/src/lib/assistant/assistant.html + 166 + Asset Sub Class @@ -1504,11 +1508,11 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 171 + 149 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 259 + 237 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -1528,7 +1532,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 144 + 122 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -1555,8 +1559,8 @@ 137 - apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 85 + libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.html + 44 @@ -1607,8 +1611,8 @@ Oops! Could not parse historical data. 哎呀!无法解析历史数据。 - apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 237 + libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.ts + 263 @@ -1630,10 +1634,6 @@ Import 导入 - - apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 111 - apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html 153 @@ -1642,13 +1642,17 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html 186 + + libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.html + 70 + Sector 行业 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 188 + 166 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -1660,7 +1664,7 @@ 国家 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 199 + 177 apps/client/src/app/components/admin-users/admin-users.html @@ -1676,11 +1680,11 @@ 行业 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 205 + 183 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 330 + 308 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -1696,11 +1700,11 @@ 国家 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 215 + 193 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 341 + 319 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -1712,7 +1716,7 @@ 基准 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 287 + 265 @@ -1720,7 +1724,7 @@ 符号映射 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 293 + 271 @@ -1728,7 +1732,7 @@ 刮削配置 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 305 + 283 @@ -1736,7 +1740,7 @@ 笔记 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 366 + 344 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html @@ -1972,7 +1976,7 @@ 网址 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 353 + 331 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -2010,10 +2014,6 @@ apps/client/src/app/pages/accounts/accounts-page.html 4 - - libs/ui/src/lib/assistant/assistant.html - 107 - Do you really want to delete this platform? @@ -2044,7 +2044,7 @@ 平台 apps/client/src/app/components/admin-settings/admin-settings.component.html - 59 + 79 @@ -2052,7 +2052,7 @@ 标签 apps/client/src/app/components/admin-settings/admin-settings.component.html - 65 + 85 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -2066,10 +2066,6 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html 383 - - libs/ui/src/lib/assistant/assistant.html - 155 - Add Tag @@ -2108,7 +2104,7 @@ 您真的要删除该用户吗? apps/client/src/app/components/admin-users/admin-users.component.ts - 125 + 138 @@ -2140,7 +2136,7 @@ 最后请求 apps/client/src/app/components/admin-users/admin-users.html - 181 + 202 @@ -2148,7 +2144,7 @@ 模拟用户 apps/client/src/app/components/admin-users/admin-users.html - 218 + 239 @@ -2156,7 +2152,7 @@ 删除用户 apps/client/src/app/components/admin-users/admin-users.html - 230 + 251 @@ -2964,7 +2960,7 @@ apps/client/src/app/components/user-account-membership/user-account-membership.html - 16 + 18 apps/client/src/app/pages/pricing/pricing-page.html @@ -3060,7 +3056,7 @@ 请输入您的优惠券代码: apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 124 + 166 @@ -3068,7 +3064,7 @@ 无法兑换优惠券代码 apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 134 + 175 @@ -3076,7 +3072,7 @@ 优惠券代码已兑换 apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 146 + 188 @@ -3084,7 +3080,7 @@ 重新加载 apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 147 + 189 @@ -3092,7 +3088,7 @@ 每年 apps/client/src/app/components/user-account-membership/user-account-membership.html - 34 + 36 apps/client/src/app/pages/pricing/pricing-page.html @@ -3104,7 +3100,7 @@ 尝试高级版 apps/client/src/app/components/user-account-membership/user-account-membership.html - 51 + 53 @@ -3112,7 +3108,7 @@ 兑换优惠券 apps/client/src/app/components/user-account-membership/user-account-membership.html - 65 + 67 @@ -3330,6 +3326,10 @@ Okay 好的 + + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 151 + apps/client/src/app/core/http-response.interceptor.ts 81 @@ -4302,6 +4302,10 @@ libs/ui/src/lib/activities-table/activities-table.component.html 308 + + libs/ui/src/lib/assistant/assistant.html + 107 + Update Cash Balance @@ -5004,7 +5008,7 @@ apps/client/src/app/components/user-account-membership/user-account-membership.html - 22 + 24 apps/client/src/app/pages/pricing/pricing-page.html @@ -6176,15 +6180,19 @@ 会员资格 libs/ui/src/lib/membership-card/membership-card.component.html - 18 + 37 Valid until 有效期至 + + apps/client/src/app/components/admin-settings/admin-settings.component.html + 26 + libs/ui/src/lib/membership-card/membership-card.component.html - 23 + 42 @@ -6228,7 +6236,7 @@ 当前市场价格为 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 345 + 325 @@ -6236,7 +6244,7 @@ 测试 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 323 + 301 @@ -6463,14 +6471,6 @@ 195 - - Asset Classes - 资产类别 - - libs/ui/src/lib/assistant/assistant.html - 166 - - self-hosting 自托管 @@ -7024,7 +7024,7 @@ Error apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 336 + 316 @@ -7144,7 +7144,7 @@ No auto-renewal. apps/client/src/app/components/user-account-membership/user-account-membership.html - 72 + 74 @@ -7344,7 +7344,7 @@ Set API key apps/client/src/app/components/admin-settings/admin-settings.component.html - 48 + 68 @@ -7466,7 +7466,7 @@ of apps/client/src/app/components/admin-settings/admin-settings.component.html - 29 + 40 @@ -7474,7 +7474,7 @@ daily requests apps/client/src/app/components/admin-settings/admin-settings.component.html - 31 + 42 @@ -7482,7 +7482,7 @@ Remove API key apps/client/src/app/components/admin-settings/admin-settings.component.html - 38 + 56 @@ -7490,7 +7490,7 @@ Do you really want to delete the API key? apps/client/src/app/components/admin-settings/admin-settings.component.ts - 80 + 92 @@ -7500,6 +7500,10 @@ apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/ghostfolio-premium-api-dialog.component.ts 45 + + apps/client/src/app/pages/api/api-page.component.ts + 41 + Notify me @@ -7517,6 +7521,70 @@ 42 + + API Requests Today + API Requests Today + + apps/client/src/app/components/admin-users/admin-users.html + 178 + + + + Could not generate an API key + Could not generate an API key + + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 138 + + + + Set this API key in your self-hosted environment: + Set this API key in your self-hosted environment: + + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 153 + + + + Ghostfolio Premium Data Provider API Key + Ghostfolio Premium Data Provider API Key + + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 156 + + + + Do you really want to generate a new API key? + Do you really want to generate a new API key? + + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 161 + + + + Tag + Tag + + libs/ui/src/lib/assistant/assistant.html + 155 + + + + API Key + API Key + + libs/ui/src/lib/membership-card/membership-card.component.html + 18 + + + + Generate Ghostfolio Premium Data Provider API key for self-hosted environments... + Generate Ghostfolio Premium Data Provider API key for self-hosted environments... + + libs/ui/src/lib/membership-card/membership-card.component.html + 26 + + From 6341a6de6a35bde27442c141fe2595212d384ed7 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Thu, 12 Dec 2024 15:23:13 +0100 Subject: [PATCH 15/63] Feature/refactor X-ray summary (#4116) * Refactor report statistics --- apps/api/src/app/portfolio/portfolio.service.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/apps/api/src/app/portfolio/portfolio.service.ts b/apps/api/src/app/portfolio/portfolio.service.ts index d16a5254..8ead98a5 100644 --- a/apps/api/src/app/portfolio/portfolio.service.ts +++ b/apps/api/src/app/portfolio/portfolio.service.ts @@ -1677,14 +1677,14 @@ export class PortfolioService { ): PortfolioReportResponse['statistics'] { const rulesActiveCount = Object.values(evaluatedRules) .flat() - .filter(({ isActive }) => { - return isActive === true; + .filter((rule) => { + return rule?.isActive === true; }).length; const rulesFulfilledCount = Object.values(evaluatedRules) .flat() - .filter(({ value }) => { - return value === true; + .filter((rule) => { + return rule?.value === true; }).length; return { rulesActiveCount, rulesFulfilledCount }; From f3712b293cc351781d5ffeaaa0ce421a181c2bb9 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Thu, 12 Dec 2024 18:29:28 +0100 Subject: [PATCH 16/63] Bugfix/fix exception in portfolio calculator (#4119) * Add guard * Update changelog --- CHANGELOG.md | 1 + .../queues/portfolio-snapshot/portfolio-snapshot.processor.ts | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a4e3e3b0..59f0c1bb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,6 +14,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Fixed +- Fixed an exception in the caching of the portfolio snapshot in the portfolio calculator - Fixed the import of `jsonpath` to support REST APIs (`JSON`) via the scraper configuration ## 2.127.0 - 2024-12-08 diff --git a/apps/api/src/services/queues/portfolio-snapshot/portfolio-snapshot.processor.ts b/apps/api/src/services/queues/portfolio-snapshot/portfolio-snapshot.processor.ts index 72e2a7ce..93b34cbd 100644 --- a/apps/api/src/services/queues/portfolio-snapshot/portfolio-snapshot.processor.ts +++ b/apps/api/src/services/queues/portfolio-snapshot/portfolio-snapshot.processor.ts @@ -86,7 +86,7 @@ export class PortfolioSnapshotProcessor { const expiration = addMilliseconds( new Date(), - snapshot.errors.length === 0 + (snapshot?.errors?.length ?? 0) === 0 ? this.configurationService.get('CACHE_QUOTES_TTL') : 0 ); From bc3535946c39c7070ec9911070ad13eed0552856 Mon Sep 17 00:00:00 2001 From: Amandee Ellawala <47607256+amandee27@users.noreply.github.com> Date: Thu, 12 Dec 2024 18:16:41 +0000 Subject: [PATCH 17/63] Bugfix/do not fetch holdings in assistant for each change (#4118) * Do not fetch holdings in assistant for each change * Update changelog --- CHANGELOG.md | 1 + .../src/lib/assistant/assistant.component.ts | 46 ++++++++----------- libs/ui/src/lib/assistant/assistant.html | 4 +- 3 files changed, 23 insertions(+), 28 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 59f0c1bb..b92efa0d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed +- Optimized the holding selector in the assistant - Improved the language localization for German (`de`) - Upgraded `@internationalized/number` from version `3.5.2` to `3.6.0` diff --git a/libs/ui/src/lib/assistant/assistant.component.ts b/libs/ui/src/lib/assistant/assistant.component.ts index 3a5e6a2f..a7fb0c7e 100644 --- a/libs/ui/src/lib/assistant/assistant.component.ts +++ b/libs/ui/src/lib/assistant/assistant.component.ts @@ -167,8 +167,6 @@ export class GfAssistantComponent implements OnChanges, OnDestroy, OnInit { ) {} public ngOnInit() { - this.initializeFilterForm(); - this.assetClasses = Object.keys(AssetClass).map((assetClass) => { return { id: assetClass, @@ -272,12 +270,6 @@ export class GfAssistantComponent implements OnChanges, OnDestroy, OnInit { this.filterForm.disable({ emitEvent: false }); - if (this.hasPermissionToChangeFilters) { - this.filterForm.enable({ emitEvent: false }); - } - - this.initializeFilterForm(); - this.tags = this.user?.tags ?.filter(({ isUsed }) => { @@ -315,7 +307,7 @@ export class GfAssistantComponent implements OnChanges, OnDestroy, OnInit { ); } - public async initialize() { + public initialize() { this.isLoading = true; this.keyManager = new FocusKeyManager(this.assistantListItems).withWrap(); this.searchResults = { @@ -335,7 +327,25 @@ export class GfAssistantComponent implements OnChanges, OnDestroy, OnInit { this.isLoading = false; this.setIsOpen(true); - this.changeDetectorRef.markForCheck(); + this.dataService + .fetchPortfolioHoldings() + .pipe(takeUntil(this.unsubscribeSubject)) + .subscribe(({ holdings }) => { + this.holdings = holdings + .filter(({ assetSubClass }) => { + return !['CASH'].includes(assetSubClass); + }) + .sort((a, b) => { + return a.name?.localeCompare(b.name); + }); + this.setFilterFormValues(); + + if (this.hasPermissionToChangeFilters) { + this.filterForm.enable({ emitEvent: false }); + } + + this.changeDetectorRef.markForCheck(); + }); } public onApplyFilters() { @@ -499,22 +509,6 @@ export class GfAssistantComponent implements OnChanges, OnDestroy, OnInit { ); } - private initializeFilterForm() { - this.dataService - .fetchPortfolioHoldings() - .pipe(takeUntil(this.unsubscribeSubject)) - .subscribe(({ holdings }) => { - this.holdings = holdings - .filter(({ assetSubClass }) => { - return !['CASH'].includes(assetSubClass); - }) - .sort((a, b) => { - return a.name?.localeCompare(b.name); - }); - this.setFilterFormValues(); - }); - } - private setFilterFormValues() { const dataSource = this.user?.settings?.[ 'filters.dataSource' diff --git a/libs/ui/src/lib/assistant/assistant.html b/libs/ui/src/lib/assistant/assistant.html index 228c9cc5..33b4db3f 100644 --- a/libs/ui/src/lib/assistant/assistant.html +++ b/libs/ui/src/lib/assistant/assistant.html @@ -87,7 +87,7 @@

- + @if (!searchFormControl.value) {
Date Range @@ -197,6 +197,6 @@
- + }
From 0bd1a94a7b5cea07ee6c49da174ec7c568cf96f3 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Thu, 12 Dec 2024 19:18:38 +0100 Subject: [PATCH 18/63] Release 2.128.0 (#4120) --- CHANGELOG.md | 2 +- package-lock.json | 4 ++-- package.json | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b92efa0d..42f400bc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,7 +5,7 @@ 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 +## 2.128.0 - 2024-12-12 ### Changed diff --git a/package-lock.json b/package-lock.json index 11a3138f..3069b24a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "ghostfolio", - "version": "2.127.0", + "version": "2.128.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "ghostfolio", - "version": "2.127.0", + "version": "2.128.0", "hasInstallScript": true, "license": "AGPL-3.0", "dependencies": { diff --git a/package.json b/package.json index 135829b1..4feecab8 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ghostfolio", - "version": "2.127.0", + "version": "2.128.0", "homepage": "https://ghostfol.io", "license": "AGPL-3.0", "repository": "https://github.com/ghostfolio/ghostfolio", From 57659d2c04b7f8d9bf529ea2390c0e95a9c42201 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Fri, 13 Dec 2024 17:13:51 +0100 Subject: [PATCH 19/63] Feature/add missing public keywords (#4102) * Add public keyword --- .../create-or-update-access-dialog.component.ts | 2 +- apps/client/src/app/core/auth.guard.ts | 2 +- apps/client/src/app/pages/webauthn/webauthn-page.component.ts | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.component.ts b/apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.component.ts index 5bb6ca3e..72726371 100644 --- a/apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.component.ts +++ b/apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.component.ts @@ -38,7 +38,7 @@ export class CreateOrUpdateAccessDialog implements OnDestroy { private notificationService: NotificationService ) {} - ngOnInit() { + public ngOnInit() { this.accessForm = this.formBuilder.group({ alias: [this.data.access.alias], permissions: [this.data.access.permissions[0], Validators.required], diff --git a/apps/client/src/app/core/auth.guard.ts b/apps/client/src/app/core/auth.guard.ts index 548d3647..7a75728c 100644 --- a/apps/client/src/app/core/auth.guard.ts +++ b/apps/client/src/app/core/auth.guard.ts @@ -29,7 +29,7 @@ export class AuthGuard { `/${paths.resources}` ]; - constructor( + public constructor( private dataService: DataService, private router: Router, private settingsStorageService: SettingsStorageService, diff --git a/apps/client/src/app/pages/webauthn/webauthn-page.component.ts b/apps/client/src/app/pages/webauthn/webauthn-page.component.ts index 41860014..77a05325 100644 --- a/apps/client/src/app/pages/webauthn/webauthn-page.component.ts +++ b/apps/client/src/app/pages/webauthn/webauthn-page.component.ts @@ -22,7 +22,7 @@ export class GfWebauthnPageComponent implements OnDestroy, OnInit { private unsubscribeSubject = new Subject(); - constructor( + public constructor( private changeDetectorRef: ChangeDetectorRef, private router: Router, private tokenStorageService: TokenStorageService, From de6884184388c352450f102957e3340f679b3f3e Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Sat, 14 Dec 2024 10:43:35 +0100 Subject: [PATCH 20/63] Feature/add user id to symbol profile database schema (#4122) * Add userId to SymbolProfile database schema * Update changelog --- CHANGELOG.md | 6 ++++++ apps/api/src/app/import/import.service.ts | 10 ++++++---- apps/api/src/app/order/order.service.ts | 3 ++- .../migration.sql | 15 +++++++++++++++ prisma/schema.prisma | 17 ++++++++++------- 5 files changed, 39 insertions(+), 12 deletions(-) create mode 100644 prisma/migrations/20241214091912_added_user_to_symbol_profile/migration.sql diff --git a/CHANGELOG.md b/CHANGELOG.md index 42f400bc..9aebc76a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,12 @@ 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 + +### Added + +- Added `userId` to the `SymbolProfile` database schema + ## 2.128.0 - 2024-12-12 ### Changed diff --git a/apps/api/src/app/import/import.service.ts b/apps/api/src/app/import/import.service.ts index e51696b5..3b7290b4 100644 --- a/apps/api/src/app/import/import.service.ts +++ b/apps/api/src/app/import/import.service.ts @@ -224,7 +224,7 @@ export class ImportService { for (const activity of activitiesDto) { if (!activity.dataSource) { - if (activity.type === 'ITEM' || activity.type === 'LIABILITY') { + if (['FEE', 'INTEREST', 'ITEM', 'LIABILITY'].includes(activity.type)) { activity.dataSource = DataSource.MANUAL; } else { activity.dataSource = @@ -356,6 +356,7 @@ export class ImportService { quantity, type, unitPrice, + Account: validatedAccount, accountId: validatedAccount?.id, accountUserId: undefined, createdAt: new Date(), @@ -380,10 +381,10 @@ export class ImportService { symbolMapping, updatedAt, url, + comment: assetProfile.comment, currency: assetProfile.currency, - comment: assetProfile.comment + userId: dataSource === 'MANUAL' ? user.id : undefined }, - Account: validatedAccount, symbolProfileId: undefined, updatedAt: new Date(), userId: user.id @@ -406,7 +407,8 @@ export class ImportService { create: { dataSource, symbol, - currency: assetProfile.currency + currency: assetProfile.currency, + userId: dataSource === 'MANUAL' ? user.id : undefined }, where: { dataSource_symbol: { diff --git a/apps/api/src/app/order/order.service.ts b/apps/api/src/app/order/order.service.ts index 5613adc5..129f3d8a 100644 --- a/apps/api/src/app/order/order.service.ts +++ b/apps/api/src/app/order/order.service.ts @@ -93,7 +93,7 @@ export class OrderService { userId: string; } ): Promise { - let Account; + let Account: Prisma.AccountCreateNestedOneWithoutOrderInput; if (data.accountId) { Account = { @@ -124,6 +124,7 @@ export class OrderService { data.SymbolProfile.connectOrCreate.create.dataSource = dataSource; data.SymbolProfile.connectOrCreate.create.name = name; data.SymbolProfile.connectOrCreate.create.symbol = id; + data.SymbolProfile.connectOrCreate.create.userId = userId; data.SymbolProfile.connectOrCreate.where.dataSource_symbol = { dataSource, symbol: id diff --git a/prisma/migrations/20241214091912_added_user_to_symbol_profile/migration.sql b/prisma/migrations/20241214091912_added_user_to_symbol_profile/migration.sql new file mode 100644 index 00000000..cbacd405 --- /dev/null +++ b/prisma/migrations/20241214091912_added_user_to_symbol_profile/migration.sql @@ -0,0 +1,15 @@ +-- AlterTable +ALTER TABLE "SymbolProfile" ADD COLUMN "userId" TEXT; + +-- AddForeignKey +ALTER TABLE "SymbolProfile" ADD CONSTRAINT "SymbolProfile_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE; + +-- Set userIds in SymbolProfile for 'MANUAL' data source +UPDATE "SymbolProfile" +SET "userId" = ( + SELECT "userId" + FROM "Order" + WHERE "Order"."symbolProfileId" = "SymbolProfile"."id" + LIMIT 1 +) +WHERE "dataSource" = 'MANUAL'; diff --git a/prisma/schema.prisma b/prisma/schema.prisma index 7df28d69..af9aceba 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -188,8 +188,10 @@ model SymbolProfile { symbol String symbolMapping Json? url String? + userId String? Order Order[] SymbolProfileOverrides SymbolProfileOverrides? + User User? @relation(fields: [userId], onDelete: Cascade, references: [id]) @@unique([dataSource, symbol]) @@index([assetClass]) @@ -239,14 +241,14 @@ model Tag { model User { accessToken String? authChallenge String? - createdAt DateTime @default(now()) - id String @id @default(uuid()) - provider Provider @default(ANONYMOUS) - role Role @default(USER) + createdAt DateTime @default(now()) + id String @id @default(uuid()) + provider Provider @default(ANONYMOUS) + role Role @default(USER) thirdPartyId String? - updatedAt DateTime @updatedAt - Access Access[] @relation("accessGet") - AccessGive Access[] @relation("accessGive") + updatedAt DateTime @updatedAt + Access Access[] @relation("accessGet") + AccessGive Access[] @relation("accessGive") Account Account[] Analytics Analytics? ApiKey ApiKey[] @@ -254,6 +256,7 @@ model User { Order Order[] Settings Settings? Subscription Subscription[] + SymbolProfile SymbolProfile[] Tag Tag[] @@index([accessToken]) From 6ad9661d7faa542bbe6db0ac6cc018a96bf119b8 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Sat, 14 Dec 2024 11:19:15 +0100 Subject: [PATCH 21/63] Feature/improve language localization for de 20241214 (#4123) * Update translations * Update changelog --- CHANGELOG.md | 4 ++ .../src/app/portfolio/portfolio.controller.ts | 5 ++ apps/client/project.json | 2 +- .../portfolio/x-ray/x-ray-page.component.html | 4 +- apps/client/src/locales/messages.ca.xlf | 52 ++++++++++++------- apps/client/src/locales/messages.de.xlf | 52 ++++++++++++------- apps/client/src/locales/messages.es.xlf | 52 ++++++++++++------- apps/client/src/locales/messages.fr.xlf | 52 ++++++++++++------- apps/client/src/locales/messages.it.xlf | 52 ++++++++++++------- apps/client/src/locales/messages.nl.xlf | 52 ++++++++++++------- apps/client/src/locales/messages.pl.xlf | 52 ++++++++++++------- apps/client/src/locales/messages.pt.xlf | 52 ++++++++++++------- apps/client/src/locales/messages.tr.xlf | 52 ++++++++++++------- apps/client/src/locales/messages.xlf | 50 +++++++++++------- apps/client/src/locales/messages.zh.xlf | 52 ++++++++++++------- 15 files changed, 384 insertions(+), 201 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9aebc76a..349e6264 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Added `userId` to the `SymbolProfile` database schema +### Changed + +- Improved the language localization for German (`de`) + ## 2.128.0 - 2024-12-12 ### Changed diff --git a/apps/api/src/app/portfolio/portfolio.controller.ts b/apps/api/src/app/portfolio/portfolio.controller.ts index b15d2226..0e402296 100644 --- a/apps/api/src/app/portfolio/portfolio.controller.ts +++ b/apps/api/src/app/portfolio/portfolio.controller.ts @@ -623,6 +623,11 @@ export class PortfolioController { report.rules[rule] = []; } } + + report.statistics = { + rulesActiveCount: 0, + rulesFulfilledCount: 0 + }; } return report; diff --git a/apps/client/project.json b/apps/client/project.json index dd644f8c..7fd28d5c 100644 --- a/apps/client/project.json +++ b/apps/client/project.json @@ -212,7 +212,7 @@ "extract-i18n": { "executor": "ng-extract-i18n-merge:ng-extract-i18n-merge", "options": { - "browserTarget": "client:build", + "buildTarget": "client:build", "includeContext": true, "outputPath": "src/locales", "targetFiles": [ diff --git a/apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html b/apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html index 7a0a3512..37d9c89c 100644 --- a/apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html +++ b/apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html @@ -19,9 +19,9 @@ /> } @else { {{ statistics?.rulesFulfilledCount }} - of + out of {{ statistics?.rulesActiveCount }} - rules are currently fulfilled. + rules align with your portfolio. }

diff --git a/apps/client/src/locales/messages.ca.xlf b/apps/client/src/locales/messages.ca.xlf index d32f8c1e..6d9fe62e 100644 --- a/apps/client/src/locales/messages.ca.xlf +++ b/apps/client/src/locales/messages.ca.xlf @@ -2619,7 +2619,7 @@ apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 88 + 105 @@ -2991,7 +2991,7 @@ apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 12 + 29 @@ -3207,7 +3207,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 223 + 221 @@ -3219,7 +3219,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 233 + 231 @@ -3231,7 +3231,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 237 + 235 @@ -3243,7 +3243,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 259 + 257 @@ -3255,7 +3255,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 262 + 260 @@ -5255,7 +5255,7 @@ Currency Cluster Risks apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 31 + 48 @@ -5263,7 +5263,7 @@ Account Cluster Risks apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 50 + 67 @@ -6059,7 +6059,7 @@ Week to date libs/ui/src/lib/assistant/assistant.component.ts - 225 + 223 @@ -6067,7 +6067,7 @@ WTD libs/ui/src/lib/assistant/assistant.component.ts - 225 + 223 @@ -6075,7 +6075,7 @@ Month to date libs/ui/src/lib/assistant/assistant.component.ts - 229 + 227 @@ -6083,7 +6083,7 @@ MTD libs/ui/src/lib/assistant/assistant.component.ts - 229 + 227 @@ -6091,7 +6091,7 @@ Year to date libs/ui/src/lib/assistant/assistant.component.ts - 233 + 231 @@ -6099,7 +6099,7 @@ year libs/ui/src/lib/assistant/assistant.component.ts - 237 + 235 @@ -6107,7 +6107,7 @@ years libs/ui/src/lib/assistant/assistant.component.ts - 259 + 257 @@ -7047,7 +7047,7 @@ Inactive apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 107 + 124 @@ -7457,7 +7457,7 @@ Economic Market Cluster Risks apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 69 + 86 @@ -7584,6 +7584,22 @@ 26 + + out of + out of + + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 22 + + + + rules align with your portfolio. + rules align with your portfolio. + + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 24 + + diff --git a/apps/client/src/locales/messages.de.xlf b/apps/client/src/locales/messages.de.xlf index 89745376..b4b8857a 100644 --- a/apps/client/src/locales/messages.de.xlf +++ b/apps/client/src/locales/messages.de.xlf @@ -1254,7 +1254,7 @@ apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 12 + 29 @@ -1422,7 +1422,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 223 + 221 @@ -1434,7 +1434,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 233 + 231 @@ -1446,7 +1446,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 237 + 235 @@ -1458,7 +1458,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 259 + 257 @@ -1470,7 +1470,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 262 + 260 @@ -3766,7 +3766,7 @@ apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 88 + 105 @@ -5907,7 +5907,7 @@ Währungsklumpenrisiken apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 31 + 48 @@ -5915,7 +5915,7 @@ Kontoklumpenrisiken apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 50 + 67 @@ -6375,7 +6375,7 @@ Seit Wochenbeginn libs/ui/src/lib/assistant/assistant.component.ts - 225 + 223 @@ -6383,7 +6383,7 @@ WTD libs/ui/src/lib/assistant/assistant.component.ts - 225 + 223 @@ -6391,7 +6391,7 @@ Seit Monatsbeginn libs/ui/src/lib/assistant/assistant.component.ts - 229 + 227 @@ -6399,7 +6399,7 @@ MTD libs/ui/src/lib/assistant/assistant.component.ts - 229 + 227 @@ -6407,7 +6407,7 @@ Seit Jahresbeginn libs/ui/src/lib/assistant/assistant.component.ts - 233 + 231 @@ -6451,7 +6451,7 @@ Jahr libs/ui/src/lib/assistant/assistant.component.ts - 237 + 235 @@ -6459,7 +6459,7 @@ Jahre libs/ui/src/lib/assistant/assistant.component.ts - 259 + 257 @@ -7047,7 +7047,7 @@ Inaktiv apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 107 + 124 @@ -7457,7 +7457,7 @@ Wirtschaftsraumklumpenrisiken apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 69 + 86 @@ -7584,6 +7584,22 @@ 26 + + out of + von + + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 22 + + + + rules align with your portfolio. + Regeln werden von Ihrem Portfolio erfüllt. + + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 24 + + diff --git a/apps/client/src/locales/messages.es.xlf b/apps/client/src/locales/messages.es.xlf index b2dcc61c..d52ea047 100644 --- a/apps/client/src/locales/messages.es.xlf +++ b/apps/client/src/locales/messages.es.xlf @@ -1255,7 +1255,7 @@ apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 12 + 29 @@ -1423,7 +1423,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 223 + 221 @@ -1435,7 +1435,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 233 + 231 @@ -1447,7 +1447,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 237 + 235 @@ -1459,7 +1459,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 259 + 257 @@ -1471,7 +1471,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 262 + 260 @@ -3767,7 +3767,7 @@ apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 88 + 105 @@ -5908,7 +5908,7 @@ Currency Cluster Risks apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 31 + 48 @@ -5916,7 +5916,7 @@ Account Cluster Risks apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 50 + 67 @@ -6376,7 +6376,7 @@ Week to date libs/ui/src/lib/assistant/assistant.component.ts - 225 + 223 @@ -6384,7 +6384,7 @@ WTD libs/ui/src/lib/assistant/assistant.component.ts - 225 + 223 @@ -6392,7 +6392,7 @@ Month to date libs/ui/src/lib/assistant/assistant.component.ts - 229 + 227 @@ -6400,7 +6400,7 @@ MTD libs/ui/src/lib/assistant/assistant.component.ts - 229 + 227 @@ -6408,7 +6408,7 @@ Year to date libs/ui/src/lib/assistant/assistant.component.ts - 233 + 231 @@ -6452,7 +6452,7 @@ año libs/ui/src/lib/assistant/assistant.component.ts - 237 + 235 @@ -6460,7 +6460,7 @@ años libs/ui/src/lib/assistant/assistant.component.ts - 259 + 257 @@ -7048,7 +7048,7 @@ Inactive apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 107 + 124 @@ -7458,7 +7458,7 @@ Economic Market Cluster Risks apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 69 + 86 @@ -7585,6 +7585,22 @@ 26 + + out of + out of + + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 22 + + + + rules align with your portfolio. + rules align with your portfolio. + + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 24 + + diff --git a/apps/client/src/locales/messages.fr.xlf b/apps/client/src/locales/messages.fr.xlf index fd29241b..84ec59dd 100644 --- a/apps/client/src/locales/messages.fr.xlf +++ b/apps/client/src/locales/messages.fr.xlf @@ -1602,7 +1602,7 @@ apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 12 + 29 @@ -1734,7 +1734,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 223 + 221 @@ -1746,7 +1746,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 233 + 231 @@ -1758,7 +1758,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 237 + 235 @@ -1770,7 +1770,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 259 + 257 @@ -1782,7 +1782,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 262 + 260 @@ -3766,7 +3766,7 @@ apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 88 + 105 @@ -5907,7 +5907,7 @@ Risques de change apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 31 + 48 @@ -5915,7 +5915,7 @@ Risques liés aux regroupements de comptes apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 50 + 67 @@ -6375,7 +6375,7 @@ Week to date libs/ui/src/lib/assistant/assistant.component.ts - 225 + 223 @@ -6383,7 +6383,7 @@ WTD libs/ui/src/lib/assistant/assistant.component.ts - 225 + 223 @@ -6391,7 +6391,7 @@ Month to date libs/ui/src/lib/assistant/assistant.component.ts - 229 + 227 @@ -6399,7 +6399,7 @@ MTD libs/ui/src/lib/assistant/assistant.component.ts - 229 + 227 @@ -6407,7 +6407,7 @@ Year to date libs/ui/src/lib/assistant/assistant.component.ts - 233 + 231 @@ -6451,7 +6451,7 @@ année libs/ui/src/lib/assistant/assistant.component.ts - 237 + 235 @@ -6459,7 +6459,7 @@ années libs/ui/src/lib/assistant/assistant.component.ts - 259 + 257 @@ -7047,7 +7047,7 @@ Inactif apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 107 + 124 @@ -7457,7 +7457,7 @@ Economic Market Cluster Risks apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 69 + 86 @@ -7584,6 +7584,22 @@ 26 + + out of + out of + + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 22 + + + + rules align with your portfolio. + rules align with your portfolio. + + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 24 + + diff --git a/apps/client/src/locales/messages.it.xlf b/apps/client/src/locales/messages.it.xlf index 00eb4227..9a9e8b06 100644 --- a/apps/client/src/locales/messages.it.xlf +++ b/apps/client/src/locales/messages.it.xlf @@ -1255,7 +1255,7 @@ apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 12 + 29 @@ -1423,7 +1423,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 223 + 221 @@ -1435,7 +1435,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 233 + 231 @@ -1447,7 +1447,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 237 + 235 @@ -1459,7 +1459,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 259 + 257 @@ -1471,7 +1471,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 262 + 260 @@ -3767,7 +3767,7 @@ apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 88 + 105 @@ -5908,7 +5908,7 @@ Rischio di Concentrazione Valutario apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 31 + 48 @@ -5916,7 +5916,7 @@ Rischi di Concentrazione dei Conti apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 50 + 67 @@ -6376,7 +6376,7 @@ Da inizio settimana libs/ui/src/lib/assistant/assistant.component.ts - 225 + 223 @@ -6384,7 +6384,7 @@ Settimana corrente libs/ui/src/lib/assistant/assistant.component.ts - 225 + 223 @@ -6392,7 +6392,7 @@ Da inizio mese libs/ui/src/lib/assistant/assistant.component.ts - 229 + 227 @@ -6400,7 +6400,7 @@ Mese corrente libs/ui/src/lib/assistant/assistant.component.ts - 229 + 227 @@ -6408,7 +6408,7 @@ Da inizio anno libs/ui/src/lib/assistant/assistant.component.ts - 233 + 231 @@ -6452,7 +6452,7 @@ anno libs/ui/src/lib/assistant/assistant.component.ts - 237 + 235 @@ -6460,7 +6460,7 @@ anni libs/ui/src/lib/assistant/assistant.component.ts - 259 + 257 @@ -7048,7 +7048,7 @@ Inattivo apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 107 + 124 @@ -7458,7 +7458,7 @@ Economic Market Cluster Risks apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 69 + 86 @@ -7585,6 +7585,22 @@ 26 + + out of + out of + + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 22 + + + + rules align with your portfolio. + rules align with your portfolio. + + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 24 + + diff --git a/apps/client/src/locales/messages.nl.xlf b/apps/client/src/locales/messages.nl.xlf index a2c287c2..3af261de 100644 --- a/apps/client/src/locales/messages.nl.xlf +++ b/apps/client/src/locales/messages.nl.xlf @@ -1254,7 +1254,7 @@ apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 12 + 29 @@ -1422,7 +1422,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 223 + 221 @@ -1434,7 +1434,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 233 + 231 @@ -1446,7 +1446,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 237 + 235 @@ -1458,7 +1458,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 259 + 257 @@ -1470,7 +1470,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 262 + 260 @@ -3766,7 +3766,7 @@ apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 88 + 105 @@ -5907,7 +5907,7 @@ Currency Cluster Risks apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 31 + 48 @@ -5915,7 +5915,7 @@ Account Cluster Risks apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 50 + 67 @@ -6375,7 +6375,7 @@ Week to date libs/ui/src/lib/assistant/assistant.component.ts - 225 + 223 @@ -6383,7 +6383,7 @@ WTD libs/ui/src/lib/assistant/assistant.component.ts - 225 + 223 @@ -6391,7 +6391,7 @@ Month to date libs/ui/src/lib/assistant/assistant.component.ts - 229 + 227 @@ -6399,7 +6399,7 @@ MTD libs/ui/src/lib/assistant/assistant.component.ts - 229 + 227 @@ -6407,7 +6407,7 @@ Year to date libs/ui/src/lib/assistant/assistant.component.ts - 233 + 231 @@ -6451,7 +6451,7 @@ year libs/ui/src/lib/assistant/assistant.component.ts - 237 + 235 @@ -6459,7 +6459,7 @@ years libs/ui/src/lib/assistant/assistant.component.ts - 259 + 257 @@ -7047,7 +7047,7 @@ Inactive apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 107 + 124 @@ -7457,7 +7457,7 @@ Economic Market Cluster Risks apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 69 + 86 @@ -7584,6 +7584,22 @@ 26 + + out of + out of + + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 22 + + + + rules align with your portfolio. + rules align with your portfolio. + + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 24 + + diff --git a/apps/client/src/locales/messages.pl.xlf b/apps/client/src/locales/messages.pl.xlf index c5439f69..12a51af3 100644 --- a/apps/client/src/locales/messages.pl.xlf +++ b/apps/client/src/locales/messages.pl.xlf @@ -2595,7 +2595,7 @@ apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 88 + 105 @@ -2643,7 +2643,7 @@ apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 12 + 29 @@ -2959,7 +2959,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 223 + 221 @@ -2971,7 +2971,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 233 + 231 @@ -2983,7 +2983,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 237 + 235 @@ -2995,7 +2995,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 259 + 257 @@ -3007,7 +3007,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 262 + 260 @@ -4783,7 +4783,7 @@ Currency Cluster Risks apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 31 + 48 @@ -4791,7 +4791,7 @@ Account Cluster Risks apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 50 + 67 @@ -6375,7 +6375,7 @@ Week to date libs/ui/src/lib/assistant/assistant.component.ts - 225 + 223 @@ -6383,7 +6383,7 @@ WTD libs/ui/src/lib/assistant/assistant.component.ts - 225 + 223 @@ -6391,7 +6391,7 @@ Month to date libs/ui/src/lib/assistant/assistant.component.ts - 229 + 227 @@ -6399,7 +6399,7 @@ MTD libs/ui/src/lib/assistant/assistant.component.ts - 229 + 227 @@ -6407,7 +6407,7 @@ Year to date libs/ui/src/lib/assistant/assistant.component.ts - 233 + 231 @@ -6451,7 +6451,7 @@ year libs/ui/src/lib/assistant/assistant.component.ts - 237 + 235 @@ -6459,7 +6459,7 @@ years libs/ui/src/lib/assistant/assistant.component.ts - 259 + 257 @@ -7047,7 +7047,7 @@ Nieaktywny apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 107 + 124 @@ -7457,7 +7457,7 @@ Economic Market Cluster Risks apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 69 + 86 @@ -7584,6 +7584,22 @@ 26 + + out of + out of + + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 22 + + + + rules align with your portfolio. + rules align with your portfolio. + + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 24 + + diff --git a/apps/client/src/locales/messages.pt.xlf b/apps/client/src/locales/messages.pt.xlf index e472770f..7d2d5e3c 100644 --- a/apps/client/src/locales/messages.pt.xlf +++ b/apps/client/src/locales/messages.pt.xlf @@ -1478,7 +1478,7 @@ apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 12 + 29 @@ -1718,7 +1718,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 223 + 221 @@ -1730,7 +1730,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 233 + 231 @@ -1742,7 +1742,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 237 + 235 @@ -1754,7 +1754,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 259 + 257 @@ -1766,7 +1766,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 262 + 260 @@ -3766,7 +3766,7 @@ apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 88 + 105 @@ -5907,7 +5907,7 @@ Currency Cluster Risks apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 31 + 48 @@ -5915,7 +5915,7 @@ Account Cluster Risks apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 50 + 67 @@ -6375,7 +6375,7 @@ Week to date libs/ui/src/lib/assistant/assistant.component.ts - 225 + 223 @@ -6383,7 +6383,7 @@ WTD libs/ui/src/lib/assistant/assistant.component.ts - 225 + 223 @@ -6391,7 +6391,7 @@ Month to date libs/ui/src/lib/assistant/assistant.component.ts - 229 + 227 @@ -6399,7 +6399,7 @@ MTD libs/ui/src/lib/assistant/assistant.component.ts - 229 + 227 @@ -6407,7 +6407,7 @@ Year to date libs/ui/src/lib/assistant/assistant.component.ts - 233 + 231 @@ -6451,7 +6451,7 @@ year libs/ui/src/lib/assistant/assistant.component.ts - 237 + 235 @@ -6459,7 +6459,7 @@ years libs/ui/src/lib/assistant/assistant.component.ts - 259 + 257 @@ -7047,7 +7047,7 @@ Inactive apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 107 + 124 @@ -7457,7 +7457,7 @@ Economic Market Cluster Risks apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 69 + 86 @@ -7584,6 +7584,22 @@ 26 + + out of + out of + + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 22 + + + + rules align with your portfolio. + rules align with your portfolio. + + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 24 + + diff --git a/apps/client/src/locales/messages.tr.xlf b/apps/client/src/locales/messages.tr.xlf index 355488ea..7752f133 100644 --- a/apps/client/src/locales/messages.tr.xlf +++ b/apps/client/src/locales/messages.tr.xlf @@ -2479,7 +2479,7 @@ apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 12 + 29 @@ -2635,7 +2635,7 @@ apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 88 + 105 @@ -2803,7 +2803,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 223 + 221 @@ -2815,7 +2815,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 233 + 231 @@ -2827,7 +2827,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 237 + 235 @@ -2839,7 +2839,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 259 + 257 @@ -2851,7 +2851,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 262 + 260 @@ -5907,7 +5907,7 @@ Kur Kümelenme Riskleri (Currency Cluster Risks) apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 31 + 48 @@ -5915,7 +5915,7 @@ Hesap Kümelenme Riski (Account Cluster Risks) apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 50 + 67 @@ -6375,7 +6375,7 @@ Week to date libs/ui/src/lib/assistant/assistant.component.ts - 225 + 223 @@ -6383,7 +6383,7 @@ WTD libs/ui/src/lib/assistant/assistant.component.ts - 225 + 223 @@ -6391,7 +6391,7 @@ Month to date libs/ui/src/lib/assistant/assistant.component.ts - 229 + 227 @@ -6399,7 +6399,7 @@ MTD libs/ui/src/lib/assistant/assistant.component.ts - 229 + 227 @@ -6407,7 +6407,7 @@ Year to date libs/ui/src/lib/assistant/assistant.component.ts - 233 + 231 @@ -6451,7 +6451,7 @@ year libs/ui/src/lib/assistant/assistant.component.ts - 237 + 235 @@ -6459,7 +6459,7 @@ years libs/ui/src/lib/assistant/assistant.component.ts - 259 + 257 @@ -7047,7 +7047,7 @@ Inactive apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 107 + 124 @@ -7457,7 +7457,7 @@ Economic Market Cluster Risks apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 69 + 86 @@ -7584,6 +7584,22 @@ 26 + + out of + out of + + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 22 + + + + rules align with your portfolio. + rules align with your portfolio. + + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 24 + + diff --git a/apps/client/src/locales/messages.xlf b/apps/client/src/locales/messages.xlf index 0e1c16eb..5f15aafd 100644 --- a/apps/client/src/locales/messages.xlf +++ b/apps/client/src/locales/messages.xlf @@ -2436,7 +2436,7 @@ apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 88 + 105 @@ -2479,7 +2479,7 @@ apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 12 + 29 @@ -2767,7 +2767,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 223 + 221 @@ -2778,7 +2778,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 233 + 231 @@ -2789,7 +2789,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 237 + 235 @@ -2800,7 +2800,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 259 + 257 @@ -2811,7 +2811,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 262 + 260 @@ -4395,14 +4395,14 @@ Currency Cluster Risks apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 31 + 48 Account Cluster Risks apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 50 + 67 @@ -5800,35 +5800,35 @@ Year to date libs/ui/src/lib/assistant/assistant.component.ts - 233 + 231 Week to date libs/ui/src/lib/assistant/assistant.component.ts - 225 + 223 Month to date libs/ui/src/lib/assistant/assistant.component.ts - 229 + 227 MTD libs/ui/src/lib/assistant/assistant.component.ts - 229 + 227 WTD libs/ui/src/lib/assistant/assistant.component.ts - 225 + 223 @@ -5867,14 +5867,14 @@ year libs/ui/src/lib/assistant/assistant.component.ts - 237 + 235 years libs/ui/src/lib/assistant/assistant.component.ts - 259 + 257 @@ -6390,7 +6390,7 @@ Inactive apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 107 + 124 @@ -6744,7 +6744,7 @@ Economic Market Cluster Risks apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 69 + 86 @@ -6863,6 +6863,20 @@ 153 + + rules align with your portfolio. + + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 24 + + + + out of + + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 22 + + diff --git a/apps/client/src/locales/messages.zh.xlf b/apps/client/src/locales/messages.zh.xlf index 31c897c5..f33c6342 100644 --- a/apps/client/src/locales/messages.zh.xlf +++ b/apps/client/src/locales/messages.zh.xlf @@ -2612,7 +2612,7 @@ apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 88 + 105 @@ -2660,7 +2660,7 @@ apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 12 + 29 @@ -2976,7 +2976,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 223 + 221 @@ -2988,7 +2988,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 233 + 231 @@ -3000,7 +3000,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 237 + 235 @@ -3012,7 +3012,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 259 + 257 @@ -3024,7 +3024,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 262 + 260 @@ -4800,7 +4800,7 @@ 货币集群风险 apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 31 + 48 @@ -4808,7 +4808,7 @@ 账户集群风险 apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 50 + 67 @@ -6376,7 +6376,7 @@ 今年迄今为止 libs/ui/src/lib/assistant/assistant.component.ts - 233 + 231 @@ -6384,7 +6384,7 @@ 本周至今 libs/ui/src/lib/assistant/assistant.component.ts - 225 + 223 @@ -6392,7 +6392,7 @@ 本月至今 libs/ui/src/lib/assistant/assistant.component.ts - 229 + 227 @@ -6400,7 +6400,7 @@ 最大输运量 libs/ui/src/lib/assistant/assistant.component.ts - 229 + 227 @@ -6408,7 +6408,7 @@ 世界贸易组织 libs/ui/src/lib/assistant/assistant.component.ts - 225 + 223 @@ -6452,7 +6452,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 237 + 235 @@ -6460,7 +6460,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 259 + 257 @@ -7048,7 +7048,7 @@ Inactive apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 107 + 124 @@ -7458,7 +7458,7 @@ Economic Market Cluster Risks apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 69 + 86 @@ -7585,6 +7585,22 @@ 26 + + out of + out of + + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 22 + + + + rules align with your portfolio. + rules align with your portfolio. + + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 24 + + From 943ff2f0dcd2c84360537992ad59ba421846d6e7 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Sat, 14 Dec 2024 11:37:39 +0100 Subject: [PATCH 22/63] Feature/improve usability of X-ray page by hiding empty rule categories (#4108) * Hide empty rule categories * Update changelog --- CHANGELOG.md | 1 + .../src/app/portfolio/portfolio.controller.ts | 4 +-- .../portfolio/x-ray/x-ray-page.component.html | 35 ++++++++++++++++--- .../portfolio/x-ray/x-ray-page.component.ts | 2 +- 4 files changed, 33 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 349e6264..449b610f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed +- Improved the usability of the _X-ray_ page by hiding empty rule categories - Improved the language localization for German (`de`) ## 2.128.0 - 2024-12-12 diff --git a/apps/api/src/app/portfolio/portfolio.controller.ts b/apps/api/src/app/portfolio/portfolio.controller.ts index 0e402296..797d0449 100644 --- a/apps/api/src/app/portfolio/portfolio.controller.ts +++ b/apps/api/src/app/portfolio/portfolio.controller.ts @@ -619,9 +619,7 @@ export class PortfolioController { this.request.user.subscription.type === 'Basic' ) { for (const rule in report.rules) { - if (report.rules[rule]) { - report.rules[rule] = []; - } + report.rules[rule] = null; } report.statistics = { diff --git a/apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html b/apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html index 37d9c89c..4af225c4 100644 --- a/apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html +++ b/apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html @@ -24,7 +24,12 @@ rules align with your portfolio. }

-
+

Emergency Fund @if (user?.subscription?.type === 'Basic') { @@ -43,7 +48,12 @@ (rulesUpdated)="onRulesUpdated($event)" />

-
+

Currency Cluster Risks @if (user?.subscription?.type === 'Basic') { @@ -62,7 +72,12 @@ (rulesUpdated)="onRulesUpdated($event)" />

-
+

Account Cluster Risks @if (user?.subscription?.type === 'Basic') { @@ -81,7 +96,12 @@ (rulesUpdated)="onRulesUpdated($event)" />

-
+

Economic Market Cluster Risks @if (user?.subscription?.type === 'Basic') { @@ -100,7 +120,12 @@ (rulesUpdated)="onRulesUpdated($event)" />

-
+

Fees @if (user?.subscription?.type === 'Basic') { diff --git a/apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.ts b/apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.ts index 86bc3773..9bfe30fb 100644 --- a/apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.ts +++ b/apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.ts @@ -134,7 +134,7 @@ export class XRayPageComponent { let inactiveRules: PortfolioReportRule[] = []; for (const category in rules) { - const rulesArray = rules[category]; + const rulesArray = rules[category] || []; inactiveRules = inactiveRules.concat( rulesArray.filter(({ isActive }) => { From a776ea8864aaea7cacb4c243e01ad72dba485738 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Sat, 14 Dec 2024 11:40:17 +0100 Subject: [PATCH 23/63] Release 2.129.0 (#4124) --- CHANGELOG.md | 2 +- package-lock.json | 4 ++-- package.json | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 449b610f..6dbe1cac 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,7 +5,7 @@ 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 +## 2.129.0 - 2024-12-14 ### Added diff --git a/package-lock.json b/package-lock.json index 3069b24a..6352c17d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "ghostfolio", - "version": "2.128.0", + "version": "2.129.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "ghostfolio", - "version": "2.128.0", + "version": "2.129.0", "hasInstallScript": true, "license": "AGPL-3.0", "dependencies": { diff --git a/package.json b/package.json index 4feecab8..d0ab4f28 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ghostfolio", - "version": "2.128.0", + "version": "2.129.0", "homepage": "https://ghostfol.io", "license": "AGPL-3.0", "repository": "https://github.com/ghostfolio/ghostfolio", From c3bd433ac9ae6676dcebae37993aae632580e82c Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Sun, 15 Dec 2024 20:18:42 +0100 Subject: [PATCH 24/63] Feature/move market data management from admin to dedicated endpoint (#4125) * Move market data management from admin to dedicated endpoint * Update changelog --- CHANGELOG.md | 6 + apps/api/src/app/admin/admin.controller.ts | 6 + apps/api/src/app/app.module.ts | 2 + .../market-data/market-data.controller.ts | 136 ++++++++++++++++++ .../market-data/market-data.module.ts | 13 ++ .../update-bulk-market-data.dto.ts | 24 ++++ .../asset-profile-dialog.component.ts | 4 +- apps/client/src/app/services/admin.service.ts | 39 +---- apps/client/src/app/services/data.service.ts | 39 ++++- .../enhanced-symbol-profile.interface.ts | 1 + libs/common/src/lib/interfaces/index.ts | 2 + .../market-data-details-response.interface.ts | 8 ++ libs/common/src/lib/permissions.ts | 15 ++ ...cal-market-data-editor-dialog.component.ts | 4 +- ...historical-market-data-editor.component.ts | 6 +- 15 files changed, 260 insertions(+), 45 deletions(-) create mode 100644 apps/api/src/app/endpoints/market-data/market-data.controller.ts create mode 100644 apps/api/src/app/endpoints/market-data/market-data.module.ts create mode 100644 apps/api/src/app/endpoints/market-data/update-bulk-market-data.dto.ts create mode 100644 libs/common/src/lib/interfaces/responses/market-data-details-response.interface.ts diff --git a/CHANGELOG.md b/CHANGELOG.md index 6dbe1cac..44fd0c3a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,12 @@ 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 + +- Extracted the market data management from the admin control panel endpoint to a dedicated endpoint + ## 2.129.0 - 2024-12-14 ### Added diff --git a/apps/api/src/app/admin/admin.controller.ts b/apps/api/src/app/admin/admin.controller.ts index 4cc4d467..a761bbba 100644 --- a/apps/api/src/app/admin/admin.controller.ts +++ b/apps/api/src/app/admin/admin.controller.ts @@ -214,6 +214,9 @@ export class AdminController { }); } + /** + * @deprecated + */ @Get('market-data/:dataSource/:symbol') @HasPermission(permissions.accessAdminControl) @UseGuards(AuthGuard('jwt'), HasPermissionGuard) @@ -250,6 +253,9 @@ export class AdminController { } } + /** + * @deprecated + */ @HasPermission(permissions.accessAdminControl) @Post('market-data/:dataSource/:symbol') @UseGuards(AuthGuard('jwt'), HasPermissionGuard) diff --git a/apps/api/src/app/app.module.ts b/apps/api/src/app/app.module.ts index b1a24023..7ac2c591 100644 --- a/apps/api/src/app/app.module.ts +++ b/apps/api/src/app/app.module.ts @@ -33,6 +33,7 @@ import { BenchmarkModule } from './benchmark/benchmark.module'; import { CacheModule } from './cache/cache.module'; import { ApiKeysModule } from './endpoints/api-keys/api-keys.module'; import { GhostfolioModule } from './endpoints/data-providers/ghostfolio/ghostfolio.module'; +import { MarketDataModule } from './endpoints/market-data/market-data.module'; import { PublicModule } from './endpoints/public/public.module'; import { ExchangeRateModule } from './exchange-rate/exchange-rate.module'; import { ExportModule } from './export/export.module'; @@ -84,6 +85,7 @@ import { UserModule } from './user/user.module'; ImportModule, InfoModule, LogoModule, + MarketDataModule, OrderModule, PlatformModule, PortfolioModule, diff --git a/apps/api/src/app/endpoints/market-data/market-data.controller.ts b/apps/api/src/app/endpoints/market-data/market-data.controller.ts new file mode 100644 index 00000000..b4aef807 --- /dev/null +++ b/apps/api/src/app/endpoints/market-data/market-data.controller.ts @@ -0,0 +1,136 @@ +import { AdminService } from '@ghostfolio/api/app/admin/admin.service'; +import { MarketDataService } from '@ghostfolio/api/services/market-data/market-data.service'; +import { SymbolProfileService } from '@ghostfolio/api/services/symbol-profile/symbol-profile.service'; +import { MarketDataDetailsResponse } from '@ghostfolio/common/interfaces'; +import { hasPermission, permissions } from '@ghostfolio/common/permissions'; +import { RequestWithUser } from '@ghostfolio/common/types'; + +import { + Body, + Controller, + Get, + HttpException, + Inject, + Param, + Post, + UseGuards +} from '@nestjs/common'; +import { REQUEST } from '@nestjs/core'; +import { AuthGuard } from '@nestjs/passport'; +import { DataSource, Prisma } from '@prisma/client'; +import { parseISO } from 'date-fns'; +import { getReasonPhrase, StatusCodes } from 'http-status-codes'; + +import { UpdateBulkMarketDataDto } from './update-bulk-market-data.dto'; + +@Controller('market-data') +export class MarketDataController { + public constructor( + private readonly adminService: AdminService, + private readonly marketDataService: MarketDataService, + @Inject(REQUEST) private readonly request: RequestWithUser, + private readonly symbolProfileService: SymbolProfileService + ) {} + + @Get(':dataSource/:symbol') + @UseGuards(AuthGuard('jwt')) + public async getMarketDataBySymbol( + @Param('dataSource') dataSource: DataSource, + @Param('symbol') symbol: string + ): Promise { + const [assetProfile] = await this.symbolProfileService.getSymbolProfiles([ + { dataSource, symbol } + ]); + + if (!assetProfile) { + throw new HttpException( + getReasonPhrase(StatusCodes.NOT_FOUND), + StatusCodes.NOT_FOUND + ); + } + + const canReadAllAssetProfiles = hasPermission( + this.request.user.permissions, + permissions.readMarketData + ); + + const canReadOwnAssetProfile = + assetProfile.userId === this.request.user.id && + hasPermission( + this.request.user.permissions, + permissions.readMarketDataOfOwnAssetProfile + ); + + if (!canReadAllAssetProfiles && !canReadOwnAssetProfile) { + throw new HttpException( + assetProfile.userId + ? getReasonPhrase(StatusCodes.NOT_FOUND) + : getReasonPhrase(StatusCodes.FORBIDDEN), + assetProfile.userId ? StatusCodes.NOT_FOUND : StatusCodes.FORBIDDEN + ); + } + + return this.adminService.getMarketDataBySymbol({ dataSource, symbol }); + } + + @Post(':dataSource/:symbol') + @UseGuards(AuthGuard('jwt')) + public async updateMarketData( + @Body() data: UpdateBulkMarketDataDto, + @Param('dataSource') dataSource: DataSource, + @Param('symbol') symbol: string + ) { + const [assetProfile] = await this.symbolProfileService.getSymbolProfiles([ + { dataSource, symbol } + ]); + + if (!assetProfile) { + throw new HttpException( + getReasonPhrase(StatusCodes.NOT_FOUND), + StatusCodes.NOT_FOUND + ); + } + + const canUpsertAllAssetProfiles = + hasPermission( + this.request.user.permissions, + permissions.createMarketData + ) && + hasPermission( + this.request.user.permissions, + permissions.updateMarketData + ); + + const canUpsertOwnAssetProfile = + assetProfile.userId === this.request.user.id && + hasPermission( + this.request.user.permissions, + permissions.createMarketDataOfOwnAssetProfile + ) && + hasPermission( + this.request.user.permissions, + permissions.updateMarketDataOfOwnAssetProfile + ); + + if (!canUpsertAllAssetProfiles && !canUpsertOwnAssetProfile) { + throw new HttpException( + getReasonPhrase(StatusCodes.FORBIDDEN), + StatusCodes.FORBIDDEN + ); + } + + const dataBulkUpdate: Prisma.MarketDataUpdateInput[] = data.marketData.map( + ({ date, marketPrice }) => ({ + dataSource, + marketPrice, + symbol, + date: parseISO(date), + state: 'CLOSE' + }) + ); + + return this.marketDataService.updateMany({ + data: dataBulkUpdate + }); + } +} diff --git a/apps/api/src/app/endpoints/market-data/market-data.module.ts b/apps/api/src/app/endpoints/market-data/market-data.module.ts new file mode 100644 index 00000000..2050889f --- /dev/null +++ b/apps/api/src/app/endpoints/market-data/market-data.module.ts @@ -0,0 +1,13 @@ +import { AdminModule } from '@ghostfolio/api/app/admin/admin.module'; +import { MarketDataModule as MarketDataServiceModule } from '@ghostfolio/api/services/market-data/market-data.module'; +import { SymbolProfileModule } from '@ghostfolio/api/services/symbol-profile/symbol-profile.module'; + +import { Module } from '@nestjs/common'; + +import { MarketDataController } from './market-data.controller'; + +@Module({ + controllers: [MarketDataController], + imports: [AdminModule, MarketDataServiceModule, SymbolProfileModule] +}) +export class MarketDataModule {} diff --git a/apps/api/src/app/endpoints/market-data/update-bulk-market-data.dto.ts b/apps/api/src/app/endpoints/market-data/update-bulk-market-data.dto.ts new file mode 100644 index 00000000..d07b189b --- /dev/null +++ b/apps/api/src/app/endpoints/market-data/update-bulk-market-data.dto.ts @@ -0,0 +1,24 @@ +import { Type } from 'class-transformer'; +import { + ArrayNotEmpty, + IsArray, + IsISO8601, + IsNumber, + IsOptional +} from 'class-validator'; + +export class UpdateBulkMarketDataDto { + @ArrayNotEmpty() + @IsArray() + @Type(() => UpdateMarketDataDto) + marketData: UpdateMarketDataDto[]; +} + +class UpdateMarketDataDto { + @IsISO8601() + @IsOptional() + date?: string; + + @IsNumber() + marketPrice: number; +} diff --git a/apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts b/apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts index 4fdc2298..a271915f 100644 --- a/apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts +++ b/apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts @@ -121,8 +121,8 @@ export class AssetProfileDialog implements OnDestroy, OnInit { } }); - this.adminService - .fetchAdminMarketDataBySymbol({ + this.dataService + .fetchMarketDataBySymbol({ dataSource: this.data.dataSource, symbol: this.data.symbol }) diff --git a/apps/client/src/app/services/admin.service.ts b/apps/client/src/app/services/admin.service.ts index 77d135f5..ec0605be 100644 --- a/apps/client/src/app/services/admin.service.ts +++ b/apps/client/src/app/services/admin.service.ts @@ -1,5 +1,4 @@ import { UpdateAssetProfileDto } from '@ghostfolio/api/app/admin/update-asset-profile.dto'; -import { UpdateBulkMarketDataDto } from '@ghostfolio/api/app/admin/update-bulk-market-data.dto'; import { CreatePlatformDto } from '@ghostfolio/api/app/platform/create-platform.dto'; import { UpdatePlatformDto } from '@ghostfolio/api/app/platform/update-platform.dto'; import { CreateTagDto } from '@ghostfolio/api/app/tag/create-tag.dto'; @@ -17,7 +16,6 @@ import { AdminData, AdminJobs, AdminMarketData, - AdminMarketDataDetails, AdminUsers, DataProviderGhostfolioStatusResponse, EnhancedSymbolProfile, @@ -29,8 +27,8 @@ import { Injectable } from '@angular/core'; import { SortDirection } from '@angular/material/sort'; import { DataSource, MarketData, Platform, Tag } from '@prisma/client'; import { JobStatus } from 'bull'; -import { format, parseISO } from 'date-fns'; -import { Observable, map, switchMap } from 'rxjs'; +import { format } from 'date-fns'; +import { switchMap } from 'rxjs'; import { environment } from '../../environments/environment'; import { DataService } from './data.service'; @@ -125,25 +123,6 @@ export class AdminService { }); } - public fetchAdminMarketDataBySymbol({ - dataSource, - symbol - }: { - dataSource: DataSource; - symbol: string; - }): Observable { - return this.http - .get(`/api/v1/admin/market-data/${dataSource}/${symbol}`) - .pipe( - map((data) => { - for (const item of data.marketData) { - item.date = parseISO(item.date); - } - return data; - }) - ); - } - public fetchGhostfolioDataProviderStatus() { return this.fetchAdminData().pipe( switchMap(({ settings }) => { @@ -278,20 +257,6 @@ export class AdminService { ); } - public postMarketData({ - dataSource, - marketData, - symbol - }: { - dataSource: DataSource; - marketData: UpdateBulkMarketDataDto; - symbol: string; - }) { - const url = `/api/v1/admin/market-data/${dataSource}/${symbol}`; - - return this.http.post(url, marketData); - } - public postPlatform(aPlatform: CreatePlatformDto) { return this.http.post(`/api/v1/platform`, aPlatform); } diff --git a/apps/client/src/app/services/data.service.ts b/apps/client/src/app/services/data.service.ts index eef258a5..269a03e3 100644 --- a/apps/client/src/app/services/data.service.ts +++ b/apps/client/src/app/services/data.service.ts @@ -3,6 +3,7 @@ import { CreateAccountBalanceDto } from '@ghostfolio/api/app/account-balance/cre import { CreateAccountDto } from '@ghostfolio/api/app/account/create-account.dto'; import { TransferBalanceDto } from '@ghostfolio/api/app/account/transfer-balance.dto'; import { UpdateAccountDto } from '@ghostfolio/api/app/account/update-account.dto'; +import { UpdateBulkMarketDataDto } from '@ghostfolio/api/app/admin/update-bulk-market-data.dto'; import { CreateOrderDto } from '@ghostfolio/api/app/order/create-order.dto'; import { Activities, @@ -21,7 +22,6 @@ import { Access, AccountBalancesResponse, Accounts, - AdminMarketDataDetails, ApiKeyResponse, AssetProfileIdentifier, BenchmarkMarketDataDetails, @@ -31,6 +31,7 @@ import { ImportResponse, InfoItem, LookupResponse, + MarketDataDetailsResponse, OAuthResponse, PortfolioDetails, PortfolioDividends, @@ -51,6 +52,7 @@ import { SortDirection } from '@angular/material/sort'; import { AccountBalance, DataSource, + MarketData, Order as OrderModel, Tag } from '@prisma/client'; @@ -316,7 +318,7 @@ export class DataService { public fetchAsset({ dataSource, symbol - }: AssetProfileIdentifier): Observable { + }: AssetProfileIdentifier): Observable { return this.http.get(`/api/v1/asset/${dataSource}/${symbol}`).pipe( map((data) => { for (const item of data.marketData) { @@ -431,6 +433,25 @@ export class DataService { ); } + public fetchMarketDataBySymbol({ + dataSource, + symbol + }: { + dataSource: DataSource; + symbol: string; + }): Observable { + return this.http + .get(`/api/v1/market-data/${dataSource}/${symbol}`) + .pipe( + map((data) => { + for (const item of data.marketData) { + item.date = parseISO(item.date); + } + return data; + }) + ); + } + public fetchSymbolItem({ dataSource, includeHistoricalData, @@ -665,6 +686,20 @@ export class DataService { return this.http.post('/api/v1/benchmark', benchmark); } + public postMarketData({ + dataSource, + marketData, + symbol + }: { + dataSource: DataSource; + marketData: UpdateBulkMarketDataDto; + symbol: string; + }) { + const url = `/api/v1/market-data/${dataSource}/${symbol}`; + + return this.http.post(url, marketData); + } + public postOrder(aOrder: CreateOrderDto) { return this.http.post('/api/v1/order', aOrder); } diff --git a/libs/common/src/lib/interfaces/enhanced-symbol-profile.interface.ts b/libs/common/src/lib/interfaces/enhanced-symbol-profile.interface.ts index e7fc4c5b..ce585c6a 100644 --- a/libs/common/src/lib/interfaces/enhanced-symbol-profile.interface.ts +++ b/libs/common/src/lib/interfaces/enhanced-symbol-profile.interface.ts @@ -30,4 +30,5 @@ export interface EnhancedSymbolProfile { symbolMapping?: { [key: string]: string }; updatedAt: Date; url?: string; + userId?: string; } diff --git a/libs/common/src/lib/interfaces/index.ts b/libs/common/src/lib/interfaces/index.ts index ed8fd4f2..fa5eb25a 100644 --- a/libs/common/src/lib/interfaces/index.ts +++ b/libs/common/src/lib/interfaces/index.ts @@ -46,6 +46,7 @@ import type { ResponseError } from './responses/errors.interface'; import type { HistoricalResponse } from './responses/historical-response.interface'; import type { ImportResponse } from './responses/import-response.interface'; import type { LookupResponse } from './responses/lookup-response.interface'; +import type { MarketDataDetailsResponse } from './responses/market-data-details-response.interface'; import type { OAuthResponse } from './responses/oauth-response.interface'; import type { PortfolioHoldingsResponse } from './responses/portfolio-holdings-response.interface'; import type { PortfolioPerformanceResponse } from './responses/portfolio-performance-response.interface'; @@ -97,6 +98,7 @@ export { LineChartItem, LookupItem, LookupResponse, + MarketDataDetailsResponse, OAuthResponse, PortfolioChart, PortfolioDetails, diff --git a/libs/common/src/lib/interfaces/responses/market-data-details-response.interface.ts b/libs/common/src/lib/interfaces/responses/market-data-details-response.interface.ts new file mode 100644 index 00000000..bbf94730 --- /dev/null +++ b/libs/common/src/lib/interfaces/responses/market-data-details-response.interface.ts @@ -0,0 +1,8 @@ +import { MarketData } from '@prisma/client'; + +import { EnhancedSymbolProfile } from '../enhanced-symbol-profile.interface'; + +export interface MarketDataDetailsResponse { + assetProfile: Partial; + marketData: MarketData[]; +} diff --git a/libs/common/src/lib/permissions.ts b/libs/common/src/lib/permissions.ts index cfee1c9e..d6676ec4 100644 --- a/libs/common/src/lib/permissions.ts +++ b/libs/common/src/lib/permissions.ts @@ -10,6 +10,8 @@ export const permissions = { createAccount: 'createAccount', createAccountBalance: 'createAccountBalance', createApiKey: 'createApiKey', + createMarketData: 'createMarketData', + createMarketDataOfOwnAssetProfile: 'createMarketDataOfOwnAssetProfile', createOrder: 'createOrder', createPlatform: 'createPlatform', createTag: 'createTag', @@ -33,12 +35,16 @@ export const permissions = { enableSubscriptionInterstitial: 'enableSubscriptionInterstitial', enableSystemMessage: 'enableSystemMessage', impersonateAllUsers: 'impersonateAllUsers', + readMarketData: 'readMarketData', + readMarketDataOfOwnAssetProfile: 'readMarketDataOfOwnAssetProfile', readPlatforms: 'readPlatforms', readTags: 'readTags', reportDataGlitch: 'reportDataGlitch', toggleReadOnlyMode: 'toggleReadOnlyMode', updateAccount: 'updateAccount', updateAuthDevice: 'updateAuthDevice', + updateMarketData: 'updateMarketData', + updateMarketDataOfOwnAssetProfile: 'updateMarketDataOfOwnAssetProfile', updateOrder: 'updateOrder', updatePlatform: 'updatePlatform', updateTag: 'updateTag', @@ -57,6 +63,8 @@ export function getPermissions(aRole: Role): string[] { permissions.createAccount, permissions.createAccountBalance, permissions.deleteAccountBalance, + permissions.createMarketData, + permissions.createMarketDataOfOwnAssetProfile, permissions.createOrder, permissions.createPlatform, permissions.createTag, @@ -68,10 +76,14 @@ export function getPermissions(aRole: Role): string[] { permissions.deletePlatform, permissions.deleteTag, permissions.deleteUser, + permissions.readMarketData, + permissions.readMarketDataOfOwnAssetProfile, permissions.readPlatforms, permissions.readTags, permissions.updateAccount, permissions.updateAuthDevice, + permissions.updateMarketData, + permissions.updateMarketDataOfOwnAssetProfile, permissions.updateOrder, permissions.updatePlatform, permissions.updateTag, @@ -93,6 +105,7 @@ export function getPermissions(aRole: Role): string[] { permissions.createAccess, permissions.createAccount, permissions.createAccountBalance, + permissions.createMarketDataOfOwnAssetProfile, permissions.createOrder, permissions.deleteAccess, permissions.deleteAccount, @@ -100,8 +113,10 @@ export function getPermissions(aRole: Role): string[] { permissions.deleteAuthDevice, permissions.deleteOrder, permissions.deleteOwnUser, + permissions.readMarketDataOfOwnAssetProfile, permissions.updateAccount, permissions.updateAuthDevice, + permissions.updateMarketDataOfOwnAssetProfile, permissions.updateOrder, permissions.updateUserSettings, permissions.updateViewMode diff --git a/libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.component.ts b/libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.component.ts index 434266e1..69105ac9 100644 --- a/libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.component.ts +++ b/libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.component.ts @@ -1,4 +1,5 @@ import { AdminService } from '@ghostfolio/client/services/admin.service'; +import { DataService } from '@ghostfolio/client/services/data.service'; import { CommonModule } from '@angular/common'; import { @@ -51,6 +52,7 @@ export class GfHistoricalMarketDataEditorDialogComponent implements OnDestroy { private changeDetectorRef: ChangeDetectorRef, @Inject(MAT_DIALOG_DATA) public data: HistoricalMarketDataEditorDialogParams, + private dataService: DataService, private dateAdapter: DateAdapter, public dialogRef: MatDialogRef, @Inject(MAT_DATE_LOCALE) private locale: string @@ -81,7 +83,7 @@ export class GfHistoricalMarketDataEditorDialogComponent implements OnDestroy { } public onUpdate() { - this.adminService + this.dataService .postMarketData({ dataSource: this.data.dataSource, marketData: { diff --git a/libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.ts b/libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.ts index 0fce7862..c9725e3e 100644 --- a/libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.ts +++ b/libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.ts @@ -1,5 +1,5 @@ import { UpdateMarketDataDto } from '@ghostfolio/api/app/admin/update-market-data.dto'; -import { AdminService } from '@ghostfolio/client/services/admin.service'; +import { DataService } from '@ghostfolio/client/services/data.service'; import { DATE_FORMAT, getDateFormatString, @@ -90,7 +90,7 @@ export class GfHistoricalMarketDataEditorComponent private unsubscribeSubject = new Subject(); public constructor( - private adminService: AdminService, + private dataService: DataService, private deviceService: DeviceDetectorService, private dialog: MatDialog, private formBuilder: FormBuilder, @@ -236,7 +236,7 @@ export class GfHistoricalMarketDataEditorComponent } ).data as UpdateMarketDataDto[]; - this.adminService + this.dataService .postMarketData({ dataSource: this.dataSource, marketData: { From 6ee61213172a90b4afaa85c91538902b3b8481f6 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Tue, 17 Dec 2024 20:33:57 +0100 Subject: [PATCH 25/63] Feature/set up asset class cluster risk x-ray rule (#4128) * Set up Asset Class Cluster Risk rule (equity) * Set up Asset Class Cluster Risk rule (fixed income) * Update changelog --- CHANGELOG.md | 5 + .../src/app/portfolio/portfolio.service.ts | 32 +++++-- apps/api/src/app/user/user.service.ts | 30 ++++-- .../rules/asset-class-cluster-risk/equity.ts | 95 +++++++++++++++++++ .../asset-class-cluster-risk/fixed-income.ts | 95 +++++++++++++++++++ .../base-currency-current-investment.ts | 17 ++-- .../portfolio/x-ray/x-ray-page.component.html | 24 +++++ .../portfolio/x-ray/x-ray-page.component.ts | 6 ++ .../x-ray-rules-settings.interface.ts | 2 + 9 files changed, 282 insertions(+), 24 deletions(-) create mode 100644 apps/api/src/models/rules/asset-class-cluster-risk/equity.ts create mode 100644 apps/api/src/models/rules/asset-class-cluster-risk/fixed-income.ts diff --git a/CHANGELOG.md b/CHANGELOG.md index 44fd0c3a..35c78e95 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## Unreleased +### Added + +- Added a new static portfolio analysis rule: _Asset Class Cluster Risk_ (Equity) +- Added a new static portfolio analysis rule: _Asset Class Cluster Risk_ (Fixed Income) + ### Changed - Extracted the market data management from the admin control panel endpoint to a dedicated endpoint diff --git a/apps/api/src/app/portfolio/portfolio.service.ts b/apps/api/src/app/portfolio/portfolio.service.ts index 8ead98a5..400b0c3a 100644 --- a/apps/api/src/app/portfolio/portfolio.service.ts +++ b/apps/api/src/app/portfolio/portfolio.service.ts @@ -7,6 +7,8 @@ import { UserService } from '@ghostfolio/api/app/user/user.service'; import { getFactor } from '@ghostfolio/api/helper/portfolio.helper'; import { AccountClusterRiskCurrentInvestment } from '@ghostfolio/api/models/rules/account-cluster-risk/current-investment'; import { AccountClusterRiskSingleAccount } from '@ghostfolio/api/models/rules/account-cluster-risk/single-account'; +import { AssetClassClusterRiskEquity } from '@ghostfolio/api/models/rules/asset-class-cluster-risk/equity'; +import { AssetClassClusterRiskFixedIncome } from '@ghostfolio/api/models/rules/asset-class-cluster-risk/fixed-income'; import { CurrencyClusterRiskBaseCurrencyCurrentInvestment } from '@ghostfolio/api/models/rules/currency-cluster-risk/base-currency-current-investment'; import { CurrencyClusterRiskCurrentInvestment } from '@ghostfolio/api/models/rules/currency-cluster-risk/current-investment'; import { EconomicMarketClusterRiskDevelopedMarkets } from '@ghostfolio/api/models/rules/economic-market-cluster-risk/developed-markets'; @@ -1198,19 +1200,17 @@ export class PortfolioService { userSettings ) : undefined, - economicMarketClusterRisk: + assetClassClusterRisk: summary.ordersCount > 0 ? await this.rulesService.evaluate( [ - new EconomicMarketClusterRiskDevelopedMarkets( + new AssetClassClusterRiskEquity( this.exchangeRateDataService, - marketsTotalInBaseCurrency, - markets.developedMarkets.valueInBaseCurrency + Object.values(holdings) ), - new EconomicMarketClusterRiskEmergingMarkets( + new AssetClassClusterRiskFixedIncome( this.exchangeRateDataService, - marketsTotalInBaseCurrency, - markets.emergingMarkets.valueInBaseCurrency + Object.values(holdings) ) ], userSettings @@ -1232,6 +1232,24 @@ export class PortfolioService { userSettings ) : undefined, + economicMarketClusterRisk: + summary.ordersCount > 0 + ? await this.rulesService.evaluate( + [ + new EconomicMarketClusterRiskDevelopedMarkets( + this.exchangeRateDataService, + marketsTotalInBaseCurrency, + markets.developedMarkets.valueInBaseCurrency + ), + new EconomicMarketClusterRiskEmergingMarkets( + this.exchangeRateDataService, + marketsTotalInBaseCurrency, + markets.emergingMarkets.valueInBaseCurrency + ) + ], + userSettings + ) + : undefined, emergencyFund: await this.rulesService.evaluate( [ new EmergencyFundSetup( diff --git a/apps/api/src/app/user/user.service.ts b/apps/api/src/app/user/user.service.ts index 6676a00b..bac6ed19 100644 --- a/apps/api/src/app/user/user.service.ts +++ b/apps/api/src/app/user/user.service.ts @@ -5,6 +5,8 @@ import { PortfolioChangedEvent } from '@ghostfolio/api/events/portfolio-changed. import { getRandomString } from '@ghostfolio/api/helper/string.helper'; import { AccountClusterRiskCurrentInvestment } from '@ghostfolio/api/models/rules/account-cluster-risk/current-investment'; import { AccountClusterRiskSingleAccount } from '@ghostfolio/api/models/rules/account-cluster-risk/single-account'; +import { AssetClassClusterRiskEquity } from '@ghostfolio/api/models/rules/asset-class-cluster-risk/equity'; +import { AssetClassClusterRiskFixedIncome } from '@ghostfolio/api/models/rules/asset-class-cluster-risk/fixed-income'; import { CurrencyClusterRiskBaseCurrencyCurrentInvestment } from '@ghostfolio/api/models/rules/currency-cluster-risk/base-currency-current-investment'; import { CurrencyClusterRiskCurrentInvestment } from '@ghostfolio/api/models/rules/currency-cluster-risk/current-investment'; import { EconomicMarketClusterRiskDevelopedMarkets } from '@ghostfolio/api/models/rules/economic-market-cluster-risk/developed-markets'; @@ -226,6 +228,24 @@ export class UserService { undefined, {} ).getSettings(user.Settings.settings), + AssetClassClusterRiskEquity: new AssetClassClusterRiskEquity( + undefined, + undefined + ).getSettings(user.Settings.settings), + AssetClassClusterRiskFixedIncome: new AssetClassClusterRiskFixedIncome( + undefined, + undefined + ).getSettings(user.Settings.settings), + CurrencyClusterRiskBaseCurrencyCurrentInvestment: + new CurrencyClusterRiskBaseCurrencyCurrentInvestment( + undefined, + undefined + ).getSettings(user.Settings.settings), + CurrencyClusterRiskCurrentInvestment: + new CurrencyClusterRiskCurrentInvestment( + undefined, + undefined + ).getSettings(user.Settings.settings), EconomicMarketClusterRiskDevelopedMarkets: new EconomicMarketClusterRiskDevelopedMarkets( undefined, @@ -238,16 +258,6 @@ export class UserService { undefined, undefined ).getSettings(user.Settings.settings), - CurrencyClusterRiskBaseCurrencyCurrentInvestment: - new CurrencyClusterRiskBaseCurrencyCurrentInvestment( - undefined, - undefined - ).getSettings(user.Settings.settings), - CurrencyClusterRiskCurrentInvestment: - new CurrencyClusterRiskCurrentInvestment( - undefined, - undefined - ).getSettings(user.Settings.settings), EmergencyFundSetup: new EmergencyFundSetup( undefined, undefined diff --git a/apps/api/src/models/rules/asset-class-cluster-risk/equity.ts b/apps/api/src/models/rules/asset-class-cluster-risk/equity.ts new file mode 100644 index 00000000..b67e01e6 --- /dev/null +++ b/apps/api/src/models/rules/asset-class-cluster-risk/equity.ts @@ -0,0 +1,95 @@ +import { RuleSettings } from '@ghostfolio/api/models/interfaces/rule-settings.interface'; +import { Rule } from '@ghostfolio/api/models/rule'; +import { ExchangeRateDataService } from '@ghostfolio/api/services/exchange-rate-data/exchange-rate-data.service'; +import { PortfolioPosition, UserSettings } from '@ghostfolio/common/interfaces'; + +export class AssetClassClusterRiskEquity extends Rule { + private holdings: PortfolioPosition[]; + + public constructor( + protected exchangeRateDataService: ExchangeRateDataService, + holdings: PortfolioPosition[] + ) { + super(exchangeRateDataService, { + key: AssetClassClusterRiskEquity.name, + name: 'Equity' + }); + + this.holdings = holdings; + } + + public evaluate(ruleSettings: Settings) { + const holdingsGroupedByAssetClass = this.groupCurrentHoldingsByAttribute( + this.holdings, + 'assetClass', + ruleSettings.baseCurrency + ); + let totalValue = 0; + + const equityValueInBaseCurrency = + holdingsGroupedByAssetClass.find(({ groupKey }) => { + return groupKey === 'EQUITY'; + })?.value ?? 0; + + for (const { value } of holdingsGroupedByAssetClass) { + totalValue += value; + } + + const equityValueRatio = totalValue + ? equityValueInBaseCurrency / totalValue + : 0; + + if (equityValueRatio > ruleSettings.thresholdMax) { + return { + evaluation: `The equity contribution of your current investment (${(equityValueRatio * 100).toPrecision(3)}%) exceeds ${( + ruleSettings.thresholdMax * 100 + ).toPrecision(3)}%`, + value: false + }; + } else if (equityValueRatio < ruleSettings.thresholdMin) { + return { + evaluation: `The equity contribution of your current investment (${(equityValueRatio * 100).toPrecision(3)}%) is below ${( + ruleSettings.thresholdMin * 100 + ).toPrecision(3)}%`, + value: false + }; + } + + return { + evaluation: `The equity contribution of your current investment (${(equityValueRatio * 100).toPrecision(3)}%) is within the range of ${( + ruleSettings.thresholdMin * 100 + ).toPrecision( + 3 + )}% and ${(ruleSettings.thresholdMax * 100).toPrecision(3)}%`, + value: true + }; + } + + public getConfiguration() { + return { + threshold: { + max: 1, + min: 0, + step: 0.01, + unit: '%' + }, + thresholdMax: true, + thresholdMin: true + }; + } + + public getSettings({ baseCurrency, xRayRules }: UserSettings): Settings { + return { + baseCurrency, + isActive: xRayRules?.[this.getKey()]?.isActive ?? true, + thresholdMax: xRayRules?.[this.getKey()]?.thresholdMax ?? 0.82, + thresholdMin: xRayRules?.[this.getKey()]?.thresholdMin ?? 0.78 + }; + } +} + +interface Settings extends RuleSettings { + baseCurrency: string; + thresholdMin: number; + thresholdMax: number; +} diff --git a/apps/api/src/models/rules/asset-class-cluster-risk/fixed-income.ts b/apps/api/src/models/rules/asset-class-cluster-risk/fixed-income.ts new file mode 100644 index 00000000..eb744a14 --- /dev/null +++ b/apps/api/src/models/rules/asset-class-cluster-risk/fixed-income.ts @@ -0,0 +1,95 @@ +import { RuleSettings } from '@ghostfolio/api/models/interfaces/rule-settings.interface'; +import { Rule } from '@ghostfolio/api/models/rule'; +import { ExchangeRateDataService } from '@ghostfolio/api/services/exchange-rate-data/exchange-rate-data.service'; +import { PortfolioPosition, UserSettings } from '@ghostfolio/common/interfaces'; + +export class AssetClassClusterRiskFixedIncome extends Rule { + private holdings: PortfolioPosition[]; + + public constructor( + protected exchangeRateDataService: ExchangeRateDataService, + holdings: PortfolioPosition[] + ) { + super(exchangeRateDataService, { + key: AssetClassClusterRiskFixedIncome.name, + name: 'Fixed Income' + }); + + this.holdings = holdings; + } + + public evaluate(ruleSettings: Settings) { + const holdingsGroupedByAssetClass = this.groupCurrentHoldingsByAttribute( + this.holdings, + 'assetClass', + ruleSettings.baseCurrency + ); + let totalValue = 0; + + const fixedIncomeValueInBaseCurrency = + holdingsGroupedByAssetClass.find(({ groupKey }) => { + return groupKey === 'FIXED_INCOME'; + })?.value ?? 0; + + for (const { value } of holdingsGroupedByAssetClass) { + totalValue += value; + } + + const fixedIncomeValueRatio = totalValue + ? fixedIncomeValueInBaseCurrency / totalValue + : 0; + + if (fixedIncomeValueRatio > ruleSettings.thresholdMax) { + return { + evaluation: `The fixed income contribution of your current investment (${(fixedIncomeValueRatio * 100).toPrecision(3)}%) exceeds ${( + ruleSettings.thresholdMax * 100 + ).toPrecision(3)}%`, + value: false + }; + } else if (fixedIncomeValueRatio < ruleSettings.thresholdMin) { + return { + evaluation: `The fixed income contribution of your current investment (${(fixedIncomeValueRatio * 100).toPrecision(3)}%) is below ${( + ruleSettings.thresholdMin * 100 + ).toPrecision(3)}%`, + value: false + }; + } + + return { + evaluation: `The fixed income contribution of your current investment (${(fixedIncomeValueRatio * 100).toPrecision(3)}%) is within the range of ${( + ruleSettings.thresholdMin * 100 + ).toPrecision( + 3 + )}% and ${(ruleSettings.thresholdMax * 100).toPrecision(3)}%`, + value: true + }; + } + + public getConfiguration() { + return { + threshold: { + max: 1, + min: 0, + step: 0.01, + unit: '%' + }, + thresholdMax: true, + thresholdMin: true + }; + } + + public getSettings({ baseCurrency, xRayRules }: UserSettings): Settings { + return { + baseCurrency, + isActive: xRayRules?.[this.getKey()]?.isActive ?? true, + thresholdMax: xRayRules?.[this.getKey()]?.thresholdMax ?? 0.22, + thresholdMin: xRayRules?.[this.getKey()]?.thresholdMin ?? 0.18 + }; + } +} + +interface Settings extends RuleSettings { + baseCurrency: string; + thresholdMin: number; + thresholdMax: number; +} diff --git a/apps/api/src/models/rules/currency-cluster-risk/base-currency-current-investment.ts b/apps/api/src/models/rules/currency-cluster-risk/base-currency-current-investment.ts index 57379579..90ee29c5 100644 --- a/apps/api/src/models/rules/currency-cluster-risk/base-currency-current-investment.ts +++ b/apps/api/src/models/rules/currency-cluster-risk/base-currency-current-investment.ts @@ -28,7 +28,12 @@ export class CurrencyClusterRiskBaseCurrencyCurrentInvestment extends Rule { + const baseCurrencyValue = + holdingsGroupedByCurrency.find(({ groupKey }) => { + return groupKey === ruleSettings.baseCurrency; + })?.value ?? 0; + + for (const groupItem of holdingsGroupedByCurrency) { // Calculate total value totalValue += groupItem.value; @@ -36,13 +41,11 @@ export class CurrencyClusterRiskBaseCurrencyCurrentInvestment extends Rule maxItem.investment) { maxItem = groupItem; } - }); + } - const baseCurrencyItem = holdingsGroupedByCurrency.find((item) => { - return item.groupKey === ruleSettings.baseCurrency; - }); - - const baseCurrencyValueRatio = baseCurrencyItem?.value / totalValue || 0; + const baseCurrencyValueRatio = totalValue + ? baseCurrencyValue / totalValue + : 0; if (maxItem?.groupKey !== ruleSettings.baseCurrency) { return { diff --git a/apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html b/apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html index 4af225c4..ceba5f52 100644 --- a/apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html +++ b/apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html @@ -72,6 +72,30 @@ (rulesUpdated)="onRulesUpdated($event)" />

+
+

+ Asset Class Cluster Risks + @if (user?.subscription?.type === 'Basic') { + + } +

+ +
Date: Thu, 19 Dec 2024 14:39:36 -0500 Subject: [PATCH 27/63] Feature/set up a notification service for prompt dialogs (#4117) * Set up a notification service for prompt dialogs * Update changelog --- CHANGELOG.md | 2 + .../portfolio-summary.component.ts | 20 ++++---- .../notification/interfaces/interfaces.ts | 9 ++++ .../core/notification/notification.service.ts | 37 ++++++++++++++- .../prompt-dialog/prompt-dialog.component.ts | 46 +++++++++++++++++++ .../prompt-dialog/prompt-dialog.html | 21 +++++++++ 6 files changed, 126 insertions(+), 9 deletions(-) create mode 100644 apps/client/src/app/core/notification/prompt-dialog/prompt-dialog.component.ts create mode 100644 apps/client/src/app/core/notification/prompt-dialog/prompt-dialog.html diff --git a/CHANGELOG.md b/CHANGELOG.md index 87e5b50d..d4aaf157 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,9 +11,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Added a new static portfolio analysis rule: _Asset Class Cluster Risk_ (Equity) - Added a new static portfolio analysis rule: _Asset Class Cluster Risk_ (Fixed Income) +- Set up a notification service for prompt dialogs ### Changed +- Improved the usability to edit the emergency fund - Extracted the market data management from the admin control panel endpoint to a dedicated endpoint - Upgraded `big.js` from version `6.2.1` to `6.2.2` diff --git a/apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts b/apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts index cac21c06..3189a338 100644 --- a/apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts +++ b/apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts @@ -1,3 +1,4 @@ +import { NotificationService } from '@ghostfolio/client/core/notification/notification.service'; import { getDateFnsLocale, getLocale } from '@ghostfolio/common/helper'; import { PortfolioSummary, User } from '@ghostfolio/common/interfaces'; import { translate } from '@ghostfolio/ui/i18n'; @@ -34,6 +35,8 @@ export class PortfolioSummaryComponent implements OnChanges { ); public timeInMarket: string; + public constructor(private notificationService: NotificationService) {} + public ngOnChanges() { if (this.summary) { if (this.summary.firstOrderDate) { @@ -49,14 +52,15 @@ export class PortfolioSummaryComponent implements OnChanges { } public onEditEmergencyFund() { - const emergencyFundInput = prompt( - $localize`Please enter the amount of your emergency fund:`, - this.summary.emergencyFund?.total?.toString() ?? '0' - ); - const emergencyFund = parseFloat(emergencyFundInput?.trim()); + this.notificationService.prompt({ + confirmFn: (value) => { + const emergencyFund = parseFloat(value.trim()) || 0; - if (emergencyFund >= 0) { - this.emergencyFundChanged.emit(emergencyFund); - } + this.emergencyFundChanged.emit(emergencyFund); + }, + confirmLabel: $localize`Save`, + defaultValue: this.summary.emergencyFund?.total?.toString() ?? '0', + title: $localize`Please set the amount of your emergency fund.` + }); } } diff --git a/apps/client/src/app/core/notification/interfaces/interfaces.ts b/apps/client/src/app/core/notification/interfaces/interfaces.ts index f5a526c9..f3546d45 100644 --- a/apps/client/src/app/core/notification/interfaces/interfaces.ts +++ b/apps/client/src/app/core/notification/interfaces/interfaces.ts @@ -17,3 +17,12 @@ export interface IConfirmParams { message?: string; title: string; } + +export interface IPromptParams { + confirmFn: (value: string) => void; + confirmLabel?: string; + defaultValue?: string; + discardLabel?: string; + title: string; + valueLabel?: string; +} diff --git a/apps/client/src/app/core/notification/notification.service.ts b/apps/client/src/app/core/notification/notification.service.ts index 189da67f..1b58db64 100644 --- a/apps/client/src/app/core/notification/notification.service.ts +++ b/apps/client/src/app/core/notification/notification.service.ts @@ -7,7 +7,12 @@ import { isFunction } from 'lodash'; import { GfAlertDialogComponent } from './alert-dialog/alert-dialog.component'; import { GfConfirmationDialogComponent } from './confirmation-dialog/confirmation-dialog.component'; import { ConfirmationDialogType } from './confirmation-dialog/confirmation-dialog.type'; -import { IAlertParams, IConfirmParams } from './interfaces/interfaces'; +import { + IAlertParams, + IConfirmParams, + IPromptParams +} from './interfaces/interfaces'; +import { GfPromptDialogComponent } from './prompt-dialog/prompt-dialog.component'; @Injectable() export class NotificationService { @@ -73,6 +78,36 @@ export class NotificationService { }); } + public prompt(aParams: IPromptParams) { + if (!aParams.confirmLabel) { + aParams.confirmLabel = translate('OK'); + } + + if (!aParams.discardLabel) { + aParams.discardLabel = translate('CANCEL'); + } + + const dialog = this.matDialog.open(GfPromptDialogComponent, { + autoFocus: true, + maxWidth: this.dialogMaxWidth, + width: this.dialogWidth + }); + + dialog.componentInstance.initialize({ + confirmLabel: aParams.confirmLabel, + defaultValue: aParams.defaultValue, + discardLabel: aParams.discardLabel, + title: aParams.title, + valueLabel: aParams.valueLabel + }); + + return dialog.afterClosed().subscribe((result: string) => { + if (result !== 'discard' && isFunction(aParams.confirmFn)) { + aParams.confirmFn(result); + } + }); + } + public setDialogMaxWidth(aDialogMaxWidth: string) { this.dialogMaxWidth = aDialogMaxWidth; } diff --git a/apps/client/src/app/core/notification/prompt-dialog/prompt-dialog.component.ts b/apps/client/src/app/core/notification/prompt-dialog/prompt-dialog.component.ts new file mode 100644 index 00000000..4f0c3600 --- /dev/null +++ b/apps/client/src/app/core/notification/prompt-dialog/prompt-dialog.component.ts @@ -0,0 +1,46 @@ +import { CommonModule } from '@angular/common'; +import { Component } from '@angular/core'; +import { FormsModule } from '@angular/forms'; +import { MatButtonModule } from '@angular/material/button'; +import { MatDialogModule, MatDialogRef } from '@angular/material/dialog'; +import { MatFormFieldModule } from '@angular/material/form-field'; +import { MatInputModule } from '@angular/material/input'; + +@Component({ + imports: [ + CommonModule, + FormsModule, + MatButtonModule, + MatDialogModule, + MatFormFieldModule, + MatInputModule + ], + selector: 'gf-prompt-dialog', + standalone: true, + templateUrl: './prompt-dialog.html' +}) +export class GfPromptDialogComponent { + public confirmLabel: string; + public defaultValue: string; + public discardLabel: string; + public title: string; + public value: string; + public valueLabel: string; + + public constructor(public dialogRef: MatDialogRef) {} + + public initialize(aParams: { + confirmLabel?: string; + defaultValue?: string; + discardLabel?: string; + title: string; + valueLabel?: string; + }) { + this.confirmLabel = aParams.confirmLabel; + this.defaultValue = aParams.defaultValue; + this.discardLabel = aParams.discardLabel; + this.title = aParams.title; + this.value = aParams.defaultValue; + this.valueLabel = aParams.valueLabel; + } +} diff --git a/apps/client/src/app/core/notification/prompt-dialog/prompt-dialog.html b/apps/client/src/app/core/notification/prompt-dialog/prompt-dialog.html new file mode 100644 index 00000000..5568cfda --- /dev/null +++ b/apps/client/src/app/core/notification/prompt-dialog/prompt-dialog.html @@ -0,0 +1,21 @@ +@if (title) { +
+} + +
+ + @if (valueLabel) { + {{ valueLabel }} + } + + +
+ +
+ + +
From 7fadbd79eabb7f5e02e027099ee13764601170aa Mon Sep 17 00:00:00 2001 From: Paulina Kalicka <71526180+paulinek13@users.noreply.github.com> Date: Sat, 21 Dec 2024 09:07:26 +0100 Subject: [PATCH 28/63] Feature/improve language localization for pl (#4132) * Improve language localization for Polish * Update changelog --- CHANGELOG.md | 1 + apps/client/src/locales/messages.pl.xlf | 232 ++++++++++++------------ 2 files changed, 117 insertions(+), 116 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d4aaf157..358a1453 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,6 +17,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Improved the usability to edit the emergency fund - Extracted the market data management from the admin control panel endpoint to a dedicated endpoint +- Improved the language localization for Polish (`pl`) - Upgraded `big.js` from version `6.2.1` to `6.2.2` ## 2.129.0 - 2024-12-14 diff --git a/apps/client/src/locales/messages.pl.xlf b/apps/client/src/locales/messages.pl.xlf index 12a51af3..ada46334 100644 --- a/apps/client/src/locales/messages.pl.xlf +++ b/apps/client/src/locales/messages.pl.xlf @@ -2964,7 +2964,7 @@ YTD - YTD + Liczony od początku roku (year-to-date) apps/client/src/app/components/toggle/toggle.component.ts 22 @@ -2976,7 +2976,7 @@ 1Y - 1Y + 1 rok apps/client/src/app/components/toggle/toggle.component.ts 23 @@ -2988,7 +2988,7 @@ 5Y - 5Y + 5 lat apps/client/src/app/components/toggle/toggle.component.ts 24 @@ -3000,7 +3000,7 @@ Max - Max + Maksimum apps/client/src/app/components/toggle/toggle.component.ts 25 @@ -3096,7 +3096,7 @@ Auto - Auto + Auto apps/client/src/app/components/user-account-settings/user-account-settings.component.ts 38 @@ -3324,7 +3324,7 @@ About - About + O Ghostfolio apps/client/src/app/pages/about/about-page-routing.module.ts 51 @@ -3400,7 +3400,7 @@ Accounts - Accounts + Konta apps/client/src/app/pages/accounts/accounts-page-routing.module.ts 13 @@ -3724,7 +3724,7 @@ Holdings - Holdings + Inwestycje apps/client/src/app/pages/home/home-page-routing.module.ts 23 @@ -3744,7 +3744,7 @@ Summary - Summary + Podsumowanie apps/client/src/app/pages/home/home-page-routing.module.ts 33 @@ -3780,7 +3780,7 @@ Ghostfolio is a personal finance dashboard to keep track of your net worth including cash, stocks, ETFs and cryptocurrencies across multiple platforms. - Ghostfolio is a personal finance dashboard to keep track of your net worth including cash, stocks, ETFs and cryptocurrencies across multiple platforms. + Ghostfolio to osobisty panel finansowy do śledzenia Twojego majątku netto, w tym gotówki, akcji, funduszy ETF i kryptowalut na wielu platformach. apps/client/src/app/pages/i18n/i18n-page.html 4 @@ -3788,7 +3788,7 @@ app, asset, cryptocurrency, dashboard, etf, finance, management, performance, portfolio, software, stock, trading, wealth, web3 - app, asset, cryptocurrency, dashboard, etf, finance, management, performance, portfolio, software, stock, trading, wealth, web3 + aplikacja, aktywa, kryptowaluta, dashboard, etf, finanse, zarządzanie, wydajność, portfolio, oprogramowanie, akcje, handel, majątek, web3 apps/client/src/app/pages/i18n/i18n-page.html 9 @@ -3796,7 +3796,7 @@ Open Source Wealth Management Software - Open Source Wealth Management Software + Oprogramowanie Open Source do Zarządzania Majątkiem apps/client/src/app/pages/i18n/i18n-page.html 14 @@ -3804,7 +3804,7 @@ Manage your wealth like a boss - Manage your wealth like a boss + Zarządzaj swoim majątkiem niczym Boss apps/client/src/app/pages/landing/landing-page.html 5 @@ -3812,7 +3812,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 to zapewniający prywatność, open source'owy panel do zarządzania finansami osobistymi. Przeanalizuj szczegółowo swoją alokację aktywów, określ swoją wartość netto i podejmuj przemyślane decyzje inwestycyjne oparte na danych. apps/client/src/app/pages/landing/landing-page.html 9 @@ -3820,7 +3820,7 @@ Get Started - Get Started + Rozpocznij apps/client/src/app/pages/landing/landing-page.html 41 @@ -3832,7 +3832,7 @@ Live Demo - Live Demo + Live Demo apps/client/src/app/pages/landing/landing-page.html 49 @@ -3844,7 +3844,7 @@ Monthly Active Users - Monthly Active Users + Aktywni Użytkownicy w Miesiącu apps/client/src/app/pages/landing/landing-page.html 70 @@ -3852,7 +3852,7 @@ Stars on GitHub - Stars on GitHub + Gwiazdki na GitHubie apps/client/src/app/pages/landing/landing-page.html 88 @@ -3864,7 +3864,7 @@ Pulls on Docker Hub - Pulls on Docker Hub + Pobrania na Docker Hub apps/client/src/app/pages/landing/landing-page.html 106 @@ -3876,7 +3876,7 @@ As seen in - As seen in + Dostrzegli Nas apps/client/src/app/pages/landing/landing-page.html 115 @@ -3884,7 +3884,7 @@ Protect your assets. Refine your personal investment strategy. - Protect your assets. Refine your personal investment strategy. + Chroń swoje zasoby. Udoskonal swoją osobistą strategię inwestycyjną. apps/client/src/app/pages/landing/landing-page.html 225 @@ -3892,7 +3892,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 umożliwia zapracowanym osobom śledzenie akcji, funduszy ETF lub kryptowalut, jednocześnie zachowując prywatność. apps/client/src/app/pages/landing/landing-page.html 229 @@ -3900,7 +3900,7 @@ 360° View - 360° View + Widok 360° apps/client/src/app/pages/landing/landing-page.html 240 @@ -3908,7 +3908,7 @@ Get the full picture of your personal finances across multiple platforms. - Get the full picture of your personal finances across multiple platforms. + Uzyskaj pełny obraz swoich finansów osobistych na wielu różnych platformach. apps/client/src/app/pages/landing/landing-page.html 242 @@ -3916,7 +3916,7 @@ Web3 Ready - Web3 Ready + Gotowy na Web3 apps/client/src/app/pages/landing/landing-page.html 251 @@ -3924,7 +3924,7 @@ Use Ghostfolio anonymously and own your financial data. - Use Ghostfolio anonymously and own your financial data. + Korzystaj z Ghostfolio anonimowo i zachowaj pełną kontrolę nad swoimi danymi finansowymi. apps/client/src/app/pages/landing/landing-page.html 253 @@ -3932,7 +3932,7 @@ Open Source - Open Source + Otwarty Kod Źródłowy apps/client/src/app/pages/landing/landing-page.html 261 @@ -3940,7 +3940,7 @@ Benefit from continuous improvements through a strong community. - Benefit from continuous improvements through a strong community. + Czerp korzyści z nieustannych ulepszeń dzięki silnej społeczności. apps/client/src/app/pages/landing/landing-page.html 263 @@ -3948,7 +3948,7 @@ Why Ghostfolio? - Why Ghostfolio? + Dlaczego Ghostfolio? apps/client/src/app/pages/landing/landing-page.html 272 @@ -3956,7 +3956,7 @@ Ghostfolio is for you if you are... - Ghostfolio is for you if you are... + Ghostfolio jest dla Ciebie, jeśli... apps/client/src/app/pages/landing/landing-page.html 273 @@ -3964,7 +3964,7 @@ trading stocks, ETFs or cryptocurrencies on multiple platforms - trading stocks, ETFs or cryptocurrencies on multiple platforms + handlujesz akcjami, funduszami ETF lub kryptowalutami na wielu platformach apps/client/src/app/pages/landing/landing-page.html 280 @@ -3972,7 +3972,7 @@ pursuing a buy & hold strategy - pursuing a buy & hold strategy + realizujesz strategię buy & hold apps/client/src/app/pages/landing/landing-page.html 286 @@ -3980,7 +3980,7 @@ interested in getting insights of your portfolio composition - interested in getting insights of your portfolio composition + chcesz uzyskać wgląd w strukturę swojego portfolio apps/client/src/app/pages/landing/landing-page.html 291 @@ -3988,7 +3988,7 @@ valuing privacy and data ownership - valuing privacy and data ownership + cenisz sobie prywatność i własność swoich danych apps/client/src/app/pages/landing/landing-page.html 296 @@ -3996,7 +3996,7 @@ into minimalism - into minimalism + lubisz minimalizm apps/client/src/app/pages/landing/landing-page.html 299 @@ -4004,7 +4004,7 @@ caring about diversifying your financial resources - caring about diversifying your financial resources + zależy Ci na dywersyfikacji swoich zasobów finansowych apps/client/src/app/pages/landing/landing-page.html 303 @@ -4012,7 +4012,7 @@ interested in financial independence - interested in financial independence + jesteś zainteresowany niezależnością finansową apps/client/src/app/pages/landing/landing-page.html 307 @@ -4020,7 +4020,7 @@ saying no to spreadsheets in - saying no to spreadsheets in + mówisz „nie” arkuszom kalkulacyjnym w roku apps/client/src/app/pages/landing/landing-page.html 311 @@ -4028,7 +4028,7 @@ still reading this list - still reading this list + nadal czytasz tę listę apps/client/src/app/pages/landing/landing-page.html 314 @@ -4036,7 +4036,7 @@ Learn more about Ghostfolio - Learn more about Ghostfolio + Dowiedz się więcej o Ghostfolio apps/client/src/app/pages/landing/landing-page.html 319 @@ -4044,7 +4044,7 @@ What our users are saying - What our users are saying + Co mówią nasi użytkownicy apps/client/src/app/pages/landing/landing-page.html 327 @@ -4052,7 +4052,7 @@ Members from around the globe are using Ghostfolio Premium - Members from around the globe are using Ghostfolio Premium + Użytkownicy z całego świata korzystają z Ghostfolio Premium apps/client/src/app/pages/landing/landing-page.html 366 @@ -4060,7 +4060,7 @@ How does Ghostfolio work? - How does Ghostfolio work? + Jak działa Ghostfolio ? apps/client/src/app/pages/landing/landing-page.html 383 @@ -4068,7 +4068,7 @@ Get started in only 3 steps - Get started in only 3 steps + Rozpocznij w zaledwie 3 krokach apps/client/src/app/pages/landing/landing-page.html 386 @@ -4076,7 +4076,7 @@ Sign up anonymously* - Sign up anonymously* + Zarejestruj się anonimowo* apps/client/src/app/pages/landing/landing-page.html 392 @@ -4084,7 +4084,7 @@ * no e-mail address nor credit card required - * no e-mail address nor credit card required + * nie jest wymagany ani adres e-mail, ani karta kredytowa apps/client/src/app/pages/landing/landing-page.html 394 @@ -4092,7 +4092,7 @@ Add any of your historical transactions - Add any of your historical transactions + Dodaj dowolne z Twoich historycznych transakcji apps/client/src/app/pages/landing/landing-page.html 405 @@ -4100,7 +4100,7 @@ Get valuable insights of your portfolio composition - Get valuable insights of your portfolio composition + Zyskaj cenny wgląd w strukturę swojego portfolio apps/client/src/app/pages/landing/landing-page.html 417 @@ -4116,7 +4116,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. + W Ghostfolio przejrzystość stanowi podstawę naszych wartości. Publikujemy kod źródłowy jako oprogramowanie open source (OSS) na licencji AGPL-3.0 i otwarcie udostępniamy zagregowane kluczowe wskaźniki dotyczące stanu operacyjnego platformy. apps/client/src/app/pages/open/open-page.html 6 @@ -4164,7 +4164,7 @@ Users in Slack community - Users in Slack community + Użytkownicy w społeczności Slack apps/client/src/app/pages/open/open-page.html 75 @@ -4172,7 +4172,7 @@ Contributors on GitHub - Contributors on GitHub + Współtwórcy na GitHubie – osoby zaangażowane w rozwój projektu apps/client/src/app/pages/open/open-page.html 89 @@ -4188,7 +4188,7 @@ Uptime - Uptime + Czas Sprawności apps/client/src/app/pages/open/open-page.html 132 @@ -4196,7 +4196,7 @@ Activities - Activities + Aktywności apps/client/src/app/pages/portfolio/activities/activities-page-routing.module.ts 13 @@ -4208,7 +4208,7 @@ Do you really want to delete these activities? - Do you really want to delete these activities? + Czy na pewno chcesz usunąć te aktywności? libs/ui/src/lib/activities-table/activities-table.component.ts 219 @@ -4216,7 +4216,7 @@ Update activity - Update activity + Aktualizuj aktywność apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html 10 @@ -4224,7 +4224,7 @@ Stocks, ETFs, bonds, cryptocurrencies, commodities - Stocks, ETFs, bonds, cryptocurrencies, commodities + Akcje, fundusze ETF, obligacje, kryptowaluty, towary apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html 25 @@ -4236,7 +4236,7 @@ One-time fee, annual account fees - One-time fee, annual account fees + Opłata jednorazowa, roczne opłaty za konto apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html 33 @@ -4244,7 +4244,7 @@ Distribution of corporate earnings - Distribution of corporate earnings + Rozkład zysków przedsiębiorstw apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html 41 @@ -4252,7 +4252,7 @@ Revenue for lending out money - Revenue for lending out money + Przychód z tytułu pożyczania pieniędzy apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html 49 @@ -4260,7 +4260,7 @@ Mortgages, personal loans, credit cards - Mortgages, personal loans, credit cards + Kredyty hipoteczne, kredyty indywidualne, karty kredytowe apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html 57 @@ -4268,7 +4268,7 @@ Luxury items, real estate, private companies - Luxury items, real estate, private companies + Towar luksusowy, nieruchomości, firmy prywatne apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html 73 @@ -4276,7 +4276,7 @@ Account - Account + Konto apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html 85 @@ -4292,7 +4292,7 @@ Update Cash Balance - Update Cash Balance + Zaktualizuj Saldo Gotówkowe apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html 112 @@ -4300,7 +4300,7 @@ Unit Price - Unit Price + Cena Jednostkowa apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html 213 @@ -4324,7 +4324,7 @@ Fee - Fee + Opłata apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html 306 @@ -4348,7 +4348,7 @@ Import Activities - Import Activities + Importuj Aktywności apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts 45 @@ -6088,7 +6088,7 @@ Extreme Fear - Extreme Fear + Skrajny Strach libs/ui/src/lib/i18n.ts 96 @@ -6096,7 +6096,7 @@ Extreme Greed - Extreme Greed + Skrajna Zachłanność libs/ui/src/lib/i18n.ts 97 @@ -6104,7 +6104,7 @@ Neutral - Neutral + Neutralny libs/ui/src/lib/i18n.ts 100 @@ -7076,7 +7076,7 @@ Copy link to clipboard - Copy link to clipboard + Kopiuj link do schowka apps/client/src/app/components/access-table/access-table.component.html 70 @@ -7124,7 +7124,7 @@ Close - Close + Zamknij apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.html 129 @@ -7132,7 +7132,7 @@ Customize - Customize + Dostosuj apps/client/src/app/components/rule/rule.component.html 67 @@ -7140,7 +7140,7 @@ No auto-renewal. - No auto-renewal. + Bez automatycznego odnawiania. apps/client/src/app/components/user-account-membership/user-account-membership.html 74 @@ -7148,7 +7148,7 @@ Today - Today + Dzisiaj apps/client/src/app/pages/public/public-page.html 24 @@ -7156,7 +7156,7 @@ This year - This year + W tym roku apps/client/src/app/pages/public/public-page.html 42 @@ -7164,7 +7164,7 @@ From the beginning - From the beginning + Od samego początku apps/client/src/app/pages/public/public-page.html 60 @@ -7172,7 +7172,7 @@ Oops! Invalid currency. - Oops! Invalid currency. + Ups! Błędna waluta. apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html 49 @@ -7180,7 +7180,7 @@ This page has been archived. - This page has been archived. + Ta strona została zarchiwizowana. apps/client/src/app/pages/resources/personal-finance-tools/product-page.html 14 @@ -7188,7 +7188,7 @@ is Open Source Software - is Open Source Software + jest Oprogramowaniem Open Source apps/client/src/app/pages/resources/personal-finance-tools/product-page.html 139 @@ -7196,7 +7196,7 @@ is not Open Source Software - is not Open Source Software + nie jest Oprogramowaniem Open Source apps/client/src/app/pages/resources/personal-finance-tools/product-page.html 146 @@ -7204,7 +7204,7 @@ is Open Source Software - is Open Source Software + jest Oprogramowaniem Open Source apps/client/src/app/pages/resources/personal-finance-tools/product-page.html 156 @@ -7212,7 +7212,7 @@ is not Open Source Software - is not Open Source Software + nie jest Oprogramowaniem Open Source apps/client/src/app/pages/resources/personal-finance-tools/product-page.html 163 @@ -7220,7 +7220,7 @@ can be self-hosted - can be self-hosted + może być hostowany samodzielnie apps/client/src/app/pages/resources/personal-finance-tools/product-page.html 178 @@ -7228,7 +7228,7 @@ cannot be self-hosted - cannot be self-hosted + nie może być hostowany samodzielnie apps/client/src/app/pages/resources/personal-finance-tools/product-page.html 185 @@ -7236,7 +7236,7 @@ can be self-hosted - can be self-hosted + może być hostowany samodzielnie apps/client/src/app/pages/resources/personal-finance-tools/product-page.html 195 @@ -7244,7 +7244,7 @@ cannot be self-hosted - cannot be self-hosted + nie może być hostowany samodzielnie apps/client/src/app/pages/resources/personal-finance-tools/product-page.html 202 @@ -7252,7 +7252,7 @@ can be used anonymously - can be used anonymously + może być używany anonimowo apps/client/src/app/pages/resources/personal-finance-tools/product-page.html 217 @@ -7260,7 +7260,7 @@ cannot be used anonymously - cannot be used anonymously + nie może być używany anonimowo apps/client/src/app/pages/resources/personal-finance-tools/product-page.html 224 @@ -7268,7 +7268,7 @@ can be used anonymously - can be used anonymously + może być używany anonimowo apps/client/src/app/pages/resources/personal-finance-tools/product-page.html 234 @@ -7276,7 +7276,7 @@ cannot be used anonymously - cannot be used anonymously + nie może być używany anonimowo apps/client/src/app/pages/resources/personal-finance-tools/product-page.html 241 @@ -7284,7 +7284,7 @@ offers a free plan - offers a free plan + oferuje darmowy plan apps/client/src/app/pages/resources/personal-finance-tools/product-page.html 256 @@ -7292,7 +7292,7 @@ does not offer a free plan - does not offer a free plan + nie oferuje darmowego planu apps/client/src/app/pages/resources/personal-finance-tools/product-page.html 263 @@ -7300,7 +7300,7 @@ offers a free plan - offers a free plan + oferuje darmowy plan apps/client/src/app/pages/resources/personal-finance-tools/product-page.html 273 @@ -7308,7 +7308,7 @@ does not offer a free plan - does not offer a free plan + nie oferuje darmowego planu apps/client/src/app/pages/resources/personal-finance-tools/product-page.html 280 @@ -7316,7 +7316,7 @@ Oops! Could not find any assets. - Oops! Could not find any assets. + Ups! Nie znaleziono żadnych aktywów. libs/ui/src/lib/symbol-autocomplete/symbol-autocomplete.component.html 40 @@ -7324,7 +7324,7 @@ Data Providers - Data Providers + Dostawcy danych apps/client/src/app/components/admin-settings/admin-settings.component.html 4 @@ -7332,7 +7332,7 @@ NEW - NEW + NOWOŚĆ apps/client/src/app/components/admin-settings/admin-settings.component.html 15 @@ -7340,7 +7340,7 @@ Set API key - Set API key + Skonfiguruj klucz API apps/client/src/app/components/admin-settings/admin-settings.component.html 68 @@ -7348,7 +7348,7 @@ Want to stay updated? Click below to get notified as soon as it’s available. - Want to stay updated? Click below to get notified as soon as it’s available. + Chcesz być na bieżąco? Kliknij poniżej, aby otrzymać powiadomienie, gdy tylko będzie dostępne. apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/ghostfolio-premium-api-dialog.html 23 @@ -7356,7 +7356,7 @@ Get access to 100’000+ tickers from over 50 exchanges - Get access to 100’000+ tickers from over 50 exchanges + Uzyskaj dostęp do ponad 100 000 pasków notowań giełdowych z ponad 50 giełd libs/ui/src/lib/i18n.ts 24 @@ -7364,7 +7364,7 @@ Ukraine - Ukraine + Ukraina libs/ui/src/lib/i18n.ts 92 @@ -7372,7 +7372,7 @@ Skip - Skip + Pomiń apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html 83 @@ -7380,7 +7380,7 @@ Join now - Join now + Dołącz teraz apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html 93 @@ -7388,7 +7388,7 @@ Glossary - Glossary + Słowniczek apps/client/src/app/pages/resources/glossary/resources-glossary-routing.module.ts 10 @@ -7400,7 +7400,7 @@ Guides - Guides + Poradniki apps/client/src/app/pages/resources/guides/resources-guides-routing.module.ts 10 @@ -7412,7 +7412,7 @@ guides - guides + poradniki snake-case apps/client/src/app/pages/resources/overview/resources-overview.component.ts @@ -7425,7 +7425,7 @@ glossary - glossary + slowniczek snake-case apps/client/src/app/pages/resources/overview/resources-overview.component.ts @@ -7478,7 +7478,7 @@ Remove API key - Remove API key + Usuń klucz API apps/client/src/app/components/admin-settings/admin-settings.component.html 56 @@ -7486,7 +7486,7 @@ Do you really want to delete the API key? - Do you really want to delete the API key? + Czy na pewno chcesz usunąć klucz API?? apps/client/src/app/components/admin-settings/admin-settings.component.ts 92 @@ -7494,7 +7494,7 @@ Please enter your Ghostfolio API key: - Please enter your Ghostfolio API key: + Wprowadź swój klucz API konta Ghostfolio: apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/ghostfolio-premium-api-dialog.component.ts 45 @@ -7506,7 +7506,7 @@ Notify me - Notify me + Powiadom mnie apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/ghostfolio-premium-api-dialog.html 32 @@ -7514,7 +7514,7 @@ I have an API key - I have an API key + Posiadam klucz API apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/ghostfolio-premium-api-dialog.html 42 @@ -7522,7 +7522,7 @@ API Requests Today - API Requests Today + Dzisiejsze Zapytania API apps/client/src/app/components/admin-users/admin-users.html 178 @@ -7530,7 +7530,7 @@ Could not generate an API key - Could not generate an API key + Nie udało się wygenerować klucza API apps/client/src/app/components/user-account-membership/user-account-membership.component.ts 138 @@ -7538,7 +7538,7 @@ Set this API key in your self-hosted environment: - Set this API key in your self-hosted environment: + Ustaw ten klucz API w samodzielnie hostowanym środowisku: apps/client/src/app/components/user-account-membership/user-account-membership.component.ts 153 @@ -7554,7 +7554,7 @@ Do you really want to generate a new API key? - Do you really want to generate a new API key? + Czy na pewno chcesz wygenerować nowy klucz API? apps/client/src/app/components/user-account-membership/user-account-membership.component.ts 161 From 09c186f56024eb079f5c6c436cbc4922962223f4 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Sat, 21 Dec 2024 09:16:22 +0100 Subject: [PATCH 29/63] Feature/improve language localization for de 20241220 (#4131) * Update translations * Update changelog --- CHANGELOG.md | 1 + apps/client/src/locales/messages.ca.xlf | 36 ++++++++++++++++++------- apps/client/src/locales/messages.de.xlf | 36 ++++++++++++++++++------- apps/client/src/locales/messages.es.xlf | 36 ++++++++++++++++++------- apps/client/src/locales/messages.fr.xlf | 36 ++++++++++++++++++------- apps/client/src/locales/messages.it.xlf | 36 ++++++++++++++++++------- apps/client/src/locales/messages.nl.xlf | 36 ++++++++++++++++++------- apps/client/src/locales/messages.pl.xlf | 36 ++++++++++++++++++------- apps/client/src/locales/messages.pt.xlf | 36 ++++++++++++++++++------- apps/client/src/locales/messages.tr.xlf | 36 ++++++++++++++++++------- apps/client/src/locales/messages.xlf | 32 +++++++++++++++------- apps/client/src/locales/messages.zh.xlf | 36 ++++++++++++++++++------- 12 files changed, 284 insertions(+), 109 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 358a1453..c2a6ec50 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,6 +17,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Improved the usability to edit the emergency fund - Extracted the market data management from the admin control panel endpoint to a dedicated endpoint +- Improved the language localization for German (`de`) - Improved the language localization for Polish (`pl`) - Upgraded `big.js` from version `6.2.1` to `6.2.2` diff --git a/apps/client/src/locales/messages.ca.xlf b/apps/client/src/locales/messages.ca.xlf index 6d9fe62e..69bf055b 100644 --- a/apps/client/src/locales/messages.ca.xlf +++ b/apps/client/src/locales/messages.ca.xlf @@ -2619,7 +2619,7 @@ apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 105 + 154 @@ -2991,7 +2991,7 @@ apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 29 + 34 @@ -3062,12 +3062,12 @@ 307 - - Please enter the amount of your emergency fund: - Please enter the amount of your emergency fund: + + Please set the amount of your emergency fund. + Please set the amount of your emergency fund. apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts - 53 + 63 @@ -5255,7 +5255,7 @@ Currency Cluster Risks apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 48 + 58 @@ -5263,7 +5263,7 @@ Account Cluster Risks apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 67 + 106 @@ -7047,7 +7047,7 @@ Inactive apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 124 + 173 @@ -7457,7 +7457,7 @@ Economic Market Cluster Risks apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 86 + 130 @@ -7600,6 +7600,22 @@ 24 + + Save + Save + + apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts + 61 + + + + Asset Class Cluster Risks + Asset Class Cluster Risks + + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 82 + + diff --git a/apps/client/src/locales/messages.de.xlf b/apps/client/src/locales/messages.de.xlf index b4b8857a..561bdea3 100644 --- a/apps/client/src/locales/messages.de.xlf +++ b/apps/client/src/locales/messages.de.xlf @@ -1254,7 +1254,7 @@ apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 29 + 34 @@ -1305,12 +1305,12 @@ 271 - - Please enter the amount of your emergency fund: - Bitte gib den Betrag deines Notfallfonds ein: + + Please set the amount of your emergency fund. + Bitte setze den Betrag deines Notfallfonds. apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts - 53 + 63 @@ -3766,7 +3766,7 @@ apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 105 + 154 @@ -5907,7 +5907,7 @@ Währungsklumpenrisiken apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 48 + 58 @@ -5915,7 +5915,7 @@ Kontoklumpenrisiken apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 67 + 106 @@ -7047,7 +7047,7 @@ Inaktiv apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 124 + 173 @@ -7457,7 +7457,7 @@ Wirtschaftsraumklumpenrisiken apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 86 + 130 @@ -7600,6 +7600,22 @@ 24 + + Save + Speichern + + apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts + 61 + + + + Asset Class Cluster Risks + Anlageklasseklumpenrisiken + + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 82 + + diff --git a/apps/client/src/locales/messages.es.xlf b/apps/client/src/locales/messages.es.xlf index d52ea047..f4eecb92 100644 --- a/apps/client/src/locales/messages.es.xlf +++ b/apps/client/src/locales/messages.es.xlf @@ -1255,7 +1255,7 @@ apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 29 + 34 @@ -1306,12 +1306,12 @@ 271 - - Please enter the amount of your emergency fund: - Por favor, ingresa la cantidad de tu fondo de emergencia: + + Please set the amount of your emergency fund. + Por favor, ingresa la cantidad de tu fondo de emergencia: apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts - 53 + 63 @@ -3767,7 +3767,7 @@ apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 105 + 154 @@ -5908,7 +5908,7 @@ Currency Cluster Risks apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 48 + 58 @@ -5916,7 +5916,7 @@ Account Cluster Risks apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 67 + 106 @@ -7048,7 +7048,7 @@ Inactive apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 124 + 173 @@ -7458,7 +7458,7 @@ Economic Market Cluster Risks apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 86 + 130 @@ -7601,6 +7601,22 @@ 24 + + Save + Save + + apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts + 61 + + + + Asset Class Cluster Risks + Asset Class Cluster Risks + + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 82 + + diff --git a/apps/client/src/locales/messages.fr.xlf b/apps/client/src/locales/messages.fr.xlf index 84ec59dd..ee90ad9a 100644 --- a/apps/client/src/locales/messages.fr.xlf +++ b/apps/client/src/locales/messages.fr.xlf @@ -1602,7 +1602,7 @@ apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 29 + 34 @@ -1661,12 +1661,12 @@ 271 - - Please enter the amount of your emergency fund: - Veuillez entrer le montant de votre fonds d’urgence : + + Please set the amount of your emergency fund. + Veuillez entrer le montant de votre fonds d’urgence : apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts - 53 + 63 @@ -3766,7 +3766,7 @@ apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 105 + 154 @@ -5907,7 +5907,7 @@ Risques de change apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 48 + 58 @@ -5915,7 +5915,7 @@ Risques liés aux regroupements de comptes apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 67 + 106 @@ -7047,7 +7047,7 @@ Inactif apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 124 + 173 @@ -7457,7 +7457,7 @@ Economic Market Cluster Risks apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 86 + 130 @@ -7600,6 +7600,22 @@ 24 + + Save + Save + + apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts + 61 + + + + Asset Class Cluster Risks + Asset Class Cluster Risks + + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 82 + + diff --git a/apps/client/src/locales/messages.it.xlf b/apps/client/src/locales/messages.it.xlf index 9a9e8b06..aafcc1b5 100644 --- a/apps/client/src/locales/messages.it.xlf +++ b/apps/client/src/locales/messages.it.xlf @@ -1255,7 +1255,7 @@ apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 29 + 34 @@ -1306,12 +1306,12 @@ 271 - - Please enter the amount of your emergency fund: - Inserisci l’importo del tuo fondo di emergenza: + + Please set the amount of your emergency fund. + Inserisci l’importo del tuo fondo di emergenza: apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts - 53 + 63 @@ -3767,7 +3767,7 @@ apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 105 + 154 @@ -5908,7 +5908,7 @@ Rischio di Concentrazione Valutario apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 48 + 58 @@ -5916,7 +5916,7 @@ Rischi di Concentrazione dei Conti apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 67 + 106 @@ -7048,7 +7048,7 @@ Inattivo apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 124 + 173 @@ -7458,7 +7458,7 @@ Economic Market Cluster Risks apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 86 + 130 @@ -7601,6 +7601,22 @@ 24 + + Save + Save + + apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts + 61 + + + + Asset Class Cluster Risks + Asset Class Cluster Risks + + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 82 + + diff --git a/apps/client/src/locales/messages.nl.xlf b/apps/client/src/locales/messages.nl.xlf index 3af261de..8d91118f 100644 --- a/apps/client/src/locales/messages.nl.xlf +++ b/apps/client/src/locales/messages.nl.xlf @@ -1254,7 +1254,7 @@ apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 29 + 34 @@ -1305,12 +1305,12 @@ 271 - - Please enter the amount of your emergency fund: - Voer het bedrag van je noodfonds in: + + Please set the amount of your emergency fund. + Voer het bedrag van je noodfonds in: apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts - 53 + 63 @@ -3766,7 +3766,7 @@ apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 105 + 154 @@ -5907,7 +5907,7 @@ Currency Cluster Risks apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 48 + 58 @@ -5915,7 +5915,7 @@ Account Cluster Risks apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 67 + 106 @@ -7047,7 +7047,7 @@ Inactive apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 124 + 173 @@ -7457,7 +7457,7 @@ Economic Market Cluster Risks apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 86 + 130 @@ -7600,6 +7600,22 @@ 24 + + Save + Save + + apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts + 61 + + + + Asset Class Cluster Risks + Asset Class Cluster Risks + + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 82 + + diff --git a/apps/client/src/locales/messages.pl.xlf b/apps/client/src/locales/messages.pl.xlf index ada46334..8eaef221 100644 --- a/apps/client/src/locales/messages.pl.xlf +++ b/apps/client/src/locales/messages.pl.xlf @@ -2595,7 +2595,7 @@ apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 105 + 154 @@ -2643,7 +2643,7 @@ apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 29 + 34 @@ -2738,12 +2738,12 @@ 271 - - Please enter the amount of your emergency fund: - Proszę wprowadzić wysokość funduszu rezerwowego: + + Please set the amount of your emergency fund. + Proszę wprowadzić wysokość funduszu rezerwowego: apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts - 53 + 63 @@ -4783,7 +4783,7 @@ Currency Cluster Risks apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 48 + 58 @@ -4791,7 +4791,7 @@ Account Cluster Risks apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 67 + 106 @@ -7047,7 +7047,7 @@ Nieaktywny apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 124 + 173 @@ -7457,7 +7457,7 @@ Economic Market Cluster Risks apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 86 + 130 @@ -7600,6 +7600,22 @@ 24 + + Save + Save + + apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts + 61 + + + + Asset Class Cluster Risks + Asset Class Cluster Risks + + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 82 + + diff --git a/apps/client/src/locales/messages.pt.xlf b/apps/client/src/locales/messages.pt.xlf index 7d2d5e3c..bfe9c77b 100644 --- a/apps/client/src/locales/messages.pt.xlf +++ b/apps/client/src/locales/messages.pt.xlf @@ -1478,7 +1478,7 @@ apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 29 + 34 @@ -1537,12 +1537,12 @@ 271 - - Please enter the amount of your emergency fund: - Por favor, insira o valor do seu fundo de emergência: + + Please set the amount of your emergency fund. + Por favor, insira o valor do seu fundo de emergência: apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts - 53 + 63 @@ -3766,7 +3766,7 @@ apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 105 + 154 @@ -5907,7 +5907,7 @@ Currency Cluster Risks apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 48 + 58 @@ -5915,7 +5915,7 @@ Account Cluster Risks apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 67 + 106 @@ -7047,7 +7047,7 @@ Inactive apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 124 + 173 @@ -7457,7 +7457,7 @@ Economic Market Cluster Risks apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 86 + 130 @@ -7600,6 +7600,22 @@ 24 + + Save + Save + + apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts + 61 + + + + Asset Class Cluster Risks + Asset Class Cluster Risks + + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 82 + + diff --git a/apps/client/src/locales/messages.tr.xlf b/apps/client/src/locales/messages.tr.xlf index 7752f133..eea97ae1 100644 --- a/apps/client/src/locales/messages.tr.xlf +++ b/apps/client/src/locales/messages.tr.xlf @@ -2479,7 +2479,7 @@ apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 29 + 34 @@ -2566,12 +2566,12 @@ 271 - - Please enter the amount of your emergency fund: - Lütfen acil durum yedeği meblağını giriniz: + + Please set the amount of your emergency fund. + Lütfen acil durum yedeği meblağını giriniz: apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts - 53 + 63 @@ -2635,7 +2635,7 @@ apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 105 + 154 @@ -5907,7 +5907,7 @@ Kur Kümelenme Riskleri (Currency Cluster Risks) apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 48 + 58 @@ -5915,7 +5915,7 @@ Hesap Kümelenme Riski (Account Cluster Risks) apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 67 + 106 @@ -7047,7 +7047,7 @@ Inactive apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 124 + 173 @@ -7457,7 +7457,7 @@ Economic Market Cluster Risks apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 86 + 130 @@ -7600,6 +7600,22 @@ 24 + + Save + Save + + apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts + 61 + + + + Asset Class Cluster Risks + Asset Class Cluster Risks + + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 82 + + diff --git a/apps/client/src/locales/messages.xlf b/apps/client/src/locales/messages.xlf index 5f15aafd..1e4fa6cd 100644 --- a/apps/client/src/locales/messages.xlf +++ b/apps/client/src/locales/messages.xlf @@ -2436,7 +2436,7 @@ apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 105 + 154 @@ -2479,7 +2479,7 @@ apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 29 + 34 @@ -2565,11 +2565,11 @@ 271 - - Please enter the amount of your emergency fund: + + Please set the amount of your emergency fund. apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts - 53 + 63 @@ -4395,14 +4395,14 @@ Currency Cluster Risks apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 48 + 58 Account Cluster Risks apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 67 + 106 @@ -6390,7 +6390,7 @@ Inactive apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 124 + 173 @@ -6744,7 +6744,7 @@ Economic Market Cluster Risks apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 86 + 130 @@ -6877,6 +6877,20 @@ 22 + + Save + + apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts + 61 + + + + Asset Class Cluster Risks + + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 82 + + diff --git a/apps/client/src/locales/messages.zh.xlf b/apps/client/src/locales/messages.zh.xlf index f33c6342..0271ddb7 100644 --- a/apps/client/src/locales/messages.zh.xlf +++ b/apps/client/src/locales/messages.zh.xlf @@ -2612,7 +2612,7 @@ apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 105 + 154 @@ -2660,7 +2660,7 @@ apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 29 + 34 @@ -2755,12 +2755,12 @@ 271 - - Please enter the amount of your emergency fund: - 请输入您的应急基金金额: + + Please set the amount of your emergency fund. + 请输入您的应急基金金额: apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts - 53 + 63 @@ -4800,7 +4800,7 @@ 货币集群风险 apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 48 + 58 @@ -4808,7 +4808,7 @@ 账户集群风险 apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 67 + 106 @@ -7048,7 +7048,7 @@ Inactive apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 124 + 173 @@ -7458,7 +7458,7 @@ Economic Market Cluster Risks apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html - 86 + 130 @@ -7601,6 +7601,22 @@ 24 + + Save + Save + + apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts + 61 + + + + Asset Class Cluster Risks + Asset Class Cluster Risks + + apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html + 82 + + From c5fffed7952dbbb35857374fd8e8cd9e937a4229 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Sat, 21 Dec 2024 09:19:02 +0100 Subject: [PATCH 30/63] Release 2.130.0 (#4133) --- CHANGELOG.md | 2 +- package-lock.json | 4 ++-- package.json | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c2a6ec50..74a10826 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,7 +5,7 @@ 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 +## 2.130.0 - 2024-12-21 ### Added diff --git a/package-lock.json b/package-lock.json index 9c5a5b05..d715ccc9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "ghostfolio", - "version": "2.129.0", + "version": "2.130.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "ghostfolio", - "version": "2.129.0", + "version": "2.130.0", "hasInstallScript": true, "license": "AGPL-3.0", "dependencies": { diff --git a/package.json b/package.json index d5a63adf..2eea5cc6 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ghostfolio", - "version": "2.129.0", + "version": "2.130.0", "homepage": "https://ghostfol.io", "license": "AGPL-3.0", "repository": "https://github.com/ghostfolio/ghostfolio", From 7a19fc53b09e61eb4b26301506ff446356178cab Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Tue, 24 Dec 2024 13:30:43 +0100 Subject: [PATCH 31/63] Feature/improve activities import by isin for yahoo finance (#4140) * Allow activities import by isin even if multiple quotes found * Update changelog --- CHANGELOG.md | 6 ++++++ .../data-enhancer/yahoo-finance/yahoo-finance.service.ts | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 74a10826..13862f5c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,12 @@ 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 support to import activities by `isin` in the _Yahoo Finance_ service + ## 2.130.0 - 2024-12-21 ### Added diff --git a/apps/api/src/services/data-provider/data-enhancer/yahoo-finance/yahoo-finance.service.ts b/apps/api/src/services/data-provider/data-enhancer/yahoo-finance/yahoo-finance.service.ts index 6090b4f9..b71e3e31 100644 --- a/apps/api/src/services/data-provider/data-enhancer/yahoo-finance/yahoo-finance.service.ts +++ b/apps/api/src/services/data-provider/data-enhancer/yahoo-finance/yahoo-finance.service.ts @@ -166,7 +166,7 @@ export class YahooFinanceDataEnhancerService implements DataEnhancerInterface { try { const { quotes } = await yahooFinance.search(symbol); - if (quotes.length === 1) { + if (quotes?.[0]?.symbol) { symbol = quotes[0].symbol; } } catch {} From 08a9202dea610f7ec5e3f198f2b765692088316a Mon Sep 17 00:00:00 2001 From: Akd11111 <70412728+Akd11111@users.noreply.github.com> Date: Tue, 24 Dec 2024 13:55:59 +0100 Subject: [PATCH 32/63] Feature/improve language localization for Polish (#4141) * Improve language localization for Polish * Update changelog --- CHANGELOG.md | 1 + apps/client/src/locales/messages.pl.xlf | 226 ++++++++++++------------ 2 files changed, 114 insertions(+), 113 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 13862f5c..8c63b47c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed - Improved support to import activities by `isin` in the _Yahoo Finance_ service +- Improved the language localization for Polish (`pl`) ## 2.130.0 - 2024-12-21 diff --git a/apps/client/src/locales/messages.pl.xlf b/apps/client/src/locales/messages.pl.xlf index 8eaef221..223c8a57 100644 --- a/apps/client/src/locales/messages.pl.xlf +++ b/apps/client/src/locales/messages.pl.xlf @@ -2740,7 +2740,7 @@ Please set the amount of your emergency fund. - Proszę wprowadzić wysokość funduszu rezerwowego: + Wprowadź wysokość funduszu rezerwowego: apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts 63 @@ -2836,7 +2836,7 @@ Portfolio Allocations - Alokacja portfela + Podział portfela apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html 28 @@ -4356,7 +4356,7 @@ Import Dividends - Import Dividends + Impotruj Dywidendy apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts 86 @@ -4364,7 +4364,7 @@ Importing data... - Importing data... + Importowanie danych... apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts 124 @@ -4372,7 +4372,7 @@ Import has been completed - Import has been completed + Importowanie zakończone apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts 132 @@ -4380,7 +4380,7 @@ Validating data... - Validating data... + Weryfikacja danych... apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts 238 @@ -4388,7 +4388,7 @@ Select Holding - Select Holding + Wybierz Inwestycje apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html 20 @@ -4396,7 +4396,7 @@ Select File - Select File + Wybierz plik apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html 22 @@ -4404,7 +4404,7 @@ Holding - Holding + Inwestycja apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html 32 @@ -4416,7 +4416,7 @@ Load Dividends - Load Dividends + Załaduj dywidendy apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html 68 @@ -4424,7 +4424,7 @@ Choose or drop a file here - Choose or drop a file here + Wybierz lub przeciągnij plik tutaj apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html 84 @@ -4432,7 +4432,7 @@ The following file formats are supported: - The following file formats are supported: + Obsługiwane są następujące formaty plików: apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html 90 @@ -4440,7 +4440,7 @@ Select Dividends - Select Dividends + Wybierz dywidendy apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html 113 @@ -4448,7 +4448,7 @@ Select Activities - Select Activities + Wybór działań apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html 115 @@ -4456,7 +4456,7 @@ Back - Back + Wróc apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html 144 @@ -4468,7 +4468,7 @@ Allocations - Allocations + Podziały apps/client/src/app/pages/portfolio/allocations/allocations-page-routing.module.ts 13 @@ -4480,7 +4480,7 @@ Allocations - Allocations + Podziały apps/client/src/app/pages/portfolio/allocations/allocations-page.html 4 @@ -4488,7 +4488,7 @@ Proportion of Net Worth - Proportion of Net Worth + Proporcja wartości netto apps/client/src/app/pages/portfolio/allocations/allocations-page.html 12 @@ -4496,7 +4496,7 @@ By Platform - By Platform + Wg. platformy apps/client/src/app/pages/portfolio/allocations/allocations-page.html 44 @@ -4504,7 +4504,7 @@ By Currency - By Currency + Wg. waluty apps/client/src/app/pages/portfolio/allocations/allocations-page.html 63 @@ -4512,7 +4512,7 @@ By Asset Class - By Asset Class + Wg. klasy aktywów apps/client/src/app/pages/portfolio/allocations/allocations-page.html 85 @@ -4520,7 +4520,7 @@ By Holding - By Holding + Wg. inwestycji apps/client/src/app/pages/portfolio/allocations/allocations-page.html 107 @@ -4528,7 +4528,7 @@ By Sector - By Sector + Wg. sektora apps/client/src/app/pages/portfolio/allocations/allocations-page.html 130 @@ -4536,7 +4536,7 @@ By Continent - By Continent + Wg. kontynentu apps/client/src/app/pages/portfolio/allocations/allocations-page.html 153 @@ -4544,7 +4544,7 @@ By Market - By Market + Wg. rynku apps/client/src/app/pages/portfolio/allocations/allocations-page.html 175 @@ -4552,7 +4552,7 @@ Regions - Regions + Regiony apps/client/src/app/pages/portfolio/allocations/allocations-page.html 198 @@ -4620,7 +4620,7 @@ By Account - By Account + Wg. kont apps/client/src/app/pages/portfolio/allocations/allocations-page.html 286 @@ -4628,7 +4628,7 @@ By ETF Provider - By ETF Provider + Wg. Dostawcy ETF apps/client/src/app/pages/portfolio/allocations/allocations-page.html 306 @@ -4636,7 +4636,7 @@ By Country - By Country + Wg. kraju apps/client/src/app/pages/portfolio/allocations/allocations-page.html 264 @@ -4644,7 +4644,7 @@ Analysis - Analysis + Analiza apps/client/src/app/pages/portfolio/analysis/analysis-page-routing.module.ts 13 @@ -4656,7 +4656,7 @@ Dividend - Dividend + Dywidenda apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts 37 @@ -4668,7 +4668,7 @@ Deposit - Deposit + Depozyt libs/ui/src/lib/fire-calculator/fire-calculator.component.ts 361 @@ -4684,7 +4684,7 @@ Yearly - Corocznie + Rocznie apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts 50 @@ -4700,7 +4700,7 @@ Top - Top + Największe wzrosty apps/client/src/app/pages/portfolio/analysis/analysis-page.html 165 @@ -4708,7 +4708,7 @@ Bottom - Bottom + Największy spadek apps/client/src/app/pages/portfolio/analysis/analysis-page.html 214 @@ -4716,7 +4716,7 @@ Portfolio Evolution - Portfolio Evolution + Rozwój portfela apps/client/src/app/pages/portfolio/analysis/analysis-page.html 267 @@ -4724,7 +4724,7 @@ Investment Timeline - Investment Timeline + Oś czasu inwestycji apps/client/src/app/pages/portfolio/analysis/analysis-page.html 294 @@ -4732,7 +4732,7 @@ Current Streak - Current Streak + Obecna passa apps/client/src/app/pages/portfolio/analysis/analysis-page.html 315 @@ -4740,7 +4740,7 @@ Longest Streak - Longest Streak + Najdłuższa passa apps/client/src/app/pages/portfolio/analysis/analysis-page.html 324 @@ -4748,7 +4748,7 @@ Dividend Timeline - Dividend Timeline + Oś czasu dywidend apps/client/src/app/pages/portfolio/analysis/analysis-page.html 351 @@ -4756,7 +4756,7 @@ FIRE - FIRE + F.I.R.E. apps/client/src/app/pages/portfolio/fire/fire-page.html 4 @@ -4780,7 +4780,7 @@ Currency Cluster Risks - Currency Cluster Risks + Ryzyko związane z klastrem walutowym apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html 58 @@ -4788,7 +4788,7 @@ Account Cluster Risks - Account Cluster Risks + Ryzyko związane z klastrem kont apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html 106 @@ -4796,7 +4796,7 @@ Holdings - Holdings + Inwestycje apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html 79 @@ -4888,7 +4888,7 @@ Portfolio Performance - Efektywność Portfela + Wyniki portfela apps/client/src/app/pages/pricing/pricing-page.html 53 @@ -5008,7 +5008,7 @@ Get Started - Get Started + Rozpocznij apps/client/src/app/pages/landing/landing-page.html 446 @@ -5016,7 +5016,7 @@ It’s free. - It’s free. + Jest bezpłatny. apps/client/src/app/pages/pricing/pricing-page.html 327 @@ -5024,7 +5024,7 @@ Hello, has shared a Portfolio with you! - Hello, has shared a Portfolio with you! + Witaj, udostępnił Ci Portfel apps/client/src/app/pages/public/public-page.html 4 @@ -5032,7 +5032,7 @@ Currencies - Currencies + Waluty apps/client/src/app/pages/public/public-page.html 88 @@ -5040,7 +5040,7 @@ Continents - Continents + Kontynenty apps/client/src/app/pages/public/public-page.html 124 @@ -5048,7 +5048,7 @@ Ghostfolio empowers you to keep track of your wealth. - Ghostfolio empowers you to keep track of your wealth. + Ghostfolio umożliwia śledzenie wartości swojego majątku. apps/client/src/app/pages/public/public-page.html 215 @@ -5056,7 +5056,7 @@ Registration - Registration + Rejestracja apps/client/src/app/pages/register/register-page-routing.module.ts 13 @@ -5064,7 +5064,7 @@ Continue with Internet Identity - Continue with Internet Identity + Kontynuuj z tożsamością internetową apps/client/src/app/pages/register/register-page.html 42 @@ -5072,7 +5072,7 @@ Continue with Google - Continue with Google + Zaloguj z Google apps/client/src/app/pages/register/register-page.html 53 @@ -5080,7 +5080,7 @@ Copy to clipboard - Copy to clipboard + Kopiuj do schowka apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html 26 @@ -5088,7 +5088,7 @@ I agree to have stored my Security Token from above in a secure place. If I lose it, I cannot get my account back. - I agree to have stored my Security Token from above in a secure place. If I lose it, I cannot get my account back. + Wyrażam zgodę na przechowywanie mojego Tokenu zabezpieczającego w bezpiecznym miejscu. Jego utrata nie pozwoli odzyskać konta! apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html 32 @@ -5096,7 +5096,7 @@ Agree and continue - Agree and continue + Zgadzam się i kontynuuję apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html 45 @@ -5104,7 +5104,7 @@ Personal Finance Tools - Personal Finance Tools + Narzędzia finansów osobistych apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page-routing.module.ts 14 @@ -5324,7 +5324,7 @@ Free Plan - Darmowy Plan + Plan Darmowy apps/client/src/app/pages/resources/personal-finance-tools/product-page.html 248 @@ -5332,7 +5332,7 @@ Notes - Notes + Notatki apps/client/src/app/pages/resources/personal-finance-tools/product-page.html 302 @@ -5584,7 +5584,7 @@ Asset Profiles - Asset Profiles + Profile aktywów libs/ui/src/lib/assistant/assistant.html 67 @@ -5616,7 +5616,7 @@ from ATH - from ATH + od ATH libs/ui/src/lib/benchmark/benchmark.component.html 83 @@ -5632,7 +5632,7 @@ Savings Rate per Month - Savings Rate per Month + Miesięczna stopa oszczędności libs/ui/src/lib/fire-calculator/fire-calculator.component.html 10 @@ -5648,7 +5648,7 @@ Retirement Date - Retirement Date + Data przejścia na emeryturę libs/ui/src/lib/fire-calculator/fire-calculator.component.html 32 @@ -5684,7 +5684,7 @@ Allocation - Allocation + Podział libs/ui/src/lib/holdings-table/holdings-table.component.html 98 @@ -5740,7 +5740,7 @@ Core - Core + Główny libs/ui/src/lib/i18n.ts 10 @@ -5820,7 +5820,7 @@ Month - Month + Miesiąc libs/ui/src/lib/i18n.ts 21 @@ -5828,7 +5828,7 @@ Months - Months + Miesiące libs/ui/src/lib/i18n.ts 22 @@ -5836,7 +5836,7 @@ Other - Other + Inne libs/ui/src/lib/i18n.ts 23 @@ -5872,7 +5872,7 @@ Symbol - Symbol + Symbol libs/ui/src/lib/i18n.ts 28 @@ -5880,7 +5880,7 @@ Tag - Tag + Tag libs/ui/src/lib/i18n.ts 29 @@ -5888,7 +5888,7 @@ Year - Year + Rok libs/ui/src/lib/i18n.ts 30 @@ -5896,7 +5896,7 @@ Years - Years + Lata libs/ui/src/lib/i18n.ts 31 @@ -5920,7 +5920,7 @@ Valuable - Valuable + Kosztowności libs/ui/src/lib/i18n.ts 39 @@ -5928,7 +5928,7 @@ Liability - Liability + Zobowiązanie libs/ui/src/lib/i18n.ts 40 @@ -5936,7 +5936,7 @@ Sell - Sell + Sprzedaj libs/ui/src/lib/i18n.ts 41 @@ -6032,7 +6032,7 @@ Stock - Stock + Akcje libs/ui/src/lib/i18n.ts 58 @@ -6176,7 +6176,7 @@ Starting from - Starting from + Począwszy od apps/client/src/app/pages/resources/personal-finance-tools/product-page.html 289 @@ -6188,7 +6188,7 @@ year - year + rok apps/client/src/app/pages/resources/personal-finance-tools/product-page.html 290 @@ -6280,7 +6280,7 @@ Private - Private + Prywatny apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html 24 @@ -6308,7 +6308,7 @@ Investment - Investment + Inwestycje apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts 41 @@ -6324,7 +6324,7 @@ Absolute Asset Performance - Absolute Asset Performance + Łączny wynik aktywów apps/client/src/app/pages/portfolio/analysis/analysis-page.html 28 @@ -6332,7 +6332,7 @@ Asset Performance - Asset Performance + Wyniki aktywów apps/client/src/app/pages/portfolio/analysis/analysis-page.html 49 @@ -6340,7 +6340,7 @@ Absolute Currency Performance - Absolute Currency Performance + Łączny wynik walut apps/client/src/app/pages/portfolio/analysis/analysis-page.html 71 @@ -6348,7 +6348,7 @@ Currency Performance - Currency Performance + Wynik walut apps/client/src/app/pages/portfolio/analysis/analysis-page.html 95 @@ -6356,7 +6356,7 @@ Absolute Net Performance - Absolute Net Performance + Łączna wartość netto apps/client/src/app/pages/portfolio/analysis/analysis-page.html 118 @@ -6364,7 +6364,7 @@ Net Performance - Net Performance + Wynik netto apps/client/src/app/pages/portfolio/analysis/analysis-page.html 137 @@ -6372,7 +6372,7 @@ Week to date - Week to date + Dotychczasowy tydzień libs/ui/src/lib/assistant/assistant.component.ts 223 @@ -6388,7 +6388,7 @@ Month to date - Month to date + Od początku miesiąca libs/ui/src/lib/assistant/assistant.component.ts 227 @@ -6404,7 +6404,7 @@ Year to date - Year to date + Od początku roku libs/ui/src/lib/assistant/assistant.component.ts 231 @@ -6448,7 +6448,7 @@ year - year + rok libs/ui/src/lib/assistant/assistant.component.ts 235 @@ -6456,7 +6456,7 @@ years - years + lata libs/ui/src/lib/assistant/assistant.component.ts 257 @@ -6548,7 +6548,7 @@ Active - Active + Antywne apps/client/src/app/components/home-holdings/home-holdings.component.ts 35 @@ -6556,7 +6556,7 @@ Closed - Closed + Zamknięte apps/client/src/app/components/home-holdings/home-holdings.component.ts 36 @@ -6564,7 +6564,7 @@ Activity - Activity + Aktywność apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html 207 @@ -6628,7 +6628,7 @@ Delete Activities - Delete Activities + Usuń aktywności libs/ui/src/lib/activities-table/activities-table.component.html 67 @@ -6668,7 +6668,7 @@ By ETF Holding - By ETF Holding + Wg. Holdingu ETF apps/client/src/app/pages/portfolio/allocations/allocations-page.html 333 @@ -7084,7 +7084,7 @@ Portfolio Snapshot - Portfolio Snapshot + Przegląd portfela apps/client/src/app/components/admin-jobs/admin-jobs.html 39 @@ -7108,7 +7108,7 @@ Threshold Min - Threshold Min + Próg minimalny apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.html 54 @@ -7116,7 +7116,7 @@ Threshold Max - Threshold Max + Próg maksymalny apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.html 92 @@ -7438,7 +7438,7 @@ Threshold range - Threshold range + Zakres progów apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.html 9 @@ -7446,7 +7446,7 @@ Ghostfolio X-ray uses static analysis to uncover potential issues and risks in your portfolio. Adjust the rules below and set custom thresholds to align with your personal investment strategy. - Ghostfolio X-ray uses static analysis to uncover potential issues and risks in your portfolio. Adjust the rules below and set custom thresholds to align with your personal investment strategy. + Ghostfolio X-ray wykorzystuje analizę statyczną do wykrywania potencjalnych problemów i zagrożeń w portfelu. Dostosuj poniższe zasady i ustaw niestandardowe progi, aby dostosować je do osobistej strategii inwestycyjnej. apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html 5 @@ -7454,7 +7454,7 @@ Economic Market Cluster Risks - Economic Market Cluster Risks + Ryzyko związane z klastrem rynków gospodarczych apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html 130 @@ -7462,7 +7462,7 @@ of - of + z apps/client/src/app/components/admin-settings/admin-settings.component.html 40 @@ -7470,7 +7470,7 @@ daily requests - daily requests + codzienne żądania apps/client/src/app/components/admin-settings/admin-settings.component.html 42 @@ -7546,7 +7546,7 @@ Ghostfolio Premium Data Provider API Key - Ghostfolio Premium Data Provider API Key + Klucz API dostawcy danych Premium Ghostfolio apps/client/src/app/components/user-account-membership/user-account-membership.component.ts 156 @@ -7562,7 +7562,7 @@ Tag - Tag + Tag libs/ui/src/lib/assistant/assistant.html 155 @@ -7570,7 +7570,7 @@ API Key - API Key + Klucz API libs/ui/src/lib/membership-card/membership-card.component.html 18 @@ -7578,7 +7578,7 @@ Generate Ghostfolio Premium Data Provider API key for self-hosted environments... - Generate Ghostfolio Premium Data Provider API key for self-hosted environments... + Generowanie klucza API Ghostfolio Premium Data Provider dla środowisk hostowanych samodzielnie... libs/ui/src/lib/membership-card/membership-card.component.html 26 @@ -7586,7 +7586,7 @@ out of - out of + poza apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html 22 @@ -7594,7 +7594,7 @@ rules align with your portfolio. - rules align with your portfolio. + zasady zgodne z Twoim portfelem. apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html 24 @@ -7602,7 +7602,7 @@ Save - Save + Zapisz apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts 61 @@ -7610,7 +7610,7 @@ Asset Class Cluster Risks - Asset Class Cluster Risks + Ryzyko klastra klasy aktywów apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html 82 From bb04a3a74f53b98cc2506eac5771e72bb175fc7d Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Wed, 25 Dec 2024 09:50:09 +0100 Subject: [PATCH 33/63] Feature/extend personal finance tools 20241222 (#4136) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Morningstar® Portfolio Manager * Stock Rover * Wealthbrain --- libs/common/src/lib/personal-finance-tools.ts | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/libs/common/src/lib/personal-finance-tools.ts b/libs/common/src/lib/personal-finance-tools.ts index 1ec5fbbc..63d5805c 100644 --- a/libs/common/src/lib/personal-finance-tools.ts +++ b/libs/common/src/lib/personal-finance-tools.ts @@ -449,6 +449,16 @@ export const personalFinanceTools: Product[] = [ pricingPerYear: '$60', slogan: 'Gain financial control and keep your data private.' }, + { + hasFreePlan: true, + hasSelfHostingAbility: false, + key: 'morningstar-portfolio-manager', + languages: ['English'], + name: 'Morningstar® Portfolio Manager', + origin: 'United States', + slogan: + 'Track your equity, fund, investment trust, ETF and pension investments in one place.' + }, { founded: 2017, hasFreePlan: false, @@ -647,6 +657,16 @@ export const personalFinanceTools: Product[] = [ note: 'StockMarketEye was discontinued in 2023', slogan: 'A Powerful Portfolio & Investment Tracking App' }, + { + founded: 2011, + hasFreePlan: true, + key: 'stock-rover', + languages: ['English'], + name: 'Stock Rover', + origin: 'United States', + pricingPerYear: '$79.99', + slogan: 'Investment Research and Portfolio Management' + }, { hasFreePlan: true, hasSelfHostingAbility: false, @@ -705,6 +725,15 @@ export const personalFinanceTools: Product[] = [ pricingPerYear: '$600', slogan: 'Make Smarter Investments' }, + { + founded: 2019, + hasFreePlan: false, + key: 'wealthbrain', + languages: ['English'], + name: 'Wealthbrain', + origin: 'United Arab Emirates', + slogan: 'Portfolio Management System' + }, { founded: 2024, hasSelfHostingAbility: true, From 9a579dd884ebaf623e0341c53bd9fd0d2de364f5 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Wed, 25 Dec 2024 09:50:27 +0100 Subject: [PATCH 34/63] Feature/change access tab icon on account page (#4137) * Change icon * Update changelog --- CHANGELOG.md | 1 + .../src/app/pages/user-account/user-account-page.component.ts | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8c63b47c..696e26d6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed +- Improved the usability of the link to manage access with a new icon - Improved support to import activities by `isin` in the _Yahoo Finance_ service - Improved the language localization for Polish (`pl`) diff --git a/apps/client/src/app/pages/user-account/user-account-page.component.ts b/apps/client/src/app/pages/user-account/user-account-page.component.ts index f8d68baa..fb42e196 100644 --- a/apps/client/src/app/pages/user-account/user-account-page.component.ts +++ b/apps/client/src/app/pages/user-account/user-account-page.component.ts @@ -42,7 +42,7 @@ export class UserAccountPageComponent implements OnDestroy, OnInit { showCondition: !!this.user?.subscription }, { - iconName: 'share-social-outline', + iconName: 'key-outline', label: $localize`Access`, path: ['/account', 'access'] } From f2638614d4b68530950d4e3c9a65a36121c3ebe4 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Wed, 25 Dec 2024 17:05:57 +0100 Subject: [PATCH 35/63] Feature/improve search for asset profiles with manual data source in create or update activity dialog (#4142) * Improve search for asset profiles with MANUAL data source * Update changelog --- CHANGELOG.md | 1 + .../data-provider/data-provider.service.ts | 3 +- .../interfaces/data-provider.interface.ts | 1 + .../data-provider/manual/manual.service.ts | 46 +++++++++++-------- ...ate-or-update-activity-dialog.component.ts | 7 +-- 5 files changed, 32 insertions(+), 26 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 696e26d6..bd21f635 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed +- Improved the search for asset profiles with `MANUAL` data source in the create or update activity dialog - Improved the usability of the link to manage access with a new icon - Improved support to import activities by `isin` in the _Yahoo Finance_ service - Improved the language localization for Polish (`pl`) diff --git a/apps/api/src/services/data-provider/data-provider.service.ts b/apps/api/src/services/data-provider/data-provider.service.ts index 3faf5b58..7c0df7a9 100644 --- a/apps/api/src/services/data-provider/data-provider.service.ts +++ b/apps/api/src/services/data-provider/data-provider.service.ts @@ -618,7 +618,8 @@ export class DataProviderService { promises.push( dataProviderService.search({ includeIndices, - query + query, + userId: user.id }) ); } diff --git a/apps/api/src/services/data-provider/interfaces/data-provider.interface.ts b/apps/api/src/services/data-provider/interfaces/data-provider.interface.ts index e448b4e1..5c316aac 100644 --- a/apps/api/src/services/data-provider/interfaces/data-provider.interface.ts +++ b/apps/api/src/services/data-provider/interfaces/data-provider.interface.ts @@ -79,4 +79,5 @@ export interface GetQuotesParams { export interface GetSearchParams { includeIndices?: boolean; query: string; + userId?: string; } 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 c3e27400..6f1c56f1 100644 --- a/apps/api/src/services/data-provider/manual/manual.service.ts +++ b/apps/api/src/services/data-provider/manual/manual.service.ts @@ -26,7 +26,6 @@ import { import { Injectable, Logger } from '@nestjs/common'; import { DataSource, SymbolProfile } from '@prisma/client'; import * as cheerio from 'cheerio'; -import { isUUID } from 'class-validator'; import { addDays, format, isBefore } from 'date-fns'; import got, { Headers } from 'got'; import * as jsonpath from 'jsonpath'; @@ -219,41 +218,48 @@ export class ManualService implements DataProviderInterface { return undefined; } - public async search({ query }: GetSearchParams): Promise { - let items = await this.prismaService.symbolProfile.findMany({ + public async search({ + query, + userId + }: GetSearchParams): Promise { + const items = await this.prismaService.symbolProfile.findMany({ select: { assetClass: true, assetSubClass: true, currency: true, dataSource: true, name: true, - symbol: true + symbol: true, + userId: true }, where: { - OR: [ + AND: [ { - dataSource: this.getName(), - name: { - mode: 'insensitive', - startsWith: query - } + dataSource: this.getName() }, { - dataSource: this.getName(), - symbol: { - mode: 'insensitive', - startsWith: query - } + OR: [ + { + name: { + mode: 'insensitive', + startsWith: query + } + }, + { + symbol: { + mode: 'insensitive', + startsWith: query + } + } + ] + }, + { + OR: [{ userId }, { userId: null }] } ] } }); - items = items.filter(({ symbol }) => { - // Remove UUID symbols (activities of type ITEM) - return !isUUID(symbol); - }); - return { items: items.map((item) => { return { ...item, dataProviderInfo: this.getDataProviderInfo() }; diff --git a/apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.component.ts b/apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.component.ts index cb21c255..feeb4abc 100644 --- a/apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.component.ts +++ b/apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.component.ts @@ -20,7 +20,6 @@ import { MatAutocompleteSelectedEvent } from '@angular/material/autocomplete'; import { DateAdapter, MAT_DATE_LOCALE } from '@angular/material/core'; import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'; import { AssetClass, AssetSubClass, Tag, Type } from '@prisma/client'; -import { isUUID } from 'class-validator'; import { isAfter, isToday } from 'date-fns'; import { EMPTY, Observable, Subject, lastValueFrom, of } from 'rxjs'; import { catchError, delay, map, startWith, takeUntil } from 'rxjs/operators'; @@ -476,10 +475,8 @@ export class CreateOrUpdateActivityDialog implements OnDestroy { fee: this.activityForm.get('fee').value, quantity: this.activityForm.get('quantity').value, symbol: - this.activityForm.get('searchSymbol').value?.symbol === undefined || - isUUID(this.activityForm.get('searchSymbol').value?.symbol) - ? this.activityForm.get('name').value - : this.activityForm.get('searchSymbol').value.symbol, + this.activityForm.get('searchSymbol')?.value?.symbol ?? + this.activityForm.get('name')?.value, tags: this.activityForm.get('tags').value, type: this.activityForm.get('type').value, unitPrice: this.activityForm.get('unitPrice').value From be4ac17a5cd86f944033c7485fc98a2a18e56f4c Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Wed, 25 Dec 2024 17:08:06 +0100 Subject: [PATCH 36/63] Release 2.131.0 (#4143) --- CHANGELOG.md | 2 +- package-lock.json | 4 ++-- package.json | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index bd21f635..beed1070 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,7 +5,7 @@ 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 +## 2.131.0 - 2024-12-25 ### Changed diff --git a/package-lock.json b/package-lock.json index d715ccc9..7ad5c59c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "ghostfolio", - "version": "2.130.0", + "version": "2.131.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "ghostfolio", - "version": "2.130.0", + "version": "2.131.0", "hasInstallScript": true, "license": "AGPL-3.0", "dependencies": { diff --git a/package.json b/package.json index 2eea5cc6..84b49ca0 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ghostfolio", - "version": "2.130.0", + "version": "2.131.0", "homepage": "https://ghostfol.io", "license": "AGPL-3.0", "repository": "https://github.com/ghostfolio/ghostfolio", From 38908f0e19b4cfaf0ac4082ad16a5b81a7ebf1ca Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Thu, 26 Dec 2024 10:40:15 +0100 Subject: [PATCH 37/63] Feature/upgrade husky to version 9.1.7 (#4134) * Upgrade husky to version 9.1.7 * Update changelog --- CHANGELOG.md | 6 ++++++ package-lock.json | 8 ++++---- package.json | 2 +- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index beed1070..fdc0994e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,12 @@ 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 + +- Upgraded `husky` from version `9.1.6` to `9.1.7` + ## 2.131.0 - 2024-12-25 ### Changed diff --git a/package-lock.json b/package-lock.json index 7ad5c59c..21889217 100644 --- a/package-lock.json +++ b/package-lock.json @@ -144,7 +144,7 @@ "eslint-plugin-cypress": "2.15.1", "eslint-plugin-import": "2.29.1", "eslint-plugin-storybook": "0.6.15", - "husky": "9.1.6", + "husky": "9.1.7", "jest": "29.7.0", "jest-environment-jsdom": "29.7.0", "jest-preset-angular": "14.1.0", @@ -20798,9 +20798,9 @@ } }, "node_modules/husky": { - "version": "9.1.6", - "resolved": "https://registry.npmjs.org/husky/-/husky-9.1.6.tgz", - "integrity": "sha512-sqbjZKK7kf44hfdE94EoX8MZNk0n7HeW37O4YrVGCF4wzgQjp+akPAkfUK5LZ6KuR/6sqeAVuXHji+RzQgOn5A==", + "version": "9.1.7", + "resolved": "https://registry.npmjs.org/husky/-/husky-9.1.7.tgz", + "integrity": "sha512-5gs5ytaNjBrh5Ow3zrvdUUY+0VxIuWVL4i9irt6friV+BqdCfmV11CQTWMiBYWHbXhco+J1kHfTOUkePhCDvMA==", "dev": true, "license": "MIT", "bin": { diff --git a/package.json b/package.json index 84b49ca0..007330d5 100644 --- a/package.json +++ b/package.json @@ -190,7 +190,7 @@ "eslint-plugin-cypress": "2.15.1", "eslint-plugin-import": "2.29.1", "eslint-plugin-storybook": "0.6.15", - "husky": "9.1.6", + "husky": "9.1.7", "jest": "29.7.0", "jest-environment-jsdom": "29.7.0", "jest-preset-angular": "14.1.0", From c9047e7c17b9de26162d0ac6e5514078b87f21ca Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Fri, 27 Dec 2024 10:12:45 +0100 Subject: [PATCH 38/63] Feature/add user interface for received access (#4146) * Add user interface for received access * Update changelog --- CHANGELOG.md | 4 ++++ apps/api/src/app/user/user.service.ts | 4 +++- .../user-account-access.component.ts | 15 +++++++++++++-- .../user-account-access/user-account-access.html | 10 ++++++---- libs/common/src/lib/interfaces/user.interface.ts | 7 ++----- 5 files changed, 28 insertions(+), 12 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index fdc0994e..c9cd8d29 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## Unreleased +### Added + +- Added the user interface for received access from others + ### Changed - Upgraded `husky` from version `9.1.6` to `9.1.7` diff --git a/apps/api/src/app/user/user.service.ts b/apps/api/src/app/user/user.service.ts index bac6ed19..33e9a67d 100644 --- a/apps/api/src/app/user/user.service.ts +++ b/apps/api/src/app/user/user.service.ts @@ -89,6 +89,7 @@ export class UserService { }), this.tagService.getTagsForUser(id) ]); + const access = userData[0]; const firstActivity = userData[1]; let tags = userData[2]; @@ -119,7 +120,8 @@ export class UserService { access: access.map((accessItem) => { return { alias: accessItem.alias, - id: accessItem.id + id: accessItem.id, + permissions: accessItem.permissions }; }), accounts: Account, diff --git a/apps/client/src/app/components/user-account-access/user-account-access.component.ts b/apps/client/src/app/components/user-account-access/user-account-access.component.ts index 16a7627c..02f7d1b8 100644 --- a/apps/client/src/app/components/user-account-access/user-account-access.component.ts +++ b/apps/client/src/app/components/user-account-access/user-account-access.component.ts @@ -27,7 +27,8 @@ import { CreateOrUpdateAccessDialog } from './create-or-update-access-dialog/cre templateUrl: './user-account-access.html' }) export class UserAccountAccessComponent implements OnDestroy, OnInit { - public accesses: Access[]; + public accessesGet: Access[]; + public accessesGive: Access[]; public deviceType: string; public hasPermissionToCreateAccess: boolean; public hasPermissionToDeleteAccess: boolean; @@ -125,11 +126,21 @@ export class UserAccountAccessComponent implements OnDestroy, OnInit { } private update() { + this.accessesGet = this.user.access.map(({ alias, id, permissions }) => { + return { + alias, + id, + permissions, + grantee: $localize`Me`, + type: 'PRIVATE' + }; + }); + this.dataService .fetchAccesses() .pipe(takeUntil(this.unsubscribeSubject)) .subscribe((accesses) => { - this.accesses = accesses; + this.accessesGive = accesses; this.changeDetectorRef.markForCheck(); }); diff --git a/apps/client/src/app/components/user-account-access/user-account-access.html b/apps/client/src/app/components/user-account-access/user-account-access.html index e5d43cad..efb91898 100644 --- a/apps/client/src/app/components/user-account-access/user-account-access.html +++ b/apps/client/src/app/components/user-account-access/user-account-access.html @@ -1,14 +1,16 @@
-

+ @if (accessesGet.length > 0) { +

Received Access

+ + } +

Granted Access @if (user?.subscription?.type === 'Basic') { }

[]; accounts: Account[]; dateOfFirstActivity: Date; id: string; From 15639cb3d09714fb75dc73daf14d150483286af5 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Sat, 28 Dec 2024 09:54:05 +0100 Subject: [PATCH 39/63] Feature/move set Ghostfolio API key to experimental (#4147) * Move set Ghostfolio API key to experimental --- .../admin-settings.component.ts | 3 ++- .../ghostfolio-premium-api-dialog.html | 24 ++++++++++--------- .../interfaces/interfaces.ts | 3 +++ 3 files changed, 18 insertions(+), 12 deletions(-) diff --git a/apps/client/src/app/components/admin-settings/admin-settings.component.ts b/apps/client/src/app/components/admin-settings/admin-settings.component.ts index 1ff67e01..38b47813 100644 --- a/apps/client/src/app/components/admin-settings/admin-settings.component.ts +++ b/apps/client/src/app/components/admin-settings/admin-settings.component.ts @@ -100,7 +100,8 @@ export class AdminSettingsComponent implements OnDestroy, OnInit { autoFocus: false, data: { deviceType: this.deviceType, - pricingUrl: this.pricingUrl + pricingUrl: this.pricingUrl, + user: this.user }, height: this.deviceType === 'mobile' ? '98vh' : undefined, width: this.deviceType === 'mobile' ? '100vw' : '50rem' diff --git a/apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/ghostfolio-premium-api-dialog.html b/apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/ghostfolio-premium-api-dialog.html index f2f75375..ac777ffd 100644 --- a/apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/ghostfolio-premium-api-dialog.html +++ b/apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/ghostfolio-premium-api-dialog.html @@ -31,17 +31,19 @@ mat-flat-button >Notify me -
- or -
- + @if (data.user?.settings?.isExperimentalFeatures) { +
+ or +
+ + }
diff --git a/apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/interfaces/interfaces.ts b/apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/interfaces/interfaces.ts index 0c629599..157a6f41 100644 --- a/apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/interfaces/interfaces.ts +++ b/apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/interfaces/interfaces.ts @@ -1,4 +1,7 @@ +import { User } from '@ghostfolio/common/interfaces'; + export interface GhostfolioPremiumApiDialogParams { deviceType: string; pricingUrl: string; + user: User; } From 81f874bbc2273d7d5543e624cfaaef6a49023ede Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Sat, 28 Dec 2024 09:54:39 +0100 Subject: [PATCH 40/63] Feature/improve language localization for de 20241227 (#4148) * Update translations * Update changelog --- CHANGELOG.md | 1 + apps/client/src/locales/messages.ca.xlf | 18 +++++++++++++++++- apps/client/src/locales/messages.de.xlf | 20 ++++++++++++++++++-- apps/client/src/locales/messages.es.xlf | 18 +++++++++++++++++- apps/client/src/locales/messages.fr.xlf | 18 +++++++++++++++++- apps/client/src/locales/messages.it.xlf | 18 +++++++++++++++++- apps/client/src/locales/messages.nl.xlf | 18 +++++++++++++++++- apps/client/src/locales/messages.pl.xlf | 20 ++++++++++++++++++-- apps/client/src/locales/messages.pt.xlf | 18 +++++++++++++++++- apps/client/src/locales/messages.tr.xlf | 18 +++++++++++++++++- apps/client/src/locales/messages.xlf | 16 +++++++++++++++- apps/client/src/locales/messages.zh.xlf | 18 +++++++++++++++++- 12 files changed, 188 insertions(+), 13 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c9cd8d29..2f8b661e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed +- Improved the language localization for German (`de`) - Upgraded `husky` from version `9.1.6` to `9.1.7` ## 2.131.0 - 2024-12-25 diff --git a/apps/client/src/locales/messages.ca.xlf b/apps/client/src/locales/messages.ca.xlf index 69bf055b..357e2744 100644 --- a/apps/client/src/locales/messages.ca.xlf +++ b/apps/client/src/locales/messages.ca.xlf @@ -3307,7 +3307,7 @@ Granted Access apps/client/src/app/components/user-account-access/user-account-access.html - 5 + 7 @@ -7616,6 +7616,22 @@ 82 + + Me + Me + + apps/client/src/app/components/user-account-access/user-account-access.component.ts + 134 + + + + Received Access + Received Access + + apps/client/src/app/components/user-account-access/user-account-access.html + 3 + + diff --git a/apps/client/src/locales/messages.de.xlf b/apps/client/src/locales/messages.de.xlf index 561bdea3..2a49abfb 100644 --- a/apps/client/src/locales/messages.de.xlf +++ b/apps/client/src/locales/messages.de.xlf @@ -1815,10 +1815,10 @@ Granted Access - Zugangsberechtigung + Gewährte Zugangsberechtigung apps/client/src/app/components/user-account-access/user-account-access.html - 5 + 7 @@ -7616,6 +7616,22 @@ 82 + + Me + Ich + + apps/client/src/app/components/user-account-access/user-account-access.component.ts + 134 + + + + Received Access + Erhaltene Zugangsberechtigung + + apps/client/src/app/components/user-account-access/user-account-access.html + 3 + + diff --git a/apps/client/src/locales/messages.es.xlf b/apps/client/src/locales/messages.es.xlf index f4eecb92..4eb127cc 100644 --- a/apps/client/src/locales/messages.es.xlf +++ b/apps/client/src/locales/messages.es.xlf @@ -1819,7 +1819,7 @@ Acceso concedido apps/client/src/app/components/user-account-access/user-account-access.html - 5 + 7 @@ -7617,6 +7617,22 @@ 82 + + Me + Me + + apps/client/src/app/components/user-account-access/user-account-access.component.ts + 134 + + + + Received Access + Received Access + + apps/client/src/app/components/user-account-access/user-account-access.html + 3 + + diff --git a/apps/client/src/locales/messages.fr.xlf b/apps/client/src/locales/messages.fr.xlf index ee90ad9a..a01b9651 100644 --- a/apps/client/src/locales/messages.fr.xlf +++ b/apps/client/src/locales/messages.fr.xlf @@ -2174,7 +2174,7 @@ Accès donné apps/client/src/app/components/user-account-access/user-account-access.html - 5 + 7 @@ -7616,6 +7616,22 @@ 82 + + Me + Me + + apps/client/src/app/components/user-account-access/user-account-access.component.ts + 134 + + + + Received Access + Received Access + + apps/client/src/app/components/user-account-access/user-account-access.html + 3 + + diff --git a/apps/client/src/locales/messages.it.xlf b/apps/client/src/locales/messages.it.xlf index aafcc1b5..172909d0 100644 --- a/apps/client/src/locales/messages.it.xlf +++ b/apps/client/src/locales/messages.it.xlf @@ -1819,7 +1819,7 @@ Accesso concesso apps/client/src/app/components/user-account-access/user-account-access.html - 5 + 7 @@ -7617,6 +7617,22 @@ 82 + + Me + Me + + apps/client/src/app/components/user-account-access/user-account-access.component.ts + 134 + + + + Received Access + Received Access + + apps/client/src/app/components/user-account-access/user-account-access.html + 3 + + diff --git a/apps/client/src/locales/messages.nl.xlf b/apps/client/src/locales/messages.nl.xlf index 8d91118f..b13e4d66 100644 --- a/apps/client/src/locales/messages.nl.xlf +++ b/apps/client/src/locales/messages.nl.xlf @@ -1818,7 +1818,7 @@ Verleende toegang apps/client/src/app/components/user-account-access/user-account-access.html - 5 + 7 @@ -7616,6 +7616,22 @@ 82 + + Me + Me + + apps/client/src/app/components/user-account-access/user-account-access.component.ts + 134 + + + + Received Access + Received Access + + apps/client/src/app/components/user-account-access/user-account-access.html + 3 + + diff --git a/apps/client/src/locales/messages.pl.xlf b/apps/client/src/locales/messages.pl.xlf index 223c8a57..06b42b64 100644 --- a/apps/client/src/locales/messages.pl.xlf +++ b/apps/client/src/locales/messages.pl.xlf @@ -3031,7 +3031,7 @@ Przyznano dostęp apps/client/src/app/components/user-account-access/user-account-access.html - 5 + 7 @@ -3812,7 +3812,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 to zapewniający prywatność, open source'owy panel do zarządzania finansami osobistymi. Przeanalizuj szczegółowo swoją alokację aktywów, określ swoją wartość netto i podejmuj przemyślane decyzje inwestycyjne oparte na danych. + Ghostfolio to zapewniający prywatność, open source'owy panel do zarządzania finansami osobistymi. Przeanalizuj szczegółowo swoją alokację aktywów, określ swoją wartość netto i podejmuj przemyślane decyzje inwestycyjne oparte na danych. apps/client/src/app/pages/landing/landing-page.html 9 @@ -7616,6 +7616,22 @@ 82 + + Me + Me + + apps/client/src/app/components/user-account-access/user-account-access.component.ts + 134 + + + + Received Access + Received Access + + apps/client/src/app/components/user-account-access/user-account-access.html + 3 + + diff --git a/apps/client/src/locales/messages.pt.xlf b/apps/client/src/locales/messages.pt.xlf index bfe9c77b..3ad4c089 100644 --- a/apps/client/src/locales/messages.pt.xlf +++ b/apps/client/src/locales/messages.pt.xlf @@ -2122,7 +2122,7 @@ Acesso Concedido apps/client/src/app/components/user-account-access/user-account-access.html - 5 + 7 @@ -7616,6 +7616,22 @@ 82 + + Me + Me + + apps/client/src/app/components/user-account-access/user-account-access.component.ts + 134 + + + + Received Access + Received Access + + apps/client/src/app/components/user-account-access/user-account-access.html + 3 + + diff --git a/apps/client/src/locales/messages.tr.xlf b/apps/client/src/locales/messages.tr.xlf index eea97ae1..5e8a124e 100644 --- a/apps/client/src/locales/messages.tr.xlf +++ b/apps/client/src/locales/messages.tr.xlf @@ -5171,7 +5171,7 @@ xErişim İzni Verildi apps/client/src/app/components/user-account-access/user-account-access.html - 5 + 7 @@ -7616,6 +7616,22 @@ 82 + + Me + Me + + apps/client/src/app/components/user-account-access/user-account-access.component.ts + 134 + + + + Received Access + Received Access + + apps/client/src/app/components/user-account-access/user-account-access.html + 3 + + diff --git a/apps/client/src/locales/messages.xlf b/apps/client/src/locales/messages.xlf index 1e4fa6cd..d94fa109 100644 --- a/apps/client/src/locales/messages.xlf +++ b/apps/client/src/locales/messages.xlf @@ -2832,7 +2832,7 @@ Granted Access apps/client/src/app/components/user-account-access/user-account-access.html - 5 + 7 @@ -6891,6 +6891,20 @@ 82 + + Received Access + + apps/client/src/app/components/user-account-access/user-account-access.html + 3 + + + + Me + + apps/client/src/app/components/user-account-access/user-account-access.component.ts + 134 + + diff --git a/apps/client/src/locales/messages.zh.xlf b/apps/client/src/locales/messages.zh.xlf index 0271ddb7..e88e77ae 100644 --- a/apps/client/src/locales/messages.zh.xlf +++ b/apps/client/src/locales/messages.zh.xlf @@ -3048,7 +3048,7 @@ 授予访问权限 apps/client/src/app/components/user-account-access/user-account-access.html - 5 + 7 @@ -7617,6 +7617,22 @@ 82 + + Me + Me + + apps/client/src/app/components/user-account-access/user-account-access.component.ts + 134 + + + + Received Access + Received Access + + apps/client/src/app/components/user-account-access/user-account-access.html + 3 + + From 615278a887fb6bbe4b192604ee6f9df5b5666ce6 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Sun, 29 Dec 2024 19:44:14 +0100 Subject: [PATCH 41/63] Feature/improve automatic deletion of unused asset profiles (#4149) * Improve automatic deletion of unused asset profiles * Update changelog --- CHANGELOG.md | 1 + apps/api/src/app/order/order.service.ts | 5 +---- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2f8b661e..765dcd9f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed +- Improved support for automatic deletion of unused asset profiles when deleting activities - Improved the language localization for German (`de`) - Upgraded `husky` from version `9.1.6` to `9.1.7` diff --git a/apps/api/src/app/order/order.service.ts b/apps/api/src/app/order/order.service.ts index 129f3d8a..e8081135 100644 --- a/apps/api/src/app/order/order.service.ts +++ b/apps/api/src/app/order/order.service.ts @@ -224,10 +224,7 @@ export class OrderService { order.symbolProfileId ]); - if ( - ['FEE', 'INTEREST', 'ITEM', 'LIABILITY'].includes(order.type) || - symbolProfile.activitiesCount === 0 - ) { + if (symbolProfile.activitiesCount === 0) { await this.symbolProfileService.deleteById(order.symbolProfileId); } From 46cbbd3bc4af9ed395ef81476190eb37640a83de Mon Sep 17 00:00:00 2001 From: Karel De Smet Date: Sun, 29 Dec 2024 19:47:32 +0100 Subject: [PATCH 42/63] Feature/upgrade to nx 20.3 (#4152) * Upgrade to Nx 20.3 * Update changelog --- CHANGELOG.md | 8 + apps/client/.eslintrc.json | 6 + apps/client/src/app/app.component.ts | 3 +- .../access-table/access-table.component.ts | 3 +- .../account-detail-dialog.component.ts | 3 +- .../accounts-table.component.ts | 3 +- .../admin-jobs/admin-jobs.component.ts | 3 +- .../admin-market-data.component.ts | 3 +- .../asset-profile-dialog.component.ts | 3 +- .../create-asset-profile-dialog.component.ts | 3 +- .../admin-overview.component.ts | 3 +- .../admin-platform.component.ts | 3 +- ...ate-or-update-platform-dialog.component.ts | 3 +- .../admin-settings.component.ts | 3 +- ...ghostfolio-premium-api-dialog.component.ts | 1 - .../admin-tag/admin-tag.component.ts | 3 +- .../create-or-update-tag-dialog.component.ts | 3 +- .../admin-users/admin-users.component.ts | 3 +- .../asset-profile-icon.component.ts | 1 - .../benchmark-comparator.component.ts | 3 +- .../dialog-footer/dialog-footer.component.ts | 3 +- .../dialog-header/dialog-header.component.ts | 3 +- .../fear-and-greed-index.component.ts | 3 +- .../app/components/header/header.component.ts | 3 +- .../holding-detail-dialog.component.ts | 1 - .../home-holdings/home-holdings.component.ts | 3 +- .../home-market/home-market.component.ts | 3 +- .../home-overview/home-overview.component.ts | 3 +- .../home-summary/home-summary.component.ts | 3 +- .../investment-chart.component.ts | 3 +- ...ogin-with-access-token-dialog.component.ts | 3 +- .../portfolio-performance.component.ts | 3 +- .../portfolio-summary.component.ts | 3 +- .../rule-settings-dialog.component.ts | 1 - .../src/app/components/rule/rule.component.ts | 3 +- .../app/components/rules/rules.component.ts | 3 +- ...scription-interstitial-dialog.component.ts | 3 +- .../app/components/toggle/toggle.component.ts | 3 +- ...reate-or-update-access-dialog.component.ts | 3 +- .../user-account-access.component.ts | 3 +- .../user-account-membership.component.ts | 3 +- .../user-account-settings.component.ts | 3 +- .../world-map-chart.component.ts | 3 +- .../alert-dialog/alert-dialog.component.ts | 1 - .../confirmation-dialog.component.ts | 1 - .../prompt-dialog/prompt-dialog.component.ts | 1 - .../file-drop/file-drop.directive.ts | 3 +- .../app/pages/about/about-page.component.ts | 3 +- .../changelog/changelog-page.component.ts | 3 +- .../about/license/license-page.component.ts | 3 +- .../oss-friends/oss-friends-page.component.ts | 3 +- .../overview/about-overview-page.component.ts | 3 +- .../privacy-policy-page.component.ts | 3 +- .../pages/accounts/accounts-page.component.ts | 3 +- ...eate-or-update-account-dialog.component.ts | 3 +- .../transfer-balance-dialog.component.ts | 3 +- .../app/pages/admin/admin-page.component.ts | 3 +- .../src/app/pages/api/api-page.component.ts | 1 - .../src/app/pages/auth/auth-page.component.ts | 3 +- .../hallo-ghostfolio-page.component.ts | 1 - .../hello-ghostfolio-page.component.ts | 1 - ...st-months-in-open-source-page.component.ts | 1 - ...-meets-internet-identity-page.component.ts | 1 - ...get-my-finances-in-order-page.component.ts | 1 - .../500-stars-on-github-page.component.ts | 1 - .../hacktoberfest-2022-page.component.ts | 1 - .../black-friday-2022-page.component.ts | 1 - ...g-your-personal-finances-page.component.ts | 1 - ...auf-sackgeld-vorgestellt-page.component.ts | 1 - .../ghostfolio-meets-umbrel-page.component.ts | 1 - .../1000-stars-on-github-page.component.ts | 1 - ...otential-with-ghostfolio-page.component.ts | 1 - ...ploring-the-path-to-fire-page.component.ts | 1 - ...tfolio-joins-oss-friends-page.component.ts | 1 - .../ghostfolio-2-page.component.ts | 1 - .../hacktoberfest-2023-page.component.ts | 1 - .../black-week-2023-page.component.ts | 1 - ...oberfest-2023-debriefing-page.component.ts | 1 - .../hacktoberfest-2024-page.component.ts | 1 - .../black-weeks-2024-page.component.ts | 1 - .../src/app/pages/blog/blog-page.component.ts | 3 +- .../src/app/pages/faq/faq-page.component.ts | 3 +- .../overview/faq-overview-page.component.ts | 3 +- .../app/pages/faq/saas/saas-page.component.ts | 3 +- .../self-hosting-page.component.ts | 3 +- .../pages/features/features-page.component.ts | 1 - .../src/app/pages/home/home-page.component.ts | 3 +- .../pages/landing/landing-page.component.ts | 3 +- .../pages/markets/markets-page.component.ts | 3 +- .../src/app/pages/open/open-page.component.ts | 3 +- .../activities/activities-page.component.ts | 3 +- ...ate-or-update-activity-dialog.component.ts | 7 +- .../import-activities-dialog.component.ts | 3 +- .../allocations/allocations-page.component.ts | 3 +- .../analysis/analysis-page.component.ts | 3 +- .../portfolio/fire/fire-page.component.ts | 3 +- .../portfolio/portfolio-page.component.ts | 3 +- .../portfolio/x-ray/x-ray-page.component.ts | 3 +- .../pages/pricing/pricing-page.component.ts | 3 +- .../app/pages/public/public-page.component.ts | 3 +- .../pages/register/register-page.component.ts | 3 +- .../show-access-token-dialog.component.ts | 3 +- .../glossary/resources-glossary.component.ts | 3 +- .../guides/resources-guides.component.ts | 3 +- .../markets/resources-markets.component.ts | 3 +- .../overview/resources-overview.component.ts | 3 +- .../personal-finance-tools-page.component.ts | 3 +- .../product-page.component.ts | 1 - .../resources/resources-page.component.ts | 3 +- .../user-account-page.component.ts | 3 +- .../pages/webauthn/webauthn-page.component.ts | 1 - .../src/app/pages/zen/zen-page.component.ts | 3 +- .../src/app/pipes/symbol/symbol.pipe.ts | 5 +- apps/client/src/styles/theme.scss | 3 +- libs/ui/.eslintrc.json | 3 +- .../account-balances.component.ts | 1 - .../activities-filter.component.ts | 1 - .../activities-table.component.ts | 1 - .../activity-type/activity-type.component.ts | 1 - .../assistant-list-item.component.ts | 1 - .../src/lib/assistant/assistant.component.ts | 1 - .../benchmark-detail-dialog.component.ts | 1 - .../src/lib/benchmark/benchmark.component.ts | 1 - .../ui/src/lib/carousel/carousel.component.ts | 1 - .../currency-selector.component.ts | 1 - .../data-provider-credits.component.ts | 1 - .../fire-calculator.component.ts | 1 - ...cal-market-data-editor-dialog.component.ts | 1 - ...historical-market-data-editor.component.ts | 1 - .../holdings-table.component.ts | 1 - .../lib/line-chart/line-chart.component.ts | 1 - libs/ui/src/lib/logo/logo.component.ts | 1 - .../membership-card.component.ts | 1 - .../no-transactions-info.component.ts | 1 - .../portfolio-proportion-chart.component.ts | 1 - .../premium-indicator.component.ts | 1 - .../src/lib/shared/abstract-mat-form-field.ts | 3 +- .../symbol-autocomplete.component.ts | 1 - .../top-holdings/top-holdings.component.ts | 1 - .../treemap-chart/treemap-chart.component.ts | 1 - .../trend-indicator.component.ts | 1 - libs/ui/src/lib/value/value.component.ts | 1 - package-lock.json | 19847 ++++++++-------- package.json | 97 +- 144 files changed, 9586 insertions(+), 10682 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 765dcd9f..86f476ee 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,7 +15,15 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Improved support for automatic deletion of unused asset profiles when deleting activities - Improved the language localization for German (`de`) +- Upgraded the _Stripe_ dependencies +- Upgraded `angular` from version `18.2.8` to `19.0.5` - Upgraded `husky` from version `9.1.6` to `9.1.7` +- Upgraded `marked` from version `12.0.2` to `15.0.4` +- Upgraded `ng-extract-i18n-merge` from version `2.12.0` to `2.13.1` +- Upgraded `ngx-device-detector` from version `8.0.0` to `9.0.0` +- Upgraded `ngx-markdown` from version `18.0.0` to `19.0.0` +- Upgraded `Nx` from version `20.1.2` to `20.3.0` +- Upgraded `zone.js` from version `0.14.10` to `0.15.0` ## 2.131.0 - 2024-12-25 diff --git a/apps/client/.eslintrc.json b/apps/client/.eslintrc.json index 5438b3c9..fdb4f84f 100644 --- a/apps/client/.eslintrc.json +++ b/apps/client/.eslintrc.json @@ -16,6 +16,12 @@ { "files": ["*.js", "*.jsx"], "rules": {} + }, + { + "files": ["*.ts"], + "rules": { + "@angular-eslint/prefer-standalone": "off" + } } ], "plugins": ["@angular-eslint/eslint-plugin", "@typescript-eslint"], diff --git a/apps/client/src/app/app.component.ts b/apps/client/src/app/app.component.ts index 86d4282a..4982615a 100644 --- a/apps/client/src/app/app.component.ts +++ b/apps/client/src/app/app.component.ts @@ -38,7 +38,8 @@ import { UserService } from './services/user/user.service'; selector: 'gf-root', changeDetection: ChangeDetectionStrategy.OnPush, templateUrl: './app.component.html', - styleUrls: ['./app.component.scss'] + styleUrls: ['./app.component.scss'], + standalone: false }) export class AppComponent implements OnDestroy, OnInit { @HostBinding('class.has-info-message') get getHasMessage() { diff --git a/apps/client/src/app/components/access-table/access-table.component.ts b/apps/client/src/app/components/access-table/access-table.component.ts index eb40647e..da8ceb09 100644 --- a/apps/client/src/app/components/access-table/access-table.component.ts +++ b/apps/client/src/app/components/access-table/access-table.component.ts @@ -18,7 +18,8 @@ import { MatTableDataSource } from '@angular/material/table'; selector: 'gf-access-table', changeDetection: ChangeDetectionStrategy.OnPush, templateUrl: './access-table.component.html', - styleUrls: ['./access-table.component.scss'] + styleUrls: ['./access-table.component.scss'], + standalone: false }) export class AccessTableComponent implements OnChanges { @Input() accesses: Access[]; diff --git a/apps/client/src/app/components/account-detail-dialog/account-detail-dialog.component.ts b/apps/client/src/app/components/account-detail-dialog/account-detail-dialog.component.ts index d4bdad55..c77d8cb4 100644 --- a/apps/client/src/app/components/account-detail-dialog/account-detail-dialog.component.ts +++ b/apps/client/src/app/components/account-detail-dialog/account-detail-dialog.component.ts @@ -37,7 +37,8 @@ import { AccountDetailDialogParams } from './interfaces/interfaces'; selector: 'gf-account-detail-dialog', changeDetection: ChangeDetectionStrategy.OnPush, templateUrl: 'account-detail-dialog.html', - styleUrls: ['./account-detail-dialog.component.scss'] + styleUrls: ['./account-detail-dialog.component.scss'], + standalone: false }) export class AccountDetailDialog implements OnDestroy, OnInit { public accountBalances: AccountBalancesResponse['balances']; diff --git a/apps/client/src/app/components/accounts-table/accounts-table.component.ts b/apps/client/src/app/components/accounts-table/accounts-table.component.ts index 06359e57..a130e7a2 100644 --- a/apps/client/src/app/components/accounts-table/accounts-table.component.ts +++ b/apps/client/src/app/components/accounts-table/accounts-table.component.ts @@ -23,7 +23,8 @@ import { Subject, Subscription } from 'rxjs'; selector: 'gf-accounts-table', changeDetection: ChangeDetectionStrategy.OnPush, templateUrl: './accounts-table.component.html', - styleUrls: ['./accounts-table.component.scss'] + styleUrls: ['./accounts-table.component.scss'], + standalone: false }) export class AccountsTableComponent implements OnChanges, OnDestroy { @Input() accounts: AccountModel[]; diff --git a/apps/client/src/app/components/admin-jobs/admin-jobs.component.ts b/apps/client/src/app/components/admin-jobs/admin-jobs.component.ts index 577303d6..17b7f54d 100644 --- a/apps/client/src/app/components/admin-jobs/admin-jobs.component.ts +++ b/apps/client/src/app/components/admin-jobs/admin-jobs.component.ts @@ -27,7 +27,8 @@ import { takeUntil } from 'rxjs/operators'; changeDetection: ChangeDetectionStrategy.OnPush, selector: 'gf-admin-jobs', styleUrls: ['./admin-jobs.scss'], - templateUrl: './admin-jobs.html' + templateUrl: './admin-jobs.html', + standalone: false }) export class AdminJobsComponent implements OnDestroy, OnInit { public DATA_GATHERING_QUEUE_PRIORITY_LOW = DATA_GATHERING_QUEUE_PRIORITY_LOW; diff --git a/apps/client/src/app/components/admin-market-data/admin-market-data.component.ts b/apps/client/src/app/components/admin-market-data/admin-market-data.component.ts index 5eb86969..30ef457d 100644 --- a/apps/client/src/app/components/admin-market-data/admin-market-data.component.ts +++ b/apps/client/src/app/components/admin-market-data/admin-market-data.component.ts @@ -48,7 +48,8 @@ import { CreateAssetProfileDialogParams } from './create-asset-profile-dialog/in host: { class: 'has-fab' }, selector: 'gf-admin-market-data', styleUrls: ['./admin-market-data.scss'], - templateUrl: './admin-market-data.html' + templateUrl: './admin-market-data.html', + standalone: false }) export class AdminMarketDataComponent implements AfterViewInit, OnDestroy, OnInit diff --git a/apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts b/apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts index a271915f..a144bae8 100644 --- a/apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts +++ b/apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts @@ -42,7 +42,8 @@ import { AssetProfileDialogParams } from './interfaces/interfaces'; selector: 'gf-asset-profile-dialog', changeDetection: ChangeDetectionStrategy.OnPush, templateUrl: 'asset-profile-dialog.html', - styleUrls: ['./asset-profile-dialog.component.scss'] + styleUrls: ['./asset-profile-dialog.component.scss'], + standalone: false }) export class AssetProfileDialog implements OnDestroy, OnInit { public assetProfileClass: string; diff --git a/apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.component.ts b/apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.component.ts index 422ac45a..fa5e33f1 100644 --- a/apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.component.ts +++ b/apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.component.ts @@ -28,7 +28,8 @@ import { CreateAssetProfileDialogMode } from './interfaces/interfaces'; host: { class: 'h-100' }, selector: 'gf-create-asset-profile-dialog', styleUrls: ['./create-asset-profile-dialog.component.scss'], - templateUrl: 'create-asset-profile-dialog.html' + templateUrl: 'create-asset-profile-dialog.html', + standalone: false }) export class CreateAssetProfileDialog implements OnInit, OnDestroy { public createAssetProfileForm: FormGroup; diff --git a/apps/client/src/app/components/admin-overview/admin-overview.component.ts b/apps/client/src/app/components/admin-overview/admin-overview.component.ts index 82bb85c1..d217f871 100644 --- a/apps/client/src/app/components/admin-overview/admin-overview.component.ts +++ b/apps/client/src/app/components/admin-overview/admin-overview.component.ts @@ -36,7 +36,8 @@ import { takeUntil } from 'rxjs/operators'; @Component({ selector: 'gf-admin-overview', styleUrls: ['./admin-overview.scss'], - templateUrl: './admin-overview.html' + templateUrl: './admin-overview.html', + standalone: false }) export class AdminOverviewComponent implements OnDestroy, OnInit { public couponDuration: StringValue = '14 days'; diff --git a/apps/client/src/app/components/admin-platform/admin-platform.component.ts b/apps/client/src/app/components/admin-platform/admin-platform.component.ts index 03b6fd32..1f84c2b8 100644 --- a/apps/client/src/app/components/admin-platform/admin-platform.component.ts +++ b/apps/client/src/app/components/admin-platform/admin-platform.component.ts @@ -29,7 +29,8 @@ import { CreateOrUpdatePlatformDialog } from './create-or-update-platform-dialog changeDetection: ChangeDetectionStrategy.OnPush, selector: 'gf-admin-platform', styleUrls: ['./admin-platform.component.scss'], - templateUrl: './admin-platform.component.html' + templateUrl: './admin-platform.component.html', + standalone: false }) export class AdminPlatformComponent implements OnInit, OnDestroy { @ViewChild(MatSort) sort: MatSort; diff --git a/apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.component.ts b/apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.component.ts index 518b6dd5..e29a4e05 100644 --- a/apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.component.ts +++ b/apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.component.ts @@ -19,7 +19,8 @@ import { CreateOrUpdatePlatformDialogParams } from './interfaces/interfaces'; host: { class: 'h-100' }, selector: 'gf-create-or-update-platform-dialog', styleUrls: ['./create-or-update-platform-dialog.scss'], - templateUrl: 'create-or-update-platform-dialog.html' + templateUrl: 'create-or-update-platform-dialog.html', + standalone: false }) export class CreateOrUpdatePlatformDialog implements OnDestroy { public platformForm: FormGroup; diff --git a/apps/client/src/app/components/admin-settings/admin-settings.component.ts b/apps/client/src/app/components/admin-settings/admin-settings.component.ts index 38b47813..be077c0e 100644 --- a/apps/client/src/app/components/admin-settings/admin-settings.component.ts +++ b/apps/client/src/app/components/admin-settings/admin-settings.component.ts @@ -30,7 +30,8 @@ import { GfGhostfolioPremiumApiDialogComponent } from './ghostfolio-premium-api- changeDetection: ChangeDetectionStrategy.OnPush, selector: 'gf-admin-settings', styleUrls: ['./admin-settings.component.scss'], - templateUrl: './admin-settings.component.html' + templateUrl: './admin-settings.component.html', + standalone: false }) export class AdminSettingsComponent implements OnDestroy, OnInit { public defaultDateFormat: string; diff --git a/apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/ghostfolio-premium-api-dialog.component.ts b/apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/ghostfolio-premium-api-dialog.component.ts index f15866f1..a8bb2957 100644 --- a/apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/ghostfolio-premium-api-dialog.component.ts +++ b/apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/ghostfolio-premium-api-dialog.component.ts @@ -25,7 +25,6 @@ import { GhostfolioPremiumApiDialogParams } from './interfaces/interfaces'; MatDialogModule ], selector: 'gf-ghostfolio-premium-api-dialog', - standalone: true, styleUrls: ['./ghostfolio-premium-api-dialog.scss'], templateUrl: './ghostfolio-premium-api-dialog.html' }) diff --git a/apps/client/src/app/components/admin-tag/admin-tag.component.ts b/apps/client/src/app/components/admin-tag/admin-tag.component.ts index b8c184b4..3c0bdb68 100644 --- a/apps/client/src/app/components/admin-tag/admin-tag.component.ts +++ b/apps/client/src/app/components/admin-tag/admin-tag.component.ts @@ -29,7 +29,8 @@ import { CreateOrUpdateTagDialog } from './create-or-update-tag-dialog/create-or changeDetection: ChangeDetectionStrategy.OnPush, selector: 'gf-admin-tag', styleUrls: ['./admin-tag.component.scss'], - templateUrl: './admin-tag.component.html' + templateUrl: './admin-tag.component.html', + standalone: false }) export class AdminTagComponent implements OnInit, OnDestroy { @ViewChild(MatSort) sort: MatSort; diff --git a/apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.component.ts b/apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.component.ts index f5097435..9b7194cc 100644 --- a/apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.component.ts +++ b/apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.component.ts @@ -19,7 +19,8 @@ import { CreateOrUpdateTagDialogParams } from './interfaces/interfaces'; host: { class: 'h-100' }, selector: 'gf-create-or-update-tag-dialog', styleUrls: ['./create-or-update-tag-dialog.scss'], - templateUrl: 'create-or-update-tag-dialog.html' + templateUrl: 'create-or-update-tag-dialog.html', + standalone: false }) export class CreateOrUpdateTagDialog implements OnDestroy { public tagForm: FormGroup; diff --git a/apps/client/src/app/components/admin-users/admin-users.component.ts b/apps/client/src/app/components/admin-users/admin-users.component.ts index 91c258f9..50b8cb5f 100644 --- a/apps/client/src/app/components/admin-users/admin-users.component.ts +++ b/apps/client/src/app/components/admin-users/admin-users.component.ts @@ -29,7 +29,8 @@ import { takeUntil } from 'rxjs/operators'; @Component({ selector: 'gf-admin-users', styleUrls: ['./admin-users.scss'], - templateUrl: './admin-users.html' + templateUrl: './admin-users.html', + standalone: false }) export class AdminUsersComponent implements OnDestroy, OnInit { @ViewChild(MatPaginator) paginator: MatPaginator; diff --git a/apps/client/src/app/components/asset-profile-icon/asset-profile-icon.component.ts b/apps/client/src/app/components/asset-profile-icon/asset-profile-icon.component.ts index 108c39b0..5db86296 100644 --- a/apps/client/src/app/components/asset-profile-icon/asset-profile-icon.component.ts +++ b/apps/client/src/app/components/asset-profile-icon/asset-profile-icon.component.ts @@ -13,7 +13,6 @@ import { DataSource } from '@prisma/client'; imports: [CommonModule], schemas: [CUSTOM_ELEMENTS_SCHEMA], selector: 'gf-asset-profile-icon', - standalone: true, styleUrls: ['./asset-profile-icon.component.scss'], templateUrl: './asset-profile-icon.component.html' }) diff --git a/apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.ts b/apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.ts index 4ea3422e..afcb561f 100644 --- a/apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.ts +++ b/apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.ts @@ -44,7 +44,8 @@ import annotationPlugin from 'chartjs-plugin-annotation'; selector: 'gf-benchmark-comparator', changeDetection: ChangeDetectionStrategy.OnPush, templateUrl: './benchmark-comparator.component.html', - styleUrls: ['./benchmark-comparator.component.scss'] + styleUrls: ['./benchmark-comparator.component.scss'], + standalone: false }) export class BenchmarkComparatorComponent implements OnChanges, OnDestroy { @Input() benchmark: Partial; diff --git a/apps/client/src/app/components/dialog-footer/dialog-footer.component.ts b/apps/client/src/app/components/dialog-footer/dialog-footer.component.ts index 07f37a31..1f27f9b2 100644 --- a/apps/client/src/app/components/dialog-footer/dialog-footer.component.ts +++ b/apps/client/src/app/components/dialog-footer/dialog-footer.component.ts @@ -11,7 +11,8 @@ import { selector: 'gf-dialog-footer', changeDetection: ChangeDetectionStrategy.OnPush, templateUrl: './dialog-footer.component.html', - styleUrls: ['./dialog-footer.component.scss'] + styleUrls: ['./dialog-footer.component.scss'], + standalone: false }) export class DialogFooterComponent { @Input() deviceType: string; diff --git a/apps/client/src/app/components/dialog-header/dialog-header.component.ts b/apps/client/src/app/components/dialog-header/dialog-header.component.ts index f4fa82d3..0ff9d156 100644 --- a/apps/client/src/app/components/dialog-header/dialog-header.component.ts +++ b/apps/client/src/app/components/dialog-header/dialog-header.component.ts @@ -11,7 +11,8 @@ import { selector: 'gf-dialog-header', changeDetection: ChangeDetectionStrategy.OnPush, templateUrl: './dialog-header.component.html', - styleUrls: ['./dialog-header.component.scss'] + styleUrls: ['./dialog-header.component.scss'], + standalone: false }) export class DialogHeaderComponent { @Input() deviceType: string; diff --git a/apps/client/src/app/components/fear-and-greed-index/fear-and-greed-index.component.ts b/apps/client/src/app/components/fear-and-greed-index/fear-and-greed-index.component.ts index f7463532..96cb272a 100644 --- a/apps/client/src/app/components/fear-and-greed-index/fear-and-greed-index.component.ts +++ b/apps/client/src/app/components/fear-and-greed-index/fear-and-greed-index.component.ts @@ -12,7 +12,8 @@ import { selector: 'gf-fear-and-greed-index', changeDetection: ChangeDetectionStrategy.OnPush, templateUrl: './fear-and-greed-index.component.html', - styleUrls: ['./fear-and-greed-index.component.scss'] + styleUrls: ['./fear-and-greed-index.component.scss'], + standalone: false }) export class FearAndGreedIndexComponent implements OnChanges { @Input() fearAndGreedIndex: number; diff --git a/apps/client/src/app/components/header/header.component.ts b/apps/client/src/app/components/header/header.component.ts index 004fa5f3..728320ae 100644 --- a/apps/client/src/app/components/header/header.component.ts +++ b/apps/client/src/app/components/header/header.component.ts @@ -35,7 +35,8 @@ import { catchError, takeUntil } from 'rxjs/operators'; selector: 'gf-header', changeDetection: ChangeDetectionStrategy.OnPush, templateUrl: './header.component.html', - styleUrls: ['./header.component.scss'] + styleUrls: ['./header.component.scss'], + standalone: false }) export class HeaderComponent implements OnChanges { @HostListener('window:keydown', ['$event']) diff --git a/apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.component.ts b/apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.component.ts index b430f36e..94d5bd91 100644 --- a/apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.component.ts +++ b/apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.component.ts @@ -81,7 +81,6 @@ import { HoldingDetailDialogParams } from './interfaces/interfaces'; ], schemas: [CUSTOM_ELEMENTS_SCHEMA], selector: 'gf-holding-detail-dialog', - standalone: true, styleUrls: ['./holding-detail-dialog.component.scss'], templateUrl: 'holding-detail-dialog.html' }) diff --git a/apps/client/src/app/components/home-holdings/home-holdings.component.ts b/apps/client/src/app/components/home-holdings/home-holdings.component.ts index d2b23d03..dd411f6c 100644 --- a/apps/client/src/app/components/home-holdings/home-holdings.component.ts +++ b/apps/client/src/app/components/home-holdings/home-holdings.component.ts @@ -20,7 +20,8 @@ import { takeUntil } from 'rxjs/operators'; @Component({ selector: 'gf-home-holdings', styleUrls: ['./home-holdings.scss'], - templateUrl: './home-holdings.html' + templateUrl: './home-holdings.html', + standalone: false }) export class HomeHoldingsComponent implements OnDestroy, OnInit { public static DEFAULT_HOLDINGS_VIEW_MODE: HoldingsViewMode = 'TABLE'; diff --git a/apps/client/src/app/components/home-market/home-market.component.ts b/apps/client/src/app/components/home-market/home-market.component.ts index 3480eaeb..e51bdf1c 100644 --- a/apps/client/src/app/components/home-market/home-market.component.ts +++ b/apps/client/src/app/components/home-market/home-market.component.ts @@ -18,7 +18,8 @@ import { takeUntil } from 'rxjs/operators'; @Component({ selector: 'gf-home-market', styleUrls: ['./home-market.scss'], - templateUrl: './home-market.html' + templateUrl: './home-market.html', + standalone: false }) export class HomeMarketComponent implements OnDestroy, OnInit { public benchmarks: Benchmark[]; diff --git a/apps/client/src/app/components/home-overview/home-overview.component.ts b/apps/client/src/app/components/home-overview/home-overview.component.ts index cd6495a3..b0e7be32 100644 --- a/apps/client/src/app/components/home-overview/home-overview.component.ts +++ b/apps/client/src/app/components/home-overview/home-overview.component.ts @@ -20,7 +20,8 @@ import { takeUntil } from 'rxjs/operators'; @Component({ selector: 'gf-home-overview', styleUrls: ['./home-overview.scss'], - templateUrl: './home-overview.html' + templateUrl: './home-overview.html', + standalone: false }) export class HomeOverviewComponent implements OnDestroy, OnInit { public dateRangeOptions = ToggleComponent.DEFAULT_DATE_RANGE_OPTIONS; diff --git a/apps/client/src/app/components/home-summary/home-summary.component.ts b/apps/client/src/app/components/home-summary/home-summary.component.ts index 98fa0065..41a09fa4 100644 --- a/apps/client/src/app/components/home-summary/home-summary.component.ts +++ b/apps/client/src/app/components/home-summary/home-summary.component.ts @@ -16,7 +16,8 @@ import { takeUntil } from 'rxjs/operators'; @Component({ selector: 'gf-home-summary', styleUrls: ['./home-summary.scss'], - templateUrl: './home-summary.html' + templateUrl: './home-summary.html', + standalone: false }) export class HomeSummaryComponent implements OnDestroy, OnInit { public hasImpersonationId: boolean; diff --git a/apps/client/src/app/components/investment-chart/investment-chart.component.ts b/apps/client/src/app/components/investment-chart/investment-chart.component.ts index aa0ce557..9fd24548 100644 --- a/apps/client/src/app/components/investment-chart/investment-chart.component.ts +++ b/apps/client/src/app/components/investment-chart/investment-chart.component.ts @@ -45,7 +45,8 @@ import { isAfter } from 'date-fns'; selector: 'gf-investment-chart', changeDetection: ChangeDetectionStrategy.OnPush, templateUrl: './investment-chart.component.html', - styleUrls: ['./investment-chart.component.scss'] + styleUrls: ['./investment-chart.component.scss'], + standalone: false }) export class InvestmentChartComponent implements OnChanges, OnDestroy { @Input() benchmarkDataItems: InvestmentItem[] = []; diff --git a/apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.component.ts b/apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.component.ts index dfa3769d..8ee6f59d 100644 --- a/apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.component.ts +++ b/apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.component.ts @@ -14,7 +14,8 @@ import { Router } from '@angular/router'; selector: 'gf-login-with-access-token-dialog', changeDetection: ChangeDetectionStrategy.OnPush, styleUrls: ['./login-with-access-token-dialog.scss'], - templateUrl: 'login-with-access-token-dialog.html' + templateUrl: 'login-with-access-token-dialog.html', + standalone: false }) export class LoginWithAccessTokenDialog { public isAccessTokenHidden = true; diff --git a/apps/client/src/app/components/portfolio-performance/portfolio-performance.component.ts b/apps/client/src/app/components/portfolio-performance/portfolio-performance.component.ts index 7ca4677b..0c575d98 100644 --- a/apps/client/src/app/components/portfolio-performance/portfolio-performance.component.ts +++ b/apps/client/src/app/components/portfolio-performance/portfolio-performance.component.ts @@ -24,7 +24,8 @@ import { isNumber } from 'lodash'; selector: 'gf-portfolio-performance', changeDetection: ChangeDetectionStrategy.OnPush, templateUrl: './portfolio-performance.component.html', - styleUrls: ['./portfolio-performance.component.scss'] + styleUrls: ['./portfolio-performance.component.scss'], + standalone: false }) export class PortfolioPerformanceComponent implements OnChanges { @Input() deviceType: string; diff --git a/apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts b/apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts index 3189a338..25f7d930 100644 --- a/apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts +++ b/apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts @@ -17,7 +17,8 @@ import { formatDistanceToNow } from 'date-fns'; selector: 'gf-portfolio-summary', changeDetection: ChangeDetectionStrategy.OnPush, templateUrl: './portfolio-summary.component.html', - styleUrls: ['./portfolio-summary.component.scss'] + styleUrls: ['./portfolio-summary.component.scss'], + standalone: false }) export class PortfolioSummaryComponent implements OnChanges { @Input() baseCurrency: string; diff --git a/apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.component.ts b/apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.component.ts index 8b3dfed3..7ee9c66c 100644 --- a/apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.component.ts +++ b/apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.component.ts @@ -22,7 +22,6 @@ import { IRuleSettingsDialogParams } from './interfaces/interfaces'; MatSliderModule ], selector: 'gf-rule-settings-dialog', - standalone: true, styleUrls: ['./rule-settings-dialog.scss'], templateUrl: './rule-settings-dialog.html' }) diff --git a/apps/client/src/app/components/rule/rule.component.ts b/apps/client/src/app/components/rule/rule.component.ts index 04e6de66..7c358e1c 100644 --- a/apps/client/src/app/components/rule/rule.component.ts +++ b/apps/client/src/app/components/rule/rule.component.ts @@ -24,7 +24,8 @@ import { GfRuleSettingsDialogComponent } from './rule-settings-dialog/rule-setti selector: 'gf-rule', changeDetection: ChangeDetectionStrategy.OnPush, templateUrl: './rule.component.html', - styleUrls: ['./rule.component.scss'] + styleUrls: ['./rule.component.scss'], + standalone: false }) export class RuleComponent implements OnInit { @Input() hasPermissionToUpdateUserSettings: boolean; diff --git a/apps/client/src/app/components/rules/rules.component.ts b/apps/client/src/app/components/rules/rules.component.ts index bec0b642..118d15b2 100644 --- a/apps/client/src/app/components/rules/rules.component.ts +++ b/apps/client/src/app/components/rules/rules.component.ts @@ -16,7 +16,8 @@ import { selector: 'gf-rules', changeDetection: ChangeDetectionStrategy.OnPush, templateUrl: './rules.component.html', - styleUrls: ['./rules.component.scss'] + styleUrls: ['./rules.component.scss'], + standalone: false }) export class RulesComponent { @Input() hasPermissionToUpdateUserSettings: boolean; diff --git a/apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.component.ts b/apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.component.ts index 8e3afba2..d98c5471 100644 --- a/apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.component.ts +++ b/apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.component.ts @@ -8,7 +8,8 @@ import { SubscriptionInterstitialDialogParams } from './interfaces/interfaces'; host: { class: 'd-flex flex-column flex-grow-1 h-100' }, selector: 'gf-subscription-interstitial-dialog', styleUrls: ['./subscription-interstitial-dialog.scss'], - templateUrl: 'subscription-interstitial-dialog.html' + templateUrl: 'subscription-interstitial-dialog.html', + standalone: false }) export class SubscriptionInterstitialDialog { private readonly VARIANTS_COUNT = 2; diff --git a/apps/client/src/app/components/toggle/toggle.component.ts b/apps/client/src/app/components/toggle/toggle.component.ts index 4e056f1d..d5f451aa 100644 --- a/apps/client/src/app/components/toggle/toggle.component.ts +++ b/apps/client/src/app/components/toggle/toggle.component.ts @@ -14,7 +14,8 @@ import { FormControl } from '@angular/forms'; selector: 'gf-toggle', changeDetection: ChangeDetectionStrategy.OnPush, templateUrl: './toggle.component.html', - styleUrls: ['./toggle.component.scss'] + styleUrls: ['./toggle.component.scss'], + standalone: false }) export class ToggleComponent implements OnChanges { public static DEFAULT_DATE_RANGE_OPTIONS: ToggleOption[] = [ diff --git a/apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.component.ts b/apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.component.ts index 72726371..9f557acf 100644 --- a/apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.component.ts +++ b/apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.component.ts @@ -22,7 +22,8 @@ import { CreateOrUpdateAccessDialogParams } from './interfaces/interfaces'; host: { class: 'h-100' }, selector: 'gf-create-or-update-access-dialog', styleUrls: ['./create-or-update-access-dialog.scss'], - templateUrl: 'create-or-update-access-dialog.html' + templateUrl: 'create-or-update-access-dialog.html', + standalone: false }) export class CreateOrUpdateAccessDialog implements OnDestroy { public accessForm: FormGroup; diff --git a/apps/client/src/app/components/user-account-access/user-account-access.component.ts b/apps/client/src/app/components/user-account-access/user-account-access.component.ts index 02f7d1b8..6f111f45 100644 --- a/apps/client/src/app/components/user-account-access/user-account-access.component.ts +++ b/apps/client/src/app/components/user-account-access/user-account-access.component.ts @@ -24,7 +24,8 @@ import { CreateOrUpdateAccessDialog } from './create-or-update-access-dialog/cre host: { class: 'has-fab' }, selector: 'gf-user-account-access', styleUrls: ['./user-account-access.scss'], - templateUrl: './user-account-access.html' + templateUrl: './user-account-access.html', + standalone: false }) export class UserAccountAccessComponent implements OnDestroy, OnInit { public accessesGet: Access[]; diff --git a/apps/client/src/app/components/user-account-membership/user-account-membership.component.ts b/apps/client/src/app/components/user-account-membership/user-account-membership.component.ts index 9b9242df..d6f85f05 100644 --- a/apps/client/src/app/components/user-account-membership/user-account-membership.component.ts +++ b/apps/client/src/app/components/user-account-membership/user-account-membership.component.ts @@ -26,7 +26,8 @@ import { catchError, switchMap, takeUntil } from 'rxjs/operators'; changeDetection: ChangeDetectionStrategy.OnPush, selector: 'gf-user-account-membership', styleUrls: ['./user-account-membership.scss'], - templateUrl: './user-account-membership.html' + templateUrl: './user-account-membership.html', + standalone: false }) export class UserAccountMembershipComponent implements OnDestroy { public baseCurrency: string; diff --git a/apps/client/src/app/components/user-account-settings/user-account-settings.component.ts b/apps/client/src/app/components/user-account-settings/user-account-settings.component.ts index d92f1b63..c6f1d4d7 100644 --- a/apps/client/src/app/components/user-account-settings/user-account-settings.component.ts +++ b/apps/client/src/app/components/user-account-settings/user-account-settings.component.ts @@ -32,7 +32,8 @@ import { catchError, takeUntil } from 'rxjs/operators'; changeDetection: ChangeDetectionStrategy.OnPush, selector: 'gf-user-account-settings', styleUrls: ['./user-account-settings.scss'], - templateUrl: './user-account-settings.html' + templateUrl: './user-account-settings.html', + standalone: false }) export class UserAccountSettingsComponent implements OnDestroy, OnInit { public appearancePlaceholder = $localize`Auto`; diff --git a/apps/client/src/app/components/world-map-chart/world-map-chart.component.ts b/apps/client/src/app/components/world-map-chart/world-map-chart.component.ts index 969bd61e..b394915c 100644 --- a/apps/client/src/app/components/world-map-chart/world-map-chart.component.ts +++ b/apps/client/src/app/components/world-map-chart/world-map-chart.component.ts @@ -14,7 +14,8 @@ import svgMap from 'svgmap'; selector: 'gf-world-map-chart', changeDetection: ChangeDetectionStrategy.OnPush, templateUrl: './world-map-chart.component.html', - styleUrls: ['./world-map-chart.component.scss'] + styleUrls: ['./world-map-chart.component.scss'], + standalone: false }) export class WorldMapChartComponent implements OnChanges, OnDestroy { @Input() countries: { [code: string]: { name?: string; value: number } }; diff --git a/apps/client/src/app/core/notification/alert-dialog/alert-dialog.component.ts b/apps/client/src/app/core/notification/alert-dialog/alert-dialog.component.ts index 65439ec4..8aefe84c 100644 --- a/apps/client/src/app/core/notification/alert-dialog/alert-dialog.component.ts +++ b/apps/client/src/app/core/notification/alert-dialog/alert-dialog.component.ts @@ -8,7 +8,6 @@ import { IAlertDialogParams } from './interfaces/interfaces'; @Component({ imports: [CommonModule, MatButtonModule, MatDialogModule], selector: 'gf-alert-dialog', - standalone: true, styleUrls: ['./alert-dialog.scss'], templateUrl: './alert-dialog.html' }) diff --git a/apps/client/src/app/core/notification/confirmation-dialog/confirmation-dialog.component.ts b/apps/client/src/app/core/notification/confirmation-dialog/confirmation-dialog.component.ts index 3545d39b..9aced99c 100644 --- a/apps/client/src/app/core/notification/confirmation-dialog/confirmation-dialog.component.ts +++ b/apps/client/src/app/core/notification/confirmation-dialog/confirmation-dialog.component.ts @@ -9,7 +9,6 @@ import { IConfirmDialogParams } from './interfaces/interfaces'; @Component({ imports: [CommonModule, MatButtonModule, MatDialogModule], selector: 'gf-confirmation-dialog', - standalone: true, styleUrls: ['./confirmation-dialog.scss'], templateUrl: './confirmation-dialog.html' }) diff --git a/apps/client/src/app/core/notification/prompt-dialog/prompt-dialog.component.ts b/apps/client/src/app/core/notification/prompt-dialog/prompt-dialog.component.ts index 4f0c3600..4ec634da 100644 --- a/apps/client/src/app/core/notification/prompt-dialog/prompt-dialog.component.ts +++ b/apps/client/src/app/core/notification/prompt-dialog/prompt-dialog.component.ts @@ -16,7 +16,6 @@ import { MatInputModule } from '@angular/material/input'; MatInputModule ], selector: 'gf-prompt-dialog', - standalone: true, templateUrl: './prompt-dialog.html' }) export class GfPromptDialogComponent { diff --git a/apps/client/src/app/directives/file-drop/file-drop.directive.ts b/apps/client/src/app/directives/file-drop/file-drop.directive.ts index 129f6f25..93f44457 100644 --- a/apps/client/src/app/directives/file-drop/file-drop.directive.ts +++ b/apps/client/src/app/directives/file-drop/file-drop.directive.ts @@ -1,7 +1,8 @@ import { Directive, EventEmitter, HostListener, Output } from '@angular/core'; @Directive({ - selector: '[gfFileDrop]' + selector: '[gfFileDrop]', + standalone: false }) export class FileDropDirective { @Output() filesDropped = new EventEmitter(); diff --git a/apps/client/src/app/pages/about/about-page.component.ts b/apps/client/src/app/pages/about/about-page.component.ts index b16dc4e0..399cba23 100644 --- a/apps/client/src/app/pages/about/about-page.component.ts +++ b/apps/client/src/app/pages/about/about-page.component.ts @@ -12,7 +12,8 @@ import { takeUntil } from 'rxjs/operators'; host: { class: 'page has-tabs' }, selector: 'gf-about-page', styleUrls: ['./about-page.scss'], - templateUrl: './about-page.html' + templateUrl: './about-page.html', + standalone: false }) export class AboutPageComponent implements OnDestroy, OnInit { public deviceType: string; diff --git a/apps/client/src/app/pages/about/changelog/changelog-page.component.ts b/apps/client/src/app/pages/about/changelog/changelog-page.component.ts index 3acec3c3..d086b70e 100644 --- a/apps/client/src/app/pages/about/changelog/changelog-page.component.ts +++ b/apps/client/src/app/pages/about/changelog/changelog-page.component.ts @@ -4,7 +4,8 @@ import { Subject } from 'rxjs'; @Component({ selector: 'gf-changelog-page', styleUrls: ['./changelog-page.scss'], - templateUrl: './changelog-page.html' + templateUrl: './changelog-page.html', + standalone: false }) export class ChangelogPageComponent implements OnDestroy { private unsubscribeSubject = new Subject(); diff --git a/apps/client/src/app/pages/about/license/license-page.component.ts b/apps/client/src/app/pages/about/license/license-page.component.ts index b9b74322..deec0de6 100644 --- a/apps/client/src/app/pages/about/license/license-page.component.ts +++ b/apps/client/src/app/pages/about/license/license-page.component.ts @@ -4,7 +4,8 @@ import { Subject } from 'rxjs'; @Component({ selector: 'gf-license-page', styleUrls: ['./license-page.scss'], - templateUrl: './license-page.html' + templateUrl: './license-page.html', + standalone: false }) export class LicensePageComponent implements OnDestroy { private unsubscribeSubject = new Subject(); diff --git a/apps/client/src/app/pages/about/oss-friends/oss-friends-page.component.ts b/apps/client/src/app/pages/about/oss-friends/oss-friends-page.component.ts index fefda7ab..86dcd4ed 100644 --- a/apps/client/src/app/pages/about/oss-friends/oss-friends-page.component.ts +++ b/apps/client/src/app/pages/about/oss-friends/oss-friends-page.component.ts @@ -6,7 +6,8 @@ const ossFriends = require('../../../../assets/oss-friends.json'); @Component({ selector: 'gf-oss-friends-page', styleUrls: ['./oss-friends-page.scss'], - templateUrl: './oss-friends-page.html' + templateUrl: './oss-friends-page.html', + standalone: false }) export class OpenSourceSoftwareFriendsPageComponent implements OnDestroy { public ossFriends = ossFriends.data; diff --git a/apps/client/src/app/pages/about/overview/about-overview-page.component.ts b/apps/client/src/app/pages/about/overview/about-overview-page.component.ts index 027eb132..9dae545f 100644 --- a/apps/client/src/app/pages/about/overview/about-overview-page.component.ts +++ b/apps/client/src/app/pages/about/overview/about-overview-page.component.ts @@ -10,7 +10,8 @@ import { takeUntil } from 'rxjs/operators'; @Component({ selector: 'gf-about-overview-page', styleUrls: ['./about-overview-page.scss'], - templateUrl: './about-overview-page.html' + templateUrl: './about-overview-page.html', + standalone: false }) export class AboutOverviewPageComponent implements OnDestroy, OnInit { public hasPermissionForStatistics: boolean; diff --git a/apps/client/src/app/pages/about/privacy-policy/privacy-policy-page.component.ts b/apps/client/src/app/pages/about/privacy-policy/privacy-policy-page.component.ts index 117234fc..f08b4365 100644 --- a/apps/client/src/app/pages/about/privacy-policy/privacy-policy-page.component.ts +++ b/apps/client/src/app/pages/about/privacy-policy/privacy-policy-page.component.ts @@ -4,7 +4,8 @@ import { Subject } from 'rxjs'; @Component({ selector: 'gf-privacy-policy-page', styleUrls: ['./privacy-policy-page.scss'], - templateUrl: './privacy-policy-page.html' + templateUrl: './privacy-policy-page.html', + standalone: false }) export class PrivacyPolicyPageComponent implements OnDestroy { private unsubscribeSubject = new Subject(); diff --git a/apps/client/src/app/pages/accounts/accounts-page.component.ts b/apps/client/src/app/pages/accounts/accounts-page.component.ts index a6aa1264..70dfa028 100644 --- a/apps/client/src/app/pages/accounts/accounts-page.component.ts +++ b/apps/client/src/app/pages/accounts/accounts-page.component.ts @@ -25,7 +25,8 @@ import { TransferBalanceDialog } from './transfer-balance/transfer-balance-dialo host: { class: 'has-fab page' }, selector: 'gf-accounts-page', styleUrls: ['./accounts-page.scss'], - templateUrl: './accounts-page.html' + templateUrl: './accounts-page.html', + standalone: false }) export class AccountsPageComponent implements OnDestroy, OnInit { public accounts: AccountModel[]; diff --git a/apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.component.ts b/apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.component.ts index da2ea725..15f4c35e 100644 --- a/apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.component.ts +++ b/apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.component.ts @@ -28,7 +28,8 @@ import { CreateOrUpdateAccountDialogParams } from './interfaces/interfaces'; selector: 'gf-create-or-update-account-dialog', changeDetection: ChangeDetectionStrategy.OnPush, styleUrls: ['./create-or-update-account-dialog.scss'], - templateUrl: 'create-or-update-account-dialog.html' + templateUrl: 'create-or-update-account-dialog.html', + standalone: false }) export class CreateOrUpdateAccountDialog implements OnDestroy { public accountForm: FormGroup; diff --git a/apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.component.ts b/apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.component.ts index 4547710c..e74ad119 100644 --- a/apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.component.ts +++ b/apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.component.ts @@ -24,7 +24,8 @@ import { TransferBalanceDialogParams } from './interfaces/interfaces'; selector: 'gf-transfer-balance-dialog', changeDetection: ChangeDetectionStrategy.OnPush, styleUrls: ['./transfer-balance-dialog.scss'], - templateUrl: 'transfer-balance-dialog.html' + templateUrl: 'transfer-balance-dialog.html', + standalone: false }) export class TransferBalanceDialog implements OnDestroy { public accounts: Account[] = []; diff --git a/apps/client/src/app/pages/admin/admin-page.component.ts b/apps/client/src/app/pages/admin/admin-page.component.ts index 8a1a9fdc..5896a18d 100644 --- a/apps/client/src/app/pages/admin/admin-page.component.ts +++ b/apps/client/src/app/pages/admin/admin-page.component.ts @@ -8,7 +8,8 @@ import { Subject } from 'rxjs'; host: { class: 'page has-tabs' }, selector: 'gf-admin-page', styleUrls: ['./admin-page.scss'], - templateUrl: './admin-page.html' + templateUrl: './admin-page.html', + standalone: false }) export class AdminPageComponent implements OnDestroy, OnInit { public deviceType: string; diff --git a/apps/client/src/app/pages/api/api-page.component.ts b/apps/client/src/app/pages/api/api-page.component.ts index a45efd9b..039bf869 100644 --- a/apps/client/src/app/pages/api/api-page.component.ts +++ b/apps/client/src/app/pages/api/api-page.component.ts @@ -21,7 +21,6 @@ import { map, Observable, Subject, takeUntil } from 'rxjs'; host: { class: 'page' }, imports: [CommonModule], selector: 'gf-api-page', - standalone: true, styleUrls: ['./api-page.scss'], templateUrl: './api-page.html' }) diff --git a/apps/client/src/app/pages/auth/auth-page.component.ts b/apps/client/src/app/pages/auth/auth-page.component.ts index 2c70ea02..4061dd22 100644 --- a/apps/client/src/app/pages/auth/auth-page.component.ts +++ b/apps/client/src/app/pages/auth/auth-page.component.ts @@ -12,7 +12,8 @@ import { takeUntil } from 'rxjs/operators'; @Component({ selector: 'gf-auth-page', templateUrl: './auth-page.html', - styleUrls: ['./auth-page.scss'] + styleUrls: ['./auth-page.scss'], + standalone: false }) export class AuthPageComponent implements OnDestroy, OnInit { private unsubscribeSubject = new Subject(); diff --git a/apps/client/src/app/pages/blog/2021/07/hallo-ghostfolio/hallo-ghostfolio-page.component.ts b/apps/client/src/app/pages/blog/2021/07/hallo-ghostfolio/hallo-ghostfolio-page.component.ts index cc37ae80..2e346bf4 100644 --- a/apps/client/src/app/pages/blog/2021/07/hallo-ghostfolio/hallo-ghostfolio-page.component.ts +++ b/apps/client/src/app/pages/blog/2021/07/hallo-ghostfolio/hallo-ghostfolio-page.component.ts @@ -6,7 +6,6 @@ import { RouterModule } from '@angular/router'; host: { class: 'page' }, imports: [MatButtonModule, RouterModule], selector: 'gf-hallo-ghostfolio-page', - standalone: true, templateUrl: './hallo-ghostfolio-page.html' }) export class HalloGhostfolioPageComponent { diff --git a/apps/client/src/app/pages/blog/2021/07/hello-ghostfolio/hello-ghostfolio-page.component.ts b/apps/client/src/app/pages/blog/2021/07/hello-ghostfolio/hello-ghostfolio-page.component.ts index 4e9943a2..7c5554b7 100644 --- a/apps/client/src/app/pages/blog/2021/07/hello-ghostfolio/hello-ghostfolio-page.component.ts +++ b/apps/client/src/app/pages/blog/2021/07/hello-ghostfolio/hello-ghostfolio-page.component.ts @@ -6,7 +6,6 @@ import { RouterModule } from '@angular/router'; host: { class: 'page' }, imports: [MatButtonModule, RouterModule], selector: 'gf-hello-ghostfolio-page', - standalone: true, templateUrl: './hello-ghostfolio-page.html' }) export class HelloGhostfolioPageComponent { diff --git a/apps/client/src/app/pages/blog/2022/01/first-months-in-open-source/first-months-in-open-source-page.component.ts b/apps/client/src/app/pages/blog/2022/01/first-months-in-open-source/first-months-in-open-source-page.component.ts index b543e04f..f4391ed8 100644 --- a/apps/client/src/app/pages/blog/2022/01/first-months-in-open-source/first-months-in-open-source-page.component.ts +++ b/apps/client/src/app/pages/blog/2022/01/first-months-in-open-source/first-months-in-open-source-page.component.ts @@ -6,7 +6,6 @@ import { RouterModule } from '@angular/router'; host: { class: 'page' }, imports: [MatButtonModule, RouterModule], selector: 'gf-first-months-in-open-source-page', - standalone: true, templateUrl: './first-months-in-open-source-page.html' }) export class FirstMonthsInOpenSourcePageComponent { diff --git a/apps/client/src/app/pages/blog/2022/07/ghostfolio-meets-internet-identity/ghostfolio-meets-internet-identity-page.component.ts b/apps/client/src/app/pages/blog/2022/07/ghostfolio-meets-internet-identity/ghostfolio-meets-internet-identity-page.component.ts index 4c451f44..e6200d0e 100644 --- a/apps/client/src/app/pages/blog/2022/07/ghostfolio-meets-internet-identity/ghostfolio-meets-internet-identity-page.component.ts +++ b/apps/client/src/app/pages/blog/2022/07/ghostfolio-meets-internet-identity/ghostfolio-meets-internet-identity-page.component.ts @@ -6,7 +6,6 @@ import { RouterModule } from '@angular/router'; host: { class: 'page' }, imports: [MatButtonModule, RouterModule], selector: 'gf-ghostfolio-meets-internet-identity-page', - standalone: true, templateUrl: './ghostfolio-meets-internet-identity-page.html' }) export class GhostfolioMeetsInternetIdentityPageComponent {} diff --git a/apps/client/src/app/pages/blog/2022/07/how-do-i-get-my-finances-in-order/how-do-i-get-my-finances-in-order-page.component.ts b/apps/client/src/app/pages/blog/2022/07/how-do-i-get-my-finances-in-order/how-do-i-get-my-finances-in-order-page.component.ts index abbfe8e3..e9ebb38a 100644 --- a/apps/client/src/app/pages/blog/2022/07/how-do-i-get-my-finances-in-order/how-do-i-get-my-finances-in-order-page.component.ts +++ b/apps/client/src/app/pages/blog/2022/07/how-do-i-get-my-finances-in-order/how-do-i-get-my-finances-in-order-page.component.ts @@ -6,7 +6,6 @@ import { RouterModule } from '@angular/router'; host: { class: 'page' }, imports: [MatButtonModule, RouterModule], selector: 'gf-how-do-i-get-my-finances-in-order-page', - standalone: true, templateUrl: './how-do-i-get-my-finances-in-order-page.html' }) export class HowDoIGetMyFinancesInOrderPageComponent { diff --git a/apps/client/src/app/pages/blog/2022/08/500-stars-on-github/500-stars-on-github-page.component.ts b/apps/client/src/app/pages/blog/2022/08/500-stars-on-github/500-stars-on-github-page.component.ts index 10150cf3..6cd71ad0 100644 --- a/apps/client/src/app/pages/blog/2022/08/500-stars-on-github/500-stars-on-github-page.component.ts +++ b/apps/client/src/app/pages/blog/2022/08/500-stars-on-github/500-stars-on-github-page.component.ts @@ -6,7 +6,6 @@ import { RouterModule } from '@angular/router'; host: { class: 'page' }, imports: [MatButtonModule, RouterModule], selector: 'gf-500-stars-on-github-page', - standalone: true, templateUrl: './500-stars-on-github-page.html' }) export class FiveHundredStarsOnGitHubPageComponent { diff --git a/apps/client/src/app/pages/blog/2022/10/hacktoberfest-2022/hacktoberfest-2022-page.component.ts b/apps/client/src/app/pages/blog/2022/10/hacktoberfest-2022/hacktoberfest-2022-page.component.ts index c84faddd..35295b89 100644 --- a/apps/client/src/app/pages/blog/2022/10/hacktoberfest-2022/hacktoberfest-2022-page.component.ts +++ b/apps/client/src/app/pages/blog/2022/10/hacktoberfest-2022/hacktoberfest-2022-page.component.ts @@ -6,7 +6,6 @@ import { RouterModule } from '@angular/router'; host: { class: 'page' }, imports: [MatButtonModule, RouterModule], selector: 'gf-hacktoberfest-2022-page', - standalone: true, templateUrl: './hacktoberfest-2022-page.html' }) export class Hacktoberfest2022PageComponent {} diff --git a/apps/client/src/app/pages/blog/2022/11/black-friday-2022/black-friday-2022-page.component.ts b/apps/client/src/app/pages/blog/2022/11/black-friday-2022/black-friday-2022-page.component.ts index c31605a6..9696806d 100644 --- a/apps/client/src/app/pages/blog/2022/11/black-friday-2022/black-friday-2022-page.component.ts +++ b/apps/client/src/app/pages/blog/2022/11/black-friday-2022/black-friday-2022-page.component.ts @@ -8,7 +8,6 @@ import { RouterModule } from '@angular/router'; host: { class: 'page' }, imports: [GfPremiumIndicatorComponent, MatButtonModule, RouterModule], selector: 'gf-black-friday-2022-page', - standalone: true, templateUrl: './black-friday-2022-page.html' }) export class BlackFriday2022PageComponent { diff --git a/apps/client/src/app/pages/blog/2022/12/the-importance-of-tracking-your-personal-finances/the-importance-of-tracking-your-personal-finances-page.component.ts b/apps/client/src/app/pages/blog/2022/12/the-importance-of-tracking-your-personal-finances/the-importance-of-tracking-your-personal-finances-page.component.ts index 91e3a305..2bab4a96 100644 --- a/apps/client/src/app/pages/blog/2022/12/the-importance-of-tracking-your-personal-finances/the-importance-of-tracking-your-personal-finances-page.component.ts +++ b/apps/client/src/app/pages/blog/2022/12/the-importance-of-tracking-your-personal-finances/the-importance-of-tracking-your-personal-finances-page.component.ts @@ -6,7 +6,6 @@ import { RouterModule } from '@angular/router'; host: { class: 'page' }, imports: [MatButtonModule, RouterModule], selector: 'gf-the-importance-of-tracking-your-personal-finances-page', - standalone: true, templateUrl: './the-importance-of-tracking-your-personal-finances-page.html' }) export class TheImportanceOfTrackingYourPersonalFinancesPageComponent {} diff --git a/apps/client/src/app/pages/blog/2023/01/ghostfolio-auf-sackgeld-vorgestellt/ghostfolio-auf-sackgeld-vorgestellt-page.component.ts b/apps/client/src/app/pages/blog/2023/01/ghostfolio-auf-sackgeld-vorgestellt/ghostfolio-auf-sackgeld-vorgestellt-page.component.ts index 8366e81d..22370152 100644 --- a/apps/client/src/app/pages/blog/2023/01/ghostfolio-auf-sackgeld-vorgestellt/ghostfolio-auf-sackgeld-vorgestellt-page.component.ts +++ b/apps/client/src/app/pages/blog/2023/01/ghostfolio-auf-sackgeld-vorgestellt/ghostfolio-auf-sackgeld-vorgestellt-page.component.ts @@ -6,7 +6,6 @@ import { RouterModule } from '@angular/router'; host: { class: 'page' }, imports: [MatButtonModule, RouterModule], selector: 'gf-ghostfolio-auf-sackgeld-vorgestellt-page', - standalone: true, templateUrl: './ghostfolio-auf-sackgeld-vorgestellt-page.html' }) export class GhostfolioAufSackgeldVorgestelltPageComponent {} diff --git a/apps/client/src/app/pages/blog/2023/02/ghostfolio-meets-umbrel/ghostfolio-meets-umbrel-page.component.ts b/apps/client/src/app/pages/blog/2023/02/ghostfolio-meets-umbrel/ghostfolio-meets-umbrel-page.component.ts index 643f4704..e3762481 100644 --- a/apps/client/src/app/pages/blog/2023/02/ghostfolio-meets-umbrel/ghostfolio-meets-umbrel-page.component.ts +++ b/apps/client/src/app/pages/blog/2023/02/ghostfolio-meets-umbrel/ghostfolio-meets-umbrel-page.component.ts @@ -6,7 +6,6 @@ import { RouterModule } from '@angular/router'; host: { class: 'page' }, imports: [MatButtonModule, RouterModule], selector: 'gf-ghostfolio-meets-umbrel-page', - standalone: true, templateUrl: './ghostfolio-meets-umbrel-page.html' }) export class GhostfolioMeetsUmbrelPageComponent {} diff --git a/apps/client/src/app/pages/blog/2023/03/1000-stars-on-github/1000-stars-on-github-page.component.ts b/apps/client/src/app/pages/blog/2023/03/1000-stars-on-github/1000-stars-on-github-page.component.ts index 2cb473cb..ba20ce35 100644 --- a/apps/client/src/app/pages/blog/2023/03/1000-stars-on-github/1000-stars-on-github-page.component.ts +++ b/apps/client/src/app/pages/blog/2023/03/1000-stars-on-github/1000-stars-on-github-page.component.ts @@ -6,7 +6,6 @@ import { RouterModule } from '@angular/router'; host: { class: 'page' }, imports: [MatButtonModule, RouterModule], selector: 'gf-1000-stars-on-github-page', - standalone: true, templateUrl: './1000-stars-on-github-page.html' }) export class ThousandStarsOnGitHubPageComponent { diff --git a/apps/client/src/app/pages/blog/2023/05/unlock-your-financial-potential-with-ghostfolio/unlock-your-financial-potential-with-ghostfolio-page.component.ts b/apps/client/src/app/pages/blog/2023/05/unlock-your-financial-potential-with-ghostfolio/unlock-your-financial-potential-with-ghostfolio-page.component.ts index 47831264..a401c74e 100644 --- a/apps/client/src/app/pages/blog/2023/05/unlock-your-financial-potential-with-ghostfolio/unlock-your-financial-potential-with-ghostfolio-page.component.ts +++ b/apps/client/src/app/pages/blog/2023/05/unlock-your-financial-potential-with-ghostfolio/unlock-your-financial-potential-with-ghostfolio-page.component.ts @@ -6,7 +6,6 @@ import { RouterModule } from '@angular/router'; host: { class: 'page' }, imports: [MatButtonModule, RouterModule], selector: 'gf-unlock-your-financial-potential-with-ghostfolio-page', - standalone: true, templateUrl: './unlock-your-financial-potential-with-ghostfolio-page.html' }) export class UnlockYourFinancialPotentialWithGhostfolioPageComponent { diff --git a/apps/client/src/app/pages/blog/2023/07/exploring-the-path-to-fire/exploring-the-path-to-fire-page.component.ts b/apps/client/src/app/pages/blog/2023/07/exploring-the-path-to-fire/exploring-the-path-to-fire-page.component.ts index a51612e4..6cf8dfe2 100644 --- a/apps/client/src/app/pages/blog/2023/07/exploring-the-path-to-fire/exploring-the-path-to-fire-page.component.ts +++ b/apps/client/src/app/pages/blog/2023/07/exploring-the-path-to-fire/exploring-the-path-to-fire-page.component.ts @@ -6,7 +6,6 @@ import { RouterModule } from '@angular/router'; host: { class: 'page' }, imports: [MatButtonModule, RouterModule], selector: 'gf-exploring-the-path-to-fire-page-page', - standalone: true, templateUrl: './exploring-the-path-to-fire-page.html' }) export class ExploringThePathToFirePageComponent { diff --git a/apps/client/src/app/pages/blog/2023/08/ghostfolio-joins-oss-friends/ghostfolio-joins-oss-friends-page.component.ts b/apps/client/src/app/pages/blog/2023/08/ghostfolio-joins-oss-friends/ghostfolio-joins-oss-friends-page.component.ts index 945385ea..2f2f6275 100644 --- a/apps/client/src/app/pages/blog/2023/08/ghostfolio-joins-oss-friends/ghostfolio-joins-oss-friends-page.component.ts +++ b/apps/client/src/app/pages/blog/2023/08/ghostfolio-joins-oss-friends/ghostfolio-joins-oss-friends-page.component.ts @@ -6,7 +6,6 @@ import { RouterModule } from '@angular/router'; host: { class: 'page' }, imports: [MatButtonModule, RouterModule], selector: 'gf-ghostfolio-joins-oss-friends-page', - standalone: true, templateUrl: './ghostfolio-joins-oss-friends-page.html' }) export class GhostfolioJoinsOssFriendsPageComponent { diff --git a/apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts b/apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts index e6bf1a17..80f9f08f 100644 --- a/apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts +++ b/apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts @@ -6,7 +6,6 @@ import { RouterModule } from '@angular/router'; host: { class: 'page' }, imports: [MatButtonModule, RouterModule], selector: 'gf-ghostfolio-2-page', - standalone: true, templateUrl: './ghostfolio-2-page.html' }) export class Ghostfolio2PageComponent { diff --git a/apps/client/src/app/pages/blog/2023/09/hacktoberfest-2023/hacktoberfest-2023-page.component.ts b/apps/client/src/app/pages/blog/2023/09/hacktoberfest-2023/hacktoberfest-2023-page.component.ts index 719394fd..8e38d00c 100644 --- a/apps/client/src/app/pages/blog/2023/09/hacktoberfest-2023/hacktoberfest-2023-page.component.ts +++ b/apps/client/src/app/pages/blog/2023/09/hacktoberfest-2023/hacktoberfest-2023-page.component.ts @@ -6,7 +6,6 @@ import { RouterModule } from '@angular/router'; host: { class: 'page' }, imports: [MatButtonModule, RouterModule], selector: 'gf-hacktoberfest-2023-page', - standalone: true, templateUrl: './hacktoberfest-2023-page.html' }) export class Hacktoberfest2023PageComponent { diff --git a/apps/client/src/app/pages/blog/2023/11/black-week-2023/black-week-2023-page.component.ts b/apps/client/src/app/pages/blog/2023/11/black-week-2023/black-week-2023-page.component.ts index 0c733464..c47a545f 100644 --- a/apps/client/src/app/pages/blog/2023/11/black-week-2023/black-week-2023-page.component.ts +++ b/apps/client/src/app/pages/blog/2023/11/black-week-2023/black-week-2023-page.component.ts @@ -8,7 +8,6 @@ import { RouterModule } from '@angular/router'; host: { class: 'page' }, imports: [GfPremiumIndicatorComponent, MatButtonModule, RouterModule], selector: 'gf-black-week-2023-page', - standalone: true, templateUrl: './black-week-2023-page.html' }) export class BlackWeek2023PageComponent { diff --git a/apps/client/src/app/pages/blog/2023/11/hacktoberfest-2023-debriefing/hacktoberfest-2023-debriefing-page.component.ts b/apps/client/src/app/pages/blog/2023/11/hacktoberfest-2023-debriefing/hacktoberfest-2023-debriefing-page.component.ts index e825ff59..758e94c1 100644 --- a/apps/client/src/app/pages/blog/2023/11/hacktoberfest-2023-debriefing/hacktoberfest-2023-debriefing-page.component.ts +++ b/apps/client/src/app/pages/blog/2023/11/hacktoberfest-2023-debriefing/hacktoberfest-2023-debriefing-page.component.ts @@ -6,7 +6,6 @@ import { RouterModule } from '@angular/router'; host: { class: 'page' }, imports: [MatButtonModule, RouterModule], selector: 'gf-hacktoberfest-2023-debriefing-page', - standalone: true, templateUrl: './hacktoberfest-2023-debriefing-page.html' }) export class Hacktoberfest2023DebriefingPageComponent { diff --git a/apps/client/src/app/pages/blog/2024/09/hacktoberfest-2024/hacktoberfest-2024-page.component.ts b/apps/client/src/app/pages/blog/2024/09/hacktoberfest-2024/hacktoberfest-2024-page.component.ts index 426f32da..4b983ba7 100644 --- a/apps/client/src/app/pages/blog/2024/09/hacktoberfest-2024/hacktoberfest-2024-page.component.ts +++ b/apps/client/src/app/pages/blog/2024/09/hacktoberfest-2024/hacktoberfest-2024-page.component.ts @@ -6,7 +6,6 @@ import { RouterModule } from '@angular/router'; host: { class: 'page' }, imports: [MatButtonModule, RouterModule], selector: 'gf-hacktoberfest-2024-page', - standalone: true, templateUrl: './hacktoberfest-2024-page.html' }) export class Hacktoberfest2024PageComponent { diff --git a/apps/client/src/app/pages/blog/2024/11/black-weeks-2024/black-weeks-2024-page.component.ts b/apps/client/src/app/pages/blog/2024/11/black-weeks-2024/black-weeks-2024-page.component.ts index 5b380a3c..1fe81ef0 100644 --- a/apps/client/src/app/pages/blog/2024/11/black-weeks-2024/black-weeks-2024-page.component.ts +++ b/apps/client/src/app/pages/blog/2024/11/black-weeks-2024/black-weeks-2024-page.component.ts @@ -8,7 +8,6 @@ import { RouterModule } from '@angular/router'; host: { class: 'page' }, imports: [GfPremiumIndicatorComponent, MatButtonModule, RouterModule], selector: 'gf-black-weeks-2024-page', - standalone: true, templateUrl: './black-weeks-2024-page.html' }) export class BlackWeeks2024PageComponent { diff --git a/apps/client/src/app/pages/blog/blog-page.component.ts b/apps/client/src/app/pages/blog/blog-page.component.ts index 531f9488..3545409c 100644 --- a/apps/client/src/app/pages/blog/blog-page.component.ts +++ b/apps/client/src/app/pages/blog/blog-page.component.ts @@ -8,7 +8,8 @@ import { Subject } from 'rxjs'; host: { class: 'page' }, selector: 'gf-blog-page', styleUrls: ['./blog-page.scss'], - templateUrl: './blog-page.html' + templateUrl: './blog-page.html', + standalone: false }) export class BlogPageComponent implements OnDestroy { public hasPermissionForSubscription: boolean; diff --git a/apps/client/src/app/pages/faq/faq-page.component.ts b/apps/client/src/app/pages/faq/faq-page.component.ts index 1e0d508a..caed1dd6 100644 --- a/apps/client/src/app/pages/faq/faq-page.component.ts +++ b/apps/client/src/app/pages/faq/faq-page.component.ts @@ -10,7 +10,8 @@ import { Subject } from 'rxjs'; host: { class: 'page has-tabs' }, selector: 'gf-faq-page', styleUrls: ['./faq-page.scss'], - templateUrl: './faq-page.html' + templateUrl: './faq-page.html', + standalone: false }) export class FaqPageComponent implements OnDestroy, OnInit { public deviceType: string; diff --git a/apps/client/src/app/pages/faq/overview/faq-overview-page.component.ts b/apps/client/src/app/pages/faq/overview/faq-overview-page.component.ts index cb548c13..9232ca3b 100644 --- a/apps/client/src/app/pages/faq/overview/faq-overview-page.component.ts +++ b/apps/client/src/app/pages/faq/overview/faq-overview-page.component.ts @@ -8,7 +8,8 @@ import { Subject, takeUntil } from 'rxjs'; host: { class: 'page' }, selector: 'gf-faq-overview-page', styleUrls: ['./faq-overview-page.scss'], - templateUrl: './faq-overview-page.html' + templateUrl: './faq-overview-page.html', + standalone: false }) export class FaqOverviewPageComponent implements OnDestroy { public routerLinkFeatures = ['/' + $localize`:snake-case:features`]; diff --git a/apps/client/src/app/pages/faq/saas/saas-page.component.ts b/apps/client/src/app/pages/faq/saas/saas-page.component.ts index 1d1a6dd6..0ef9d914 100644 --- a/apps/client/src/app/pages/faq/saas/saas-page.component.ts +++ b/apps/client/src/app/pages/faq/saas/saas-page.component.ts @@ -8,7 +8,8 @@ import { Subject, takeUntil } from 'rxjs'; host: { class: 'page' }, selector: 'gf-saas-page', styleUrls: ['./saas-page.scss'], - templateUrl: './saas-page.html' + templateUrl: './saas-page.html', + standalone: false }) export class SaasPageComponent implements OnDestroy { public routerLinkMarkets = ['/' + $localize`:snake-case:markets`]; diff --git a/apps/client/src/app/pages/faq/self-hosting/self-hosting-page.component.ts b/apps/client/src/app/pages/faq/self-hosting/self-hosting-page.component.ts index f065e84a..387187be 100644 --- a/apps/client/src/app/pages/faq/self-hosting/self-hosting-page.component.ts +++ b/apps/client/src/app/pages/faq/self-hosting/self-hosting-page.component.ts @@ -5,7 +5,8 @@ import { Subject } from 'rxjs'; host: { class: 'page' }, selector: 'gf-self-hosting-page', styleUrls: ['./self-hosting-page.scss'], - templateUrl: './self-hosting-page.html' + templateUrl: './self-hosting-page.html', + standalone: false }) export class SelfHostingPageComponent implements OnDestroy { private unsubscribeSubject = new Subject(); diff --git a/apps/client/src/app/pages/features/features-page.component.ts b/apps/client/src/app/pages/features/features-page.component.ts index df2e5e52..c33f1e99 100644 --- a/apps/client/src/app/pages/features/features-page.component.ts +++ b/apps/client/src/app/pages/features/features-page.component.ts @@ -19,7 +19,6 @@ import { Subject, takeUntil } from 'rxjs'; RouterModule ], selector: 'gf-features-page', - standalone: true, styleUrls: ['./features-page.scss'], templateUrl: './features-page.html' }) diff --git a/apps/client/src/app/pages/home/home-page.component.ts b/apps/client/src/app/pages/home/home-page.component.ts index 6b79f09b..e307884f 100644 --- a/apps/client/src/app/pages/home/home-page.component.ts +++ b/apps/client/src/app/pages/home/home-page.component.ts @@ -11,7 +11,8 @@ import { takeUntil } from 'rxjs/operators'; host: { class: 'page has-tabs' }, selector: 'gf-home-page', styleUrls: ['./home-page.scss'], - templateUrl: './home-page.html' + templateUrl: './home-page.html', + standalone: false }) export class HomePageComponent implements OnDestroy, OnInit { public deviceType: string; diff --git a/apps/client/src/app/pages/landing/landing-page.component.ts b/apps/client/src/app/pages/landing/landing-page.component.ts index 3f9e45b9..4adcbe00 100644 --- a/apps/client/src/app/pages/landing/landing-page.component.ts +++ b/apps/client/src/app/pages/landing/landing-page.component.ts @@ -11,7 +11,8 @@ import { Subject } from 'rxjs'; host: { class: 'page' }, selector: 'gf-landing-page', styleUrls: ['./landing-page.scss'], - templateUrl: './landing-page.html' + templateUrl: './landing-page.html', + standalone: false }) export class LandingPageComponent implements OnDestroy, OnInit { public countriesOfSubscribersMap: { diff --git a/apps/client/src/app/pages/markets/markets-page.component.ts b/apps/client/src/app/pages/markets/markets-page.component.ts index 65d1cccc..be569233 100644 --- a/apps/client/src/app/pages/markets/markets-page.component.ts +++ b/apps/client/src/app/pages/markets/markets-page.component.ts @@ -5,7 +5,8 @@ import { Subject } from 'rxjs'; host: { class: 'page' }, selector: 'gf-markets-page', styleUrls: ['./markets-page.scss'], - templateUrl: './markets-page.html' + templateUrl: './markets-page.html', + standalone: false }) export class MarketsPageComponent implements OnDestroy { private unsubscribeSubject = new Subject(); diff --git a/apps/client/src/app/pages/open/open-page.component.ts b/apps/client/src/app/pages/open/open-page.component.ts index c7faaa4e..c876c3cc 100644 --- a/apps/client/src/app/pages/open/open-page.component.ts +++ b/apps/client/src/app/pages/open/open-page.component.ts @@ -9,7 +9,8 @@ import { Subject, takeUntil } from 'rxjs'; host: { class: 'page' }, selector: 'gf-open-page', styleUrls: ['./open-page.scss'], - templateUrl: './open-page.html' + templateUrl: './open-page.html', + standalone: false }) export class OpenPageComponent implements OnDestroy, OnInit { public statistics: Statistics; diff --git a/apps/client/src/app/pages/portfolio/activities/activities-page.component.ts b/apps/client/src/app/pages/portfolio/activities/activities-page.component.ts index 4f70993d..91254e00 100644 --- a/apps/client/src/app/pages/portfolio/activities/activities-page.component.ts +++ b/apps/client/src/app/pages/portfolio/activities/activities-page.component.ts @@ -29,7 +29,8 @@ import { ImportActivitiesDialogParams } from './import-activities-dialog/interfa host: { class: 'has-fab' }, selector: 'gf-activities-page', styleUrls: ['./activities-page.scss'], - templateUrl: './activities-page.html' + templateUrl: './activities-page.html', + standalone: false }) export class ActivitiesPageComponent implements OnDestroy, OnInit { public dataSource: MatTableDataSource; diff --git a/apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.component.ts b/apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.component.ts index feeb4abc..506a46a3 100644 --- a/apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.component.ts +++ b/apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.component.ts @@ -31,7 +31,8 @@ import { CreateOrUpdateActivityDialogParams } from './interfaces/interfaces'; selector: 'gf-create-or-update-activity-dialog', changeDetection: ChangeDetectionStrategy.OnPush, styleUrls: ['./create-or-update-activity-dialog.scss'], - templateUrl: 'create-or-update-activity-dialog.html' + templateUrl: 'create-or-update-activity-dialog.html', + standalone: false }) export class CreateOrUpdateActivityDialog implements OnDestroy { @ViewChild('symbolAutocomplete') symbolAutocomplete; @@ -215,12 +216,12 @@ export class CreateOrUpdateActivityDialog implements OnDestroy { this.total = this.activityForm.get('quantity').value * this.activityForm.get('unitPrice').value + - this.activityForm.get('fee').value ?? 0; + (this.activityForm.get('fee').value ?? 0); } else { this.total = this.activityForm.get('quantity').value * this.activityForm.get('unitPrice').value - - this.activityForm.get('fee').value ?? 0; + (this.activityForm.get('fee').value ?? 0); } this.changeDetectorRef.markForCheck(); diff --git a/apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts b/apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts index 69c11ee7..2f5ead47 100644 --- a/apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts +++ b/apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts @@ -33,7 +33,8 @@ import { ImportActivitiesDialogParams } from './interfaces/interfaces'; changeDetection: ChangeDetectionStrategy.OnPush, selector: 'gf-import-activities-dialog', styleUrls: ['./import-activities-dialog.scss'], - templateUrl: 'import-activities-dialog.html' + templateUrl: 'import-activities-dialog.html', + standalone: false }) export class ImportActivitiesDialog implements OnDestroy { public accounts: CreateAccountDto[] = []; diff --git a/apps/client/src/app/pages/portfolio/allocations/allocations-page.component.ts b/apps/client/src/app/pages/portfolio/allocations/allocations-page.component.ts index fa5a4751..41961edd 100644 --- a/apps/client/src/app/pages/portfolio/allocations/allocations-page.component.ts +++ b/apps/client/src/app/pages/portfolio/allocations/allocations-page.component.ts @@ -28,7 +28,8 @@ import { takeUntil } from 'rxjs/operators'; @Component({ selector: 'gf-allocations-page', styleUrls: ['./allocations-page.scss'], - templateUrl: './allocations-page.html' + templateUrl: './allocations-page.html', + standalone: false }) export class AllocationsPageComponent implements OnDestroy, OnInit { public accounts: { diff --git a/apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts b/apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts index 6eb42b68..0bd4e85e 100644 --- a/apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts +++ b/apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts @@ -24,7 +24,8 @@ import { takeUntil } from 'rxjs/operators'; @Component({ selector: 'gf-analysis-page', styleUrls: ['./analysis-page.scss'], - templateUrl: './analysis-page.html' + templateUrl: './analysis-page.html', + standalone: false }) export class AnalysisPageComponent implements OnDestroy, OnInit { public benchmark: Partial; diff --git a/apps/client/src/app/pages/portfolio/fire/fire-page.component.ts b/apps/client/src/app/pages/portfolio/fire/fire-page.component.ts index 897b9824..98a73637 100644 --- a/apps/client/src/app/pages/portfolio/fire/fire-page.component.ts +++ b/apps/client/src/app/pages/portfolio/fire/fire-page.component.ts @@ -13,7 +13,8 @@ import { takeUntil } from 'rxjs/operators'; @Component({ selector: 'gf-fire-page', styleUrls: ['./fire-page.scss'], - templateUrl: './fire-page.html' + templateUrl: './fire-page.html', + standalone: false }) export class FirePageComponent implements OnDestroy, OnInit { public deviceType: string; diff --git a/apps/client/src/app/pages/portfolio/portfolio-page.component.ts b/apps/client/src/app/pages/portfolio/portfolio-page.component.ts index 7f40bf1d..3393b740 100644 --- a/apps/client/src/app/pages/portfolio/portfolio-page.component.ts +++ b/apps/client/src/app/pages/portfolio/portfolio-page.component.ts @@ -10,7 +10,8 @@ import { takeUntil } from 'rxjs/operators'; host: { class: 'page has-tabs' }, selector: 'gf-portfolio-page', styleUrls: ['./portfolio-page.scss'], - templateUrl: './portfolio-page.html' + templateUrl: './portfolio-page.html', + standalone: false }) export class PortfolioPageComponent implements OnDestroy, OnInit { public deviceType: string; diff --git a/apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.ts b/apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.ts index b00f8b93..0207545c 100644 --- a/apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.ts +++ b/apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.ts @@ -15,7 +15,8 @@ import { Subject, takeUntil } from 'rxjs'; @Component({ selector: 'gf-x-ray-page', styleUrl: './x-ray-page.component.scss', - templateUrl: './x-ray-page.component.html' + templateUrl: './x-ray-page.component.html', + standalone: false }) export class XRayPageComponent { public accountClusterRiskRules: PortfolioReportRule[]; diff --git a/apps/client/src/app/pages/pricing/pricing-page.component.ts b/apps/client/src/app/pages/pricing/pricing-page.component.ts index f86a7590..d7b904b4 100644 --- a/apps/client/src/app/pages/pricing/pricing-page.component.ts +++ b/apps/client/src/app/pages/pricing/pricing-page.component.ts @@ -15,7 +15,8 @@ import { catchError, switchMap, takeUntil } from 'rxjs/operators'; host: { class: 'page' }, selector: 'gf-pricing-page', styleUrls: ['./pricing-page.scss'], - templateUrl: './pricing-page.html' + templateUrl: './pricing-page.html', + standalone: false }) export class PricingPageComponent implements OnDestroy, OnInit { public baseCurrency: string; diff --git a/apps/client/src/app/pages/public/public-page.component.ts b/apps/client/src/app/pages/public/public-page.component.ts index 3dbce23e..b343a6e0 100644 --- a/apps/client/src/app/pages/public/public-page.component.ts +++ b/apps/client/src/app/pages/public/public-page.component.ts @@ -20,7 +20,8 @@ import { catchError, takeUntil } from 'rxjs/operators'; host: { class: 'page' }, selector: 'gf-public-page', styleUrls: ['./public-page.scss'], - templateUrl: './public-page.html' + templateUrl: './public-page.html', + standalone: false }) export class PublicPageComponent implements OnInit { public continents: { diff --git a/apps/client/src/app/pages/register/register-page.component.ts b/apps/client/src/app/pages/register/register-page.component.ts index b7e5757c..86490688 100644 --- a/apps/client/src/app/pages/register/register-page.component.ts +++ b/apps/client/src/app/pages/register/register-page.component.ts @@ -18,7 +18,8 @@ import { ShowAccessTokenDialog } from './show-access-token-dialog/show-access-to host: { class: 'page' }, selector: 'gf-register-page', styleUrls: ['./register-page.scss'], - templateUrl: './register-page.html' + templateUrl: './register-page.html', + standalone: false }) export class RegisterPageComponent implements OnDestroy, OnInit { public demoAuthToken: string; diff --git a/apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.component.ts b/apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.component.ts index 298cd278..5aacbd45 100644 --- a/apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.component.ts +++ b/apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.component.ts @@ -5,7 +5,8 @@ import { MAT_DIALOG_DATA } from '@angular/material/dialog'; selector: 'gf-show-access-token-dialog', changeDetection: ChangeDetectionStrategy.OnPush, styleUrls: ['./show-access-token-dialog.scss'], - templateUrl: 'show-access-token-dialog.html' + templateUrl: 'show-access-token-dialog.html', + standalone: false }) export class ShowAccessTokenDialog { public isAgreeButtonDisabled = true; diff --git a/apps/client/src/app/pages/resources/glossary/resources-glossary.component.ts b/apps/client/src/app/pages/resources/glossary/resources-glossary.component.ts index c1a57d4c..b6749b5c 100644 --- a/apps/client/src/app/pages/resources/glossary/resources-glossary.component.ts +++ b/apps/client/src/app/pages/resources/glossary/resources-glossary.component.ts @@ -7,7 +7,8 @@ import { Component, OnInit } from '@angular/core'; @Component({ selector: 'gf-resources-glossary', styleUrls: ['./resources-glossary.component.scss'], - templateUrl: './resources-glossary.component.html' + templateUrl: './resources-glossary.component.html', + standalone: false }) export class ResourcesGlossaryPageComponent implements OnInit { public hasPermissionForSubscription: boolean; diff --git a/apps/client/src/app/pages/resources/guides/resources-guides.component.ts b/apps/client/src/app/pages/resources/guides/resources-guides.component.ts index eebda310..ddba58e6 100644 --- a/apps/client/src/app/pages/resources/guides/resources-guides.component.ts +++ b/apps/client/src/app/pages/resources/guides/resources-guides.component.ts @@ -3,6 +3,7 @@ import { Component } from '@angular/core'; @Component({ selector: 'gf-resources-guides', styleUrls: ['./resources-guides.component.scss'], - templateUrl: './resources-guides.component.html' + templateUrl: './resources-guides.component.html', + standalone: false }) export class ResourcesGuidesComponent {} diff --git a/apps/client/src/app/pages/resources/markets/resources-markets.component.ts b/apps/client/src/app/pages/resources/markets/resources-markets.component.ts index 79c18595..a188e3a9 100644 --- a/apps/client/src/app/pages/resources/markets/resources-markets.component.ts +++ b/apps/client/src/app/pages/resources/markets/resources-markets.component.ts @@ -3,6 +3,7 @@ import { Component } from '@angular/core'; @Component({ selector: 'gf-resources-markets', styleUrls: ['./resources-markets.component.scss'], - templateUrl: './resources-markets.component.html' + templateUrl: './resources-markets.component.html', + standalone: false }) export class ResourcesMarketsComponent {} diff --git a/apps/client/src/app/pages/resources/overview/resources-overview.component.ts b/apps/client/src/app/pages/resources/overview/resources-overview.component.ts index 6e7a5e2a..f95e78a2 100644 --- a/apps/client/src/app/pages/resources/overview/resources-overview.component.ts +++ b/apps/client/src/app/pages/resources/overview/resources-overview.component.ts @@ -3,7 +3,8 @@ import { Component } from '@angular/core'; @Component({ selector: 'gf-resources-overview', styleUrls: ['./resources-overview.component.scss'], - templateUrl: './resources-overview.component.html' + templateUrl: './resources-overview.component.html', + standalone: false }) export class ResourcesOverviewComponent { public overviewItems = [ diff --git a/apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts b/apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts index cadc6256..c9c0aa04 100644 --- a/apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts +++ b/apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts @@ -7,7 +7,8 @@ import { Subject } from 'rxjs'; host: { class: 'page' }, selector: 'gf-personal-finance-tools-page', styleUrls: ['./personal-finance-tools-page.scss'], - templateUrl: './personal-finance-tools-page.html' + templateUrl: './personal-finance-tools-page.html', + standalone: false }) export class PersonalFinanceToolsPageComponent implements OnDestroy { public pathAlternativeTo = $localize`open-source-alternative-to` + '-'; diff --git a/apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts b/apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts index 39dbc481..3a0ec4ff 100644 --- a/apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts +++ b/apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts @@ -12,7 +12,6 @@ import { ActivatedRoute, RouterModule } from '@angular/router'; host: { class: 'page' }, imports: [CommonModule, MatButtonModule, RouterModule], selector: 'gf-product-page', - standalone: true, styleUrls: ['./product-page.scss'], templateUrl: './product-page.html' }) diff --git a/apps/client/src/app/pages/resources/resources-page.component.ts b/apps/client/src/app/pages/resources/resources-page.component.ts index d900a38a..d0534417 100644 --- a/apps/client/src/app/pages/resources/resources-page.component.ts +++ b/apps/client/src/app/pages/resources/resources-page.component.ts @@ -6,7 +6,8 @@ import { Subject } from 'rxjs'; host: { class: 'page has-tabs' }, selector: 'gf-resources-page', styleUrls: ['./resources-page.scss'], - templateUrl: './resources-page.html' + templateUrl: './resources-page.html', + standalone: false }) export class ResourcesPageComponent implements OnInit { public deviceType: string; diff --git a/apps/client/src/app/pages/user-account/user-account-page.component.ts b/apps/client/src/app/pages/user-account/user-account-page.component.ts index fb42e196..d53465fa 100644 --- a/apps/client/src/app/pages/user-account/user-account-page.component.ts +++ b/apps/client/src/app/pages/user-account/user-account-page.component.ts @@ -9,7 +9,8 @@ import { Subject, takeUntil } from 'rxjs'; host: { class: 'page has-tabs' }, selector: 'gf-user-account-page', styleUrls: ['./user-account-page.scss'], - templateUrl: './user-account-page.html' + templateUrl: './user-account-page.html', + standalone: false }) export class UserAccountPageComponent implements OnDestroy, OnInit { public deviceType: string; diff --git a/apps/client/src/app/pages/webauthn/webauthn-page.component.ts b/apps/client/src/app/pages/webauthn/webauthn-page.component.ts index 77a05325..74631eec 100644 --- a/apps/client/src/app/pages/webauthn/webauthn-page.component.ts +++ b/apps/client/src/app/pages/webauthn/webauthn-page.component.ts @@ -13,7 +13,6 @@ import { takeUntil } from 'rxjs/operators'; host: { class: 'page' }, imports: [GfLogoComponent, MatButtonModule, MatProgressSpinnerModule], selector: 'gf-webauthn-page', - standalone: true, styleUrls: ['./webauthn-page.scss'], templateUrl: './webauthn-page.html' }) diff --git a/apps/client/src/app/pages/zen/zen-page.component.ts b/apps/client/src/app/pages/zen/zen-page.component.ts index 511e2656..c39ceccc 100644 --- a/apps/client/src/app/pages/zen/zen-page.component.ts +++ b/apps/client/src/app/pages/zen/zen-page.component.ts @@ -10,7 +10,8 @@ import { takeUntil } from 'rxjs/operators'; host: { class: 'page has-tabs' }, selector: 'gf-zen-page', styleUrls: ['./zen-page.scss'], - templateUrl: './zen-page.html' + templateUrl: './zen-page.html', + standalone: false }) export class ZenPageComponent implements OnDestroy, OnInit { public deviceType: string; diff --git a/apps/client/src/app/pipes/symbol/symbol.pipe.ts b/apps/client/src/app/pipes/symbol/symbol.pipe.ts index 7e77339f..2b30d104 100644 --- a/apps/client/src/app/pipes/symbol/symbol.pipe.ts +++ b/apps/client/src/app/pipes/symbol/symbol.pipe.ts @@ -2,7 +2,10 @@ import { prettifySymbol } from '@ghostfolio/common/helper'; import { Pipe, PipeTransform } from '@angular/core'; -@Pipe({ name: 'gfSymbol' }) +@Pipe({ + name: 'gfSymbol', + standalone: false +}) export class SymbolPipe implements PipeTransform { public transform(aSymbol: string) { return prettifySymbol(aSymbol); diff --git a/apps/client/src/styles/theme.scss b/apps/client/src/styles/theme.scss index 54adf601..6b41fcca 100644 --- a/apps/client/src/styles/theme.scss +++ b/apps/client/src/styles/theme.scss @@ -104,7 +104,8 @@ $gf-theme-dark: mat.m2-define-dark-theme( } @include mat.button-density(0); -@include mat.core(); +@include mat.elevation-classes(); +@include mat.app-background(); @include mat.table-density(-1); :root { diff --git a/libs/ui/.eslintrc.json b/libs/ui/.eslintrc.json index 6b88b020..edc96912 100644 --- a/libs/ui/.eslintrc.json +++ b/libs/ui/.eslintrc.json @@ -27,7 +27,8 @@ "prefix": "gf", "style": "kebab-case" } - ] + ], + "@angular-eslint/prefer-standalone": "off" } }, { diff --git a/libs/ui/src/lib/account-balances/account-balances.component.ts b/libs/ui/src/lib/account-balances/account-balances.component.ts index a4ef1d7a..756b3169 100644 --- a/libs/ui/src/lib/account-balances/account-balances.component.ts +++ b/libs/ui/src/lib/account-balances/account-balances.component.ts @@ -51,7 +51,6 @@ import { GfValueComponent } from '../value'; ], schemas: [CUSTOM_ELEMENTS_SCHEMA], selector: 'gf-account-balances', - standalone: true, styleUrls: ['./account-balances.component.scss'], templateUrl: './account-balances.component.html' }) diff --git a/libs/ui/src/lib/activities-filter/activities-filter.component.ts b/libs/ui/src/lib/activities-filter/activities-filter.component.ts index a1258fc1..4356ba5a 100644 --- a/libs/ui/src/lib/activities-filter/activities-filter.component.ts +++ b/libs/ui/src/lib/activities-filter/activities-filter.component.ts @@ -45,7 +45,6 @@ import { takeUntil } from 'rxjs/operators'; ], schemas: [CUSTOM_ELEMENTS_SCHEMA], selector: 'gf-activities-filter', - standalone: true, styleUrls: ['./activities-filter.component.scss'], templateUrl: './activities-filter.component.html' }) diff --git a/libs/ui/src/lib/activities-table/activities-table.component.ts b/libs/ui/src/lib/activities-table/activities-table.component.ts index 67f81adc..01b4c6ea 100644 --- a/libs/ui/src/lib/activities-table/activities-table.component.ts +++ b/libs/ui/src/lib/activities-table/activities-table.component.ts @@ -67,7 +67,6 @@ import { Subject, Subscription, takeUntil } from 'rxjs'; ], schemas: [CUSTOM_ELEMENTS_SCHEMA], selector: 'gf-activities-table', - standalone: true, styleUrls: ['./activities-table.component.scss'], templateUrl: './activities-table.component.html' }) diff --git a/libs/ui/src/lib/activity-type/activity-type.component.ts b/libs/ui/src/lib/activity-type/activity-type.component.ts index 95b24b4b..27434e01 100644 --- a/libs/ui/src/lib/activity-type/activity-type.component.ts +++ b/libs/ui/src/lib/activity-type/activity-type.component.ts @@ -15,7 +15,6 @@ import { Type as ActivityType } from '@prisma/client'; imports: [CommonModule], schemas: [CUSTOM_ELEMENTS_SCHEMA], selector: 'gf-activity-type', - standalone: true, styleUrls: ['./activity-type.component.scss'], templateUrl: './activity-type.component.html' }) diff --git a/libs/ui/src/lib/assistant/assistant-list-item/assistant-list-item.component.ts b/libs/ui/src/lib/assistant/assistant-list-item/assistant-list-item.component.ts index a53a6289..a0744db9 100644 --- a/libs/ui/src/lib/assistant/assistant-list-item/assistant-list-item.component.ts +++ b/libs/ui/src/lib/assistant/assistant-list-item/assistant-list-item.component.ts @@ -20,7 +20,6 @@ import { Params, RouterModule } from '@angular/router'; changeDetection: ChangeDetectionStrategy.OnPush, imports: [GfSymbolModule, RouterModule], selector: 'gf-assistant-list-item', - standalone: true, styleUrls: ['./assistant-list-item.scss'], templateUrl: './assistant-list-item.html' }) diff --git a/libs/ui/src/lib/assistant/assistant.component.ts b/libs/ui/src/lib/assistant/assistant.component.ts index a7fb0c7e..d8c3dcc2 100644 --- a/libs/ui/src/lib/assistant/assistant.component.ts +++ b/libs/ui/src/lib/assistant/assistant.component.ts @@ -73,7 +73,6 @@ import { ], schemas: [CUSTOM_ELEMENTS_SCHEMA], selector: 'gf-assistant', - standalone: true, styleUrls: ['./assistant.scss'], templateUrl: './assistant.html' }) diff --git a/libs/ui/src/lib/benchmark/benchmark-detail-dialog/benchmark-detail-dialog.component.ts b/libs/ui/src/lib/benchmark/benchmark-detail-dialog/benchmark-detail-dialog.component.ts index 73af9e68..38c6252a 100644 --- a/libs/ui/src/lib/benchmark/benchmark-detail-dialog/benchmark-detail-dialog.component.ts +++ b/libs/ui/src/lib/benchmark/benchmark-detail-dialog/benchmark-detail-dialog.component.ts @@ -41,7 +41,6 @@ import { BenchmarkDetailDialogParams } from './interfaces/interfaces'; ], schemas: [CUSTOM_ELEMENTS_SCHEMA], selector: 'gf-benchmark-detail-dialog', - standalone: true, styleUrls: ['./benchmark-detail-dialog.component.scss'], templateUrl: 'benchmark-detail-dialog.html' }) diff --git a/libs/ui/src/lib/benchmark/benchmark.component.ts b/libs/ui/src/lib/benchmark/benchmark.component.ts index 4afd8d05..cc5815a0 100644 --- a/libs/ui/src/lib/benchmark/benchmark.component.ts +++ b/libs/ui/src/lib/benchmark/benchmark.component.ts @@ -38,7 +38,6 @@ import { BenchmarkDetailDialogParams } from './benchmark-detail-dialog/interface ], schemas: [CUSTOM_ELEMENTS_SCHEMA], selector: 'gf-benchmark', - standalone: true, styleUrls: ['./benchmark.component.scss'], templateUrl: './benchmark.component.html' }) diff --git a/libs/ui/src/lib/carousel/carousel.component.ts b/libs/ui/src/lib/carousel/carousel.component.ts index 8b766aa6..2c3cc3ec 100644 --- a/libs/ui/src/lib/carousel/carousel.component.ts +++ b/libs/ui/src/lib/carousel/carousel.component.ts @@ -18,7 +18,6 @@ import { ANIMATION_MODULE_TYPE } from '@angular/platform-browser/animations'; imports: [MatButtonModule], schemas: [CUSTOM_ELEMENTS_SCHEMA], selector: 'gf-carousel', - standalone: true, styleUrls: ['./carousel.component.scss'], templateUrl: './carousel.component.html' }) diff --git a/libs/ui/src/lib/currency-selector/currency-selector.component.ts b/libs/ui/src/lib/currency-selector/currency-selector.component.ts index c01df950..7ab32b5f 100644 --- a/libs/ui/src/lib/currency-selector/currency-selector.component.ts +++ b/libs/ui/src/lib/currency-selector/currency-selector.component.ts @@ -53,7 +53,6 @@ import { map, startWith, takeUntil } from 'rxjs/operators'; ], schemas: [CUSTOM_ELEMENTS_SCHEMA], selector: 'gf-currency-selector', - standalone: true, styleUrls: ['./currency-selector.component.scss'], templateUrl: 'currency-selector.component.html' }) diff --git a/libs/ui/src/lib/data-provider-credits/data-provider-credits.component.ts b/libs/ui/src/lib/data-provider-credits/data-provider-credits.component.ts index 5afab3b3..9be034e6 100644 --- a/libs/ui/src/lib/data-provider-credits/data-provider-credits.component.ts +++ b/libs/ui/src/lib/data-provider-credits/data-provider-credits.component.ts @@ -13,7 +13,6 @@ import { imports: [CommonModule], schemas: [CUSTOM_ELEMENTS_SCHEMA], selector: 'gf-data-provider-credits', - standalone: true, styleUrls: ['./data-provider-credits.component.scss'], templateUrl: './data-provider-credits.component.html' }) 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 aa8b2b90..f8ce3dd5 100644 --- a/libs/ui/src/lib/fire-calculator/fire-calculator.component.ts +++ b/libs/ui/src/lib/fire-calculator/fire-calculator.component.ts @@ -71,7 +71,6 @@ import { FireCalculatorService } from './fire-calculator.service'; ], providers: [FireCalculatorService], selector: 'gf-fire-calculator', - standalone: true, styleUrls: ['./fire-calculator.component.scss'], templateUrl: './fire-calculator.component.html' }) diff --git a/libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.component.ts b/libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.component.ts index 69105ac9..710cb402 100644 --- a/libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.component.ts +++ b/libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.component.ts @@ -40,7 +40,6 @@ import { HistoricalMarketDataEditorDialogParams } from './interfaces/interfaces' ], selector: 'gf-historical-market-data-editor-dialog', schemas: [CUSTOM_ELEMENTS_SCHEMA], - standalone: true, styleUrls: ['./historical-market-data-editor-dialog.scss'], templateUrl: 'historical-market-data-editor-dialog.html' }) diff --git a/libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.ts b/libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.ts index c9725e3e..caa0b15e 100644 --- a/libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.ts +++ b/libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.ts @@ -50,7 +50,6 @@ import { HistoricalMarketDataEditorDialogParams } from './historical-market-data changeDetection: ChangeDetectionStrategy.OnPush, imports: [CommonModule, MatButtonModule, MatInputModule, ReactiveFormsModule], selector: 'gf-historical-market-data-editor', - standalone: true, styleUrls: ['./historical-market-data-editor.component.scss'], templateUrl: './historical-market-data-editor.component.html' }) diff --git a/libs/ui/src/lib/holdings-table/holdings-table.component.ts b/libs/ui/src/lib/holdings-table/holdings-table.component.ts index 97c6d38e..29cb49c0 100644 --- a/libs/ui/src/lib/holdings-table/holdings-table.component.ts +++ b/libs/ui/src/lib/holdings-table/holdings-table.component.ts @@ -48,7 +48,6 @@ import { Subject, Subscription } from 'rxjs'; ], schemas: [CUSTOM_ELEMENTS_SCHEMA], selector: 'gf-holdings-table', - standalone: true, styleUrls: ['./holdings-table.component.scss'], templateUrl: './holdings-table.component.html' }) diff --git a/libs/ui/src/lib/line-chart/line-chart.component.ts b/libs/ui/src/lib/line-chart/line-chart.component.ts index dc2df1c7..09f5a98e 100644 --- a/libs/ui/src/lib/line-chart/line-chart.component.ts +++ b/libs/ui/src/lib/line-chart/line-chart.component.ts @@ -42,7 +42,6 @@ import { NgxSkeletonLoaderModule } from 'ngx-skeleton-loader'; changeDetection: ChangeDetectionStrategy.OnPush, imports: [CommonModule, NgxSkeletonLoaderModule], selector: 'gf-line-chart', - standalone: true, styleUrls: ['./line-chart.component.scss'], templateUrl: './line-chart.component.html' }) diff --git a/libs/ui/src/lib/logo/logo.component.ts b/libs/ui/src/lib/logo/logo.component.ts index 216dfbe3..0b766429 100644 --- a/libs/ui/src/lib/logo/logo.component.ts +++ b/libs/ui/src/lib/logo/logo.component.ts @@ -12,7 +12,6 @@ import { imports: [CommonModule], schemas: [CUSTOM_ELEMENTS_SCHEMA], selector: 'gf-logo', - standalone: true, styleUrls: ['./logo.component.scss'], templateUrl: './logo.component.html' }) diff --git a/libs/ui/src/lib/membership-card/membership-card.component.ts b/libs/ui/src/lib/membership-card/membership-card.component.ts index 5d05d6fe..d40031b1 100644 --- a/libs/ui/src/lib/membership-card/membership-card.component.ts +++ b/libs/ui/src/lib/membership-card/membership-card.component.ts @@ -17,7 +17,6 @@ import { GfLogoComponent } from '../logo'; imports: [CommonModule, GfLogoComponent, MatButtonModule, RouterModule], schemas: [CUSTOM_ELEMENTS_SCHEMA], selector: 'gf-membership-card', - standalone: true, styleUrls: ['./membership-card.component.scss'], templateUrl: './membership-card.component.html' }) diff --git a/libs/ui/src/lib/no-transactions-info/no-transactions-info.component.ts b/libs/ui/src/lib/no-transactions-info/no-transactions-info.component.ts index adde1ef4..0d5b044e 100644 --- a/libs/ui/src/lib/no-transactions-info/no-transactions-info.component.ts +++ b/libs/ui/src/lib/no-transactions-info/no-transactions-info.component.ts @@ -15,7 +15,6 @@ import { GfLogoComponent } from '../logo'; imports: [GfLogoComponent, MatButtonModule, RouterModule], schemas: [CUSTOM_ELEMENTS_SCHEMA], selector: 'gf-no-transactions-info-indicator', - standalone: true, styleUrls: ['./no-transactions-info.component.scss'], templateUrl: './no-transactions-info.component.html' }) 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 0eef25fa..7f914870 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 @@ -51,7 +51,6 @@ const { changeDetection: ChangeDetectionStrategy.OnPush, imports: [CommonModule, NgxSkeletonLoaderModule], selector: 'gf-portfolio-proportion-chart', - standalone: true, styleUrls: ['./portfolio-proportion-chart.component.scss'], templateUrl: './portfolio-proportion-chart.component.html' }) diff --git a/libs/ui/src/lib/premium-indicator/premium-indicator.component.ts b/libs/ui/src/lib/premium-indicator/premium-indicator.component.ts index f3350f44..17b0f94d 100644 --- a/libs/ui/src/lib/premium-indicator/premium-indicator.component.ts +++ b/libs/ui/src/lib/premium-indicator/premium-indicator.component.ts @@ -12,7 +12,6 @@ import { RouterModule } from '@angular/router'; imports: [CommonModule, RouterModule], schemas: [CUSTOM_ELEMENTS_SCHEMA], selector: 'gf-premium-indicator', - standalone: true, styleUrls: ['./premium-indicator.component.scss'], templateUrl: './premium-indicator.component.html' }) diff --git a/libs/ui/src/lib/shared/abstract-mat-form-field.ts b/libs/ui/src/lib/shared/abstract-mat-form-field.ts index 8c2d19fc..1938467f 100644 --- a/libs/ui/src/lib/shared/abstract-mat-form-field.ts +++ b/libs/ui/src/lib/shared/abstract-mat-form-field.ts @@ -14,7 +14,8 @@ import { MatFormFieldControl } from '@angular/material/form-field'; import { Subject } from 'rxjs'; @Component({ - template: '' + template: '', + standalone: false }) // eslint-disable-next-line @angular-eslint/component-class-suffix export abstract class AbstractMatFormField diff --git a/libs/ui/src/lib/symbol-autocomplete/symbol-autocomplete.component.ts b/libs/ui/src/lib/symbol-autocomplete/symbol-autocomplete.component.ts index a537c50a..3c56c474 100644 --- a/libs/ui/src/lib/symbol-autocomplete/symbol-autocomplete.component.ts +++ b/libs/ui/src/lib/symbol-autocomplete/symbol-autocomplete.component.ts @@ -69,7 +69,6 @@ import { GfPremiumIndicatorComponent } from '../premium-indicator'; ], selector: 'gf-symbol-autocomplete', schemas: [CUSTOM_ELEMENTS_SCHEMA], - standalone: true, styleUrls: ['./symbol-autocomplete.component.scss'], templateUrl: 'symbol-autocomplete.component.html' }) diff --git a/libs/ui/src/lib/top-holdings/top-holdings.component.ts b/libs/ui/src/lib/top-holdings/top-holdings.component.ts index 3d3712bc..13ceb239 100644 --- a/libs/ui/src/lib/top-holdings/top-holdings.component.ts +++ b/libs/ui/src/lib/top-holdings/top-holdings.component.ts @@ -56,7 +56,6 @@ import { Subject } from 'rxjs'; ], schemas: [CUSTOM_ELEMENTS_SCHEMA], selector: 'gf-top-holdings', - standalone: true, styleUrls: ['./top-holdings.component.scss'], templateUrl: './top-holdings.component.html' }) diff --git a/libs/ui/src/lib/treemap-chart/treemap-chart.component.ts b/libs/ui/src/lib/treemap-chart/treemap-chart.component.ts index 9a8594ad..11ee026f 100644 --- a/libs/ui/src/lib/treemap-chart/treemap-chart.component.ts +++ b/libs/ui/src/lib/treemap-chart/treemap-chart.component.ts @@ -41,7 +41,6 @@ const { gray, green, red } = require('open-color'); changeDetection: ChangeDetectionStrategy.OnPush, imports: [CommonModule, NgxSkeletonLoaderModule], selector: 'gf-treemap-chart', - standalone: true, styleUrls: ['./treemap-chart.component.scss'], templateUrl: './treemap-chart.component.html' }) diff --git a/libs/ui/src/lib/trend-indicator/trend-indicator.component.ts b/libs/ui/src/lib/trend-indicator/trend-indicator.component.ts index 9f550add..e44c41aa 100644 --- a/libs/ui/src/lib/trend-indicator/trend-indicator.component.ts +++ b/libs/ui/src/lib/trend-indicator/trend-indicator.component.ts @@ -14,7 +14,6 @@ import { NgxSkeletonLoaderModule } from 'ngx-skeleton-loader'; imports: [CommonModule, NgxSkeletonLoaderModule], schemas: [CUSTOM_ELEMENTS_SCHEMA], selector: 'gf-trend-indicator', - standalone: true, styleUrls: ['./trend-indicator.component.scss'], templateUrl: './trend-indicator.component.html' }) diff --git a/libs/ui/src/lib/value/value.component.ts b/libs/ui/src/lib/value/value.component.ts index 06b885ff..d93c5fbc 100644 --- a/libs/ui/src/lib/value/value.component.ts +++ b/libs/ui/src/lib/value/value.component.ts @@ -16,7 +16,6 @@ import { NgxSkeletonLoaderModule } from 'ngx-skeleton-loader'; imports: [CommonModule, NgxSkeletonLoaderModule], schemas: [CUSTOM_ELEMENTS_SCHEMA], selector: 'gf-value', - standalone: true, styleUrls: ['./value.component.scss'], templateUrl: './value.component.html' }) diff --git a/package-lock.json b/package-lock.json index 21889217..b1a02ba7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,17 +10,17 @@ "hasInstallScript": true, "license": "AGPL-3.0", "dependencies": { - "@angular/animations": "18.2.8", - "@angular/cdk": "18.2.9", - "@angular/common": "18.2.8", - "@angular/compiler": "18.2.8", - "@angular/core": "18.2.8", - "@angular/forms": "18.2.8", - "@angular/material": "18.2.9", - "@angular/platform-browser": "18.2.8", - "@angular/platform-browser-dynamic": "18.2.8", - "@angular/router": "18.2.8", - "@angular/service-worker": "18.2.8", + "@angular/animations": "19.0.5", + "@angular/cdk": "19.0.4", + "@angular/common": "19.0.5", + "@angular/compiler": "19.0.5", + "@angular/core": "19.0.5", + "@angular/forms": "19.0.5", + "@angular/material": "19.0.4", + "@angular/platform-browser": "19.0.5", + "@angular/platform-browser-dynamic": "19.0.5", + "@angular/router": "19.0.5", + "@angular/service-worker": "19.0.5", "@codewithdan/observable-store": "2.2.15", "@dfinity/agent": "0.15.7", "@dfinity/auth-client": "0.15.7", @@ -43,7 +43,7 @@ "@prisma/client": "6.0.1", "@simplewebauthn/browser": "9.0.1", "@simplewebauthn/server": "9.0.3", - "@stripe/stripe-js": "4.9.0", + "@stripe/stripe-js": "5.4.0", "alphavantage": "2.2.0", "big.js": "6.2.2", "body-parser": "1.20.2", @@ -72,13 +72,13 @@ "ionicons": "7.4.0", "jsonpath": "1.1.1", "lodash": "4.17.21", - "marked": "12.0.2", + "marked": "15.0.4", "ms": "3.0.0-canary.1", - "ng-extract-i18n-merge": "2.12.0", - "ngx-device-detector": "8.0.0", - "ngx-markdown": "18.0.0", + "ng-extract-i18n-merge": "2.13.1", + "ngx-device-detector": "9.0.0", + "ngx-markdown": "19.0.0", "ngx-skeleton-loader": "9.0.0", - "ngx-stripe": "18.1.0", + "ngx-stripe": "19.0.0", "open-color": "1.9.1", "papaparse": "5.3.1", "passport": "0.7.0", @@ -92,38 +92,39 @@ "twitter-api-v2": "1.14.2", "uuid": "11.0.2", "yahoo-finance2": "2.11.3", - "zone.js": "0.14.10" + "zone.js": "0.15.0" }, "devDependencies": { - "@angular-devkit/build-angular": "18.2.9", - "@angular-devkit/core": "18.2.9", - "@angular-devkit/schematics": "18.2.9", - "@angular-eslint/eslint-plugin": "18.1.0", - "@angular-eslint/eslint-plugin-template": "18.1.0", - "@angular-eslint/template-parser": "18.1.0", - "@angular/cli": "18.2.9", - "@angular/compiler-cli": "18.2.8", - "@angular/language-service": "18.2.8", - "@angular/localize": "18.2.8", - "@angular/pwa": "18.2.9", + "@angular-devkit/build-angular": "19.0.6", + "@angular-devkit/core": "19.0.6", + "@angular-devkit/schematics": "19.0.6", + "@angular-eslint/eslint-plugin": "19.0.2", + "@angular-eslint/eslint-plugin-template": "19.0.2", + "@angular-eslint/template-parser": "19.0.2", + "@angular/cli": "19.0.6", + "@angular/compiler-cli": "19.0.5", + "@angular/language-service": "19.0.5", + "@angular/localize": "19.0.5", + "@angular/pwa": "19.0.6", "@nestjs/schematics": "10.0.1", "@nestjs/testing": "10.1.3", - "@nx/angular": "20.1.2", - "@nx/cypress": "20.1.2", - "@nx/eslint-plugin": "20.1.2", - "@nx/jest": "20.1.2", - "@nx/js": "20.1.2", - "@nx/nest": "20.1.2", - "@nx/node": "20.1.2", - "@nx/storybook": "20.1.2", - "@nx/web": "20.1.2", - "@nx/workspace": "20.1.2", - "@schematics/angular": "18.2.9", + "@nx/angular": "20.3.0", + "@nx/cypress": "20.3.0", + "@nx/eslint-plugin": "20.3.0", + "@nx/jest": "20.3.0", + "@nx/js": "20.3.0", + "@nx/module-federation": "20.3.0", + "@nx/nest": "20.3.0", + "@nx/node": "20.3.0", + "@nx/storybook": "20.3.0", + "@nx/web": "20.3.0", + "@nx/workspace": "20.3.0", + "@schematics/angular": "19.0.6", "@simplewebauthn/types": "9.0.1", - "@storybook/addon-essentials": "8.3.6", - "@storybook/addon-interactions": "8.3.6", - "@storybook/angular": "8.3.6", - "@storybook/core-server": "8.3.6", + "@storybook/addon-essentials": "8.4.7", + "@storybook/addon-interactions": "8.4.7", + "@storybook/angular": "8.4.7", + "@storybook/core-server": "8.4.7", "@trivago/prettier-plugin-sort-imports": "4.3.0", "@types/big.js": "6.2.2", "@types/body-parser": "1.19.5", @@ -147,8 +148,8 @@ "husky": "9.1.7", "jest": "29.7.0", "jest-environment-jsdom": "29.7.0", - "jest-preset-angular": "14.1.0", - "nx": "20.1.2", + "jest-preset-angular": "14.4.2", + "nx": "20.3.0", "prettier": "3.4.2", "prettier-plugin-organize-attributes": "1.0.0", "prisma": "6.0.1", @@ -156,11 +157,11 @@ "react-dom": "18.2.0", "replace-in-file": "7.0.1", "shx": "0.3.4", - "storybook": "8.3.6", + "storybook": "8.4.7", "ts-jest": "29.1.0", "ts-node": "10.9.2", "tslib": "2.6.0", - "typescript": "5.5.3", + "typescript": "5.6.3", "webpack-bundle-analyzer": "4.10.2" }, "engines": { @@ -168,9 +169,9 @@ } }, "node_modules/@adobe/css-tools": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.4.0.tgz", - "integrity": "sha512-Ff9+ksdQQB3rMncgqDK78uLznstjyfIf2Arnh22pW8kBpLs6rpKDwgnZT46hin5Hl1WzazzK64DOrhSwYpS7bQ==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.4.1.tgz", + "integrity": "sha512-12WGKBQzjUAI4ayyF4IAtfw2QR/IDoqk6jTddXDhtYTJF9ASmoE1zst7cVtP0aL/F1jUJL5r+JxKXKEgHNbEUQ==", "dev": true, "license": "MIT" }, @@ -188,12 +189,12 @@ } }, "node_modules/@angular-devkit/architect": { - "version": "0.1802.9", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1802.9.tgz", - "integrity": "sha512-fubJf4WC/t3ITy+tyjI4/CKKwUP4XJTmV+Y0nyPcrkcthVyUcIpZB74NlUOvg6WECiPQuIc+CtoAaA9X5+RQ5Q==", + "version": "0.1900.6", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1900.6.tgz", + "integrity": "sha512-w11bAXQnNWBawTJfQPjvaTRrzrqsOUm9tK9WNvaia/xjiRFpmO0CfmKtn3axNSEJM8jb/czaNQrgTwG+TGc/8g==", "license": "MIT", "dependencies": { - "@angular-devkit/core": "18.2.9", + "@angular-devkit/core": "19.0.6", "rxjs": "7.8.1" }, "engines": { @@ -212,39 +213,37 @@ } }, "node_modules/@angular-devkit/build-angular": { - "version": "18.2.9", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-18.2.9.tgz", - "integrity": "sha512-d4W6t9vBozFUmOP2VvihMcSg/zgr3AvJY6/b7OPuATlK+W3P6tmsqxGIQ6eKc1TxXeu3lWhi14mV2pPykfrwfA==", + "version": "19.0.6", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-19.0.6.tgz", + "integrity": "sha512-dWTAsE6BSI8z0xglQdYBdqTBwg1Q+RWE3OrmlGs+520Dcoq/F0Z41Y1F3MiuHuQPdDAIQr88iB0APkIRW4clMg==", "license": "MIT", "dependencies": { "@ampproject/remapping": "2.3.0", - "@angular-devkit/architect": "0.1802.9", - "@angular-devkit/build-webpack": "0.1802.9", - "@angular-devkit/core": "18.2.9", - "@angular/build": "18.2.9", - "@babel/core": "7.25.2", - "@babel/generator": "7.25.0", - "@babel/helper-annotate-as-pure": "7.24.7", + "@angular-devkit/architect": "0.1900.6", + "@angular-devkit/build-webpack": "0.1900.6", + "@angular-devkit/core": "19.0.6", + "@angular/build": "19.0.6", + "@babel/core": "7.26.0", + "@babel/generator": "7.26.2", + "@babel/helper-annotate-as-pure": "7.25.9", "@babel/helper-split-export-declaration": "7.24.7", - "@babel/plugin-transform-async-generator-functions": "7.25.0", - "@babel/plugin-transform-async-to-generator": "7.24.7", - "@babel/plugin-transform-runtime": "7.24.7", - "@babel/preset-env": "7.25.3", - "@babel/runtime": "7.25.0", - "@discoveryjs/json-ext": "0.6.1", - "@ngtools/webpack": "18.2.9", + "@babel/plugin-transform-async-generator-functions": "7.25.9", + "@babel/plugin-transform-async-to-generator": "7.25.9", + "@babel/plugin-transform-runtime": "7.25.9", + "@babel/preset-env": "7.26.0", + "@babel/runtime": "7.26.0", + "@discoveryjs/json-ext": "0.6.3", + "@ngtools/webpack": "19.0.6", "@vitejs/plugin-basic-ssl": "1.1.0", "ansi-colors": "4.1.3", "autoprefixer": "10.4.20", - "babel-loader": "9.1.3", + "babel-loader": "9.2.1", "browserslist": "^4.21.5", "copy-webpack-plugin": "12.0.2", - "critters": "0.0.24", "css-loader": "7.1.2", - "esbuild-wasm": "0.23.0", + "esbuild-wasm": "0.24.0", "fast-glob": "3.3.2", - "http-proxy-middleware": "3.0.0", - "https-proxy-agent": "7.0.5", + "http-proxy-middleware": "3.0.3", "istanbul-lib-instrument": "6.0.3", "jsonc-parser": "3.3.1", "karma-source-map-support": "1.4.0", @@ -252,31 +251,26 @@ "less-loader": "12.2.0", "license-webpack-plugin": "4.0.2", "loader-utils": "3.3.1", - "magic-string": "0.30.11", - "mini-css-extract-plugin": "2.9.0", - "mrmime": "2.0.0", + "mini-css-extract-plugin": "2.9.2", "open": "10.1.0", "ora": "5.4.1", - "parse5-html-rewriting-stream": "7.0.0", "picomatch": "4.0.2", - "piscina": "4.6.1", - "postcss": "8.4.41", + "piscina": "4.7.0", + "postcss": "8.4.49", "postcss-loader": "8.1.1", "resolve-url-loader": "5.0.0", "rxjs": "7.8.1", - "sass": "1.77.6", - "sass-loader": "16.0.0", + "sass": "1.80.7", + "sass-loader": "16.0.3", "semver": "7.6.3", "source-map-loader": "5.0.0", "source-map-support": "0.5.21", - "terser": "5.31.6", + "terser": "5.36.0", "tree-kill": "1.2.2", - "tslib": "2.6.3", - "vite": "5.4.6", - "watchpack": "2.4.1", - "webpack": "5.94.0", + "tslib": "2.8.1", + "webpack": "5.96.1", "webpack-dev-middleware": "7.4.2", - "webpack-dev-server": "5.0.4", + "webpack-dev-server": "5.1.0", "webpack-merge": "6.0.1", "webpack-subresource-integrity": "5.1.0" }, @@ -286,22 +280,23 @@ "yarn": ">= 1.13.0" }, "optionalDependencies": { - "esbuild": "0.23.0" + "esbuild": "0.24.0" }, "peerDependencies": { - "@angular/compiler-cli": "^18.0.0", - "@angular/localize": "^18.0.0", - "@angular/platform-server": "^18.0.0", - "@angular/service-worker": "^18.0.0", - "@web/test-runner": "^0.18.0", + "@angular/compiler-cli": "^19.0.0", + "@angular/localize": "^19.0.0", + "@angular/platform-server": "^19.0.0", + "@angular/service-worker": "^19.0.0", + "@angular/ssr": "^19.0.6", + "@web/test-runner": "^0.19.0", "browser-sync": "^3.0.2", "jest": "^29.5.0", "jest-environment-jsdom": "^29.5.0", "karma": "^6.3.0", - "ng-packagr": "^18.0.0", + "ng-packagr": "^19.0.0", "protractor": "^7.0.0", "tailwindcss": "^2.0.0 || ^3.0.0", - "typescript": ">=5.4 <5.6" + "typescript": ">=5.5 <5.7" }, "peerDependenciesMeta": { "@angular/localize": { @@ -313,6 +308,9 @@ "@angular/service-worker": { "optional": true }, + "@angular/ssr": { + "optional": true + }, "@web/test-runner": { "optional": true }, @@ -339,28 +337,13 @@ } } }, - "node_modules/@angular-devkit/build-angular/node_modules/rxjs": { - "version": "7.8.1", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", - "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", - "license": "Apache-2.0", - "dependencies": { - "tslib": "^2.1.0" - } - }, - "node_modules/@angular-devkit/build-angular/node_modules/tslib": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz", - "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==", - "license": "0BSD" - }, - "node_modules/@angular-devkit/build-webpack": { - "version": "0.1802.9", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1802.9.tgz", - "integrity": "sha512-p7xNGo5ZTV/Z0Rk+q2/E68QQLw9VT33kauDh6s010jIeBLrOwMo74JpzXMSFttQo5O4bLKP8IORzIM+0q7Uzjg==", + "node_modules/@angular-devkit/build-angular/node_modules/@angular-devkit/build-webpack": { + "version": "0.1900.6", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1900.6.tgz", + "integrity": "sha512-WehtVrbBow4fc7hsaUKb+BZ6MDE5lO98/tgv7GR5PkRdGKnyLA0pW1AfPLJJQDgcaKjneramMhDFNc1eGSX0mQ==", "license": "MIT", "dependencies": { - "@angular-devkit/architect": "0.1802.9", + "@angular-devkit/architect": "0.1900.6", "rxjs": "7.8.1" }, "engines": { @@ -373,7 +356,847 @@ "webpack-dev-server": "^5.0.2" } }, - "node_modules/@angular-devkit/build-webpack/node_modules/rxjs": { + "node_modules/@angular-devkit/build-angular/node_modules/@babel/generator": { + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.2.tgz", + "integrity": "sha512-zevQbhbau95nkoxSq3f/DC/SC+EEOUZd3DYqfSkMhY2/wfSeaHV1Ew4vk8e+x8lja31IbyuUa2uQ3JONqKbysw==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.26.2", + "@babel/types": "^7.26.0", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/@discoveryjs/json-ext": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.6.3.tgz", + "integrity": "sha512-4B4OijXeVNOPZlYA2oEwWOTkzyltLao+xbotHQeqN++Rv27Y6s818+n2Qkp8q+Fxhn0t/5lA5X1Mxktud8eayQ==", + "license": "MIT", + "engines": { + "node": ">=14.17.0" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/@esbuild/aix-ppc64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.24.0.tgz", + "integrity": "sha512-WtKdFM7ls47zkKHFVzMz8opM7LkcsIp9amDUBIAWirg70RM71WRSjdILPsY5Uv1D42ZpUfaPILDlfactHgsRkw==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/@esbuild/android-arm": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.24.0.tgz", + "integrity": "sha512-arAtTPo76fJ/ICkXWetLCc9EwEHKaeya4vMrReVlEIUCAUncH7M4bhMQ+M9Vf+FFOZJdTNMXNBrWwW+OXWpSew==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/@esbuild/android-arm64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.24.0.tgz", + "integrity": "sha512-Vsm497xFM7tTIPYK9bNTYJyF/lsP590Qc1WxJdlB6ljCbdZKU9SY8i7+Iin4kyhV/KV5J2rOKsBQbB77Ab7L/w==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/@esbuild/android-x64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.24.0.tgz", + "integrity": "sha512-t8GrvnFkiIY7pa7mMgJd7p8p8qqYIz1NYiAoKc75Zyv73L3DZW++oYMSHPRarcotTKuSs6m3hTOa5CKHaS02TQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/@esbuild/darwin-arm64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.24.0.tgz", + "integrity": "sha512-CKyDpRbK1hXwv79soeTJNHb5EiG6ct3efd/FTPdzOWdbZZfGhpbcqIpiD0+vwmpu0wTIL97ZRPZu8vUt46nBSw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/@esbuild/darwin-x64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.24.0.tgz", + "integrity": "sha512-rgtz6flkVkh58od4PwTRqxbKH9cOjaXCMZgWD905JOzjFKW+7EiUObfd/Kav+A6Gyud6WZk9w+xu6QLytdi2OA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/@esbuild/freebsd-arm64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.24.0.tgz", + "integrity": "sha512-6Mtdq5nHggwfDNLAHkPlyLBpE5L6hwsuXZX8XNmHno9JuL2+bg2BX5tRkwjyfn6sKbxZTq68suOjgWqCicvPXA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/@esbuild/freebsd-x64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.24.0.tgz", + "integrity": "sha512-D3H+xh3/zphoX8ck4S2RxKR6gHlHDXXzOf6f/9dbFt/NRBDIE33+cVa49Kil4WUjxMGW0ZIYBYtaGCa2+OsQwQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/@esbuild/linux-arm": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.24.0.tgz", + "integrity": "sha512-gJKIi2IjRo5G6Glxb8d3DzYXlxdEj2NlkixPsqePSZMhLudqPhtZ4BUrpIuTjJYXxvF9njql+vRjB2oaC9XpBw==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/@esbuild/linux-arm64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.24.0.tgz", + "integrity": "sha512-TDijPXTOeE3eaMkRYpcy3LarIg13dS9wWHRdwYRnzlwlA370rNdZqbcp0WTyyV/k2zSxfko52+C7jU5F9Tfj1g==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/@esbuild/linux-ia32": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.24.0.tgz", + "integrity": "sha512-K40ip1LAcA0byL05TbCQ4yJ4swvnbzHscRmUilrmP9Am7//0UjPreh4lpYzvThT2Quw66MhjG//20mrufm40mA==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/@esbuild/linux-loong64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.24.0.tgz", + "integrity": "sha512-0mswrYP/9ai+CU0BzBfPMZ8RVm3RGAN/lmOMgW4aFUSOQBjA31UP8Mr6DDhWSuMwj7jaWOT0p0WoZ6jeHhrD7g==", + "cpu": [ + "loong64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/@esbuild/linux-mips64el": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.24.0.tgz", + "integrity": "sha512-hIKvXm0/3w/5+RDtCJeXqMZGkI2s4oMUGj3/jM0QzhgIASWrGO5/RlzAzm5nNh/awHE0A19h/CvHQe6FaBNrRA==", + "cpu": [ + "mips64el" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/@esbuild/linux-ppc64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.24.0.tgz", + "integrity": "sha512-HcZh5BNq0aC52UoocJxaKORfFODWXZxtBaaZNuN3PUX3MoDsChsZqopzi5UupRhPHSEHotoiptqikjN/B77mYQ==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/@esbuild/linux-riscv64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.24.0.tgz", + "integrity": "sha512-bEh7dMn/h3QxeR2KTy1DUszQjUrIHPZKyO6aN1X4BCnhfYhuQqedHaa5MxSQA/06j3GpiIlFGSsy1c7Gf9padw==", + "cpu": [ + "riscv64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/@esbuild/linux-s390x": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.24.0.tgz", + "integrity": "sha512-ZcQ6+qRkw1UcZGPyrCiHHkmBaj9SiCD8Oqd556HldP+QlpUIe2Wgn3ehQGVoPOvZvtHm8HPx+bH20c9pvbkX3g==", + "cpu": [ + "s390x" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/@esbuild/linux-x64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.24.0.tgz", + "integrity": "sha512-vbutsFqQ+foy3wSSbmjBXXIJ6PL3scghJoM8zCL142cGaZKAdCZHyf+Bpu/MmX9zT9Q0zFBVKb36Ma5Fzfa8xA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/@esbuild/netbsd-x64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.24.0.tgz", + "integrity": "sha512-hjQ0R/ulkO8fCYFsG0FZoH+pWgTTDreqpqY7UnQntnaKv95uP5iW3+dChxnx7C3trQQU40S+OgWhUVwCjVFLvg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/@esbuild/openbsd-arm64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.24.0.tgz", + "integrity": "sha512-MD9uzzkPQbYehwcN583yx3Tu5M8EIoTD+tUgKF982WYL9Pf5rKy9ltgD0eUgs8pvKnmizxjXZyLt0z6DC3rRXg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/@esbuild/openbsd-x64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.24.0.tgz", + "integrity": "sha512-4ir0aY1NGUhIC1hdoCzr1+5b43mw99uNwVzhIq1OY3QcEwPDO3B7WNXBzaKY5Nsf1+N11i1eOfFcq+D/gOS15Q==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/@esbuild/sunos-x64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.24.0.tgz", + "integrity": "sha512-jVzdzsbM5xrotH+W5f1s+JtUy1UWgjU0Cf4wMvffTB8m6wP5/kx0KiaLHlbJO+dMgtxKV8RQ/JvtlFcdZ1zCPA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/@esbuild/win32-arm64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.24.0.tgz", + "integrity": "sha512-iKc8GAslzRpBytO2/aN3d2yb2z8XTVfNV0PjGlCxKo5SgWmNXx82I/Q3aG1tFfS+A2igVCY97TJ8tnYwpUWLCA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/@esbuild/win32-ia32": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.24.0.tgz", + "integrity": "sha512-vQW36KZolfIudCcTnaTpmLQ24Ha1RjygBo39/aLkM2kmjkWmZGEJ5Gn9l5/7tzXA42QGIoWbICfg6KLLkIw6yw==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/@esbuild/win32-x64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.24.0.tgz", + "integrity": "sha512-7IAFPrjSQIJrGsK6flwg7NFmwBoSTyF3rl7If0hNUFQU4ilTsEPL6GuMuU9BfIWVVGuRnuIidkSMC+c0Otu8IA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/@ngtools/webpack": { + "version": "19.0.6", + "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-19.0.6.tgz", + "integrity": "sha512-eWrIb0tS1CK6+JvFS4GgTD4fN9TtmApKrlaj3pPQXKXKKd42361ec85fuQQXdb4G8eEEq0vyd/bn4NJllh/3vw==", + "license": "MIT", + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "peerDependencies": { + "@angular/compiler-cli": "^19.0.0", + "typescript": ">=5.5 <5.7", + "webpack": "^5.54.0" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "license": "MIT", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/copy-webpack-plugin": { + "version": "12.0.2", + "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-12.0.2.tgz", + "integrity": "sha512-SNwdBeHyII+rWvee/bTnAYyO8vfVdcSTud4EIb6jcZ8inLeWucJE0DnxXQBjlQ5zlteuuvooGQy3LIyGxhvlOA==", + "license": "MIT", + "dependencies": { + "fast-glob": "^3.3.2", + "glob-parent": "^6.0.1", + "globby": "^14.0.0", + "normalize-path": "^3.0.0", + "schema-utils": "^4.2.0", + "serialize-javascript": "^6.0.2" + }, + "engines": { + "node": ">= 18.12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/copy-webpack-plugin/node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/copy-webpack-plugin/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/copy-webpack-plugin/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "license": "MIT" + }, + "node_modules/@angular-devkit/build-angular/node_modules/copy-webpack-plugin/node_modules/schema-utils": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.0.tgz", + "integrity": "sha512-Gf9qqc58SpCA/xdziiHz35F4GNIWYWZrEshUc/G/r5BnLph6xpKuLeoJoQuj5WfBIx/eQLf+hmVPYHaxJu7V2g==", + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/cosmiconfig": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz", + "integrity": "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==", + "license": "MIT", + "dependencies": { + "env-paths": "^2.2.1", + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/css-loader": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-7.1.2.tgz", + "integrity": "sha512-6WvYYn7l/XEGN8Xu2vWFt9nVzrCn39vKyTEFf/ExEyoksJjjSZV/0/35XPlMbpnr6VGhZIUg5yJrL8tGfes/FA==", + "license": "MIT", + "dependencies": { + "icss-utils": "^5.1.0", + "postcss": "^8.4.33", + "postcss-modules-extract-imports": "^3.1.0", + "postcss-modules-local-by-default": "^4.0.5", + "postcss-modules-scope": "^3.2.0", + "postcss-modules-values": "^4.0.0", + "postcss-value-parser": "^4.2.0", + "semver": "^7.5.4" + }, + "engines": { + "node": ">= 18.12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "@rspack/core": "0.x || 1.x", + "webpack": "^5.27.0" + }, + "peerDependenciesMeta": { + "@rspack/core": { + "optional": true + }, + "webpack": { + "optional": true + } + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/esbuild": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.24.0.tgz", + "integrity": "sha512-FuLPevChGDshgSicjisSooU0cemp/sGXR841D5LHMB7mTVOmsEHcAxaH3irL53+8YDIeVNQEySh4DaYU/iuPqQ==", + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.24.0", + "@esbuild/android-arm": "0.24.0", + "@esbuild/android-arm64": "0.24.0", + "@esbuild/android-x64": "0.24.0", + "@esbuild/darwin-arm64": "0.24.0", + "@esbuild/darwin-x64": "0.24.0", + "@esbuild/freebsd-arm64": "0.24.0", + "@esbuild/freebsd-x64": "0.24.0", + "@esbuild/linux-arm": "0.24.0", + "@esbuild/linux-arm64": "0.24.0", + "@esbuild/linux-ia32": "0.24.0", + "@esbuild/linux-loong64": "0.24.0", + "@esbuild/linux-mips64el": "0.24.0", + "@esbuild/linux-ppc64": "0.24.0", + "@esbuild/linux-riscv64": "0.24.0", + "@esbuild/linux-s390x": "0.24.0", + "@esbuild/linux-x64": "0.24.0", + "@esbuild/netbsd-x64": "0.24.0", + "@esbuild/openbsd-arm64": "0.24.0", + "@esbuild/openbsd-x64": "0.24.0", + "@esbuild/sunos-x64": "0.24.0", + "@esbuild/win32-arm64": "0.24.0", + "@esbuild/win32-ia32": "0.24.0", + "@esbuild/win32-x64": "0.24.0" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/globby": { + "version": "14.0.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-14.0.2.tgz", + "integrity": "sha512-s3Fq41ZVh7vbbe2PN3nrW7yC7U7MFVc5c98/iTl9c2GawNMKx/J648KQRW6WKkuU8GIbbh2IXfIRQjOZnXcTnw==", + "license": "MIT", + "dependencies": { + "@sindresorhus/merge-streams": "^2.1.0", + "fast-glob": "^3.3.2", + "ignore": "^5.2.4", + "path-type": "^5.0.0", + "slash": "^5.1.0", + "unicorn-magic": "^0.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/http-proxy-middleware": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-3.0.3.tgz", + "integrity": "sha512-usY0HG5nyDUwtqpiZdETNbmKtw3QQ1jwYFZ9wi5iHzX2BcILwQKtYDJPo7XHTsu5Z0B2Hj3W9NNnbd+AjFWjqg==", + "license": "MIT", + "dependencies": { + "@types/http-proxy": "^1.17.15", + "debug": "^4.3.6", + "http-proxy": "^1.18.1", + "is-glob": "^4.0.3", + "is-plain-object": "^5.0.0", + "micromatch": "^4.0.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "license": "MIT" + }, + "node_modules/@angular-devkit/build-angular/node_modules/jsonc-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.3.1.tgz", + "integrity": "sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==", + "license": "MIT" + }, + "node_modules/@angular-devkit/build-angular/node_modules/less-loader": { + "version": "12.2.0", + "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-12.2.0.tgz", + "integrity": "sha512-MYUxjSQSBUQmowc0l5nPieOYwMzGPUaTzB6inNW/bdPEG9zOL3eAAD1Qw5ZxSPk7we5dMojHwNODYMV1hq4EVg==", + "license": "MIT", + "engines": { + "node": ">= 18.12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "@rspack/core": "0.x || 1.x", + "less": "^3.5.0 || ^4.0.0", + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "@rspack/core": { + "optional": true + }, + "webpack": { + "optional": true + } + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/loader-utils": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.3.1.tgz", + "integrity": "sha512-FMJTLMXfCLMLfJxcX9PFqX5qD88Z5MRGaZCVzfuqeZSPsyiBzs+pahDQjbIWz2QIzPZz0NX9Zy4FX3lmK6YHIg==", + "license": "MIT", + "engines": { + "node": ">= 12.13.0" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/mini-css-extract-plugin": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.9.2.tgz", + "integrity": "sha512-GJuACcS//jtq4kCtd5ii/M0SZf7OZRH+BxdqXZHaJfb8TJiVl+NgQRPwiYt2EuqeSkNydn/7vP+bcE27C5mb9w==", + "license": "MIT", + "dependencies": { + "schema-utils": "^4.0.0", + "tapable": "^2.2.1" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/mini-css-extract-plugin/node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/mini-css-extract-plugin/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/mini-css-extract-plugin/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "license": "MIT" + }, + "node_modules/@angular-devkit/build-angular/node_modules/mini-css-extract-plugin/node_modules/schema-utils": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.0.tgz", + "integrity": "sha512-Gf9qqc58SpCA/xdziiHz35F4GNIWYWZrEshUc/G/r5BnLph6xpKuLeoJoQuj5WfBIx/eQLf+hmVPYHaxJu7V2g==", + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/path-type": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-5.0.0.tgz", + "integrity": "sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/postcss-loader": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-8.1.1.tgz", + "integrity": "sha512-0IeqyAsG6tYiDRCYKQJLAmgQr47DX6N7sFSWvQxt6AcupX8DIdmykuk/o/tx0Lze3ErGHJEp5OSRxrelC6+NdQ==", + "license": "MIT", + "dependencies": { + "cosmiconfig": "^9.0.0", + "jiti": "^1.20.0", + "semver": "^7.5.4" + }, + "engines": { + "node": ">= 18.12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "@rspack/core": "0.x || 1.x", + "postcss": "^7.0.0 || ^8.0.1", + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "@rspack/core": { + "optional": true + }, + "webpack": { + "optional": true + } + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/rxjs": { "version": "7.8.1", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", @@ -382,10 +1205,132 @@ "tslib": "^2.1.0" } }, + "node_modules/@angular-devkit/build-angular/node_modules/sass-loader": { + "version": "16.0.3", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-16.0.3.tgz", + "integrity": "sha512-gosNorT1RCkuCMyihv6FBRR7BMV06oKRAs+l4UMp1mlcVg9rWN6KMmUj3igjQwmYys4mDP3etEYJgiHRbgHCHA==", + "license": "MIT", + "dependencies": { + "neo-async": "^2.6.2" + }, + "engines": { + "node": ">= 18.12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "@rspack/core": "0.x || 1.x", + "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0", + "sass": "^1.3.0", + "sass-embedded": "*", + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "@rspack/core": { + "optional": true + }, + "node-sass": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "webpack": { + "optional": true + } + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/slash": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz", + "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==", + "license": "MIT", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" + }, + "node_modules/@angular-devkit/build-angular/node_modules/webpack": { + "version": "5.96.1", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.96.1.tgz", + "integrity": "sha512-l2LlBSvVZGhL4ZrPwyr8+37AunkcYj5qh8o6u2/2rzoPc8gxFJkLj1WxNgooi9pnoc06jh0BjuXnamM4qlujZA==", + "license": "MIT", + "dependencies": { + "@types/eslint-scope": "^3.7.7", + "@types/estree": "^1.0.6", + "@webassemblyjs/ast": "^1.12.1", + "@webassemblyjs/wasm-edit": "^1.12.1", + "@webassemblyjs/wasm-parser": "^1.12.1", + "acorn": "^8.14.0", + "browserslist": "^4.24.0", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.17.1", + "es-module-lexer": "^1.2.1", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.11", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.2.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.3.10", + "watchpack": "^2.4.1", + "webpack-sources": "^3.2.3" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, "node_modules/@angular-devkit/core": { - "version": "18.2.9", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-18.2.9.tgz", - "integrity": "sha512-bsVt//5E0ua7FZfO0dCF/qGGY6KQD34/bNGyRu5B6HedimpdU2/0PGDptksU5v3yKEc9gNw0xC6mT0UsY/R9pA==", + "version": "19.0.6", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-19.0.6.tgz", + "integrity": "sha512-WUWJhzQDsovfMY6jtb9Ktz/5sJszsaErj+XV2aXab85f1OweI/Iv2urPZnJwUSilvVN5Ok/fy3IJ6SuihK4Ceg==", "license": "MIT", "dependencies": { "ajv": "8.17.1", @@ -401,7 +1346,7 @@ "yarn": ">= 1.13.0" }, "peerDependencies": { - "chokidar": "^3.5.2" + "chokidar": "^4.0.0" }, "peerDependenciesMeta": { "chokidar": { @@ -409,6 +1354,29 @@ } } }, + "node_modules/@angular-devkit/core/node_modules/ajv-formats": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz", + "integrity": "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==", + "license": "MIT", + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/@angular-devkit/core/node_modules/jsonc-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.3.1.tgz", + "integrity": "sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==", + "license": "MIT" + }, "node_modules/@angular-devkit/core/node_modules/rxjs": { "version": "7.8.1", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", @@ -418,15 +1386,24 @@ "tslib": "^2.1.0" } }, + "node_modules/@angular-devkit/core/node_modules/source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "license": "BSD-3-Clause", + "engines": { + "node": ">= 8" + } + }, "node_modules/@angular-devkit/schematics": { - "version": "18.2.9", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-18.2.9.tgz", - "integrity": "sha512-aIY5/IomDOINGCtFYi77uo0acDpdQNNCighfBBUGEBNMQ1eE3oGNGpLAH/qWeuxJndgmxrdKsvws9DdT46kLig==", + "version": "19.0.6", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-19.0.6.tgz", + "integrity": "sha512-R9hlHfAh1HKoIWgnYJlOEKhUezhTNl0fpUmHxG2252JSY5FLRxmYArTtJYYmbNdBbsBLNg3UHyM/GBPvJSA3NQ==", "license": "MIT", "dependencies": { - "@angular-devkit/core": "18.2.9", + "@angular-devkit/core": "19.0.6", "jsonc-parser": "3.3.1", - "magic-string": "0.30.11", + "magic-string": "0.30.12", "ora": "5.4.1", "rxjs": "7.8.1" }, @@ -436,6 +1413,21 @@ "yarn": ">= 1.13.0" } }, + "node_modules/@angular-devkit/schematics/node_modules/jsonc-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.3.1.tgz", + "integrity": "sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==", + "license": "MIT" + }, + "node_modules/@angular-devkit/schematics/node_modules/magic-string": { + "version": "0.30.12", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.12.tgz", + "integrity": "sha512-Ea8I3sQMVXr8JhN4z+H/d8zwo+tYDgHE9+5G4Wnrwhs0gaK9fXTKx0Tw5Xwsd/bCPTTZNRAdpyzvoeORe9LYpw==", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0" + } + }, "node_modules/@angular-devkit/schematics/node_modules/rxjs": { "version": "7.8.1", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", @@ -446,80 +1438,108 @@ } }, "node_modules/@angular-eslint/bundled-angular-compiler": { - "version": "18.1.0", - "resolved": "https://registry.npmjs.org/@angular-eslint/bundled-angular-compiler/-/bundled-angular-compiler-18.1.0.tgz", - "integrity": "sha512-2JNlMEnCvLz8q1Qa4sWR9BddtpDWMKYguMzHJKm5zUDwH90CgWHolQlXumtpqbL8r78xd57t35IkbEFLF3UsQw==", + "version": "19.0.2", + "resolved": "https://registry.npmjs.org/@angular-eslint/bundled-angular-compiler/-/bundled-angular-compiler-19.0.2.tgz", + "integrity": "sha512-HPmp92r70SNO/0NdIaIhxrgVSpomqryuUk7jszvNRtu+OzYCJGcbLhQD38T3dbBWT/AV0QXzyzExn6/2ai9fEw==", "dev": true, "license": "MIT" }, "node_modules/@angular-eslint/eslint-plugin": { - "version": "18.1.0", - "resolved": "https://registry.npmjs.org/@angular-eslint/eslint-plugin/-/eslint-plugin-18.1.0.tgz", - "integrity": "sha512-rV1RLhcg9TTNE5hB7pMddkJvnH0+q3FnhhWVE+IJNkzlGxEktDwVx7hG17sy8YkRS2CxR0P6Dr5C6wMBdEwAsw==", + "version": "19.0.2", + "resolved": "https://registry.npmjs.org/@angular-eslint/eslint-plugin/-/eslint-plugin-19.0.2.tgz", + "integrity": "sha512-DLuNVVGGFicSThOcMSJyNje+FZSPdG0B3lCBRiqcgKH/16kfM4pV8MobPM7RGK2NhaOmmZ4zzJNwpwWPSgi+Lw==", "dev": true, "license": "MIT", "dependencies": { - "@angular-eslint/bundled-angular-compiler": "18.1.0", - "@angular-eslint/utils": "18.1.0" + "@angular-eslint/bundled-angular-compiler": "19.0.2", + "@angular-eslint/utils": "19.0.2" }, "peerDependencies": { - "@typescript-eslint/utils": "^7.11.0 || ^8.0.0-alpha.37", + "@typescript-eslint/utils": "^7.11.0 || ^8.0.0", "eslint": "^8.57.0 || ^9.0.0", "typescript": "*" } }, "node_modules/@angular-eslint/eslint-plugin-template": { - "version": "18.1.0", - "resolved": "https://registry.npmjs.org/@angular-eslint/eslint-plugin-template/-/eslint-plugin-template-18.1.0.tgz", - "integrity": "sha512-k7Zq2JRd4jjg6PB0M24UnnmdhCeRFQ7Q4GlMGmeJLQGan+HFKDBu973yN2/Vmk4RYi+rTVuin0gy4HBeiGiiaw==", + "version": "19.0.2", + "resolved": "https://registry.npmjs.org/@angular-eslint/eslint-plugin-template/-/eslint-plugin-template-19.0.2.tgz", + "integrity": "sha512-f/OCF9ThnxQ8m0eNYPwnCrySQPhYfCOF6STL7F9LnS8Bs3ZeW3/oT1yLaMIZ1Eg0ogIkgxksMAJZjrJPUPBD1Q==", "dev": true, "license": "MIT", "dependencies": { - "@angular-eslint/bundled-angular-compiler": "18.1.0", - "@angular-eslint/utils": "18.1.0", - "aria-query": "5.3.0", - "axobject-query": "4.0.0" + "@angular-eslint/bundled-angular-compiler": "19.0.2", + "@angular-eslint/utils": "19.0.2", + "aria-query": "5.3.2", + "axobject-query": "4.1.0" }, "peerDependencies": { - "@typescript-eslint/utils": "^7.11.0 || ^8.0.0-alpha.37", + "@typescript-eslint/types": "^7.11.0 || ^8.0.0", + "@typescript-eslint/utils": "^7.11.0 || ^8.0.0", "eslint": "^8.57.0 || ^9.0.0", "typescript": "*" } }, + "node_modules/@angular-eslint/eslint-plugin-template/node_modules/axobject-query": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz", + "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">= 0.4" + } + }, "node_modules/@angular-eslint/template-parser": { - "version": "18.1.0", - "resolved": "https://registry.npmjs.org/@angular-eslint/template-parser/-/template-parser-18.1.0.tgz", - "integrity": "sha512-YqBNusbt3vWbm8eo2dICytU8hP8/ez4uETkwKpMvB+H1E0rYaD2F17D47YO9BBFUHCNzAGIBlA8BWDN1kLEMlw==", + "version": "19.0.2", + "resolved": "https://registry.npmjs.org/@angular-eslint/template-parser/-/template-parser-19.0.2.tgz", + "integrity": "sha512-z3rZd2sBfuYcFf9rGDsB2zz2fbGX8kkF+0ftg9eocyQmzWrlZHFmuw9ha7oP/Mz8gpblyCS/aa1U/Srs6gz0UQ==", "dev": true, "license": "MIT", "dependencies": { - "@angular-eslint/bundled-angular-compiler": "18.1.0", - "eslint-scope": "^8.0.0" + "@angular-eslint/bundled-angular-compiler": "19.0.2", + "eslint-scope": "^8.0.2" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0", "typescript": "*" } }, + "node_modules/@angular-eslint/template-parser/node_modules/eslint-scope": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.2.0.tgz", + "integrity": "sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, "node_modules/@angular-eslint/utils": { - "version": "18.1.0", - "resolved": "https://registry.npmjs.org/@angular-eslint/utils/-/utils-18.1.0.tgz", - "integrity": "sha512-pTCwbm9TPU1B0fxwhJg5qnJA2ILUJR0cT+rc7kejV0Xwl6RBXpMrzbuMzB9CucEY1au8hAR55I+Sc9znwSwuIw==", + "version": "19.0.2", + "resolved": "https://registry.npmjs.org/@angular-eslint/utils/-/utils-19.0.2.tgz", + "integrity": "sha512-HotBT8OKr7zCaX1S9k27JuhRiTVIbbYVl6whlb3uwdMIPIWY8iOcEh1tjI4qDPUafpLfR72Dhwi5bO1E17F3/Q==", "dev": true, "license": "MIT", "dependencies": { - "@angular-eslint/bundled-angular-compiler": "18.1.0" + "@angular-eslint/bundled-angular-compiler": "19.0.2" }, "peerDependencies": { - "@typescript-eslint/utils": "^7.11.0 || ^8.0.0-alpha.37", + "@typescript-eslint/utils": "^7.11.0 || ^8.0.0", "eslint": "^8.57.0 || ^9.0.0", "typescript": "*" } }, "node_modules/@angular/animations": { - "version": "18.2.8", - "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-18.2.8.tgz", - "integrity": "sha512-dMSn2hg70siv3lhP+vqhMbgc923xw6XBUvnpCPEzhZqFHvPXfh/LubmsD5RtqHmjWebXtgVcgS+zg3Gq3jB2lg==", + "version": "19.0.5", + "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-19.0.5.tgz", + "integrity": "sha512-HCOF2CrhUvjoZWusd4nh32VOxpUrg6bV+3Z8Q36Ix3aZdni8v0qoP2rl5wGbotaPtYg5RtyDH60Z2AOPKqlrZg==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -528,55 +1548,66 @@ "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/core": "18.2.8" + "@angular/core": "19.0.5" } }, + "node_modules/@angular/animations/node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" + }, "node_modules/@angular/build": { - "version": "18.2.9", - "resolved": "https://registry.npmjs.org/@angular/build/-/build-18.2.9.tgz", - "integrity": "sha512-o1hOEM2e6ARy+ck2Pohl0d/RFgbbXTw6/hTLAj3CBKjtqAGStRaVF2UlJjhi+xOxlfsOPuJJc9IpzLBteku+Ag==", + "version": "19.0.6", + "resolved": "https://registry.npmjs.org/@angular/build/-/build-19.0.6.tgz", + "integrity": "sha512-KEVNLgTZUF2dfpOYQn+yR2HONHUTxq/2rFVhiK9qAvrm/m+uKJNEXx7hGtbRyoqenZff4ScJq+7feITUldfX8g==", "license": "MIT", "dependencies": { "@ampproject/remapping": "2.3.0", - "@angular-devkit/architect": "0.1802.9", - "@babel/core": "7.25.2", - "@babel/helper-annotate-as-pure": "7.24.7", + "@angular-devkit/architect": "0.1900.6", + "@babel/core": "7.26.0", + "@babel/helper-annotate-as-pure": "7.25.9", "@babel/helper-split-export-declaration": "7.24.7", - "@babel/plugin-syntax-import-attributes": "7.24.7", - "@inquirer/confirm": "3.1.22", + "@babel/plugin-syntax-import-attributes": "7.26.0", + "@inquirer/confirm": "5.0.2", "@vitejs/plugin-basic-ssl": "1.1.0", + "beasties": "0.1.0", "browserslist": "^4.23.0", - "critters": "0.0.24", - "esbuild": "0.23.0", + "esbuild": "0.24.0", "fast-glob": "3.3.2", "https-proxy-agent": "7.0.5", - "listr2": "8.2.4", - "lmdb": "3.0.13", - "magic-string": "0.30.11", + "istanbul-lib-instrument": "6.0.3", + "listr2": "8.2.5", + "magic-string": "0.30.12", "mrmime": "2.0.0", "parse5-html-rewriting-stream": "7.0.0", "picomatch": "4.0.2", - "piscina": "4.6.1", - "rollup": "4.22.4", - "sass": "1.77.6", + "piscina": "4.7.0", + "rollup": "4.26.0", + "sass": "1.80.7", "semver": "7.6.3", - "vite": "5.4.6", - "watchpack": "2.4.1" + "vite": "5.4.11", + "watchpack": "2.4.2" }, "engines": { "node": "^18.19.1 || ^20.11.1 || >=22.0.0", "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", "yarn": ">= 1.13.0" }, + "optionalDependencies": { + "lmdb": "3.1.5" + }, "peerDependencies": { - "@angular/compiler-cli": "^18.0.0", - "@angular/localize": "^18.0.0", - "@angular/platform-server": "^18.0.0", - "@angular/service-worker": "^18.0.0", + "@angular/compiler": "^19.0.0", + "@angular/compiler-cli": "^19.0.0", + "@angular/localize": "^19.0.0", + "@angular/platform-server": "^19.0.0", + "@angular/service-worker": "^19.0.0", + "@angular/ssr": "^19.0.6", "less": "^4.2.0", "postcss": "^8.4.0", "tailwindcss": "^2.0.0 || ^3.0.0", - "typescript": ">=5.4 <5.6" + "typescript": ">=5.5 <5.7" }, "peerDependenciesMeta": { "@angular/localize": { @@ -588,6 +1619,9 @@ "@angular/service-worker": { "optional": true }, + "@angular/ssr": { + "optional": true + }, "less": { "optional": true }, @@ -599,10 +1633,455 @@ } } }, + "node_modules/@angular/build/node_modules/@esbuild/aix-ppc64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.24.0.tgz", + "integrity": "sha512-WtKdFM7ls47zkKHFVzMz8opM7LkcsIp9amDUBIAWirg70RM71WRSjdILPsY5Uv1D42ZpUfaPILDlfactHgsRkw==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@angular/build/node_modules/@esbuild/android-arm": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.24.0.tgz", + "integrity": "sha512-arAtTPo76fJ/ICkXWetLCc9EwEHKaeya4vMrReVlEIUCAUncH7M4bhMQ+M9Vf+FFOZJdTNMXNBrWwW+OXWpSew==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@angular/build/node_modules/@esbuild/android-arm64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.24.0.tgz", + "integrity": "sha512-Vsm497xFM7tTIPYK9bNTYJyF/lsP590Qc1WxJdlB6ljCbdZKU9SY8i7+Iin4kyhV/KV5J2rOKsBQbB77Ab7L/w==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@angular/build/node_modules/@esbuild/android-x64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.24.0.tgz", + "integrity": "sha512-t8GrvnFkiIY7pa7mMgJd7p8p8qqYIz1NYiAoKc75Zyv73L3DZW++oYMSHPRarcotTKuSs6m3hTOa5CKHaS02TQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@angular/build/node_modules/@esbuild/darwin-arm64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.24.0.tgz", + "integrity": "sha512-CKyDpRbK1hXwv79soeTJNHb5EiG6ct3efd/FTPdzOWdbZZfGhpbcqIpiD0+vwmpu0wTIL97ZRPZu8vUt46nBSw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@angular/build/node_modules/@esbuild/darwin-x64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.24.0.tgz", + "integrity": "sha512-rgtz6flkVkh58od4PwTRqxbKH9cOjaXCMZgWD905JOzjFKW+7EiUObfd/Kav+A6Gyud6WZk9w+xu6QLytdi2OA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@angular/build/node_modules/@esbuild/freebsd-arm64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.24.0.tgz", + "integrity": "sha512-6Mtdq5nHggwfDNLAHkPlyLBpE5L6hwsuXZX8XNmHno9JuL2+bg2BX5tRkwjyfn6sKbxZTq68suOjgWqCicvPXA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@angular/build/node_modules/@esbuild/freebsd-x64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.24.0.tgz", + "integrity": "sha512-D3H+xh3/zphoX8ck4S2RxKR6gHlHDXXzOf6f/9dbFt/NRBDIE33+cVa49Kil4WUjxMGW0ZIYBYtaGCa2+OsQwQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@angular/build/node_modules/@esbuild/linux-arm": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.24.0.tgz", + "integrity": "sha512-gJKIi2IjRo5G6Glxb8d3DzYXlxdEj2NlkixPsqePSZMhLudqPhtZ4BUrpIuTjJYXxvF9njql+vRjB2oaC9XpBw==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@angular/build/node_modules/@esbuild/linux-arm64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.24.0.tgz", + "integrity": "sha512-TDijPXTOeE3eaMkRYpcy3LarIg13dS9wWHRdwYRnzlwlA370rNdZqbcp0WTyyV/k2zSxfko52+C7jU5F9Tfj1g==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@angular/build/node_modules/@esbuild/linux-ia32": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.24.0.tgz", + "integrity": "sha512-K40ip1LAcA0byL05TbCQ4yJ4swvnbzHscRmUilrmP9Am7//0UjPreh4lpYzvThT2Quw66MhjG//20mrufm40mA==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@angular/build/node_modules/@esbuild/linux-loong64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.24.0.tgz", + "integrity": "sha512-0mswrYP/9ai+CU0BzBfPMZ8RVm3RGAN/lmOMgW4aFUSOQBjA31UP8Mr6DDhWSuMwj7jaWOT0p0WoZ6jeHhrD7g==", + "cpu": [ + "loong64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@angular/build/node_modules/@esbuild/linux-mips64el": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.24.0.tgz", + "integrity": "sha512-hIKvXm0/3w/5+RDtCJeXqMZGkI2s4oMUGj3/jM0QzhgIASWrGO5/RlzAzm5nNh/awHE0A19h/CvHQe6FaBNrRA==", + "cpu": [ + "mips64el" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@angular/build/node_modules/@esbuild/linux-ppc64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.24.0.tgz", + "integrity": "sha512-HcZh5BNq0aC52UoocJxaKORfFODWXZxtBaaZNuN3PUX3MoDsChsZqopzi5UupRhPHSEHotoiptqikjN/B77mYQ==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@angular/build/node_modules/@esbuild/linux-riscv64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.24.0.tgz", + "integrity": "sha512-bEh7dMn/h3QxeR2KTy1DUszQjUrIHPZKyO6aN1X4BCnhfYhuQqedHaa5MxSQA/06j3GpiIlFGSsy1c7Gf9padw==", + "cpu": [ + "riscv64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@angular/build/node_modules/@esbuild/linux-s390x": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.24.0.tgz", + "integrity": "sha512-ZcQ6+qRkw1UcZGPyrCiHHkmBaj9SiCD8Oqd556HldP+QlpUIe2Wgn3ehQGVoPOvZvtHm8HPx+bH20c9pvbkX3g==", + "cpu": [ + "s390x" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@angular/build/node_modules/@esbuild/linux-x64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.24.0.tgz", + "integrity": "sha512-vbutsFqQ+foy3wSSbmjBXXIJ6PL3scghJoM8zCL142cGaZKAdCZHyf+Bpu/MmX9zT9Q0zFBVKb36Ma5Fzfa8xA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@angular/build/node_modules/@esbuild/netbsd-x64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.24.0.tgz", + "integrity": "sha512-hjQ0R/ulkO8fCYFsG0FZoH+pWgTTDreqpqY7UnQntnaKv95uP5iW3+dChxnx7C3trQQU40S+OgWhUVwCjVFLvg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@angular/build/node_modules/@esbuild/openbsd-arm64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.24.0.tgz", + "integrity": "sha512-MD9uzzkPQbYehwcN583yx3Tu5M8EIoTD+tUgKF982WYL9Pf5rKy9ltgD0eUgs8pvKnmizxjXZyLt0z6DC3rRXg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@angular/build/node_modules/@esbuild/openbsd-x64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.24.0.tgz", + "integrity": "sha512-4ir0aY1NGUhIC1hdoCzr1+5b43mw99uNwVzhIq1OY3QcEwPDO3B7WNXBzaKY5Nsf1+N11i1eOfFcq+D/gOS15Q==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@angular/build/node_modules/@esbuild/sunos-x64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.24.0.tgz", + "integrity": "sha512-jVzdzsbM5xrotH+W5f1s+JtUy1UWgjU0Cf4wMvffTB8m6wP5/kx0KiaLHlbJO+dMgtxKV8RQ/JvtlFcdZ1zCPA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@angular/build/node_modules/@esbuild/win32-arm64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.24.0.tgz", + "integrity": "sha512-iKc8GAslzRpBytO2/aN3d2yb2z8XTVfNV0PjGlCxKo5SgWmNXx82I/Q3aG1tFfS+A2igVCY97TJ8tnYwpUWLCA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@angular/build/node_modules/@esbuild/win32-ia32": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.24.0.tgz", + "integrity": "sha512-vQW36KZolfIudCcTnaTpmLQ24Ha1RjygBo39/aLkM2kmjkWmZGEJ5Gn9l5/7tzXA42QGIoWbICfg6KLLkIw6yw==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@angular/build/node_modules/@esbuild/win32-x64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.24.0.tgz", + "integrity": "sha512-7IAFPrjSQIJrGsK6flwg7NFmwBoSTyF3rl7If0hNUFQU4ilTsEPL6GuMuU9BfIWVVGuRnuIidkSMC+c0Otu8IA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@angular/build/node_modules/esbuild": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.24.0.tgz", + "integrity": "sha512-FuLPevChGDshgSicjisSooU0cemp/sGXR841D5LHMB7mTVOmsEHcAxaH3irL53+8YDIeVNQEySh4DaYU/iuPqQ==", + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.24.0", + "@esbuild/android-arm": "0.24.0", + "@esbuild/android-arm64": "0.24.0", + "@esbuild/android-x64": "0.24.0", + "@esbuild/darwin-arm64": "0.24.0", + "@esbuild/darwin-x64": "0.24.0", + "@esbuild/freebsd-arm64": "0.24.0", + "@esbuild/freebsd-x64": "0.24.0", + "@esbuild/linux-arm": "0.24.0", + "@esbuild/linux-arm64": "0.24.0", + "@esbuild/linux-ia32": "0.24.0", + "@esbuild/linux-loong64": "0.24.0", + "@esbuild/linux-mips64el": "0.24.0", + "@esbuild/linux-ppc64": "0.24.0", + "@esbuild/linux-riscv64": "0.24.0", + "@esbuild/linux-s390x": "0.24.0", + "@esbuild/linux-x64": "0.24.0", + "@esbuild/netbsd-x64": "0.24.0", + "@esbuild/openbsd-arm64": "0.24.0", + "@esbuild/openbsd-x64": "0.24.0", + "@esbuild/sunos-x64": "0.24.0", + "@esbuild/win32-arm64": "0.24.0", + "@esbuild/win32-ia32": "0.24.0", + "@esbuild/win32-x64": "0.24.0" + } + }, + "node_modules/@angular/build/node_modules/https-proxy-agent": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz", + "integrity": "sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==", + "license": "MIT", + "dependencies": { + "agent-base": "^7.0.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@angular/build/node_modules/magic-string": { + "version": "0.30.12", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.12.tgz", + "integrity": "sha512-Ea8I3sQMVXr8JhN4z+H/d8zwo+tYDgHE9+5G4Wnrwhs0gaK9fXTKx0Tw5Xwsd/bCPTTZNRAdpyzvoeORe9LYpw==", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0" + } + }, "node_modules/@angular/cdk": { - "version": "18.2.9", - "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-18.2.9.tgz", - "integrity": "sha512-hV2dXpvy2TLwCsRtI/ZXkb2EoaJiellRr+kbcnKwO15LFoz3mTAOhKtsvu7yOyURkaPiI605qiIZrPP4zLL1qw==", + "version": "19.0.4", + "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-19.0.4.tgz", + "integrity": "sha512-P8V1n6AFFjBUJG3YRgw8DiiNDWPZVrwQ42wbwgZxd4s2TQAuNFg3YY8h/DSMVxt2sXpavrshZsoLtP9yLKZjHA==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -611,31 +2090,37 @@ "parse5": "^7.1.2" }, "peerDependencies": { - "@angular/common": "^18.0.0 || ^19.0.0", - "@angular/core": "^18.0.0 || ^19.0.0", + "@angular/common": "^19.0.0 || ^20.0.0", + "@angular/core": "^19.0.0 || ^20.0.0", "rxjs": "^6.5.3 || ^7.4.0" } }, + "node_modules/@angular/cdk/node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" + }, "node_modules/@angular/cli": { - "version": "18.2.9", - "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-18.2.9.tgz", - "integrity": "sha512-ejTIqwvPABwK7MtVmI2qWbEaMhhbHNsq0NPzl1hwLtkrLbjdDrEVv0Wy+gN0xqrT9NyCPl4AmNLz/xuYTzgU5g==", + "version": "19.0.6", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-19.0.6.tgz", + "integrity": "sha512-ZEHhgRRVIdn10dbsAjB8TE9Co32hfuL9/im5Jcfa1yrn6KJefmigz6KN8Xu7FXMH5FkdqfQ11QpLBxJSPb9aww==", "dev": true, "license": "MIT", "dependencies": { - "@angular-devkit/architect": "0.1802.9", - "@angular-devkit/core": "18.2.9", - "@angular-devkit/schematics": "18.2.9", - "@inquirer/prompts": "5.3.8", - "@listr2/prompt-adapter-inquirer": "2.0.15", - "@schematics/angular": "18.2.9", + "@angular-devkit/architect": "0.1900.6", + "@angular-devkit/core": "19.0.6", + "@angular-devkit/schematics": "19.0.6", + "@inquirer/prompts": "7.1.0", + "@listr2/prompt-adapter-inquirer": "2.0.18", + "@schematics/angular": "19.0.6", "@yarnpkg/lockfile": "1.1.0", - "ini": "4.1.3", + "ini": "5.0.0", "jsonc-parser": "3.3.1", - "listr2": "8.2.4", - "npm-package-arg": "11.0.3", - "npm-pick-manifest": "9.1.0", - "pacote": "18.0.6", + "listr2": "8.2.5", + "npm-package-arg": "12.0.0", + "npm-pick-manifest": "10.0.0", + "pacote": "20.0.0", "resolve": "1.22.8", "semver": "7.6.3", "symbol-observable": "4.0.0", @@ -650,10 +2135,51 @@ "yarn": ">= 1.13.0" } }, + "node_modules/@angular/cli/node_modules/jsonc-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.3.1.tgz", + "integrity": "sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@angular/cli/node_modules/npm-package-arg": { + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-12.0.0.tgz", + "integrity": "sha512-ZTE0hbwSdTNL+Stx2zxSqdu2KZfNDcrtrLdIk7XGnQFYBWYDho/ORvXtn5XEePcL3tFpGjHCV3X3xrtDh7eZ+A==", + "dev": true, + "license": "ISC", + "dependencies": { + "hosted-git-info": "^8.0.0", + "proc-log": "^5.0.0", + "semver": "^7.3.5", + "validate-npm-package-name": "^6.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/@angular/cli/node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/@angular/common": { - "version": "18.2.8", - "resolved": "https://registry.npmjs.org/@angular/common/-/common-18.2.8.tgz", - "integrity": "sha512-TYsKtE5nVaIScWSLGSO34Skc+s3hB/BujSddnfQHoNFvPT/WR0dfmdlpVCTeLj+f50htFoMhW11tW99PbK+whQ==", + "version": "19.0.5", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-19.0.5.tgz", + "integrity": "sha512-fFK+euCj1AjBHBCpj9VnduMSeqoMRhZZHbhPYiND7tucRRJ8vwGU0sYK2KI/Ko+fsrNIXL/0O4F36jVPl09Smg==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -662,14 +2188,20 @@ "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/core": "18.2.8", + "@angular/core": "19.0.5", "rxjs": "^6.5.3 || ^7.4.0" } }, + "node_modules/@angular/common/node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" + }, "node_modules/@angular/compiler": { - "version": "18.2.8", - "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-18.2.8.tgz", - "integrity": "sha512-JRedHNfK1CCPVyeGQB5w3WBYqMA6X8Q240CkvjlGfn0pVXihf9DWk3nkSQJVgYxpvpHfxdgjaYZ5IpMzlkmkhw==", + "version": "19.0.5", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-19.0.5.tgz", + "integrity": "sha512-S8ku5Ljp0kqX3shfmE9DVo09629jeYJSlBRGbj2Glb92dd+VQZPOz7KxqKRTwmAl7lQIV/+4Lr6G/GVTsoC4vg==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -678,7 +2210,7 @@ "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/core": "18.2.8" + "@angular/core": "19.0.5" }, "peerDependenciesMeta": { "@angular/core": { @@ -687,12 +2219,12 @@ } }, "node_modules/@angular/compiler-cli": { - "version": "18.2.8", - "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-18.2.8.tgz", - "integrity": "sha512-OksDE4LWQUCcIvMjtZF7eiDCdIMrcMMpC1+Q0PIYi7KmnqXFGs4/Y0NdJvtn/LrQznzz5WaKM3ZDVNZTRX4wmw==", + "version": "19.0.5", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-19.0.5.tgz", + "integrity": "sha512-KSzuWCTZlvJsoAenxM9cjTOzNM8mrFxDBInj0KVPz7QU83amGS4rcv1pWO/QGYQcErfskcN84TAdMegaRWWCmA==", "license": "MIT", "dependencies": { - "@babel/core": "7.25.2", + "@babel/core": "7.26.0", "@jridgewell/sourcemap-codec": "^1.4.14", "chokidar": "^4.0.0", "convert-source-map": "^1.5.1", @@ -710,37 +2242,15 @@ "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/compiler": "18.2.8", - "typescript": ">=5.4 <5.6" + "@angular/compiler": "19.0.5", + "typescript": ">=5.5 <5.7" } }, - "node_modules/@angular/compiler-cli/node_modules/chokidar": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.1.tgz", - "integrity": "sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA==", - "license": "MIT", - "dependencies": { - "readdirp": "^4.0.1" - }, - "engines": { - "node": ">= 14.16.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@angular/compiler-cli/node_modules/readdirp": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.0.2.tgz", - "integrity": "sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==", - "license": "MIT", - "engines": { - "node": ">= 14.16.0" - }, - "funding": { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } + "node_modules/@angular/compiler-cli/node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "license": "MIT" }, "node_modules/@angular/compiler-cli/node_modules/reflect-metadata": { "version": "0.2.2", @@ -748,10 +2258,22 @@ "integrity": "sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==", "license": "Apache-2.0" }, + "node_modules/@angular/compiler-cli/node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" + }, + "node_modules/@angular/compiler/node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" + }, "node_modules/@angular/core": { - "version": "18.2.8", - "resolved": "https://registry.npmjs.org/@angular/core/-/core-18.2.8.tgz", - "integrity": "sha512-NwIuX/Iby1jT6Iv1/s6S3wOFf8xfuQR3MPGvKhGgNtjXLbHG+TXceK9+QPZC0s9/Z8JR/hz+li34B79GrIKgUg==", + "version": "19.0.5", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-19.0.5.tgz", + "integrity": "sha512-Ywc6sPO6G/Y1stfk3y/MallV/h0yzQ0vdOHRWueLrk5kD1DTdbolV4X03Cs3PuVvravgcSVE3nnuuHFuH32emQ==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -761,13 +2283,19 @@ }, "peerDependencies": { "rxjs": "^6.5.3 || ^7.4.0", - "zone.js": "~0.14.10" + "zone.js": "~0.15.0" } }, + "node_modules/@angular/core/node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" + }, "node_modules/@angular/forms": { - "version": "18.2.8", - "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-18.2.8.tgz", - "integrity": "sha512-JCLki7KC6D5vF6dE6yGlBmW33khIgpHs8N9SzuiJtkQqNDTIQA8cPsGV6qpLpxflxASynQOX5lDkWYdQyfm77Q==", + "version": "19.0.5", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-19.0.5.tgz", + "integrity": "sha512-OhNFkfOoguqCDq07vNBV28FFrmTM8S11Z3Cd6PQZJJF9TgAtpV5KtF7A3eXBCN92W4pmqluomPjfK7YyImzIYQ==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -776,16 +2304,22 @@ "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/common": "18.2.8", - "@angular/core": "18.2.8", - "@angular/platform-browser": "18.2.8", + "@angular/common": "19.0.5", + "@angular/core": "19.0.5", + "@angular/platform-browser": "19.0.5", "rxjs": "^6.5.3 || ^7.4.0" } }, + "node_modules/@angular/forms/node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" + }, "node_modules/@angular/language-service": { - "version": "18.2.8", - "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-18.2.8.tgz", - "integrity": "sha512-IueQ57CPP0Dt0z2n8B1A6JTwTq6m/AJVObZzrkSfXlzY1rY2qRuTJmAbZpTJ3iAxVzNYoaGh+NFHmJL8fRiXKQ==", + "version": "19.0.5", + "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-19.0.5.tgz", + "integrity": "sha512-E4WFEsCzHuF3DYe4EfOCiMGW1zWmq3UYi5XXOBNLyzWDvwU5xTfdme6ECXGawHMc2kCaWMVNL4DzYpVsUgLG0w==", "dev": true, "license": "MIT", "engines": { @@ -793,13 +2327,13 @@ } }, "node_modules/@angular/localize": { - "version": "18.2.8", - "resolved": "https://registry.npmjs.org/@angular/localize/-/localize-18.2.8.tgz", - "integrity": "sha512-1T7aXEdgVyeYnHOfQUuIDO8Lsamg1ZLrJrA5zUv61asPJp6HCcMjXy9vDQ1XvHm5+CdDjKk/rczlN4lSMZ0QRw==", + "version": "19.0.5", + "resolved": "https://registry.npmjs.org/@angular/localize/-/localize-19.0.5.tgz", + "integrity": "sha512-4Uk0cNYXZpjPvUXo5gAy0rjCcemyAVOG319q5BJyLSeCV0DJ+MTIR6ylGK3oLSXqKACpF3r3+Wa235xj7vxk3Q==", "devOptional": true, "license": "MIT", "dependencies": { - "@babel/core": "7.25.2", + "@babel/core": "7.26.0", "@types/babel__core": "7.20.5", "fast-glob": "3.3.2", "yargs": "^17.2.1" @@ -813,32 +2347,38 @@ "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/compiler": "18.2.8", - "@angular/compiler-cli": "18.2.8" + "@angular/compiler": "19.0.5", + "@angular/compiler-cli": "19.0.5" } }, "node_modules/@angular/material": { - "version": "18.2.9", - "resolved": "https://registry.npmjs.org/@angular/material/-/material-18.2.9.tgz", - "integrity": "sha512-M2oCgPPIMMd6BLgEJCD+FvdC7gRDeCjj9yktNn3ctHmkKUWRvpJ3xRBH/WjVXb+9fPCCW1iNwZI7+bN1fHE7cA==", + "version": "19.0.4", + "resolved": "https://registry.npmjs.org/@angular/material/-/material-19.0.4.tgz", + "integrity": "sha512-8WRMbN1+oRXx1ZFLni+BRz60F4FWzJPFORsQ8qAvY3sHWzyjunsYZkpbze3uiZO6bu3hiyQCU6g+k/58Qc6kkw==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" }, "peerDependencies": { - "@angular/animations": "^18.0.0 || ^19.0.0", - "@angular/cdk": "18.2.9", - "@angular/common": "^18.0.0 || ^19.0.0", - "@angular/core": "^18.0.0 || ^19.0.0", - "@angular/forms": "^18.0.0 || ^19.0.0", - "@angular/platform-browser": "^18.0.0 || ^19.0.0", + "@angular/animations": "^19.0.0 || ^20.0.0", + "@angular/cdk": "19.0.4", + "@angular/common": "^19.0.0 || ^20.0.0", + "@angular/core": "^19.0.0 || ^20.0.0", + "@angular/forms": "^19.0.0 || ^20.0.0", + "@angular/platform-browser": "^19.0.0 || ^20.0.0", "rxjs": "^6.5.3 || ^7.4.0" } }, + "node_modules/@angular/material/node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" + }, "node_modules/@angular/platform-browser": { - "version": "18.2.8", - "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-18.2.8.tgz", - "integrity": "sha512-EPai4ZPqSq3ilLJUC85kPi9wo5j5suQovwtgRyjM/75D9Qy4TV19g8hkVM5Co/zrltO8a2G6vDscCNI5BeGw2A==", + "version": "19.0.5", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-19.0.5.tgz", + "integrity": "sha512-41+Jo5DEil4Ifvv+UE/p1l9YJtYN+xfhx+/C9cahVgvV5D2q+givyK73d0Mnb6XOfe1q+hoV5lZ+XhQYp21//g==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -847,9 +2387,9 @@ "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/animations": "18.2.8", - "@angular/common": "18.2.8", - "@angular/core": "18.2.8" + "@angular/animations": "19.0.5", + "@angular/common": "19.0.5", + "@angular/core": "19.0.5" }, "peerDependenciesMeta": { "@angular/animations": { @@ -858,9 +2398,9 @@ } }, "node_modules/@angular/platform-browser-dynamic": { - "version": "18.2.8", - "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-18.2.8.tgz", - "integrity": "sha512-poZoapDqyN/rxGKQ3C6esdPiPLMkSpP2v12hoEa12KHgfPk7T1e+a+NMyJjV8HeOY3WyvL7tGRhW0NPTajTkhw==", + "version": "19.0.5", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-19.0.5.tgz", + "integrity": "sha512-KKFdue/uJVxkWdrntRAXkz+ycp4nD3SuGOH5pPf2svCBxieuHuFlWDi+DYVuFSEpC/ICCmlhrtzIAm44A4qzzQ==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -869,21 +2409,33 @@ "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/common": "18.2.8", - "@angular/compiler": "18.2.8", - "@angular/core": "18.2.8", - "@angular/platform-browser": "18.2.8" + "@angular/common": "19.0.5", + "@angular/compiler": "19.0.5", + "@angular/core": "19.0.5", + "@angular/platform-browser": "19.0.5" } }, + "node_modules/@angular/platform-browser-dynamic/node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" + }, + "node_modules/@angular/platform-browser/node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" + }, "node_modules/@angular/pwa": { - "version": "18.2.9", - "resolved": "https://registry.npmjs.org/@angular/pwa/-/pwa-18.2.9.tgz", - "integrity": "sha512-cmU/fTp6wXPrSWvhBWKujVUd6zAPVHP2hwjhAoPA/gLACg3Z2/Im6P8OqeDi8dchMQYAtfmNZBGdyNVARjfwYw==", + "version": "19.0.6", + "resolved": "https://registry.npmjs.org/@angular/pwa/-/pwa-19.0.6.tgz", + "integrity": "sha512-Xehq6wH4aMK5413LpuTBq/fvyJfCRU0GGcgKXigYmHLgWHolPBH356s4tSvNYvn8u9IHnl516qDkBgKJNrq5CQ==", "dev": true, "license": "MIT", "dependencies": { - "@angular-devkit/schematics": "18.2.9", - "@schematics/angular": "18.2.9", + "@angular-devkit/schematics": "19.0.6", + "@schematics/angular": "19.0.6", "parse5-html-rewriting-stream": "7.0.0" }, "engines": { @@ -892,7 +2444,7 @@ "yarn": ">= 1.13.0" }, "peerDependencies": { - "@angular/cli": "^18.0.0" + "@angular/cli": "^19.0.0-next.0" }, "peerDependenciesMeta": { "@angular/cli": { @@ -901,9 +2453,9 @@ } }, "node_modules/@angular/router": { - "version": "18.2.8", - "resolved": "https://registry.npmjs.org/@angular/router/-/router-18.2.8.tgz", - "integrity": "sha512-L+olYgxIiBq+tbfayVI0cv1yOuymsw33msnGC2l/vpc9sSVfqGzESFnB4yMVU3vHtE9v6v2Y6O+iV44/b79W/g==", + "version": "19.0.5", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-19.0.5.tgz", + "integrity": "sha512-6tNubVVj/rRyTg+OXjQxACfufvCLHAwDQtv9wqt6q/3OYSnysHTik3ho3FaFPwu7fXJ+6p9Rjzkh2VY9QMk4bw==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -912,16 +2464,22 @@ "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/common": "18.2.8", - "@angular/core": "18.2.8", - "@angular/platform-browser": "18.2.8", + "@angular/common": "19.0.5", + "@angular/core": "19.0.5", + "@angular/platform-browser": "19.0.5", "rxjs": "^6.5.3 || ^7.4.0" } }, + "node_modules/@angular/router/node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" + }, "node_modules/@angular/service-worker": { - "version": "18.2.8", - "resolved": "https://registry.npmjs.org/@angular/service-worker/-/service-worker-18.2.8.tgz", - "integrity": "sha512-LQktgS2Hn845ASWNyjde18V+CHkkPeCzORfh0ChYKiOmXYFtj/myEik5o/QI/G13Kaymy+vcuwQKiUuZjZiD1w==", + "version": "19.0.5", + "resolved": "https://registry.npmjs.org/@angular/service-worker/-/service-worker-19.0.5.tgz", + "integrity": "sha512-qU5lgx1WJ+feCOV/EhkN9m20xFdIslpEQcSZZC+VJnEwcG6VTbofg1dRaHWZ9HAjS1uP7bFoK0HUYu4el0bHGA==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -933,17 +2491,24 @@ "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/common": "18.2.8", - "@angular/core": "18.2.8" + "@angular/common": "19.0.5", + "@angular/core": "19.0.5" } }, + "node_modules/@angular/service-worker/node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" + }, "node_modules/@babel/code-frame": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.25.7.tgz", - "integrity": "sha512-0xZJFNE5XMpENsgfHYTw8FbX4kv53mFLn2i3XPoq69LyhYSCBJtitaHx9QnsVTrsogI4Z3+HtEfZ2/GFPOtf5g==", + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", + "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", "license": "MIT", "dependencies": { - "@babel/highlight": "^7.25.7", + "@babel/helper-validator-identifier": "^7.25.9", + "js-tokens": "^4.0.0", "picocolors": "^1.0.0" }, "engines": { @@ -951,30 +2516,30 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.25.8", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.25.8.tgz", - "integrity": "sha512-ZsysZyXY4Tlx+Q53XdnOFmqwfB9QDTHYxaZYajWRoBLuLEAwI2UIbtxOjWh/cFaa9IKUlcB+DDuoskLuKu56JA==", + "version": "7.26.3", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.3.tgz", + "integrity": "sha512-nHIxvKPniQXpmQLb0vhY3VaFb3S0YrTAwpOWJZh1wn3oJPjJk9Asva204PsBdmAE8vpzfHudT8DB0scYvy9q0g==", "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.25.2", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.25.2.tgz", - "integrity": "sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.0.tgz", + "integrity": "sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==", "license": "MIT", "dependencies": { "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.24.7", - "@babel/generator": "^7.25.0", - "@babel/helper-compilation-targets": "^7.25.2", - "@babel/helper-module-transforms": "^7.25.2", - "@babel/helpers": "^7.25.0", - "@babel/parser": "^7.25.0", - "@babel/template": "^7.25.0", - "@babel/traverse": "^7.25.2", - "@babel/types": "^7.25.2", + "@babel/code-frame": "^7.26.0", + "@babel/generator": "^7.26.0", + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-module-transforms": "^7.26.0", + "@babel/helpers": "^7.26.0", + "@babel/parser": "^7.26.0", + "@babel/template": "^7.25.9", + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.26.0", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -989,12 +2554,6 @@ "url": "https://opencollective.com/babel" } }, - "node_modules/@babel/core/node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "license": "MIT" - }, "node_modules/@babel/core/node_modules/semver": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", @@ -1005,53 +2564,41 @@ } }, "node_modules/@babel/generator": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.25.0.tgz", - "integrity": "sha512-3LEEcj3PVW8pW2R1SR1M89g/qrYk/m/mB/tLqn7dn4sbBUQyTqnlod+II2U4dqiGtUmkcnAmkMDralTFZttRiw==", + "version": "7.26.3", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.3.tgz", + "integrity": "sha512-6FF/urZvD0sTeO7k6/B15pMLC4CHUv1426lzr3N01aHJTl046uCAh9LXW/fzeXXjPNCJ6iABW5XaWOsIZB93aQ==", "license": "MIT", "dependencies": { - "@babel/types": "^7.25.0", + "@babel/parser": "^7.26.3", + "@babel/types": "^7.26.3", "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25", - "jsesc": "^2.5.1" + "jsesc": "^3.0.2" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.24.7.tgz", - "integrity": "sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.9.tgz", + "integrity": "sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==", "license": "MIT", "dependencies": { - "@babel/types": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.25.7.tgz", - "integrity": "sha512-12xfNeKNH7jubQNm7PAkzlLwEmCs1tfuX3UjIw6vP6QXi+leKh6+LyC/+Ed4EIQermwd58wsyh070yjDHFlNGg==", - "license": "MIT", - "dependencies": { - "@babel/traverse": "^7.25.7", - "@babel/types": "^7.25.7" + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.7.tgz", - "integrity": "sha512-DniTEax0sv6isaw6qSQSfV4gVRNtw2rte8HHM45t9ZR0xILaufBRNkpMifCRiAPyvL4ACD6v0gfCwCmtOQaV4A==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.9.tgz", + "integrity": "sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==", "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.25.7", - "@babel/helper-validator-option": "^7.25.7", + "@babel/compat-data": "^7.25.9", + "@babel/helper-validator-option": "^7.25.9", "browserslist": "^4.24.0", "lru-cache": "^5.1.1", "semver": "^6.3.1" @@ -1060,6 +2607,15 @@ "node": ">=6.9.0" } }, + "node_modules/@babel/helper-compilation-targets/node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, "node_modules/@babel/helper-compilation-targets/node_modules/semver": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", @@ -1069,18 +2625,24 @@ "semver": "bin/semver.js" } }, + "node_modules/@babel/helper-compilation-targets/node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "license": "ISC" + }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.7.tgz", - "integrity": "sha512-bD4WQhbkx80mAyj/WCm4ZHcF4rDxkoLFO6ph8/5/mQ3z4vAzltQXAmbc7GvVJx5H+lk5Mi5EmbTeox5nMGCsbw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.9.tgz", + "integrity": "sha512-UTZQMvt0d/rSz6KI+qdu7GQze5TIajwTS++GUozlw8VBJDEOAqSXwm1WvmYEZwqdqSGQshRocPDqrt4HBZB3fQ==", "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.7", - "@babel/helper-member-expression-to-functions": "^7.25.7", - "@babel/helper-optimise-call-expression": "^7.25.7", - "@babel/helper-replace-supers": "^7.25.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.25.7", - "@babel/traverse": "^7.25.7", + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-member-expression-to-functions": "^7.25.9", + "@babel/helper-optimise-call-expression": "^7.25.9", + "@babel/helper-replace-supers": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", + "@babel/traverse": "^7.25.9", "semver": "^6.3.1" }, "engines": { @@ -1090,18 +2652,6 @@ "@babel/core": "^7.0.0" } }, - "node_modules/@babel/helper-create-class-features-plugin/node_modules/@babel/helper-annotate-as-pure": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.7.tgz", - "integrity": "sha512-4xwU8StnqnlIhhioZf1tqnVWeQ9pvH/ujS8hRfw/WOza+/a+1qv69BWNy+oY231maTCWgKWhfBU7kDpsds6zAA==", - "license": "MIT", - "dependencies": { - "@babel/types": "^7.25.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", @@ -1112,13 +2662,13 @@ } }, "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.25.7.tgz", - "integrity": "sha512-byHhumTj/X47wJ6C6eLpK7wW/WBEcnUeb7D0FNc/jFQnQVw7DOso3Zz5u9x/zLrFVkHa89ZGDbkAa1D54NdrCQ==", + "version": "7.26.3", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.26.3.tgz", + "integrity": "sha512-G7ZRb40uUgdKOQqPLjfD12ZmGA54PzqDFUv2BKImnC9QIfGhIHKvVML0oN8IUiDq4iRqpq74ABpvOaerfWdong==", "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.7", - "regexpu-core": "^6.1.1", + "@babel/helper-annotate-as-pure": "^7.25.9", + "regexpu-core": "^6.2.0", "semver": "^6.3.1" }, "engines": { @@ -1128,18 +2678,6 @@ "@babel/core": "^7.0.0" } }, - "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/@babel/helper-annotate-as-pure": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.7.tgz", - "integrity": "sha512-4xwU8StnqnlIhhioZf1tqnVWeQ9pvH/ujS8hRfw/WOza+/a+1qv69BWNy+oY231maTCWgKWhfBU7kDpsds6zAA==", - "license": "MIT", - "dependencies": { - "@babel/types": "^7.25.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", @@ -1150,9 +2688,9 @@ } }, "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.2.tgz", - "integrity": "sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ==", + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.3.tgz", + "integrity": "sha512-HK7Bi+Hj6H+VTHA3ZvBis7V/6hu9QuTrnMXNybfUf2iiuU/N97I8VjB+KbhFF8Rld/Lx5MzoCwPCpPjfK+n8Cg==", "license": "MIT", "dependencies": { "@babel/helper-compilation-targets": "^7.22.6", @@ -1206,41 +2744,40 @@ } }, "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.25.7.tgz", - "integrity": "sha512-O31Ssjd5K6lPbTX9AAYpSKrZmLeagt9uwschJd+Ixo6QiRyfpvgtVQp8qrDR9UNFjZ8+DO34ZkdrN+BnPXemeA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.25.9.tgz", + "integrity": "sha512-wbfdZ9w5vk0C0oyHqAJbc62+vet5prjj01jjJ8sKn3j9h3MQQlflEdXYvuqRWjHnM12coDEqiC1IRCi0U/EKwQ==", "license": "MIT", "dependencies": { - "@babel/traverse": "^7.25.7", - "@babel/types": "^7.25.7" + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-imports": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.7.tgz", - "integrity": "sha512-o0xCgpNmRohmnoWKQ0Ij8IdddjyBFE4T2kagL/x6M3+4zUgc+4qTOUBoNe4XxDskt1HPKO007ZPiMgLDq2s7Kw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz", + "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==", "license": "MIT", "dependencies": { - "@babel/traverse": "^7.25.7", - "@babel/types": "^7.25.7" + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.25.7.tgz", - "integrity": "sha512-k/6f8dKG3yDz/qCwSM+RKovjMix563SLxQFo0UhRNo239SP6n9u5/eLtKD6EAjwta2JHJ49CsD8pms2HdNiMMQ==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz", + "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==", "license": "MIT", "dependencies": { - "@babel/helper-module-imports": "^7.25.7", - "@babel/helper-simple-access": "^7.25.7", - "@babel/helper-validator-identifier": "^7.25.7", - "@babel/traverse": "^7.25.7" + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9", + "@babel/traverse": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1250,35 +2787,35 @@ } }, "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.25.7.tgz", - "integrity": "sha512-VAwcwuYhv/AT+Vfr28c9y6SHzTan1ryqrydSTFGjU0uDJHw3uZ+PduI8plCLkRsDnqK2DMEDmwrOQRsK/Ykjng==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.25.9.tgz", + "integrity": "sha512-FIpuNaz5ow8VyrYcnXQTDRGvV6tTjkNtCK/RYNDXGSLlUD6cBuQTSw43CShGxjvfBTfcUA/r6UhUCbtYqkhcuQ==", "license": "MIT", "dependencies": { - "@babel/types": "^7.25.7" + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.7.tgz", - "integrity": "sha512-eaPZai0PiqCi09pPs3pAFfl/zYgGaE6IdXtYvmf0qlcDTd3WCtO7JWCcRd64e0EQrcYgiHibEZnOGsSY4QSgaw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.9.tgz", + "integrity": "sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw==", "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.25.7.tgz", - "integrity": "sha512-kRGE89hLnPfcz6fTrlNU+uhgcwv0mBE4Gv3P9Ke9kLVJYpi4AMVVEElXvB5CabrPZW4nCM8P8UyyjrzCM0O2sw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.25.9.tgz", + "integrity": "sha512-IZtukuUeBbhgOcaW2s06OXTzVNJR0ybm4W5xC1opWFFJMZbwRj5LCk+ByYH7WdZPZTt8KnFwA8pvjN2yqcPlgw==", "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.7", - "@babel/helper-wrap-function": "^7.25.7", - "@babel/traverse": "^7.25.7" + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-wrap-function": "^7.25.9", + "@babel/traverse": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1287,27 +2824,15 @@ "@babel/core": "^7.0.0" } }, - "node_modules/@babel/helper-remap-async-to-generator/node_modules/@babel/helper-annotate-as-pure": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.7.tgz", - "integrity": "sha512-4xwU8StnqnlIhhioZf1tqnVWeQ9pvH/ujS8hRfw/WOza+/a+1qv69BWNy+oY231maTCWgKWhfBU7kDpsds6zAA==", - "license": "MIT", - "dependencies": { - "@babel/types": "^7.25.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/helper-replace-supers": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.25.7.tgz", - "integrity": "sha512-iy8JhqlUW9PtZkd4pHM96v6BdJ66Ba9yWSE4z0W4TvSZwLBPkyDsiIU3ENe4SmrzRBs76F7rQXTy1lYC49n6Lw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.25.9.tgz", + "integrity": "sha512-IiDqTOTBQy0sWyeXyGSC5TBJpGFXBkRynjBeXsvbhQFKj2viwJC76Epz35YLU1fpe/Am6Vppb7W7zM4fPQzLsQ==", "license": "MIT", "dependencies": { - "@babel/helper-member-expression-to-functions": "^7.25.7", - "@babel/helper-optimise-call-expression": "^7.25.7", - "@babel/traverse": "^7.25.7" + "@babel/helper-member-expression-to-functions": "^7.25.9", + "@babel/helper-optimise-call-expression": "^7.25.9", + "@babel/traverse": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1316,27 +2841,14 @@ "@babel/core": "^7.0.0" } }, - "node_modules/@babel/helper-simple-access": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.25.7.tgz", - "integrity": "sha512-FPGAkJmyoChQeM+ruBGIDyrT2tKfZJO8NcxdC+CWNJi7N8/rZpSxK7yvBJ5O/nF1gfu5KzN7VKG3YVSLFfRSxQ==", - "license": "MIT", - "dependencies": { - "@babel/traverse": "^7.25.7", - "@babel/types": "^7.25.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.25.7.tgz", - "integrity": "sha512-pPbNbchZBkPMD50K0p3JGcFMNLVUCuU/ABybm/PGNj4JiHrpmNyqqCphBk4i19xXtNV0JhldQJJtbSW5aUvbyA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.25.9.tgz", + "integrity": "sha512-K4Du3BFa3gvyhzgPcntrkDgZzQaq6uozzcpGbOO1OEJaI+EJdqWIMTLgFgQf6lrfiDFo5FU+BxKepI9RmZqahA==", "license": "MIT", "dependencies": { - "@babel/traverse": "^7.25.7", - "@babel/types": "^7.25.7" + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1355,81 +2867,66 @@ } }, "node_modules/@babel/helper-string-parser": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.7.tgz", - "integrity": "sha512-CbkjYdsJNHFk8uqpEkpCvRs3YRp9tY6FmFY7wLMSYuGYkrdUi7r2lc4/wqsvlHoMznX3WJ9IP8giGPq68T/Y6g==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", + "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.7.tgz", - "integrity": "sha512-AM6TzwYqGChO45oiuPqwL2t20/HdMC1rTPAesnBCgPCSF1x3oN9MVUwQV2iyz4xqWrctwK5RNC8LV22kaQCNYg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", + "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-option": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.7.tgz", - "integrity": "sha512-ytbPLsm+GjArDYXJ8Ydr1c/KJuutjF2besPNbIZnZ6MKUxi/uTA22t2ymmA4WFjZFpjiAMO0xuuJPqK2nvDVfQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz", + "integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==", "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-wrap-function": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.25.7.tgz", - "integrity": "sha512-MA0roW3JF2bD1ptAaJnvcabsVlNQShUaThyJbCDD4bCp8NEgiFvpoqRI2YS22hHlc2thjO/fTg2ShLMC3jygAg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.25.9.tgz", + "integrity": "sha512-ETzz9UTjQSTmw39GboatdymDq4XIQbR8ySgVrylRhPOFpsd+JrKHIuF0de7GCWmem+T4uC5z7EZguod7Wj4A4g==", "license": "MIT", "dependencies": { - "@babel/template": "^7.25.7", - "@babel/traverse": "^7.25.7", - "@babel/types": "^7.25.7" + "@babel/template": "^7.25.9", + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helpers": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.25.7.tgz", - "integrity": "sha512-Sv6pASx7Esm38KQpF/U/OXLwPPrdGHNKoeblRxgZRLXnAtnkEe4ptJPDtAZM7fBLadbc1Q07kQpSiGQ0Jg6tRA==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.0.tgz", + "integrity": "sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==", "license": "MIT", "dependencies": { - "@babel/template": "^7.25.7", - "@babel/types": "^7.25.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.25.7.tgz", - "integrity": "sha512-iYyACpW3iW8Fw+ZybQK+drQre+ns/tKpXbNESfrhNnPLIklLbXr7MYJ6gPEd0iETGLOK+SxMjVvKb/ffmk+FEw==", - "license": "MIT", - "dependencies": { - "@babel/helper-validator-identifier": "^7.25.7", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0", - "picocolors": "^1.0.0" + "@babel/template": "^7.25.9", + "@babel/types": "^7.26.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/parser": { - "version": "7.25.8", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.25.8.tgz", - "integrity": "sha512-HcttkxzdPucv3nNFmfOOMfFf64KgdJVqm1KaCm25dPGMLElo9nsLvXeJECQg8UzPuBGLyTSA0ZzqCtDSzKTEoQ==", + "version": "7.26.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.3.tgz", + "integrity": "sha512-WJ/CvmY8Mea8iDXo6a7RK2wbmJITT5fN3BEkRuFlxVyNx8jOKIIhmC4fSkTcPcf8JyavbBwIe6OpiCOBXt/IcA==", "license": "MIT", "dependencies": { - "@babel/types": "^7.25.8" + "@babel/types": "^7.26.3" }, "bin": { "parser": "bin/babel-parser.js" @@ -1439,13 +2936,13 @@ } }, "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.25.7.tgz", - "integrity": "sha512-UV9Lg53zyebzD1DwQoT9mzkEKa922LNUp5YkTJ6Uta0RbyXaQNUgcvSt7qIu1PpPzVb6rd10OVNTzkyBGeVmxQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.25.9.tgz", + "integrity": "sha512-ZkRyVkThtxQ/J6nv3JFYv1RYY+JT5BvU0y3k5bWrmuG4woXypRa4PXmm9RhOwodRkYFWqC0C0cqcJ4OqR7kW+g==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.7", - "@babel/traverse": "^7.25.7" + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/traverse": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1455,12 +2952,12 @@ } }, "node_modules/@babel/plugin-bugfix-safari-class-field-initializer-scope": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.25.7.tgz", - "integrity": "sha512-GDDWeVLNxRIkQTnJn2pDOM1pkCgYdSqPeT1a9vh9yIqu2uzzgw1zcqEb+IJOhy+dTBMlNdThrDIksr2o09qrrQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.25.9.tgz", + "integrity": "sha512-MrGRLZxLD/Zjj0gdU15dfs+HH/OXvnw/U4jJD8vpcP2CJQapPEv1IWwjc/qMg7ItBlPwSv1hRBbb7LeuANdcnw==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1470,12 +2967,12 @@ } }, "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.25.7.tgz", - "integrity": "sha512-wxyWg2RYaSUYgmd9MR0FyRGyeOMQE/Uzr1wzd/g5cf5bwi9A4v6HFdDm7y1MgDtod/fLOSTZY6jDgV0xU9d5bA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.25.9.tgz", + "integrity": "sha512-2qUwwfAFpJLZqxd02YW9btUCZHl+RFvdDkNfZwaIJrvB8Tesjsk8pEQkTvGwZXLqXUx/2oyY3ySRhm6HOXuCug==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1485,14 +2982,14 @@ } }, "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.25.7.tgz", - "integrity": "sha512-Xwg6tZpLxc4iQjorYsyGMyfJE7nP5MV8t/Ka58BgiA7Jw0fRqQNcANlLfdJ/yvBt9z9LD2We+BEkT7vLqZRWng==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.25.9.tgz", + "integrity": "sha512-6xWgLZTJXwilVjlnV7ospI3xi+sl8lN8rXXbBD6vYn3UYDlGsag8wrZkKcSI8G6KgqKP7vNFaDgeDnfAABq61g==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.25.7", - "@babel/plugin-transform-optional-chaining": "^7.25.7" + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", + "@babel/plugin-transform-optional-chaining": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1502,13 +2999,13 @@ } }, "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.25.7.tgz", - "integrity": "sha512-UVATLMidXrnH+GMUIuxq55nejlj02HP7F5ETyBONzP6G87fPBogG4CH6kxrSrdIuAjdwNO9VzyaYsrZPscWUrw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.25.9.tgz", + "integrity": "sha512-aLnMXYPnzwwqhYSCyXfKkIkYgJ8zv9RK+roo9DkTXz38ynIhd9XCbN08s3MGvqL2MYGVUGdRQLL/JqBIeJhJBg==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.7", - "@babel/traverse": "^7.25.7" + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/traverse": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1518,15 +3015,15 @@ } }, "node_modules/@babel/plugin-proposal-decorators": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.25.7.tgz", - "integrity": "sha512-q1mqqqH0e1lhmsEQHV5U8OmdueBC2y0RFr2oUzZoFRtN3MvPmt2fsFRcNQAoGLTSNdHBFUYGnlgcRFhkBbKjPw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.25.9.tgz", + "integrity": "sha512-smkNLL/O1ezy9Nhy4CNosc4Va+1wo5w4gzSZeLe6y6dM4mmHfYOCPolXQPHQxonZCF+ZyebxN9vqOolkYrSn5g==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.25.7", - "@babel/helper-plugin-utils": "^7.25.7", - "@babel/plugin-syntax-decorators": "^7.25.7" + "@babel/helper-create-class-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/plugin-syntax-decorators": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1551,6 +3048,7 @@ "version": "7.8.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "devOptional": true, "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" @@ -1576,6 +3074,7 @@ "version": "7.12.13", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "devOptional": true, "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.12.13" @@ -1588,6 +3087,7 @@ "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "devOptional": true, "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" @@ -1600,13 +3100,13 @@ } }, "node_modules/@babel/plugin-syntax-decorators": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.25.7.tgz", - "integrity": "sha512-oXduHo642ZhstLVYTe2z2GSJIruU0c/W3/Ghr6A5yGMsVrvdnxO1z+3pbTcT7f3/Clnt+1z8D/w1r1f1SHaCHw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.25.9.tgz", + "integrity": "sha512-ryzI0McXUPJnRCvMo4lumIKZUzhYUO/ScI+Mz4YVaTLt04DHNSjEUjKVvbzQjZFLuod/cYEc07mJWhzl6v4DPg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1615,37 +3115,13 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-export-namespace-from": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", - "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, "node_modules/@babel/plugin-syntax-import-assertions": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.25.7.tgz", - "integrity": "sha512-ZvZQRmME0zfJnDQnVBKYzHxXT7lYBB3Revz1GuS7oLXWMgqUPX4G+DDbT30ICClht9WKV34QVrZhSw6WdklwZQ==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.26.0.tgz", + "integrity": "sha512-QCWT5Hh830hK5EQa7XzuqIkQU9tT/whqbDz7kuaZMHFl1inRRg7JnuAEOQ0Ur0QUl0NufCk1msK2BeY79Aj/eg==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1655,12 +3131,12 @@ } }, "node_modules/@babel/plugin-syntax-import-attributes": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.24.7.tgz", - "integrity": "sha512-hbX+lKKeUMGihnK8nvKqmXBInriT3GVjzXKFriV3YC6APGxMbP8RZNFwy91+hocLXq90Mta+HshoB31802bb8A==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.26.0.tgz", + "integrity": "sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1673,6 +3149,7 @@ "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "devOptional": true, "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" @@ -1685,6 +3162,7 @@ "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "devOptional": true, "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" @@ -1694,13 +3172,13 @@ } }, "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.25.7.tgz", - "integrity": "sha512-ruZOnKO+ajVL/MVx+PwNBPOkrnXTXoWMtte1MBpegfCArhqOe3Bj52avVj1huLLxNKYKXYaSxZ2F+woK1ekXfw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.25.9.tgz", + "integrity": "sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==", "devOptional": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1713,6 +3191,7 @@ "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "devOptional": true, "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" @@ -1725,6 +3204,7 @@ "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "devOptional": true, "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" @@ -1737,6 +3217,7 @@ "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "devOptional": true, "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" @@ -1749,6 +3230,7 @@ "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "devOptional": true, "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" @@ -1761,6 +3243,7 @@ "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "devOptional": true, "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" @@ -1773,6 +3256,7 @@ "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "devOptional": true, "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" @@ -1785,6 +3269,7 @@ "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "devOptional": true, "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" @@ -1800,6 +3285,7 @@ "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "devOptional": true, "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" @@ -1812,13 +3298,13 @@ } }, "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.25.7.tgz", - "integrity": "sha512-rR+5FDjpCHqqZN2bzZm18bVYGaejGq5ZkpVCJLXor/+zlSrSoc4KWcHI0URVWjl/68Dyr1uwZUz/1njycEAv9g==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.25.9.tgz", + "integrity": "sha512-hjMgRy5hb8uJJjUcdWunWVcoi9bGpJp8p5Ol1229PoN6aytsLwNMgmdftO23wnCLMfVmTwZDWMPNq/D1SY60JQ==", "devOptional": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1844,12 +3330,12 @@ } }, "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.25.7.tgz", - "integrity": "sha512-EJN2mKxDwfOUCPxMO6MUI58RN3ganiRAG/MS/S3HfB6QFNjroAMelQo/gybyYq97WerCBAZoyrAoW8Tzdq2jWg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.25.9.tgz", + "integrity": "sha512-6jmooXYIwn9ca5/RylZADJ+EnSxVUS5sjeJ9UPk6RWRzXCmOJCy6dqItPJFpw2cuCangPK4OYr5uhGKcmrm5Qg==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1859,15 +3345,14 @@ } }, "node_modules/@babel/plugin-transform-async-generator-functions": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.25.0.tgz", - "integrity": "sha512-uaIi2FdqzjpAMvVqvB51S42oC2JEVgh0LDsGfZVDysWE8LrJtQC2jvKmOqEYThKyB7bDEb7BP1GYWDm7tABA0Q==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.25.9.tgz", + "integrity": "sha512-RXV6QAzTBbhDMO9fWwOmwwTuYaiPbggWQ9INdZqAYeSHyG7FzQ+nOZaUUjNwKv9pV3aE4WFqFm1Hnbci5tBCAw==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.8", - "@babel/helper-remap-async-to-generator": "^7.25.0", - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/traverse": "^7.25.0" + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-remap-async-to-generator": "^7.25.9", + "@babel/traverse": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1877,14 +3362,14 @@ } }, "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.24.7.tgz", - "integrity": "sha512-SQY01PcJfmQ+4Ash7NE+rpbLFbmqA2GPIgqzxfFTL4t1FKRq4zTms/7htKpoCUI9OcFYgzqfmCdH53s6/jn5fA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.25.9.tgz", + "integrity": "sha512-NT7Ejn7Z/LjUH0Gv5KsBCxh7BH3fbLTV0ptHvpeMvrt3cPThHfJfst9Wrb7S8EvJ7vRTFI7z+VAvFVEQn/m5zQ==", "license": "MIT", "dependencies": { - "@babel/helper-module-imports": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/helper-remap-async-to-generator": "^7.24.7" + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-remap-async-to-generator": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1894,12 +3379,12 @@ } }, "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.25.7.tgz", - "integrity": "sha512-xHttvIM9fvqW+0a3tZlYcZYSBpSWzGBFIt/sYG3tcdSzBB8ZeVgz2gBP7Df+sM0N1850jrviYSSeUuc+135dmQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.25.9.tgz", + "integrity": "sha512-toHc9fzab0ZfenFpsyYinOX0J/5dgJVA2fm64xPewu7CoYHWEivIWKxkK2rMi4r3yQqLnVmheMXRdG+k239CgA==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1909,12 +3394,12 @@ } }, "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.25.7.tgz", - "integrity": "sha512-ZEPJSkVZaeTFG/m2PARwLZQ+OG0vFIhPlKHK/JdIMy8DbRJ/htz6LRrTFtdzxi9EHmcwbNPAKDnadpNSIW+Aow==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.25.9.tgz", + "integrity": "sha512-1F05O7AYjymAtqbsFETboN1NvBdcnzMerO+zlMyJBEz6WkMdejvGWw9p05iTSjC85RLlBseHHQpYaM4gzJkBGg==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1924,13 +3409,13 @@ } }, "node_modules/@babel/plugin-transform-class-properties": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.25.7.tgz", - "integrity": "sha512-mhyfEW4gufjIqYFo9krXHJ3ElbFLIze5IDp+wQTxoPd+mwFb1NxatNAwmv8Q8Iuxv7Zc+q8EkiMQwc9IhyGf4g==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.25.9.tgz", + "integrity": "sha512-bbMAII8GRSkcd0h0b4X+36GksxuheLFjP65ul9w6C3KgAamI3JqErNgSrosX6ZPj+Mpim5VvEbawXxJCyEUV3Q==", "license": "MIT", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.25.7", - "@babel/helper-plugin-utils": "^7.25.7" + "@babel/helper-create-class-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1940,13 +3425,13 @@ } }, "node_modules/@babel/plugin-transform-class-static-block": { - "version": "7.25.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.25.8.tgz", - "integrity": "sha512-e82gl3TCorath6YLf9xUwFehVvjvfqFhdOo4+0iVIVju+6XOi5XHkqB3P2AXnSwoeTX0HBoXq5gJFtvotJzFnQ==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.26.0.tgz", + "integrity": "sha512-6J2APTs7BDDm+UMqP1useWqhcRAXo0WIoVj26N7kPFB6S73Lgvyka4KTZYIxtgYXiN5HTyRObA72N2iu628iTQ==", "license": "MIT", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.25.7", - "@babel/helper-plugin-utils": "^7.25.7" + "@babel/helper-create-class-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1956,16 +3441,16 @@ } }, "node_modules/@babel/plugin-transform-classes": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.7.tgz", - "integrity": "sha512-9j9rnl+YCQY0IGoeipXvnk3niWicIB6kCsWRGLwX241qSXpbA4MKxtp/EdvFxsc4zI5vqfLxzOd0twIJ7I99zg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.9.tgz", + "integrity": "sha512-mD8APIXmseE7oZvZgGABDyM34GUmK45Um2TXiBUt7PnuAxrgoSVf123qUzPxEr/+/BHrRn5NMZCdE2m/1F8DGg==", "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.7", - "@babel/helper-compilation-targets": "^7.25.7", - "@babel/helper-plugin-utils": "^7.25.7", - "@babel/helper-replace-supers": "^7.25.7", - "@babel/traverse": "^7.25.7", + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-replace-supers": "^7.25.9", + "@babel/traverse": "^7.25.9", "globals": "^11.1.0" }, "engines": { @@ -1975,26 +3460,14 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-classes/node_modules/@babel/helper-annotate-as-pure": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.7.tgz", - "integrity": "sha512-4xwU8StnqnlIhhioZf1tqnVWeQ9pvH/ujS8hRfw/WOza+/a+1qv69BWNy+oY231maTCWgKWhfBU7kDpsds6zAA==", - "license": "MIT", - "dependencies": { - "@babel/types": "^7.25.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.25.7.tgz", - "integrity": "sha512-QIv+imtM+EtNxg/XBKL3hiWjgdLjMOmZ+XzQwSgmBfKbfxUjBzGgVPklUuE55eq5/uVoh8gg3dqlrwR/jw3ZeA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.25.9.tgz", + "integrity": "sha512-HnBegGqXZR12xbcTHlJ9HGxw1OniltT26J5YpfruGqtUHlz/xKf/G2ak9e+t0rVqrjXa9WOhvYPz1ERfMj23AA==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.7", - "@babel/template": "^7.25.7" + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/template": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2004,12 +3477,12 @@ } }, "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.25.7.tgz", - "integrity": "sha512-xKcfLTlJYUczdaM1+epcdh1UGewJqr9zATgrNHcLBcV2QmfvPPEixo/sK/syql9cEmbr7ulu5HMFG5vbbt/sEA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.25.9.tgz", + "integrity": "sha512-WkCGb/3ZxXepmMiX101nnGiU+1CAdut8oHyEOHxkKuS1qKpU2SMXE2uSvfz8PBuLd49V6LEsbtyPhWC7fnkgvQ==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2019,13 +3492,13 @@ } }, "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.25.7.tgz", - "integrity": "sha512-kXzXMMRzAtJdDEgQBLF4oaiT6ZCU3oWHgpARnTKDAqPkDJ+bs3NrZb310YYevR5QlRo3Kn7dzzIdHbZm1VzJdQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.25.9.tgz", + "integrity": "sha512-t7ZQ7g5trIgSRYhI9pIJtRl64KHotutUJsh4Eze5l7olJv+mRSg4/MmbZ0tv1eeqRbdvo/+trvJD/Oc5DmW2cA==", "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.7", - "@babel/helper-plugin-utils": "^7.25.7" + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2035,12 +3508,12 @@ } }, "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.25.7.tgz", - "integrity": "sha512-by+v2CjoL3aMnWDOyCIg+yxU9KXSRa9tN6MbqggH5xvymmr9p4AMjYkNlQy4brMceBnUyHZ9G8RnpvT8wP7Cfg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.25.9.tgz", + "integrity": "sha512-LZxhJ6dvBb/f3x8xwWIuyiAHy56nrRG3PeYTpBkkzkYRRQ6tJLu68lEF5VIqMUZiAV7a8+Tb78nEoMCMcqjXBw==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2050,13 +3523,13 @@ } }, "node_modules/@babel/plugin-transform-duplicate-named-capturing-groups-regex": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.25.7.tgz", - "integrity": "sha512-HvS6JF66xSS5rNKXLqkk7L9c/jZ/cdIVIcoPVrnl8IsVpLggTjXs8OWekbLHs/VtYDDh5WXnQyeE3PPUGm22MA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.25.9.tgz", + "integrity": "sha512-0UfuJS0EsXbRvKnwcLjFtJy/Sxc5J5jhLHnFhy7u4zih97Hz6tJkLU+O+FMMrNZrosUPxDi6sYxJ/EA8jDiAog==", "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.7", - "@babel/helper-plugin-utils": "^7.25.7" + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2066,12 +3539,12 @@ } }, "node_modules/@babel/plugin-transform-dynamic-import": { - "version": "7.25.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.25.8.tgz", - "integrity": "sha512-gznWY+mr4ZQL/EWPcbBQUP3BXS5FwZp8RUOw06BaRn8tQLzN4XLIxXejpHN9Qo8x8jjBmAAKp6FoS51AgkSA/A==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.25.9.tgz", + "integrity": "sha512-GCggjexbmSLaFhqsojeugBpeaRIgWNTcgKVq/0qIteFEqY2A+b9QidYadrWlnbWQUrW5fn+mCvf3tr7OeBFTyg==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2081,13 +3554,12 @@ } }, "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.25.7.tgz", - "integrity": "sha512-yjqtpstPfZ0h/y40fAXRv2snciYr0OAoMXY/0ClC7tm4C/nG5NJKmIItlaYlLbIVAWNfrYuy9dq1bE0SbX0PEg==", + "version": "7.26.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.26.3.tgz", + "integrity": "sha512-7CAHcQ58z2chuXPWblnn1K6rLDnDWieghSOEmqQsrBenH0P9InCUtOJYD89pvngljmZlJcz3fcmgYsXFNGa1ZQ==", "license": "MIT", "dependencies": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.25.7", - "@babel/helper-plugin-utils": "^7.25.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2097,12 +3569,12 @@ } }, "node_modules/@babel/plugin-transform-export-namespace-from": { - "version": "7.25.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.25.8.tgz", - "integrity": "sha512-sPtYrduWINTQTW7FtOy99VCTWp4H23UX7vYcut7S4CIMEXU+54zKX9uCoGkLsWXteyaMXzVHgzWbLfQ1w4GZgw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.25.9.tgz", + "integrity": "sha512-2NsEz+CxzJIVOPx2o9UsW1rXLqtChtLoVnwYHHiB04wS5sgn7mrV45fWMBX0Kk+ub9uXytVYfNP2HjbVbCB3Ww==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2112,13 +3584,13 @@ } }, "node_modules/@babel/plugin-transform-for-of": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.25.7.tgz", - "integrity": "sha512-n/TaiBGJxYFWvpJDfsxSj9lEEE44BFM1EPGz4KEiTipTgkoFVVcCmzAL3qA7fdQU96dpo4gGf5HBx/KnDvqiHw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.25.9.tgz", + "integrity": "sha512-LqHxduHoaGELJl2uhImHwRQudhCM50pT46rIBNvtT/Oql3nqiS3wOwP+5ten7NpYSXrrVLgtZU3DZmPtWZo16A==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.25.7" + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2128,14 +3600,14 @@ } }, "node_modules/@babel/plugin-transform-function-name": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.25.7.tgz", - "integrity": "sha512-5MCTNcjCMxQ63Tdu9rxyN6cAWurqfrDZ76qvVPrGYdBxIj+EawuuxTu/+dgJlhK5eRz3v1gLwp6XwS8XaX2NiQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.25.9.tgz", + "integrity": "sha512-8lP+Yxjv14Vc5MuWBpJsoUCd3hD6V9DgBon2FVYL4jJgbnVQ9fTgYmonchzZJOVNgzEgbxp4OwAf6xz6M/14XA==", "license": "MIT", "dependencies": { - "@babel/helper-compilation-targets": "^7.25.7", - "@babel/helper-plugin-utils": "^7.25.7", - "@babel/traverse": "^7.25.7" + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/traverse": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2145,12 +3617,12 @@ } }, "node_modules/@babel/plugin-transform-json-strings": { - "version": "7.25.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.25.8.tgz", - "integrity": "sha512-4OMNv7eHTmJ2YXs3tvxAfa/I43di+VcF+M4Wt66c88EAED1RoGaf1D64cL5FkRpNL+Vx9Hds84lksWvd/wMIdA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.25.9.tgz", + "integrity": "sha512-xoTMk0WXceiiIvsaquQQUaLLXSW1KJ159KP87VilruQm0LNNGxWzahxSS6T6i4Zg3ezp4vA4zuwiNUR53qmQAw==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2160,12 +3632,12 @@ } }, "node_modules/@babel/plugin-transform-literals": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.25.7.tgz", - "integrity": "sha512-fwzkLrSu2fESR/cm4t6vqd7ebNIopz2QHGtjoU+dswQo/P6lwAG04Q98lliE3jkz/XqnbGFLnUcE0q0CVUf92w==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.25.9.tgz", + "integrity": "sha512-9N7+2lFziW8W9pBl2TzaNht3+pgMIRP74zizeCSrtnSKVdUl8mAjjOP2OOVQAfZ881P2cNjDj1uAMEdeD50nuQ==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2175,12 +3647,12 @@ } }, "node_modules/@babel/plugin-transform-logical-assignment-operators": { - "version": "7.25.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.25.8.tgz", - "integrity": "sha512-f5W0AhSbbI+yY6VakT04jmxdxz+WsID0neG7+kQZbCOjuyJNdL5Nn4WIBm4hRpKnUcO9lP0eipUhFN12JpoH8g==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.25.9.tgz", + "integrity": "sha512-wI4wRAzGko551Y8eVf6iOY9EouIDTtPb0ByZx+ktDGHwv6bHFimrgJM/2T021txPZ2s4c7bqvHbd+vXG6K948Q==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2190,12 +3662,12 @@ } }, "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.25.7.tgz", - "integrity": "sha512-Std3kXwpXfRV0QtQy5JJcRpkqP8/wG4XL7hSKZmGlxPlDqmpXtEPRmhF7ztnlTCtUN3eXRUJp+sBEZjaIBVYaw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.25.9.tgz", + "integrity": "sha512-PYazBVfofCQkkMzh2P6IdIUaCEWni3iYEerAsRWuVd8+jlM1S9S9cz1dF9hIzyoZ8IA3+OwVYIp9v9e+GbgZhA==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2205,13 +3677,13 @@ } }, "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.25.7.tgz", - "integrity": "sha512-CgselSGCGzjQvKzghCvDTxKHP3iooenLpJDO842ehn5D2G5fJB222ptnDwQho0WjEvg7zyoxb9P+wiYxiJX5yA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.25.9.tgz", + "integrity": "sha512-g5T11tnI36jVClQlMlt4qKDLlWnG5pP9CSM4GhdRciTNMRgkfpo5cR6b4rGIOYPgRRuFAvwjPQ/Yk+ql4dyhbw==", "license": "MIT", "dependencies": { - "@babel/helper-module-transforms": "^7.25.7", - "@babel/helper-plugin-utils": "^7.25.7" + "@babel/helper-module-transforms": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2221,14 +3693,13 @@ } }, "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.25.7.tgz", - "integrity": "sha512-L9Gcahi0kKFYXvweO6n0wc3ZG1ChpSFdgG+eV1WYZ3/dGbJK7vvk91FgGgak8YwRgrCuihF8tE/Xg07EkL5COg==", + "version": "7.26.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.26.3.tgz", + "integrity": "sha512-MgR55l4q9KddUDITEzEFYn5ZsGDXMSsU9E+kh7fjRXTIC3RHqfCo8RPRbyReYJh44HQ/yomFkqbOFohXvDCiIQ==", "license": "MIT", "dependencies": { - "@babel/helper-module-transforms": "^7.25.7", - "@babel/helper-plugin-utils": "^7.25.7", - "@babel/helper-simple-access": "^7.25.7" + "@babel/helper-module-transforms": "^7.26.0", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2238,15 +3709,15 @@ } }, "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.25.7.tgz", - "integrity": "sha512-t9jZIvBmOXJsiuyOwhrIGs8dVcD6jDyg2icw1VL4A/g+FnWyJKwUfSSU2nwJuMV2Zqui856El9u+ElB+j9fV1g==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.25.9.tgz", + "integrity": "sha512-hyss7iIlH/zLHaehT+xwiymtPOpsiwIIRlCAOwBB04ta5Tt+lNItADdlXw3jAWZ96VJ2jlhl/c+PNIQPKNfvcA==", "license": "MIT", "dependencies": { - "@babel/helper-module-transforms": "^7.25.7", - "@babel/helper-plugin-utils": "^7.25.7", - "@babel/helper-validator-identifier": "^7.25.7", - "@babel/traverse": "^7.25.7" + "@babel/helper-module-transforms": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9", + "@babel/traverse": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2256,13 +3727,13 @@ } }, "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.25.7.tgz", - "integrity": "sha512-p88Jg6QqsaPh+EB7I9GJrIqi1Zt4ZBHUQtjw3z1bzEXcLh6GfPqzZJ6G+G1HBGKUNukT58MnKG7EN7zXQBCODw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.25.9.tgz", + "integrity": "sha512-bS9MVObUgE7ww36HEfwe6g9WakQ0KF07mQF74uuXdkoziUPfKyu/nIm663kz//e5O1nPInPFx36z7WJmJ4yNEw==", "license": "MIT", "dependencies": { - "@babel/helper-module-transforms": "^7.25.7", - "@babel/helper-plugin-utils": "^7.25.7" + "@babel/helper-module-transforms": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2272,13 +3743,13 @@ } }, "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.25.7.tgz", - "integrity": "sha512-BtAT9LzCISKG3Dsdw5uso4oV1+v2NlVXIIomKJgQybotJY3OwCwJmkongjHgwGKoZXd0qG5UZ12JUlDQ07W6Ow==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.25.9.tgz", + "integrity": "sha512-oqB6WHdKTGl3q/ItQhpLSnWWOpjUJLsOCLVyeFgeTktkBSCiurvPOsyt93gibI9CmuKvTUEtWmG5VhZD+5T/KA==", "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.7", - "@babel/helper-plugin-utils": "^7.25.7" + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2288,12 +3759,12 @@ } }, "node_modules/@babel/plugin-transform-new-target": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.25.7.tgz", - "integrity": "sha512-CfCS2jDsbcZaVYxRFo2qtavW8SpdzmBXC2LOI4oO0rP+JSRDxxF3inF4GcPsLgfb5FjkhXG5/yR/lxuRs2pySA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.25.9.tgz", + "integrity": "sha512-U/3p8X1yCSoKyUj2eOBIx3FOn6pElFOKvAAGf8HTtItuPyB+ZeOqfn+mvTtg9ZlOAjsPdK3ayQEjqHjU/yLeVQ==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2303,12 +3774,12 @@ } }, "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { - "version": "7.25.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.25.8.tgz", - "integrity": "sha512-Z7WJJWdQc8yCWgAmjI3hyC+5PXIubH9yRKzkl9ZEG647O9szl9zvmKLzpbItlijBnVhTUf1cpyWBsZ3+2wjWPQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.25.9.tgz", + "integrity": "sha512-ENfftpLZw5EItALAD4WsY/KUWvhUlZndm5GC7G3evUsVeSJB6p0pBeLQUnRnBCBx7zV0RKQjR9kCuwrsIrjWog==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2318,12 +3789,12 @@ } }, "node_modules/@babel/plugin-transform-numeric-separator": { - "version": "7.25.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.25.8.tgz", - "integrity": "sha512-rm9a5iEFPS4iMIy+/A/PiS0QN0UyjPIeVvbU5EMZFKJZHt8vQnasbpo3T3EFcxzCeYO0BHfc4RqooCZc51J86Q==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.25.9.tgz", + "integrity": "sha512-TlprrJ1GBZ3r6s96Yq8gEQv82s8/5HnCVHtEJScUj90thHQbwe+E5MLhi2bbNHBEJuzrvltXSru+BUxHDoog7Q==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2333,14 +3804,14 @@ } }, "node_modules/@babel/plugin-transform-object-rest-spread": { - "version": "7.25.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.25.8.tgz", - "integrity": "sha512-LkUu0O2hnUKHKE7/zYOIjByMa4VRaV2CD/cdGz0AxU9we+VA3kDDggKEzI0Oz1IroG+6gUP6UmWEHBMWZU316g==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.25.9.tgz", + "integrity": "sha512-fSaXafEE9CVHPweLYw4J0emp1t8zYTXyzN3UuG+lylqkvYd7RMrsOQ8TYx5RF231be0vqtFC6jnx3UmpJmKBYg==", "license": "MIT", "dependencies": { - "@babel/helper-compilation-targets": "^7.25.7", - "@babel/helper-plugin-utils": "^7.25.7", - "@babel/plugin-transform-parameters": "^7.25.7" + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/plugin-transform-parameters": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2350,13 +3821,13 @@ } }, "node_modules/@babel/plugin-transform-object-super": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.25.7.tgz", - "integrity": "sha512-pWT6UXCEW3u1t2tcAGtE15ornCBvopHj9Bps9D2DsH15APgNVOTwwczGckX+WkAvBmuoYKRCFa4DK+jM8vh5AA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.25.9.tgz", + "integrity": "sha512-Kj/Gh+Rw2RNLbCK1VAWj2U48yxxqL2x0k10nPtSdRa0O2xnHXalD0s+o1A6a0W43gJ00ANo38jxkQreckOzv5A==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.7", - "@babel/helper-replace-supers": "^7.25.7" + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-replace-supers": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2366,12 +3837,12 @@ } }, "node_modules/@babel/plugin-transform-optional-catch-binding": { - "version": "7.25.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.25.8.tgz", - "integrity": "sha512-EbQYweoMAHOn7iJ9GgZo14ghhb9tTjgOc88xFgYngifx7Z9u580cENCV159M4xDh3q/irbhSjZVpuhpC2gKBbg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.25.9.tgz", + "integrity": "sha512-qM/6m6hQZzDcZF3onzIhZeDHDO43bkNNlOX0i8n3lR6zLbu0GN2d8qfM/IERJZYauhAHSLHy39NF0Ctdvcid7g==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2381,13 +3852,13 @@ } }, "node_modules/@babel/plugin-transform-optional-chaining": { - "version": "7.25.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.25.8.tgz", - "integrity": "sha512-q05Bk7gXOxpTHoQ8RSzGSh/LHVB9JEIkKnk3myAWwZHnYiTGYtbdrYkIsS8Xyh4ltKf7GNUSgzs/6P2bJtBAQg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.25.9.tgz", + "integrity": "sha512-6AvV0FsLULbpnXeBjrY4dmWF8F7gf8QnvTEoO/wX/5xm/xE1Xo8oPuD3MPS+KS9f9XBEAWN7X1aWr4z9HdOr7A==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.25.7" + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2397,12 +3868,12 @@ } }, "node_modules/@babel/plugin-transform-parameters": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.25.7.tgz", - "integrity": "sha512-FYiTvku63me9+1Nz7TOx4YMtW3tWXzfANZtrzHhUZrz4d47EEtMQhzFoZWESfXuAMMT5mwzD4+y1N8ONAX6lMQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.25.9.tgz", + "integrity": "sha512-wzz6MKwpnshBAiRmn4jR8LYz/g8Ksg0o80XmwZDlordjwEk9SxBzTWC7F5ef1jhbrbOW2DJ5J6ayRukrJmnr0g==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2412,13 +3883,13 @@ } }, "node_modules/@babel/plugin-transform-private-methods": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.25.7.tgz", - "integrity": "sha512-KY0hh2FluNxMLwOCHbxVOKfdB5sjWG4M183885FmaqWWiGMhRZq4DQRKH6mHdEucbJnyDyYiZNwNG424RymJjA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.25.9.tgz", + "integrity": "sha512-D/JUozNpQLAPUVusvqMxyvjzllRaF8/nSrP1s2YGQT/W4LHK4xxsMcHjhOGTS01mp9Hda8nswb+FblLdJornQw==", "license": "MIT", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.25.7", - "@babel/helper-plugin-utils": "^7.25.7" + "@babel/helper-create-class-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2428,14 +3899,14 @@ } }, "node_modules/@babel/plugin-transform-private-property-in-object": { - "version": "7.25.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.25.8.tgz", - "integrity": "sha512-8Uh966svuB4V8RHHg0QJOB32QK287NBksJOByoKmHMp1TAobNniNalIkI2i5IPj5+S9NYCG4VIjbEuiSN8r+ow==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.25.9.tgz", + "integrity": "sha512-Evf3kcMqzXA3xfYJmZ9Pg1OvKdtqsDMSWBDzZOPLvHiTt36E75jLDQo5w1gtRU95Q4E5PDttrTf25Fw8d/uWLw==", "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.7", - "@babel/helper-create-class-features-plugin": "^7.25.7", - "@babel/helper-plugin-utils": "^7.25.7" + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-create-class-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2444,25 +3915,13 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-private-property-in-object/node_modules/@babel/helper-annotate-as-pure": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.7.tgz", - "integrity": "sha512-4xwU8StnqnlIhhioZf1tqnVWeQ9pvH/ujS8hRfw/WOza+/a+1qv69BWNy+oY231maTCWgKWhfBU7kDpsds6zAA==", - "license": "MIT", - "dependencies": { - "@babel/types": "^7.25.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.25.7.tgz", - "integrity": "sha512-lQEeetGKfFi0wHbt8ClQrUSUMfEeI3MMm74Z73T9/kuz990yYVtfofjf3NuA42Jy3auFOpbjDyCSiIkTs1VIYw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.25.9.tgz", + "integrity": "sha512-IvIUeV5KrS/VPavfSM/Iu+RE6llrHrYIKY1yfCzyO/lMXHQ+p7uGhonmGVisv6tSBSVgWzMBohTcvkC9vQcQFA==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2472,12 +3931,12 @@ } }, "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.25.7.tgz", - "integrity": "sha512-mgDoQCRjrY3XK95UuV60tZlFCQGXEtMg8H+IsW72ldw1ih1jZhzYXbJvghmAEpg5UVhhnCeia1CkGttUvCkiMQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.25.9.tgz", + "integrity": "sha512-vwDcDNsgMPDGP0nMqzahDWE5/MLcX8sv96+wfX7as7LoF/kr97Bo/7fI00lXY4wUXYfVmwIIyG80fGZ1uvt2qg==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.7", + "@babel/helper-plugin-utils": "^7.25.9", "regenerator-transform": "^0.15.2" }, "engines": { @@ -2487,13 +3946,29 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.25.7.tgz", - "integrity": "sha512-3OfyfRRqiGeOvIWSagcwUTVk2hXBsr/ww7bLn6TRTuXnexA+Udov2icFOxFX9abaj4l96ooYkcNN1qi2Zvqwng==", + "node_modules/@babel/plugin-transform-regexp-modifiers": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.26.0.tgz", + "integrity": "sha512-vN6saax7lrA2yA/Pak3sCxuD6F5InBjn9IcrIKQPjpsLvuHYLVroTxjdlVRHjjBWxKOqIwpTXDkOssYT4BFdRw==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.7" + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.25.9.tgz", + "integrity": "sha512-7DL7DKYjn5Su++4RXu8puKZm2XBPHyjWLUidaPEkCUBbE7IPcsrkRHggAOOKydH1dASWdcUBxrkOGNxUv5P3Jg==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2503,15 +3978,15 @@ } }, "node_modules/@babel/plugin-transform-runtime": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.24.7.tgz", - "integrity": "sha512-YqXjrk4C+a1kZjewqt+Mmu2UuV1s07y8kqcUf4qYLnoqemhR4gRQikhdAhSVJioMjVTu6Mo6pAbaypEA3jY6fw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.25.9.tgz", + "integrity": "sha512-nZp7GlEl+yULJrClz0SwHPqir3lc0zsPrDHQUcxGspSL7AKrexNSEfTbfqnDNJUO13bgKyfuOLMF8Xqtu8j3YQ==", "license": "MIT", "dependencies": { - "@babel/helper-module-imports": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", "babel-plugin-polyfill-corejs2": "^0.4.10", - "babel-plugin-polyfill-corejs3": "^0.10.1", + "babel-plugin-polyfill-corejs3": "^0.10.6", "babel-plugin-polyfill-regenerator": "^0.6.1", "semver": "^6.3.1" }, @@ -2532,12 +4007,12 @@ } }, "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.25.7.tgz", - "integrity": "sha512-uBbxNwimHi5Bv3hUccmOFlUy3ATO6WagTApenHz9KzoIdn0XeACdB12ZJ4cjhuB2WSi80Ez2FWzJnarccriJeA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.25.9.tgz", + "integrity": "sha512-MUv6t0FhO5qHnS/W8XCbHmiRWOphNufpE1IVxhK5kuN3Td9FT1x4rx4K42s3RYdMXCXpfWkGSbCSd0Z64xA7Ng==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2547,13 +4022,13 @@ } }, "node_modules/@babel/plugin-transform-spread": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.25.7.tgz", - "integrity": "sha512-Mm6aeymI0PBh44xNIv/qvo8nmbkpZze1KvR8MkEqbIREDxoiWTi18Zr2jryfRMwDfVZF9foKh060fWgni44luw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.25.9.tgz", + "integrity": "sha512-oNknIB0TbURU5pqJFVbOOFspVlrpVwo2H1+HUIsVDvp5VauGGDP1ZEvO8Nn5xyMEs3dakajOxlmkNW7kNgSm6A==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.25.7" + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2563,12 +4038,12 @@ } }, "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.25.7.tgz", - "integrity": "sha512-ZFAeNkpGuLnAQ/NCsXJ6xik7Id+tHuS+NT+ue/2+rn/31zcdnupCdmunOizEaP0JsUmTFSTOPoQY7PkK2pttXw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.25.9.tgz", + "integrity": "sha512-WqBUSgeVwucYDP9U/xNRQam7xV8W5Zf+6Eo7T2SRVUFlhRiMNFdFz58u0KZmCVVqs2i7SHgpRnAhzRNmKfi2uA==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2578,12 +4053,12 @@ } }, "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.25.7.tgz", - "integrity": "sha512-SI274k0nUsFFmyQupiO7+wKATAmMFf8iFgq2O+vVFXZ0SV9lNfT1NGzBEhjquFmD8I9sqHLguH+gZVN3vww2AA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.25.9.tgz", + "integrity": "sha512-o97AE4syN71M/lxrCtQByzphAdlYluKPDBzDVzMmfCobUjjhAryZV0AIpRPrxN0eAkxXO6ZLEScmt+PNhj2OTw==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2593,12 +4068,12 @@ } }, "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.25.7.tgz", - "integrity": "sha512-OmWmQtTHnO8RSUbL0NTdtpbZHeNTnm68Gj5pA4Y2blFNh+V4iZR68V1qL9cI37J21ZN7AaCnkfdHtLExQPf2uA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.25.9.tgz", + "integrity": "sha512-v61XqUMiueJROUv66BVIOi0Fv/CUuZuZMl5NkRoCVxLAnMexZ0A3kMe7vvZ0nulxMuMp0Mk6S5hNh48yki08ZA==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2608,17 +4083,17 @@ } }, "node_modules/@babel/plugin-transform-typescript": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.25.7.tgz", - "integrity": "sha512-VKlgy2vBzj8AmEzunocMun2fF06bsSWV+FvVXohtL6FGve/+L217qhHxRTVGHEDO/YR8IANcjzgJsd04J8ge5Q==", + "version": "7.26.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.26.3.tgz", + "integrity": "sha512-6+5hpdr6mETwSKjmJUdYw0EIkATiQhnELWlE3kJFBwSg/BGIVwVaVbX+gOXBCdc7Ln1RXZxyWGecIXhUfnl7oA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.7", - "@babel/helper-create-class-features-plugin": "^7.25.7", - "@babel/helper-plugin-utils": "^7.25.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.25.7", - "@babel/plugin-syntax-typescript": "^7.25.7" + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-create-class-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", + "@babel/plugin-syntax-typescript": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2627,26 +4102,13 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-typescript/node_modules/@babel/helper-annotate-as-pure": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.7.tgz", - "integrity": "sha512-4xwU8StnqnlIhhioZf1tqnVWeQ9pvH/ujS8hRfw/WOza+/a+1qv69BWNy+oY231maTCWgKWhfBU7kDpsds6zAA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.25.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.25.7.tgz", - "integrity": "sha512-BN87D7KpbdiABA+t3HbVqHzKWUDN3dymLaTnPFAMyc8lV+KN3+YzNhVRNdinaCPA4AUqx7ubXbQ9shRjYBl3SQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.25.9.tgz", + "integrity": "sha512-s5EDrE6bW97LtxOcGj1Khcx5AaXwiMmi4toFWRDP9/y0Woo6pXC+iyPu/KuhKtfSrNFd7jJB+/fkOtZy6aIC6Q==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2656,13 +4118,13 @@ } }, "node_modules/@babel/plugin-transform-unicode-property-regex": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.25.7.tgz", - "integrity": "sha512-IWfR89zcEPQGB/iB408uGtSPlQd3Jpq11Im86vUgcmSTcoWAiQMCTOa2K2yNNqFJEBVICKhayctee65Ka8OB0w==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.25.9.tgz", + "integrity": "sha512-Jt2d8Ga+QwRluxRQ307Vlxa6dMrYEMZCgGxoPR8V52rxPyldHu3hdlHspxaqYmE7oID5+kB+UKUB/eWS+DkkWg==", "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.7", - "@babel/helper-plugin-utils": "^7.25.7" + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2672,13 +4134,13 @@ } }, "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.25.7.tgz", - "integrity": "sha512-8JKfg/hiuA3qXnlLx8qtv5HWRbgyFx2hMMtpDDuU2rTckpKkGu4ycK5yYHwuEa16/quXfoxHBIApEsNyMWnt0g==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.25.9.tgz", + "integrity": "sha512-yoxstj7Rg9dlNn9UQxzk4fcNivwv4nUYz7fYXBaKxvw/lnmPuOm/ikoELygbYq68Bls3D/D+NBPHiLwZdZZ4HA==", "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.7", - "@babel/helper-plugin-utils": "^7.25.7" + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2688,13 +4150,13 @@ } }, "node_modules/@babel/plugin-transform-unicode-sets-regex": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.25.7.tgz", - "integrity": "sha512-YRW8o9vzImwmh4Q3Rffd09bH5/hvY0pxg+1H1i0f7APoUeg12G7+HhLj9ZFNIrYkgBXhIijPJ+IXypN0hLTIbw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.25.9.tgz", + "integrity": "sha512-8BYqO3GeVNHtx69fdPshN3fnzUNLrWdHhk/icSwigksJGczKSizZ+Z6SBCxTs723Fr5VSNorTIK7a+R2tISvwQ==", "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.7", - "@babel/helper-plugin-utils": "^7.25.7" + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2704,93 +4166,79 @@ } }, "node_modules/@babel/preset-env": { - "version": "7.25.3", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.25.3.tgz", - "integrity": "sha512-QsYW7UeAaXvLPX9tdVliMJE7MD7M6MLYVTovRTIwhoYQVFHR1rM4wO8wqAezYi3/BpSD+NzVCZ69R6smWiIi8g==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.26.0.tgz", + "integrity": "sha512-H84Fxq0CQJNdPFT2DrfnylZ3cf5K43rGfWK4LJGPpjKHiZlk0/RzwEus3PDDZZg+/Er7lCA03MVacueUuXdzfw==", "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.25.2", - "@babel/helper-compilation-targets": "^7.25.2", - "@babel/helper-plugin-utils": "^7.24.8", - "@babel/helper-validator-option": "^7.24.8", - "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.25.3", - "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.25.0", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.25.0", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.24.7", - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.25.0", + "@babel/compat-data": "^7.26.0", + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-validator-option": "^7.25.9", + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.25.9", + "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.25.9", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.25.9", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.25.9", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.25.9", "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-class-static-block": "^7.14.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-import-assertions": "^7.24.7", - "@babel/plugin-syntax-import-attributes": "^7.24.7", - "@babel/plugin-syntax-import-meta": "^7.10.4", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5", - "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-syntax-import-assertions": "^7.26.0", + "@babel/plugin-syntax-import-attributes": "^7.26.0", "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", - "@babel/plugin-transform-arrow-functions": "^7.24.7", - "@babel/plugin-transform-async-generator-functions": "^7.25.0", - "@babel/plugin-transform-async-to-generator": "^7.24.7", - "@babel/plugin-transform-block-scoped-functions": "^7.24.7", - "@babel/plugin-transform-block-scoping": "^7.25.0", - "@babel/plugin-transform-class-properties": "^7.24.7", - "@babel/plugin-transform-class-static-block": "^7.24.7", - "@babel/plugin-transform-classes": "^7.25.0", - "@babel/plugin-transform-computed-properties": "^7.24.7", - "@babel/plugin-transform-destructuring": "^7.24.8", - "@babel/plugin-transform-dotall-regex": "^7.24.7", - "@babel/plugin-transform-duplicate-keys": "^7.24.7", - "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.25.0", - "@babel/plugin-transform-dynamic-import": "^7.24.7", - "@babel/plugin-transform-exponentiation-operator": "^7.24.7", - "@babel/plugin-transform-export-namespace-from": "^7.24.7", - "@babel/plugin-transform-for-of": "^7.24.7", - "@babel/plugin-transform-function-name": "^7.25.1", - "@babel/plugin-transform-json-strings": "^7.24.7", - "@babel/plugin-transform-literals": "^7.25.2", - "@babel/plugin-transform-logical-assignment-operators": "^7.24.7", - "@babel/plugin-transform-member-expression-literals": "^7.24.7", - "@babel/plugin-transform-modules-amd": "^7.24.7", - "@babel/plugin-transform-modules-commonjs": "^7.24.8", - "@babel/plugin-transform-modules-systemjs": "^7.25.0", - "@babel/plugin-transform-modules-umd": "^7.24.7", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.24.7", - "@babel/plugin-transform-new-target": "^7.24.7", - "@babel/plugin-transform-nullish-coalescing-operator": "^7.24.7", - "@babel/plugin-transform-numeric-separator": "^7.24.7", - "@babel/plugin-transform-object-rest-spread": "^7.24.7", - "@babel/plugin-transform-object-super": "^7.24.7", - "@babel/plugin-transform-optional-catch-binding": "^7.24.7", - "@babel/plugin-transform-optional-chaining": "^7.24.8", - "@babel/plugin-transform-parameters": "^7.24.7", - "@babel/plugin-transform-private-methods": "^7.24.7", - "@babel/plugin-transform-private-property-in-object": "^7.24.7", - "@babel/plugin-transform-property-literals": "^7.24.7", - "@babel/plugin-transform-regenerator": "^7.24.7", - "@babel/plugin-transform-reserved-words": "^7.24.7", - "@babel/plugin-transform-shorthand-properties": "^7.24.7", - "@babel/plugin-transform-spread": "^7.24.7", - "@babel/plugin-transform-sticky-regex": "^7.24.7", - "@babel/plugin-transform-template-literals": "^7.24.7", - "@babel/plugin-transform-typeof-symbol": "^7.24.8", - "@babel/plugin-transform-unicode-escapes": "^7.24.7", - "@babel/plugin-transform-unicode-property-regex": "^7.24.7", - "@babel/plugin-transform-unicode-regex": "^7.24.7", - "@babel/plugin-transform-unicode-sets-regex": "^7.24.7", + "@babel/plugin-transform-arrow-functions": "^7.25.9", + "@babel/plugin-transform-async-generator-functions": "^7.25.9", + "@babel/plugin-transform-async-to-generator": "^7.25.9", + "@babel/plugin-transform-block-scoped-functions": "^7.25.9", + "@babel/plugin-transform-block-scoping": "^7.25.9", + "@babel/plugin-transform-class-properties": "^7.25.9", + "@babel/plugin-transform-class-static-block": "^7.26.0", + "@babel/plugin-transform-classes": "^7.25.9", + "@babel/plugin-transform-computed-properties": "^7.25.9", + "@babel/plugin-transform-destructuring": "^7.25.9", + "@babel/plugin-transform-dotall-regex": "^7.25.9", + "@babel/plugin-transform-duplicate-keys": "^7.25.9", + "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.25.9", + "@babel/plugin-transform-dynamic-import": "^7.25.9", + "@babel/plugin-transform-exponentiation-operator": "^7.25.9", + "@babel/plugin-transform-export-namespace-from": "^7.25.9", + "@babel/plugin-transform-for-of": "^7.25.9", + "@babel/plugin-transform-function-name": "^7.25.9", + "@babel/plugin-transform-json-strings": "^7.25.9", + "@babel/plugin-transform-literals": "^7.25.9", + "@babel/plugin-transform-logical-assignment-operators": "^7.25.9", + "@babel/plugin-transform-member-expression-literals": "^7.25.9", + "@babel/plugin-transform-modules-amd": "^7.25.9", + "@babel/plugin-transform-modules-commonjs": "^7.25.9", + "@babel/plugin-transform-modules-systemjs": "^7.25.9", + "@babel/plugin-transform-modules-umd": "^7.25.9", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.25.9", + "@babel/plugin-transform-new-target": "^7.25.9", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.25.9", + "@babel/plugin-transform-numeric-separator": "^7.25.9", + "@babel/plugin-transform-object-rest-spread": "^7.25.9", + "@babel/plugin-transform-object-super": "^7.25.9", + "@babel/plugin-transform-optional-catch-binding": "^7.25.9", + "@babel/plugin-transform-optional-chaining": "^7.25.9", + "@babel/plugin-transform-parameters": "^7.25.9", + "@babel/plugin-transform-private-methods": "^7.25.9", + "@babel/plugin-transform-private-property-in-object": "^7.25.9", + "@babel/plugin-transform-property-literals": "^7.25.9", + "@babel/plugin-transform-regenerator": "^7.25.9", + "@babel/plugin-transform-regexp-modifiers": "^7.26.0", + "@babel/plugin-transform-reserved-words": "^7.25.9", + "@babel/plugin-transform-shorthand-properties": "^7.25.9", + "@babel/plugin-transform-spread": "^7.25.9", + "@babel/plugin-transform-sticky-regex": "^7.25.9", + "@babel/plugin-transform-template-literals": "^7.25.9", + "@babel/plugin-transform-typeof-symbol": "^7.25.9", + "@babel/plugin-transform-unicode-escapes": "^7.25.9", + "@babel/plugin-transform-unicode-property-regex": "^7.25.9", + "@babel/plugin-transform-unicode-regex": "^7.25.9", + "@babel/plugin-transform-unicode-sets-regex": "^7.25.9", "@babel/preset-modules": "0.1.6-no-external-plugins", "babel-plugin-polyfill-corejs2": "^0.4.10", - "babel-plugin-polyfill-corejs3": "^0.10.4", + "babel-plugin-polyfill-corejs3": "^0.10.6", "babel-plugin-polyfill-regenerator": "^0.6.1", - "core-js-compat": "^3.37.1", + "core-js-compat": "^3.38.1", "semver": "^6.3.1" }, "engines": { @@ -2824,17 +4272,17 @@ } }, "node_modules/@babel/preset-typescript": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.25.7.tgz", - "integrity": "sha512-rkkpaXJZOFN45Fb+Gki0c+KMIglk4+zZXOoMJuyEK8y8Kkc8Jd3BDmP7qPsz0zQMJj+UD7EprF+AqAXcILnexw==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.26.0.tgz", + "integrity": "sha512-NMk1IGZ5I/oHhoXEElcm+xUnL/szL6xflkFZmoEU9xj1qSJXpiS7rsspYo92B4DRCDvZn2erT5LdsCeXAKNCkg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.7", - "@babel/helper-validator-option": "^7.25.7", - "@babel/plugin-syntax-jsx": "^7.25.7", - "@babel/plugin-transform-modules-commonjs": "^7.25.7", - "@babel/plugin-transform-typescript": "^7.25.7" + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-validator-option": "^7.25.9", + "@babel/plugin-syntax-jsx": "^7.25.9", + "@babel/plugin-transform-modules-commonjs": "^7.25.9", + "@babel/plugin-transform-typescript": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2844,9 +4292,9 @@ } }, "node_modules/@babel/runtime": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.25.0.tgz", - "integrity": "sha512-7dRy4DwXwtzBrPbZflqxnvfxLF8kdZXPkhymtDeFoFqE6ldzjQFgYTtYIFARcLEYDrqfBfYcZt1WqFxRoyC9Rw==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.0.tgz", + "integrity": "sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==", "license": "MIT", "dependencies": { "regenerator-runtime": "^0.14.0" @@ -2856,30 +4304,30 @@ } }, "node_modules/@babel/template": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.7.tgz", - "integrity": "sha512-wRwtAgI3bAS+JGU2upWNL9lSlDcRCqD05BZ1n3X2ONLH1WilFP6O1otQjeMK/1g0pvYcXC7b/qVUB1keofjtZA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.9.tgz", + "integrity": "sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==", "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.25.7", - "@babel/parser": "^7.25.7", - "@babel/types": "^7.25.7" + "@babel/code-frame": "^7.25.9", + "@babel/parser": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.7.tgz", - "integrity": "sha512-jatJPT1Zjqvh/1FyJs6qAHL+Dzb7sTb+xr7Q+gM1b+1oBsMsQQ4FkVKb6dFlJvLlVssqkRzV05Jzervt9yhnzg==", + "version": "7.26.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.26.4.tgz", + "integrity": "sha512-fH+b7Y4p3yqvApJALCPJcwb0/XaOSgtK4pzV6WVjPR5GLFQBRI7pfoX2V2iM48NXvX07NUxxm1Vw98YjqTcU5w==", "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.25.7", - "@babel/generator": "^7.25.7", - "@babel/parser": "^7.25.7", - "@babel/template": "^7.25.7", - "@babel/types": "^7.25.7", + "@babel/code-frame": "^7.26.2", + "@babel/generator": "^7.26.3", + "@babel/parser": "^7.26.3", + "@babel/template": "^7.25.9", + "@babel/types": "^7.26.3", "debug": "^4.3.1", "globals": "^11.1.0" }, @@ -2887,42 +4335,14 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/traverse/node_modules/@babel/generator": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.25.7.tgz", - "integrity": "sha512-5Dqpl5fyV9pIAD62yK9P7fcA768uVPUyrQmqpqstHWgMma4feF1x/oFysBCVZLY5wJ2GkMUCdsNDnGZrPoR6rA==", - "license": "MIT", - "dependencies": { - "@babel/types": "^7.25.7", - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25", - "jsesc": "^3.0.2" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse/node_modules/jsesc": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", - "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", - "license": "MIT", - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/@babel/types": { - "version": "7.25.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.8.tgz", - "integrity": "sha512-JWtuCu8VQsMladxVz/P4HzHUGCAwpuqacmowgXFs5XjxIgKuNjnLokQzuVjlTvIzODaDmpjT3oxcC48vyk9EWg==", + "version": "7.26.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.3.tgz", + "integrity": "sha512-vN5p+1kl59GVKMvTHt55NzzmYVxprfJD+ql7U9NFIfKCBkYE55LYtS+WtPlaYOyzydrKI8Nezd+aZextrd+FMA==", "license": "MIT", "dependencies": { - "@babel/helper-string-parser": "^7.25.7", - "@babel/helper-validator-identifier": "^7.25.7", - "to-fast-properties": "^2.0.0" + "@babel/helper-string-parser": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -3037,6 +4457,19 @@ "node": ">=0.10.0" } }, + "node_modules/@cypress/listr-verbose-renderer/node_modules/cli-cursor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz", + "integrity": "sha512-25tABq090YNKkF6JH7lcwO0zFJTRke4Jcq9iX2nr/Sz0Cjjv4gckmwlW6Ty/aoyFd6z3ysR2hMGC2GFugmBo6A==", + "dev": true, + "license": "MIT", + "dependencies": { + "restore-cursor": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/@cypress/listr-verbose-renderer/node_modules/date-fns": { "version": "1.30.1", "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-1.30.1.tgz", @@ -3044,6 +4477,30 @@ "dev": true, "license": "MIT" }, + "node_modules/@cypress/listr-verbose-renderer/node_modules/onetime": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", + "integrity": "sha512-GZ+g4jayMqzCRMgB2sol7GiCLjKfS1PINkjmx8spcKce1LiVqcbQreXwqs2YAFXC6R03VIG28ZS31t8M866v6A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@cypress/listr-verbose-renderer/node_modules/restore-cursor": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz", + "integrity": "sha512-reSjH4HuiFlxlaBaFCiS6O76ZGG2ygKoSlCsipKdaZuKSPx/+bt9mULkn4l0asVzbEfQQmXRg6Wp6gv6m0wElw==", + "dev": true, + "license": "MIT", + "dependencies": { + "exit-hook": "^1.0.0", + "onetime": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/@cypress/listr-verbose-renderer/node_modules/strip-ansi": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", @@ -3113,9 +4570,9 @@ } }, "node_modules/@cypress/request/node_modules/qs": { - "version": "6.10.4", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.4.tgz", - "integrity": "sha512-OQiU+C+Ds5qiH91qh/mg0w+8nwQuLjM4F4M/PbmhDOoYehPh+Fb0bDjtR1sOvy7YKxvj28Y/M0PhP5uVX0kB+g==", + "version": "6.10.5", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.5.tgz", + "integrity": "sha512-O5RlPh0VFtR78y79rgcgKK4wbAI0C5zGVLztOIdpWX6ep368q5Hv6XRxDvXuZ9q3C6v+e3n8UfZZJw7IIG27eQ==", "dev": true, "license": "BSD-3-Clause", "dependencies": { @@ -3223,6 +4680,12 @@ "@peculiar/webcrypto": "^1.4.0" } }, + "node_modules/@dfinity/identity/node_modules/tweetnacl": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", + "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==", + "license": "Unlicense" + }, "node_modules/@dfinity/principal": { "version": "0.15.7", "resolved": "https://registry.npmjs.org/@dfinity/principal/-/principal-0.15.7.tgz", @@ -3240,12 +4703,13 @@ "license": "MIT" }, "node_modules/@discoveryjs/json-ext": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.6.1.tgz", - "integrity": "sha512-boghen8F0Q8D+0/Q1/1r6DUEieUJ8w2a1gIknExMSHBsJFOr2+0KUfHiVYBvucPwl3+RU5PFBK833FjFCh3BhA==", + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", + "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", + "dev": true, "license": "MIT", "engines": { - "node": ">=14.17.0" + "node": ">=10.0.0" } }, "node_modules/@emnapi/core": { @@ -3259,6 +4723,13 @@ "tslib": "^2.4.0" } }, + "node_modules/@emnapi/core/node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "dev": true, + "license": "0BSD" + }, "node_modules/@emnapi/runtime": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.3.1.tgz", @@ -3269,6 +4740,13 @@ "tslib": "^2.4.0" } }, + "node_modules/@emnapi/runtime/node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "dev": true, + "license": "0BSD" + }, "node_modules/@emnapi/wasi-threads": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.0.1.tgz", @@ -3279,13 +4757,21 @@ "tslib": "^2.4.0" } }, + "node_modules/@emnapi/wasi-threads/node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "dev": true, + "license": "0BSD" + }, "node_modules/@esbuild/aix-ppc64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.23.0.tgz", - "integrity": "sha512-3sG8Zwa5fMcA9bgqB8AfWPQ+HFke6uD3h1s3RIwUNK8EG7a4buxvuFTs3j1IMs2NXAk9F30C/FF4vxRgQCcmoQ==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.24.2.tgz", + "integrity": "sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==", "cpu": [ "ppc64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -3296,12 +4782,13 @@ } }, "node_modules/@esbuild/android-arm": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.23.0.tgz", - "integrity": "sha512-+KuOHTKKyIKgEEqKbGTK8W7mPp+hKinbMBeEnNzjJGyFcWsfrXjSTNluJHCY1RqhxFurdD8uNXQDei7qDlR6+g==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.24.2.tgz", + "integrity": "sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==", "cpu": [ "arm" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -3312,12 +4799,13 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.23.0.tgz", - "integrity": "sha512-EuHFUYkAVfU4qBdyivULuu03FhJO4IJN9PGuABGrFy4vUuzk91P2d+npxHcFdpUnfYKy0PuV+n6bKIpHOB3prQ==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.24.2.tgz", + "integrity": "sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==", "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -3328,12 +4816,13 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.23.0.tgz", - "integrity": "sha512-WRrmKidLoKDl56LsbBMhzTTBxrsVwTKdNbKDalbEZr0tcsBgCLbEtoNthOW6PX942YiYq8HzEnb4yWQMLQuipQ==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.24.2.tgz", + "integrity": "sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==", "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -3344,12 +4833,13 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.23.0.tgz", - "integrity": "sha512-YLntie/IdS31H54Ogdn+v50NuoWF5BDkEUFpiOChVa9UnKpftgwzZRrI4J132ETIi+D8n6xh9IviFV3eXdxfow==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.24.2.tgz", + "integrity": "sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==", "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -3360,12 +4850,13 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.23.0.tgz", - "integrity": "sha512-IMQ6eme4AfznElesHUPDZ+teuGwoRmVuuixu7sv92ZkdQcPbsNHzutd+rAfaBKo8YK3IrBEi9SLLKWJdEvJniQ==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.24.2.tgz", + "integrity": "sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==", "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -3376,12 +4867,13 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.23.0.tgz", - "integrity": "sha512-0muYWCng5vqaxobq6LB3YNtevDFSAZGlgtLoAc81PjUfiFz36n4KMpwhtAd4he8ToSI3TGyuhyx5xmiWNYZFyw==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.24.2.tgz", + "integrity": "sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==", "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -3392,12 +4884,13 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.23.0.tgz", - "integrity": "sha512-XKDVu8IsD0/q3foBzsXGt/KjD/yTKBCIwOHE1XwiXmrRwrX6Hbnd5Eqn/WvDekddK21tfszBSrE/WMaZh+1buQ==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.24.2.tgz", + "integrity": "sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q==", "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -3408,12 +4901,13 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.23.0.tgz", - "integrity": "sha512-SEELSTEtOFu5LPykzA395Mc+54RMg1EUgXP+iw2SJ72+ooMwVsgfuwXo5Fn0wXNgWZsTVHwY2cg4Vi/bOD88qw==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.24.2.tgz", + "integrity": "sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA==", "cpu": [ "arm" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -3424,12 +4918,13 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.23.0.tgz", - "integrity": "sha512-j1t5iG8jE7BhonbsEg5d9qOYcVZv/Rv6tghaXM/Ug9xahM0nX/H2gfu6X6z11QRTMT6+aywOMA8TDkhPo8aCGw==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.24.2.tgz", + "integrity": "sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==", "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -3440,12 +4935,13 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.23.0.tgz", - "integrity": "sha512-P7O5Tkh2NbgIm2R6x1zGJJsnacDzTFcRWZyTTMgFdVit6E98LTxO+v8LCCLWRvPrjdzXHx9FEOA8oAZPyApWUA==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.24.2.tgz", + "integrity": "sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==", "cpu": [ "ia32" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -3456,12 +4952,13 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.23.0.tgz", - "integrity": "sha512-InQwepswq6urikQiIC/kkx412fqUZudBO4SYKu0N+tGhXRWUqAx+Q+341tFV6QdBifpjYgUndV1hhMq3WeJi7A==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.24.2.tgz", + "integrity": "sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==", "cpu": [ "loong64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -3472,12 +4969,13 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.23.0.tgz", - "integrity": "sha512-J9rflLtqdYrxHv2FqXE2i1ELgNjT+JFURt/uDMoPQLcjWQA5wDKgQA4t/dTqGa88ZVECKaD0TctwsUfHbVoi4w==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.24.2.tgz", + "integrity": "sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw==", "cpu": [ "mips64el" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -3488,12 +4986,13 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.23.0.tgz", - "integrity": "sha512-cShCXtEOVc5GxU0fM+dsFD10qZ5UpcQ8AM22bYj0u/yaAykWnqXJDpd77ublcX6vdDsWLuweeuSNZk4yUxZwtw==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.24.2.tgz", + "integrity": "sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==", "cpu": [ "ppc64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -3504,12 +5003,13 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.23.0.tgz", - "integrity": "sha512-HEtaN7Y5UB4tZPeQmgz/UhzoEyYftbMXrBCUjINGjh3uil+rB/QzzpMshz3cNUxqXN7Vr93zzVtpIDL99t9aRw==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.24.2.tgz", + "integrity": "sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==", "cpu": [ "riscv64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -3520,12 +5020,13 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.23.0.tgz", - "integrity": "sha512-WDi3+NVAuyjg/Wxi+o5KPqRbZY0QhI9TjrEEm+8dmpY9Xir8+HE/HNx2JoLckhKbFopW0RdO2D72w8trZOV+Wg==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.24.2.tgz", + "integrity": "sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==", "cpu": [ "s390x" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -3536,12 +5037,13 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.23.0.tgz", - "integrity": "sha512-a3pMQhUEJkITgAw6e0bWA+F+vFtCciMjW/LPtoj99MhVt+Mfb6bbL9hu2wmTZgNd994qTAEw+U/r6k3qHWWaOQ==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.24.2.tgz", + "integrity": "sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q==", "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -3551,13 +5053,31 @@ "node": ">=18" } }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.24.2.tgz", + "integrity": "sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.23.0.tgz", - "integrity": "sha512-cRK+YDem7lFTs2Q5nEv/HHc4LnrfBCbH5+JHu6wm2eP+d8OZNoSMYgPZJq78vqQ9g+9+nMuIsAO7skzphRXHyw==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.24.2.tgz", + "integrity": "sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw==", "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -3568,12 +5088,13 @@ } }, "node_modules/@esbuild/openbsd-arm64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.23.0.tgz", - "integrity": "sha512-suXjq53gERueVWu0OKxzWqk7NxiUWSUlrxoZK7usiF50C6ipColGR5qie2496iKGYNLhDZkPxBI3erbnYkU0rQ==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.24.2.tgz", + "integrity": "sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A==", "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -3584,12 +5105,13 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.23.0.tgz", - "integrity": "sha512-6p3nHpby0DM/v15IFKMjAaayFhqnXV52aEmv1whZHX56pdkK+MEaLoQWj+H42ssFarP1PcomVhbsR4pkz09qBg==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.24.2.tgz", + "integrity": "sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==", "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -3600,12 +5122,13 @@ } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.23.0.tgz", - "integrity": "sha512-BFelBGfrBwk6LVrmFzCq1u1dZbG4zy/Kp93w2+y83Q5UGYF1d8sCzeLI9NXjKyujjBBniQa8R8PzLFAUrSM9OA==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.24.2.tgz", + "integrity": "sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==", "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -3616,12 +5139,13 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.23.0.tgz", - "integrity": "sha512-lY6AC8p4Cnb7xYHuIxQ6iYPe6MfO2CC43XXKo9nBXDb35krYt7KGhQnOkRGar5psxYkircpCqfbNDB4uJbS2jQ==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.24.2.tgz", + "integrity": "sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==", "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -3632,12 +5156,13 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.23.0.tgz", - "integrity": "sha512-7L1bHlOTcO4ByvI7OXVI5pNN6HSu6pUQq9yodga8izeuB1KcT2UkHaH6118QJwopExPn0rMHIseCTx1CRo/uNA==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.24.2.tgz", + "integrity": "sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==", "cpu": [ "ia32" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -3648,12 +5173,13 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.23.0.tgz", - "integrity": "sha512-Arm+WgUFLUATuoxCJcahGuk6Yj9Pzxd6l11Zb/2aAuv5kWWvvfhLFo2fni4uSK5vzlUdCGZ/BdV5tH8klj8p8g==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.24.2.tgz", + "integrity": "sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg==", "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -3664,25 +5190,28 @@ } }, "node_modules/@eslint-community/eslint-utils": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", - "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz", + "integrity": "sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==", "dev": true, "license": "MIT", "dependencies": { - "eslint-visitor-keys": "^3.3.0" + "eslint-visitor-keys": "^3.4.3" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, + "funding": { + "url": "https://opencollective.com/eslint" + }, "peerDependencies": { "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" } }, "node_modules/@eslint-community/regexpp": { - "version": "4.11.1", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.11.1.tgz", - "integrity": "sha512-m4DVN9ZqskZoLU5GlWZadwDnYo3vAEydiUayB9widCl9ffWx2IvPnp6n3on5rJmziJSw9Bv+Z3ChDVdMwXCY8Q==", + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", + "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", "dev": true, "license": "MIT", "engines": { @@ -3730,17 +5259,6 @@ "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, "node_modules/@eslint/eslintrc/node_modules/globals": { "version": "13.24.0", "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", @@ -3777,19 +5295,6 @@ "dev": true, "license": "MIT" }, - "node_modules/@eslint/eslintrc/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, "node_modules/@eslint/eslintrc/node_modules/type-fest": { "version": "0.20.2", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", @@ -3823,7 +5328,6 @@ "version": "0.11.14", "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", - "deprecated": "Use @eslint/config-array instead", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -3835,30 +5339,6 @@ "node": ">=10.10.0" } }, - "node_modules/@humanwhocodes/config-array/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/@humanwhocodes/config-array/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, "node_modules/@humanwhocodes/module-importer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", @@ -3877,54 +5357,56 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", - "deprecated": "Use @eslint/object-schema instead", "dev": true, "license": "BSD-3-Clause" }, "node_modules/@inquirer/checkbox": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@inquirer/checkbox/-/checkbox-2.5.0.tgz", - "integrity": "sha512-sMgdETOfi2dUHT8r7TT1BTKOwNvdDGFDXYWtQ2J69SvlYNntk9I/gJe7r5yvMwwsuKnYbuRs3pNhx4tgNck5aA==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@inquirer/checkbox/-/checkbox-4.0.4.tgz", + "integrity": "sha512-fYAKCAcGNMdfjL6hZTRUwkIByQ8EIZCXKrIQZH7XjADnN/xvRUhj8UdBbpC4zoUzvChhkSC/zRKaP/tDs3dZpg==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/core": "^9.1.0", - "@inquirer/figures": "^1.0.5", - "@inquirer/type": "^1.5.3", + "@inquirer/core": "^10.1.2", + "@inquirer/figures": "^1.0.9", + "@inquirer/type": "^3.0.2", "ansi-escapes": "^4.3.2", "yoctocolors-cjs": "^2.1.2" }, "engines": { "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" } }, "node_modules/@inquirer/confirm": { - "version": "3.1.22", - "resolved": "https://registry.npmjs.org/@inquirer/confirm/-/confirm-3.1.22.tgz", - "integrity": "sha512-gsAKIOWBm2Q87CDfs9fEo7wJT3fwWIJfnDGMn9Qy74gBnNFOACDNfhUzovubbJjWnKLGBln7/NcSmZwj5DuEXg==", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@inquirer/confirm/-/confirm-5.0.2.tgz", + "integrity": "sha512-KJLUHOaKnNCYzwVbryj3TNBxyZIrr56fR5N45v6K9IPrbT6B7DcudBMfylkV1A8PUdJE15mybkEQyp2/ZUpxUA==", "license": "MIT", "dependencies": { - "@inquirer/core": "^9.0.10", - "@inquirer/type": "^1.5.2" + "@inquirer/core": "^10.1.0", + "@inquirer/type": "^3.0.1" }, "engines": { "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" } }, "node_modules/@inquirer/core": { - "version": "9.2.1", - "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-9.2.1.tgz", - "integrity": "sha512-F2VBt7W/mwqEU4bL0RnHNZmC/OxzNx9cOYxHqnXX3MP6ruYvZUZAW9imgN9+h/uBT/oP8Gh888J2OZSbjSeWcg==", + "version": "10.1.2", + "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-10.1.2.tgz", + "integrity": "sha512-bHd96F3ezHg1mf/J0Rb4CV8ndCN0v28kUlrHqP7+ECm1C/A+paB7Xh2lbMk6x+kweQC+rZOxM/YeKikzxco8bQ==", "license": "MIT", "dependencies": { - "@inquirer/figures": "^1.0.6", - "@inquirer/type": "^2.0.0", - "@types/mute-stream": "^0.0.4", - "@types/node": "^22.5.5", - "@types/wrap-ansi": "^3.0.0", + "@inquirer/figures": "^1.0.9", + "@inquirer/type": "^3.0.2", "ansi-escapes": "^4.3.2", "cli-width": "^4.1.0", - "mute-stream": "^1.0.0", + "mute-stream": "^2.0.0", "signal-exit": "^4.1.0", "strip-ansi": "^6.0.1", "wrap-ansi": "^6.2.0", @@ -3934,195 +5416,247 @@ "node": ">=18" } }, - "node_modules/@inquirer/core/node_modules/@inquirer/type": { + "node_modules/@inquirer/core/node_modules/mute-stream": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-2.0.0.tgz", - "integrity": "sha512-XvJRx+2KR3YXyYtPUUy+qd9i7p+GO9Ko6VIIpWlBrpWwXDv8WLFeHTxz35CfQFUiBMLXlGHhGzys7lqit9gWag==", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-2.0.0.tgz", + "integrity": "sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA==", + "license": "ISC", + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/@inquirer/core/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@inquirer/core/node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", "license": "MIT", "dependencies": { - "mute-stream": "^1.0.0" + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" }, "engines": { - "node": ">=18" + "node": ">=8" } }, - "node_modules/@inquirer/core/node_modules/@types/node": { - "version": "22.7.7", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.7.7.tgz", - "integrity": "sha512-SRxCrrg9CL/y54aiMCG3edPKdprgMVGDXjA3gB8UmmBW5TcXzRUYAh8EWzTnSJFAd1rgImPELza+A3bJ+qxz8Q==", - "license": "MIT", - "dependencies": { - "undici-types": "~6.19.2" - } - }, - "node_modules/@inquirer/core/node_modules/undici-types": { - "version": "6.19.8", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", - "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", - "license": "MIT" - }, "node_modules/@inquirer/editor": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@inquirer/editor/-/editor-2.2.0.tgz", - "integrity": "sha512-9KHOpJ+dIL5SZli8lJ6xdaYLPPzB8xB9GZItg39MBybzhxA16vxmszmQFrRwbOA918WA2rvu8xhDEg/p6LXKbw==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@inquirer/editor/-/editor-4.2.1.tgz", + "integrity": "sha512-xn9aDaiP6nFa432i68JCaL302FyL6y/6EG97nAtfIPnWZ+mWPgCMLGc4XZ2QQMsZtu9q3Jd5AzBPjXh10aX9kA==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/core": "^9.1.0", - "@inquirer/type": "^1.5.3", + "@inquirer/core": "^10.1.2", + "@inquirer/type": "^3.0.2", "external-editor": "^3.1.0" }, "engines": { "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" } }, "node_modules/@inquirer/expand": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@inquirer/expand/-/expand-2.3.0.tgz", - "integrity": "sha512-qnJsUcOGCSG1e5DTOErmv2BPQqrtT6uzqn1vI/aYGiPKq+FgslGZmtdnXbhuI7IlT7OByDoEEqdnhUnVR2hhLw==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@inquirer/expand/-/expand-4.0.4.tgz", + "integrity": "sha512-GYocr+BPyxKPxQ4UZyNMqZFSGKScSUc0Vk17II3J+0bDcgGsQm0KYQNooN1Q5iBfXsy3x/VWmHGh20QnzsaHwg==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/core": "^9.1.0", - "@inquirer/type": "^1.5.3", + "@inquirer/core": "^10.1.2", + "@inquirer/type": "^3.0.2", "yoctocolors-cjs": "^2.1.2" }, "engines": { "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" } }, "node_modules/@inquirer/figures": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/@inquirer/figures/-/figures-1.0.7.tgz", - "integrity": "sha512-m+Trk77mp54Zma6xLkLuY+mvanPxlE4A7yNKs2HBiyZ4UkVs28Mv5c/pgWrHeInx+USHeX/WEPzjrWrcJiQgjw==", + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@inquirer/figures/-/figures-1.0.9.tgz", + "integrity": "sha512-BXvGj0ehzrngHTPTDqUoDT3NXL8U0RxUk2zJm2A66RhCEIWdtU1v6GuUqNAgArW4PQ9CinqIWyHdQgdwOj06zQ==", "license": "MIT", "engines": { "node": ">=18" } }, "node_modules/@inquirer/input": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@inquirer/input/-/input-2.3.0.tgz", - "integrity": "sha512-XfnpCStx2xgh1LIRqPXrTNEEByqQWoxsWYzNRSEUxJ5c6EQlhMogJ3vHKu8aXuTacebtaZzMAHwEL0kAflKOBw==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/@inquirer/input/-/input-4.1.1.tgz", + "integrity": "sha512-nAXAHQndZcXB+7CyjIW3XuQZZHbQQ0q8LX6miY6bqAWwDzNa9JUioDBYrFmOUNIsuF08o1WT/m2gbBXvBhYVxg==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/core": "^9.1.0", - "@inquirer/type": "^1.5.3" + "@inquirer/core": "^10.1.2", + "@inquirer/type": "^3.0.2" }, "engines": { "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" } }, "node_modules/@inquirer/number": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@inquirer/number/-/number-1.1.0.tgz", - "integrity": "sha512-ilUnia/GZUtfSZy3YEErXLJ2Sljo/mf9fiKc08n18DdwdmDbOzRcTv65H1jjDvlsAuvdFXf4Sa/aL7iw/NanVA==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@inquirer/number/-/number-3.0.4.tgz", + "integrity": "sha512-DX7a6IXRPU0j8kr2ovf+QaaDiIf+zEKaZVzCWdLOTk7XigqSXvoh4cul7x68xp54WTQrgSnW7P1WBJDbyY3GhA==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/core": "^9.1.0", - "@inquirer/type": "^1.5.3" + "@inquirer/core": "^10.1.2", + "@inquirer/type": "^3.0.2" }, "engines": { "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" } }, "node_modules/@inquirer/password": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@inquirer/password/-/password-2.2.0.tgz", - "integrity": "sha512-5otqIpgsPYIshqhgtEwSspBQE40etouR8VIxzpJkv9i0dVHIpyhiivbkH9/dGiMLdyamT54YRdGJLfl8TFnLHg==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@inquirer/password/-/password-4.0.4.tgz", + "integrity": "sha512-wiliQOWdjM8FnBmdIHtQV2Ca3S1+tMBUerhyjkRCv1g+4jSvEweGu9GCcvVEgKDhTBT15nrxvk5/bVrGUqSs1w==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/core": "^9.1.0", - "@inquirer/type": "^1.5.3", + "@inquirer/core": "^10.1.2", + "@inquirer/type": "^3.0.2", "ansi-escapes": "^4.3.2" }, "engines": { "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" } }, "node_modules/@inquirer/prompts": { - "version": "5.3.8", - "resolved": "https://registry.npmjs.org/@inquirer/prompts/-/prompts-5.3.8.tgz", - "integrity": "sha512-b2BudQY/Si4Y2a0PdZZL6BeJtl8llgeZa7U2j47aaJSCeAl1e4UI7y8a9bSkO3o/ZbZrgT5muy/34JbsjfIWxA==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@inquirer/prompts/-/prompts-7.1.0.tgz", + "integrity": "sha512-5U/XiVRH2pp1X6gpNAjWOglMf38/Ys522ncEHIKT1voRUvSj/DQnR22OVxHnwu5S+rCFaUiPQ57JOtMFQayqYA==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/checkbox": "^2.4.7", - "@inquirer/confirm": "^3.1.22", - "@inquirer/editor": "^2.1.22", - "@inquirer/expand": "^2.1.22", - "@inquirer/input": "^2.2.9", - "@inquirer/number": "^1.0.10", - "@inquirer/password": "^2.1.22", - "@inquirer/rawlist": "^2.2.4", - "@inquirer/search": "^1.0.7", - "@inquirer/select": "^2.4.7" + "@inquirer/checkbox": "^4.0.2", + "@inquirer/confirm": "^5.0.2", + "@inquirer/editor": "^4.1.0", + "@inquirer/expand": "^4.0.2", + "@inquirer/input": "^4.0.2", + "@inquirer/number": "^3.0.2", + "@inquirer/password": "^4.0.2", + "@inquirer/rawlist": "^4.0.2", + "@inquirer/search": "^3.0.2", + "@inquirer/select": "^4.0.2" }, "engines": { "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + } + }, + "node_modules/@inquirer/prompts/node_modules/@inquirer/confirm": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@inquirer/confirm/-/confirm-5.1.1.tgz", + "integrity": "sha512-vVLSbGci+IKQvDOtzpPTCOiEJCNidHcAq9JYVoWTW0svb5FiwSLotkM+JXNXejfjnzVYV9n0DTBythl9+XgTxg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@inquirer/core": "^10.1.2", + "@inquirer/type": "^3.0.2" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" } }, "node_modules/@inquirer/rawlist": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@inquirer/rawlist/-/rawlist-2.3.0.tgz", - "integrity": "sha512-zzfNuINhFF7OLAtGHfhwOW2TlYJyli7lOUoJUXw/uyklcwalV6WRXBXtFIicN8rTRK1XTiPWB4UY+YuW8dsnLQ==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@inquirer/rawlist/-/rawlist-4.0.4.tgz", + "integrity": "sha512-IsVN2EZdNHsmFdKWx9HaXb8T/s3FlR/U1QPt9dwbSyPtjFbMTlW9CRFvnn0bm/QIsrMRD2oMZqrQpSWPQVbXXg==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/core": "^9.1.0", - "@inquirer/type": "^1.5.3", + "@inquirer/core": "^10.1.2", + "@inquirer/type": "^3.0.2", "yoctocolors-cjs": "^2.1.2" }, "engines": { "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" } }, "node_modules/@inquirer/search": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@inquirer/search/-/search-1.1.0.tgz", - "integrity": "sha512-h+/5LSj51dx7hp5xOn4QFnUaKeARwUCLs6mIhtkJ0JYPBLmEYjdHSYh7I6GrLg9LwpJ3xeX0FZgAG1q0QdCpVQ==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@inquirer/search/-/search-3.0.4.tgz", + "integrity": "sha512-tSkJk2SDmC2MEdTIjknXWmCnmPr5owTs9/xjfa14ol1Oh95n6xW7SYn5fiPk4/vrJPys0ggSWiISdPze4LTa7A==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/core": "^9.1.0", - "@inquirer/figures": "^1.0.5", - "@inquirer/type": "^1.5.3", + "@inquirer/core": "^10.1.2", + "@inquirer/figures": "^1.0.9", + "@inquirer/type": "^3.0.2", "yoctocolors-cjs": "^2.1.2" }, "engines": { "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" } }, "node_modules/@inquirer/select": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@inquirer/select/-/select-2.5.0.tgz", - "integrity": "sha512-YmDobTItPP3WcEI86GvPo+T2sRHkxxOq/kXmsBjHS5BVXUgvgZ5AfJjkvQvZr03T81NnI3KrrRuMzeuYUQRFOA==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@inquirer/select/-/select-4.0.4.tgz", + "integrity": "sha512-ZzYLuLoUzTIW9EJm++jBpRiTshGqS3Q1o5qOEQqgzaBlmdsjQr6pA4TUNkwu6OBYgM2mIRbCz6mUhFDfl/GF+w==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/core": "^9.1.0", - "@inquirer/figures": "^1.0.5", - "@inquirer/type": "^1.5.3", + "@inquirer/core": "^10.1.2", + "@inquirer/figures": "^1.0.9", + "@inquirer/type": "^3.0.2", "ansi-escapes": "^4.3.2", "yoctocolors-cjs": "^2.1.2" }, "engines": { "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" } }, "node_modules/@inquirer/type": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-1.5.5.tgz", - "integrity": "sha512-MzICLu4yS7V8AA61sANROZ9vT1H3ooca5dSmI1FjZkzq7o/koMsRfQSzRtFo+F3Ao4Sf1C0bpLKejpKB/+j6MA==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-3.0.2.tgz", + "integrity": "sha512-ZhQ4TvhwHZF+lGhQ2O/rsjo80XoZR5/5qhOY3t6FJuX5XBg5Be8YzYTvaUGJnc12AUGI2nr4QSUE4PhKSigx7g==", "license": "MIT", - "dependencies": { - "mute-stream": "^1.0.0" - }, "engines": { "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" } }, "node_modules/@internationalized/number": { @@ -4144,6 +5678,7 @@ "version": "8.0.2", "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "devOptional": true, "license": "ISC", "dependencies": { "string-width": "^5.1.2", @@ -4161,6 +5696,7 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "devOptional": true, "license": "MIT", "engines": { "node": ">=12" @@ -4173,6 +5709,7 @@ "version": "6.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "devOptional": true, "license": "MIT", "engines": { "node": ">=12" @@ -4185,12 +5722,14 @@ "version": "9.2.2", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "devOptional": true, "license": "MIT" }, "node_modules/@isaacs/cliui/node_modules/string-width": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "devOptional": true, "license": "MIT", "dependencies": { "eastasianwidth": "^0.2.0", @@ -4208,6 +5747,7 @@ "version": "7.1.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "devOptional": true, "license": "MIT", "dependencies": { "ansi-regex": "^6.0.1" @@ -4223,6 +5763,7 @@ "version": "8.1.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "devOptional": true, "license": "MIT", "dependencies": { "ansi-styles": "^6.1.0", @@ -4236,6 +5777,19 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, + "node_modules/@isaacs/fs-minipass": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@isaacs/fs-minipass/-/fs-minipass-4.0.1.tgz", + "integrity": "sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==", + "dev": true, + "license": "ISC", + "dependencies": { + "minipass": "^7.0.4" + }, + "engines": { + "node": ">=18.0.0" + } + }, "node_modules/@istanbuljs/load-nyc-config": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", @@ -4253,60 +5807,14 @@ "node": ">=8" } }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "node_modules/@istanbuljs/load-nyc-config/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", "devOptional": true, "license": "MIT", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "p-try": "^2.0.0" - }, "engines": { "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" } }, "node_modules/@istanbuljs/schema": { @@ -4336,61 +5844,22 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@jest/console/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/@jest/console/node_modules/@types/node": { + "version": "22.10.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.2.tgz", + "integrity": "sha512-Xxr6BBRCAOQixvonOye19wnzyDiUtTeqldOOmj3CkeblonbccA12PFwlufvRdrpjXxqnmUaeiU5EOA+7s5diUQ==", "devOptional": true, "license": "MIT", "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "undici-types": "~6.20.0" } }, - "node_modules/@jest/console/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/@jest/console/node_modules/undici-types": { + "version": "6.20.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", + "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", "devOptional": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@jest/console/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "devOptional": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/console/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } + "license": "MIT" }, "node_modules/@jest/core": { "version": "29.7.0", @@ -4440,113 +5909,23 @@ } } }, - "node_modules/@jest/core/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/@jest/core/node_modules/@types/node": { + "version": "22.10.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.2.tgz", + "integrity": "sha512-Xxr6BBRCAOQixvonOye19wnzyDiUtTeqldOOmj3CkeblonbccA12PFwlufvRdrpjXxqnmUaeiU5EOA+7s5diUQ==", "devOptional": true, "license": "MIT", "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "undici-types": "~6.20.0" } }, - "node_modules/@jest/core/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@jest/core/node_modules/ci-info": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", - "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", - "devOptional": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/sibiraj-s" - } - ], - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/core/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "devOptional": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/core/node_modules/pretty-format": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", - "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "@jest/schemas": "^29.6.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/core/node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "devOptional": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@jest/core/node_modules/react-is": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "node_modules/@jest/core/node_modules/undici-types": { + "version": "6.20.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", + "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", "devOptional": true, "license": "MIT" }, - "node_modules/@jest/core/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/@jest/environment": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", @@ -4563,6 +5942,23 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, + "node_modules/@jest/environment/node_modules/@types/node": { + "version": "22.10.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.2.tgz", + "integrity": "sha512-Xxr6BBRCAOQixvonOye19wnzyDiUtTeqldOOmj3CkeblonbccA12PFwlufvRdrpjXxqnmUaeiU5EOA+7s5diUQ==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "undici-types": "~6.20.0" + } + }, + "node_modules/@jest/environment/node_modules/undici-types": { + "version": "6.20.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", + "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", + "devOptional": true, + "license": "MIT" + }, "node_modules/@jest/expect": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz", @@ -4608,6 +6004,23 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, + "node_modules/@jest/fake-timers/node_modules/@types/node": { + "version": "22.10.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.2.tgz", + "integrity": "sha512-Xxr6BBRCAOQixvonOye19wnzyDiUtTeqldOOmj3CkeblonbccA12PFwlufvRdrpjXxqnmUaeiU5EOA+7s5diUQ==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "undici-types": "~6.20.0" + } + }, + "node_modules/@jest/fake-timers/node_modules/undici-types": { + "version": "6.20.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", + "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", + "devOptional": true, + "license": "MIT" + }, "node_modules/@jest/globals": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz", @@ -4668,61 +6081,22 @@ } } }, - "node_modules/@jest/reporters/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/@jest/reporters/node_modules/@types/node": { + "version": "22.10.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.2.tgz", + "integrity": "sha512-Xxr6BBRCAOQixvonOye19wnzyDiUtTeqldOOmj3CkeblonbccA12PFwlufvRdrpjXxqnmUaeiU5EOA+7s5diUQ==", "devOptional": true, "license": "MIT", "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "undici-types": "~6.20.0" } }, - "node_modules/@jest/reporters/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/@jest/reporters/node_modules/undici-types": { + "version": "6.20.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", + "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", "devOptional": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@jest/reporters/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "devOptional": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/reporters/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } + "license": "MIT" }, "node_modules/@jest/schemas": { "version": "29.6.3", @@ -4811,69 +6185,6 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@jest/transform/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@jest/transform/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@jest/transform/node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "devOptional": true, - "license": "MIT" - }, - "node_modules/@jest/transform/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "devOptional": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/transform/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/@jest/types": { "version": "29.6.3", "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", @@ -4892,66 +6203,27 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@jest/types/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/@jest/types/node_modules/@types/node": { + "version": "22.10.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.2.tgz", + "integrity": "sha512-Xxr6BBRCAOQixvonOye19wnzyDiUtTeqldOOmj3CkeblonbccA12PFwlufvRdrpjXxqnmUaeiU5EOA+7s5diUQ==", "devOptional": true, "license": "MIT", "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "undici-types": "~6.20.0" } }, - "node_modules/@jest/types/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/@jest/types/node_modules/undici-types": { + "version": "6.20.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", + "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", "devOptional": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@jest/types/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "devOptional": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/types/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } + "license": "MIT" }, "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", - "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", + "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", "license": "MIT", "dependencies": { "@jridgewell/set-array": "^1.2.1", @@ -5006,64 +6278,10 @@ "@jridgewell/sourcemap-codec": "^1.4.14" } }, - "node_modules/@jsonjoy.com/base64": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-q6XAnWQDIMA3+FTiOYajoYqySkO+JSat0ytXGSuRdq9uXE7o92gzuQwQM14xaCRlBLGq3v5miDGC4vkVTn54xA==", - "license": "Apache-2.0", - "engines": { - "node": ">=10.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" - }, - "peerDependencies": { - "tslib": "2" - } - }, - "node_modules/@jsonjoy.com/json-pack": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/json-pack/-/json-pack-1.1.0.tgz", - "integrity": "sha512-zlQONA+msXPPwHWZMKFVS78ewFczIll5lXiVPwFPCZUsrOKdxc2AvxU1HoNBmMRhqDZUR9HkC3UOm+6pME6Xsg==", - "license": "Apache-2.0", - "dependencies": { - "@jsonjoy.com/base64": "^1.1.1", - "@jsonjoy.com/util": "^1.1.2", - "hyperdyperid": "^1.2.0", - "thingies": "^1.20.0" - }, - "engines": { - "node": ">=10.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" - }, - "peerDependencies": { - "tslib": "2" - } - }, - "node_modules/@jsonjoy.com/util": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/util/-/util-1.5.0.tgz", - "integrity": "sha512-ojoNsrIuPI9g6o8UxhraZQSyF2ByJanAY4cTFbc8Mf2AXEF4aQRGY1dJxyJpuyav8r9FGflEt/Ff3u5Nt6YMPA==", - "license": "Apache-2.0", - "engines": { - "node": ">=10.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" - }, - "peerDependencies": { - "tslib": "2" - } - }, "node_modules/@kurkle/color": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@kurkle/color/-/color-0.3.2.tgz", - "integrity": "sha512-fuscdXJ9G1qb7W8VdHi+IwRqij3lBkosAm4ydQtEmbY58OzHXqQhvlxqEkoz0yssNVn38bcpRWgA9PP+OGoisw==", + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/@kurkle/color/-/color-0.3.4.tgz", + "integrity": "sha512-M5UknZPHRu3DEDWoipU6sE8PdkZ6Z/S+v4dD+Ke8IaNlpdSQah50lz1KtcFBa2vsdOnwbbnxJwVM4wty6udA5w==", "license": "MIT" }, "node_modules/@leichtgewicht/ip-codec": { @@ -5079,25 +6297,38 @@ "license": "MIT" }, "node_modules/@listr2/prompt-adapter-inquirer": { - "version": "2.0.15", - "resolved": "https://registry.npmjs.org/@listr2/prompt-adapter-inquirer/-/prompt-adapter-inquirer-2.0.15.tgz", - "integrity": "sha512-MZrGem/Ujjd4cPTLYDfCZK2iKKeiO/8OX13S6jqxldLs0Prf2aGqVlJ77nMBqMv7fzqgXEgjrNHLXcKR8l9lOg==", + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/@listr2/prompt-adapter-inquirer/-/prompt-adapter-inquirer-2.0.18.tgz", + "integrity": "sha512-0hz44rAcrphyXcA8IS7EJ2SCoaBZD2u5goE8S/e+q/DL+dOGpqpcLidVOFeLG3VgML62SXmfRLAhWt0zL1oW4Q==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/type": "^1.5.1" + "@inquirer/type": "^1.5.5" }, "engines": { "node": ">=18.0.0" }, "peerDependencies": { - "@inquirer/prompts": ">= 3 < 6" + "@inquirer/prompts": ">= 3 < 8" + } + }, + "node_modules/@listr2/prompt-adapter-inquirer/node_modules/@inquirer/type": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-1.5.5.tgz", + "integrity": "sha512-MzICLu4yS7V8AA61sANROZ9vT1H3ooca5dSmI1FjZkzq7o/koMsRfQSzRtFo+F3Ao4Sf1C0bpLKejpKB/+j6MA==", + "dev": true, + "license": "MIT", + "dependencies": { + "mute-stream": "^1.0.0" + }, + "engines": { + "node": ">=18" } }, "node_modules/@lmdb/lmdb-darwin-arm64": { - "version": "3.0.13", - "resolved": "https://registry.npmjs.org/@lmdb/lmdb-darwin-arm64/-/lmdb-darwin-arm64-3.0.13.tgz", - "integrity": "sha512-uiKPB0Fv6WEEOZjruu9a6wnW/8jrjzlZbxXscMB8kuCJ1k6kHpcBnuvaAWcqhbI7rqX5GKziwWEdD+wi2gNLfA==", + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-darwin-arm64/-/lmdb-darwin-arm64-3.1.5.tgz", + "integrity": "sha512-ue5PSOzHMCIYrfvPP/MRS6hsKKLzqqhcdAvJCO8uFlDdj598EhgnacuOTuqA6uBK5rgiZXfDWyb7DVZSiBKxBA==", "cpu": [ "arm64" ], @@ -5107,71 +6338,6 @@ "darwin" ] }, - "node_modules/@lmdb/lmdb-darwin-x64": { - "version": "3.0.13", - "resolved": "https://registry.npmjs.org/@lmdb/lmdb-darwin-x64/-/lmdb-darwin-x64-3.0.13.tgz", - "integrity": "sha512-bEVIIfK5mSQoG1R19qA+fJOvCB+0wVGGnXHT3smchBVahYBdlPn2OsZZKzlHWfb1E+PhLBmYfqB5zQXFP7hJig==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@lmdb/lmdb-linux-arm": { - "version": "3.0.13", - "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-arm/-/lmdb-linux-arm-3.0.13.tgz", - "integrity": "sha512-Yml1KlMzOnXj/tnW7yX8U78iAzTk39aILYvCPbqeewAq1kSzl+w59k/fiVkTBfvDi/oW/5YRxL+Fq+Y1Fr1r2Q==", - "cpu": [ - "arm" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@lmdb/lmdb-linux-arm64": { - "version": "3.0.13", - "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-arm64/-/lmdb-linux-arm64-3.0.13.tgz", - "integrity": "sha512-afbVrsMgZ9dUTNUchFpj5VkmJRxvht/u335jUJ7o23YTbNbnpmXif3VKQGCtnjSh+CZaqm6N3CPG8KO3zwyZ1Q==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@lmdb/lmdb-linux-x64": { - "version": "3.0.13", - "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-x64/-/lmdb-linux-x64-3.0.13.tgz", - "integrity": "sha512-vOtxu0xC0SLdQ2WRXg8Qgd8T32ak4SPqk5zjItRszrJk2BdeXqfGxBJbP7o4aOvSPSmSSv46Lr1EP4HXU8v7Kg==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@lmdb/lmdb-win32-x64": { - "version": "3.0.13", - "resolved": "https://registry.npmjs.org/@lmdb/lmdb-win32-x64/-/lmdb-win32-x64-3.0.13.tgz", - "integrity": "sha512-UCrMJQY/gJnOl3XgbWRZZUvGGBuKy6i0YNSptgMzHBjs+QYDYR1Mt/RLTOPy4fzzves65O1EDmlL//OzEqoLlA==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, "node_modules/@lukeed/csprng": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@lukeed/csprng/-/csprng-1.1.0.tgz", @@ -5181,44 +6347,27 @@ "node": ">=8" } }, - "node_modules/@mdx-js/react": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@mdx-js/react/-/react-3.1.0.tgz", - "integrity": "sha512-QjHtSaoameoalGnKDT3FoIl4+9RwyTmo9ZJGBdLOks/YOiWHoRDI3PUwEzOE7kEmGcV3AFcp9K6dYu9rEuKLAQ==", + "node_modules/@module-federation/bridge-react-webpack-plugin": { + "version": "0.7.6", + "resolved": "https://registry.npmjs.org/@module-federation/bridge-react-webpack-plugin/-/bridge-react-webpack-plugin-0.7.6.tgz", + "integrity": "sha512-eD1JZDQ+h5WLdA58MmAE1DzLwvFaGJeeam3Tswc/sEUb4QGT86X4Fme+dMTBRYRoAq/tRYql3DlVTFhdmrUVzg==", "dev": true, "license": "MIT", "dependencies": { - "@types/mdx": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - }, - "peerDependencies": { - "@types/react": ">=16", - "react": ">=16" - } - }, - "node_modules/@module-federation/bridge-react-webpack-plugin": { - "version": "0.6.9", - "resolved": "https://registry.npmjs.org/@module-federation/bridge-react-webpack-plugin/-/bridge-react-webpack-plugin-0.6.9.tgz", - "integrity": "sha512-KXTPO0vkrtHEIcthU3TIQEkPxoytcmdyNXRwOojZEVQhqEefykAek48ndFiVTmyOu2LW2EuzP49Le8zY7nESWQ==", - "dev": true, - "dependencies": { - "@module-federation/sdk": "0.6.9", + "@module-federation/sdk": "0.7.6", "@types/semver": "7.5.8", "semver": "7.6.3" } }, "node_modules/@module-federation/data-prefetch": { - "version": "0.6.9", - "resolved": "https://registry.npmjs.org/@module-federation/data-prefetch/-/data-prefetch-0.6.9.tgz", - "integrity": "sha512-rpHxfHNkIiPA441GzXI6TMYjSrUjRWDwxJTvRQopX/P0jK5vKtNwT1UBTNF2DJkbtO1idljfhbrIufEg0OY72w==", + "version": "0.7.6", + "resolved": "https://registry.npmjs.org/@module-federation/data-prefetch/-/data-prefetch-0.7.6.tgz", + "integrity": "sha512-AMpfnuIAK/Y5M682BUsnc13ARCEKhEvb0tXF4S+l7jfL08oE9gyo+G/nk0LIzZBO2mLDz5g2AydAERanM6gswQ==", "dev": true, "license": "MIT", "dependencies": { - "@module-federation/runtime": "0.6.9", - "@module-federation/sdk": "0.6.9", + "@module-federation/runtime": "0.7.6", + "@module-federation/sdk": "0.7.6", "fs-extra": "9.1.0" }, "peerDependencies": { @@ -5227,15 +6376,16 @@ } }, "node_modules/@module-federation/dts-plugin": { - "version": "0.6.9", - "resolved": "https://registry.npmjs.org/@module-federation/dts-plugin/-/dts-plugin-0.6.9.tgz", - "integrity": "sha512-uiMjjEFcMlOvRtNu8/tt7sJ5y7WTosTVym0V7lMQjgoeX0QesvZqRhgzw5gQcPcFvbk54RwTUI2rS8OEGScCFw==", + "version": "0.7.6", + "resolved": "https://registry.npmjs.org/@module-federation/dts-plugin/-/dts-plugin-0.7.6.tgz", + "integrity": "sha512-K8T8+Ip+fCQkTOxAQbAW47drphN36+WcvcOusn/fsIT+1exdhyvqxSCj8V7MLCtjA9kGDi0jHIGN6MN4p2cV0Q==", "dev": true, "license": "MIT", "dependencies": { - "@module-federation/managers": "0.6.9", - "@module-federation/sdk": "0.6.9", - "@module-federation/third-party-dts-extractor": "0.6.9", + "@module-federation/error-codes": "0.7.6", + "@module-federation/managers": "0.7.6", + "@module-federation/sdk": "0.7.6", + "@module-federation/third-party-dts-extractor": "0.7.6", "adm-zip": "^0.5.10", "ansi-colors": "^4.1.3", "axios": "^1.7.4", @@ -5247,7 +6397,7 @@ "log4js": "6.9.1", "node-schedule": "2.1.1", "rambda": "^9.1.0", - "ws": "8.17.1" + "ws": "8.18.0" }, "peerDependencies": { "typescript": "^4.9.0 || ^5.0.0", @@ -5259,22 +6409,6 @@ } } }, - "node_modules/@module-federation/dts-plugin/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, "node_modules/@module-federation/dts-plugin/node_modules/chalk": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", @@ -5289,106 +6423,39 @@ "node": ">=8" } }, - "node_modules/@module-federation/dts-plugin/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "node_modules/@module-federation/error-codes": { + "version": "0.7.6", + "resolved": "https://registry.npmjs.org/@module-federation/error-codes/-/error-codes-0.7.6.tgz", + "integrity": "sha512-XVzX/sRFj1h5JvOOVMoFppxq0t1t3o/AlEICHgWX+dybIwJgz9g4gihZOWVZfz5/xsKGcUwdH5X7Z2nkuYhJEw==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/@module-federation/dts-plugin/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@module-federation/enhanced": { - "version": "0.6.9", - "resolved": "https://registry.npmjs.org/@module-federation/enhanced/-/enhanced-0.6.9.tgz", - "integrity": "sha512-4bEGQSE6zJ2FMdBTOrRiVjNNzWhUqzWEJGWbsr0bpLNAl4BVx2ah5MyKTrSYqaW//BRA2qc8rmrIreaIawr3kQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@module-federation/bridge-react-webpack-plugin": "0.6.9", - "@module-federation/data-prefetch": "0.6.9", - "@module-federation/dts-plugin": "0.6.9", - "@module-federation/managers": "0.6.9", - "@module-federation/manifest": "0.6.9", - "@module-federation/rspack": "0.6.9", - "@module-federation/runtime-tools": "0.6.9", - "@module-federation/sdk": "0.6.9", - "btoa": "^1.2.1", - "upath": "2.0.1" - }, - "peerDependencies": { - "typescript": "^4.9.0 || ^5.0.0", - "vue-tsc": ">=1.0.24", - "webpack": "^5.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - }, - "vue-tsc": { - "optional": true - }, - "webpack": { - "optional": true - } - } + "license": "MIT" }, "node_modules/@module-federation/managers": { - "version": "0.6.9", - "resolved": "https://registry.npmjs.org/@module-federation/managers/-/managers-0.6.9.tgz", - "integrity": "sha512-q3AOQXcWWpdUZI1gDIi9j/UqcP+FJBYXj/e4pNp3QAteJwS/Ve9UP3y0hW27bIbAWZSSajWsYbf/+YLnktA/kQ==", + "version": "0.7.6", + "resolved": "https://registry.npmjs.org/@module-federation/managers/-/managers-0.7.6.tgz", + "integrity": "sha512-NW0LJ6TL13oN004D9e50EalcGZyTYHHgyaeKOc90Omb/HMeHxjyhHx7wl1TLRwVN2E5Rk+IO0JrwgrdlNMfAzg==", "dev": true, "license": "MIT", "dependencies": { - "@module-federation/sdk": "0.6.9", + "@module-federation/sdk": "0.7.6", "find-pkg": "2.0.0", "fs-extra": "9.1.0" } }, "node_modules/@module-federation/manifest": { - "version": "0.6.9", - "resolved": "https://registry.npmjs.org/@module-federation/manifest/-/manifest-0.6.9.tgz", - "integrity": "sha512-JMSPDpHODXOmTyJes8GJ950mbN7tqjQzqgFVUubDOVFOmlC0/MYaRzRPmkApz6d8nUfMbLZYzxNSaBHx8GP0/Q==", + "version": "0.7.6", + "resolved": "https://registry.npmjs.org/@module-federation/manifest/-/manifest-0.7.6.tgz", + "integrity": "sha512-xBrFwLjDMUjKRnp+P4X29ZNyhgXSsp+SfrBxVsKJpEESOHalDoNClbo6gXvZAvkBZyo9sY3SJhAwduDwNkg04w==", "dev": true, "license": "MIT", "dependencies": { - "@module-federation/dts-plugin": "0.6.9", - "@module-federation/managers": "0.6.9", - "@module-federation/sdk": "0.6.9", + "@module-federation/dts-plugin": "0.7.6", + "@module-federation/managers": "0.7.6", + "@module-federation/sdk": "0.7.6", "chalk": "3.0.0", "find-pkg": "2.0.0" } }, - "node_modules/@module-federation/manifest/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, "node_modules/@module-federation/manifest/node_modules/chalk": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", @@ -5403,42 +6470,19 @@ "node": ">=8" } }, - "node_modules/@module-federation/manifest/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/@module-federation/manifest/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/@module-federation/rspack": { - "version": "0.6.9", - "resolved": "https://registry.npmjs.org/@module-federation/rspack/-/rspack-0.6.9.tgz", - "integrity": "sha512-N5yBqN8ijSRZKd0kbIvpZNil0y8rFa8cREKI1QsW1+EYUKwOUBFwF55tFdTmNCKmpZqSEBtcNjRGZXknsYPQxg==", + "version": "0.7.6", + "resolved": "https://registry.npmjs.org/@module-federation/rspack/-/rspack-0.7.6.tgz", + "integrity": "sha512-alfX85C+2AQLXGrtpa08ImwhHIGwFIkJ/6i/XhxpYL5iFu0mC0xRIJPJUw0tiBWdFpP4p+Ykij3hP3FqfvaiKg==", "dev": true, "license": "MIT", "dependencies": { - "@module-federation/bridge-react-webpack-plugin": "0.6.9", - "@module-federation/dts-plugin": "0.6.9", - "@module-federation/managers": "0.6.9", - "@module-federation/manifest": "0.6.9", - "@module-federation/runtime-tools": "0.6.9", - "@module-federation/sdk": "0.6.9" + "@module-federation/bridge-react-webpack-plugin": "0.7.6", + "@module-federation/dts-plugin": "0.7.6", + "@module-federation/managers": "0.7.6", + "@module-federation/manifest": "0.7.6", + "@module-federation/runtime-tools": "0.7.6", + "@module-federation/sdk": "0.7.6" }, "peerDependencies": { "typescript": "^4.9.0 || ^5.0.0", @@ -5454,37 +6498,41 @@ } }, "node_modules/@module-federation/runtime": { - "version": "0.6.9", - "resolved": "https://registry.npmjs.org/@module-federation/runtime/-/runtime-0.6.9.tgz", - "integrity": "sha512-G1x+6jyW5sW1X+TtWaKigGhwqiHE8MESvi3ntE9ICxwELAGBonmsqDqnLSrdEy6poBKslvPANPJr0Nn9pvW9lg==", + "version": "0.7.6", + "resolved": "https://registry.npmjs.org/@module-federation/runtime/-/runtime-0.7.6.tgz", + "integrity": "sha512-TEEDbGwaohZ2dMa+Sk/Igq8XpcyfjqJfbL20mdAZeifSFVZYRSCaTd/xIXP7pEw8+5BaCMc4YfCf/XcjFAUrVA==", "dev": true, "license": "MIT", "dependencies": { - "@module-federation/sdk": "0.6.9" + "@module-federation/error-codes": "0.7.6", + "@module-federation/sdk": "0.7.6" } }, "node_modules/@module-federation/runtime-tools": { - "version": "0.6.9", - "resolved": "https://registry.npmjs.org/@module-federation/runtime-tools/-/runtime-tools-0.6.9.tgz", - "integrity": "sha512-AhsEBXo8IW1ATMKS1xfJaxBiHu9n5z6WUOAIWdPpWXXBJhTFgOs0K1xAod0xLJY4YH/B5cwEcHRPN3FEs2/0Ww==", + "version": "0.7.6", + "resolved": "https://registry.npmjs.org/@module-federation/runtime-tools/-/runtime-tools-0.7.6.tgz", + "integrity": "sha512-SvokF6gn2sNrTEPG51H0LrowHnf3iNfznO2PzKpxAhZOBdb1pm0wJPwWSMHYrjMdDpjr7bzaqAywnkHdA6lqeQ==", "dev": true, "license": "MIT", "dependencies": { - "@module-federation/runtime": "0.6.9", - "@module-federation/webpack-bundler-runtime": "0.6.9" + "@module-federation/runtime": "0.7.6", + "@module-federation/webpack-bundler-runtime": "0.7.6" } }, "node_modules/@module-federation/sdk": { - "version": "0.6.9", - "resolved": "https://registry.npmjs.org/@module-federation/sdk/-/sdk-0.6.9.tgz", - "integrity": "sha512-xmTxb9LgncxPGsBrN6AT/+aHnFGv8swbeNl0PcSeVbXTGLu3Gp7j+5J+AhJoWNB++SLguRwBd8LjB1d8mNKLDg==", + "version": "0.7.6", + "resolved": "https://registry.npmjs.org/@module-federation/sdk/-/sdk-0.7.6.tgz", + "integrity": "sha512-MFE+RtsHnutZOCp2eKpa3A/yzZ8tOPmjX7QRdVnB2qqR9JA2SH3ZP5+cYq76tzFQZvU1BCWAQVNMvqGOW2yVZQ==", "dev": true, - "license": "MIT" + "license": "MIT", + "dependencies": { + "isomorphic-rslog": "0.0.6" + } }, "node_modules/@module-federation/third-party-dts-extractor": { - "version": "0.6.9", - "resolved": "https://registry.npmjs.org/@module-federation/third-party-dts-extractor/-/third-party-dts-extractor-0.6.9.tgz", - "integrity": "sha512-im00IQyX/siJz+SaAmJo6vGmMBig7UYzcrPD1N5NeiZonxdT1RZk9iXUP419UESgovYy4hM6w4qdCq6PMMl2bw==", + "version": "0.7.6", + "resolved": "https://registry.npmjs.org/@module-federation/third-party-dts-extractor/-/third-party-dts-extractor-0.7.6.tgz", + "integrity": "sha512-JME76/rgr41AKXG6kUTQXdQJiMCypN3qHOgPv4VuIag10UdLo/0gdeN6PYronvYmvPOQMfYev80GcEwl4l531A==", "dev": true, "license": "MIT", "dependencies": { @@ -5493,15 +6541,33 @@ "resolve": "1.22.8" } }, - "node_modules/@module-federation/webpack-bundler-runtime": { - "version": "0.6.9", - "resolved": "https://registry.npmjs.org/@module-federation/webpack-bundler-runtime/-/webpack-bundler-runtime-0.6.9.tgz", - "integrity": "sha512-ME1MjNT/a4MFI3HaJDM06olJ+/+H8lk4oDOdwwEZI2JSH3UoqCDrMcjSKCjBNMGzza57AowGobo1LHQeY8yZ8Q==", + "node_modules/@module-federation/third-party-dts-extractor/node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", "dev": true, "license": "MIT", "dependencies": { - "@module-federation/runtime": "0.6.9", - "@module-federation/sdk": "0.6.9" + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/@module-federation/webpack-bundler-runtime": { + "version": "0.7.6", + "resolved": "https://registry.npmjs.org/@module-federation/webpack-bundler-runtime/-/webpack-bundler-runtime-0.7.6.tgz", + "integrity": "sha512-kB9hQ0BfwNAcQWGskDEOxYP2z2bB/1ABXKr8MDomCFl2mbW3vvfYMQrb8UhJmJvE3rbGI/iXhJUdgBLNREnjUg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@module-federation/runtime": "0.7.6", + "@module-federation/sdk": "0.7.6" } }, "node_modules/@msgpackr-extract/msgpackr-extract-darwin-arm64": { @@ -5517,70 +6583,53 @@ "darwin" ] }, - "node_modules/@msgpackr-extract/msgpackr-extract-darwin-x64": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-darwin-x64/-/msgpackr-extract-darwin-x64-3.0.3.tgz", - "integrity": "sha512-mdzd3AVzYKuUmiWOQ8GNhl64/IoFGol569zNRdkLReh6LRLHOXxU4U8eq0JwaD8iFHdVGqSy4IjFL4reoWCDFw==", - "cpu": [ - "x64" - ], + "node_modules/@napi-rs/nice": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice/-/nice-1.0.1.tgz", + "integrity": "sha512-zM0mVWSXE0a0h9aKACLwKmD6nHcRiKrPpCfvaKqG1CqDEyjEawId0ocXxVzPMCAm6kkWr2P025msfxXEnt8UGQ==", "license": "MIT", "optional": true, - "os": [ - "darwin" - ] + "engines": { + "node": ">= 10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Brooooooklyn" + }, + "optionalDependencies": { + "@napi-rs/nice-android-arm-eabi": "1.0.1", + "@napi-rs/nice-android-arm64": "1.0.1", + "@napi-rs/nice-darwin-arm64": "1.0.1", + "@napi-rs/nice-darwin-x64": "1.0.1", + "@napi-rs/nice-freebsd-x64": "1.0.1", + "@napi-rs/nice-linux-arm-gnueabihf": "1.0.1", + "@napi-rs/nice-linux-arm64-gnu": "1.0.1", + "@napi-rs/nice-linux-arm64-musl": "1.0.1", + "@napi-rs/nice-linux-ppc64-gnu": "1.0.1", + "@napi-rs/nice-linux-riscv64-gnu": "1.0.1", + "@napi-rs/nice-linux-s390x-gnu": "1.0.1", + "@napi-rs/nice-linux-x64-gnu": "1.0.1", + "@napi-rs/nice-linux-x64-musl": "1.0.1", + "@napi-rs/nice-win32-arm64-msvc": "1.0.1", + "@napi-rs/nice-win32-ia32-msvc": "1.0.1", + "@napi-rs/nice-win32-x64-msvc": "1.0.1" + } }, - "node_modules/@msgpackr-extract/msgpackr-extract-linux-arm": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-arm/-/msgpackr-extract-linux-arm-3.0.3.tgz", - "integrity": "sha512-fg0uy/dG/nZEXfYilKoRe7yALaNmHoYeIoJuJ7KJ+YyU2bvY8vPv27f7UKhGRpY6euFYqEVhxCFZgAUNQBM3nw==", - "cpu": [ - "arm" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@msgpackr-extract/msgpackr-extract-linux-arm64": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-arm64/-/msgpackr-extract-linux-arm64-3.0.3.tgz", - "integrity": "sha512-YxQL+ax0XqBJDZiKimS2XQaf+2wDGVa1enVRGzEvLLVFeqa5kx2bWbtcSXgsxjQB7nRqqIGFIcLteF/sHeVtQg==", + "node_modules/@napi-rs/nice-darwin-arm64": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-darwin-arm64/-/nice-darwin-arm64-1.0.1.tgz", + "integrity": "sha512-91k3HEqUl2fsrz/sKkuEkscj6EAj3/eZNCLqzD2AA0TtVbkQi8nqxZCZDMkfklULmxLkMxuUdKe7RvG/T6s2AA==", "cpu": [ "arm64" ], "license": "MIT", "optional": true, "os": [ - "linux" - ] - }, - "node_modules/@msgpackr-extract/msgpackr-extract-linux-x64": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-x64/-/msgpackr-extract-linux-x64-3.0.3.tgz", - "integrity": "sha512-cvwNfbP07pKUfq1uH+S6KJ7dT9K8WOE4ZiAcsrSes+UY55E/0jLYc+vq+DO7jlmqRb5zAggExKm0H7O/CBaesg==", - "cpu": [ - "x64" + "darwin" ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@msgpackr-extract/msgpackr-extract-win32-x64": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-win32-x64/-/msgpackr-extract-win32-x64-3.0.3.tgz", - "integrity": "sha512-x0fWaQtYp4E6sktbsdAqnehxDgEc/VwM7uLsRCYWaiGu0ykYdZPiS8zCWdnjHwyiumousxfBm4SO31eXqwEZhQ==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] + "engines": { + "node": ">= 10" + } }, "node_modules/@napi-rs/wasm-runtime": { "version": "0.2.4", @@ -5610,12 +6659,12 @@ } }, "node_modules/@nestjs/bull-shared": { - "version": "10.2.1", - "resolved": "https://registry.npmjs.org/@nestjs/bull-shared/-/bull-shared-10.2.1.tgz", - "integrity": "sha512-zvnTvSq6OJ92omcsFUwaUmPbM3PRgWkIusHPB5TE3IFS7nNdM3OwF+kfe56sgKjMtQQMe/56lok0S04OtPMX5Q==", + "version": "10.2.3", + "resolved": "https://registry.npmjs.org/@nestjs/bull-shared/-/bull-shared-10.2.3.tgz", + "integrity": "sha512-XcgAjNOgq6b5DVCytxhR5BKiwWo7hsusVeyE7sfFnlXRHeEtIuC2hYWBr/ZAtvL/RH0/O0tqtq0rVl972nbhJw==", "license": "MIT", "dependencies": { - "tslib": "2.6.3" + "tslib": "2.8.1" }, "peerDependencies": { "@nestjs/common": "^8.0.0 || ^9.0.0 || ^10.0.0", @@ -5623,9 +6672,9 @@ } }, "node_modules/@nestjs/bull-shared/node_modules/tslib": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz", - "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==", + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", "license": "0BSD" }, "node_modules/@nestjs/cache-manager": { @@ -5691,6 +6740,18 @@ "reflect-metadata": "^0.1.13" } }, + "node_modules/@nestjs/config/node_modules/dotenv": { + "version": "16.1.4", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.1.4.tgz", + "integrity": "sha512-m55RtE8AsPeJBpOIFKihEmqUcoVncQIwo7x9U8ZwLEZw9ZpXboz2c+rvog+jUaJvVrZ5kBOeYQBX5+8Aa/OZQw==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/motdotla/dotenv?sponsor=1" + } + }, "node_modules/@nestjs/config/node_modules/uuid": { "version": "9.0.0", "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", @@ -5738,6 +6799,12 @@ } } }, + "node_modules/@nestjs/core/node_modules/path-to-regexp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-3.2.0.tgz", + "integrity": "sha512-jczvQbCUS7XmS7o+y1aEO9OBVFeZBQ1MDSEqmO7xSoPgOPoowY/SxLpZ6Vh97/8qHZOteiCKb7gkG9gA2ZUxJA==", + "license": "MIT" + }, "node_modules/@nestjs/core/node_modules/tslib": { "version": "2.6.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", @@ -5801,6 +6868,168 @@ "@nestjs/core": "^10.0.0" } }, + "node_modules/@nestjs/platform-express/node_modules/cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/@nestjs/platform-express/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/@nestjs/platform-express/node_modules/express": { + "version": "4.18.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", + "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", + "license": "MIT", + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.1", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.5.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/@nestjs/platform-express/node_modules/express/node_modules/body-parser": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", + "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", + "license": "MIT", + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/@nestjs/platform-express/node_modules/finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "license": "MIT", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/@nestjs/platform-express/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@nestjs/platform-express/node_modules/merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==", + "license": "MIT" + }, + "node_modules/@nestjs/platform-express/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/@nestjs/platform-express/node_modules/path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==", + "license": "MIT" + }, + "node_modules/@nestjs/platform-express/node_modules/raw-body": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "license": "MIT", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/@nestjs/platform-express/node_modules/serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "license": "MIT", + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, "node_modules/@nestjs/platform-express/node_modules/tslib": { "version": "2.6.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", @@ -5911,42 +7140,76 @@ "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/@nestjs/schematics/node_modules/ajv-formats": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", - "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "node_modules/@nestjs/schematics/node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", "dev": true, "license": "MIT", + "optional": true, + "peer": true, "dependencies": { - "ajv": "^8.0.0" - }, - "peerDependencies": { - "ajv": "^8.0.0" - }, - "peerDependenciesMeta": { - "ajv": { - "optional": true - } - } - }, - "node_modules/@nestjs/schematics/node_modules/jsonc-parser": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", - "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", - "dev": true, - "license": "MIT" - }, - "node_modules/@nestjs/schematics/node_modules/magic-string": { - "version": "0.30.0", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.0.tgz", - "integrity": "sha512-LA+31JYDJLs82r2ScLrlz1GjSgu66ZV518eyWT+S8VhyQn/JL0u9MeBOvQMGYiPk1DBiSN9DDMOcXvigJZaViQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.4.13" + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" }, "engines": { - "node": ">=12" + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/@nestjs/schematics/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "optional": true, + "peer": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@nestjs/schematics/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/@nestjs/schematics/node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" } }, "node_modules/@nestjs/schematics/node_modules/rxjs": { @@ -5959,6 +7222,16 @@ "tslib": "^2.1.0" } }, + "node_modules/@nestjs/schematics/node_modules/source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">= 8" + } + }, "node_modules/@nestjs/serve-static": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/@nestjs/serve-static/-/serve-static-4.0.0.tgz", @@ -6027,22 +7300,6 @@ "dev": true, "license": "0BSD" }, - "node_modules/@ngtools/webpack": { - "version": "18.2.9", - "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-18.2.9.tgz", - "integrity": "sha512-/apDvs4qevjSWoYw3h3/c/mILFrf2EgCJfBy9f3E7PEgi2tjifOIszBRrLQkVpeHAaFgEH8zKS2ol0hAmOl8sw==", - "license": "MIT", - "engines": { - "node": "^18.19.1 || ^20.11.1 || >=22.0.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" - }, - "peerDependencies": { - "@angular/compiler-cli": "^18.0.0", - "typescript": ">=5.4 <5.6", - "webpack": "^5.54.0" - } - }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -6079,9 +7336,9 @@ } }, "node_modules/@npmcli/agent": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/@npmcli/agent/-/agent-2.2.2.tgz", - "integrity": "sha512-OrcNPXdpSl9UX7qPVRWbmWMCSXrcDa2M9DvrbOTj7ao1S4PlqVFYv9/yLKMkrJKZ/V5A/kDBC690or307i26Og==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/agent/-/agent-3.0.0.tgz", + "integrity": "sha512-S79NdEgDQd/NGCay6TCoVzXSj74skRZIKJcpJjC5lOq34SZzyI6MqtiiWoiVWoVrTcGjNeC4ipbh1VIHlpfF5Q==", "dev": true, "license": "ISC", "dependencies": { @@ -6092,7 +7349,7 @@ "socks-proxy-agent": "^8.0.3" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/@npmcli/agent/node_modules/http-proxy-agent": { @@ -6109,124 +7366,98 @@ "node": ">= 14" } }, - "node_modules/@npmcli/agent/node_modules/lru-cache": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "node_modules/@npmcli/agent/node_modules/https-proxy-agent": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", + "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", "dev": true, - "license": "ISC" + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } }, "node_modules/@npmcli/fs": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-3.1.1.tgz", - "integrity": "sha512-q9CRWjpHCMIh5sVyefoD1cA7PkvILqCZsnSOEUUivORLjxCO/Irmue2DprETiNgEqktDBZaM1Bi+jrarx1XdCg==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-4.0.0.tgz", + "integrity": "sha512-/xGlezI6xfGO9NwuJlnwz/K14qD1kCSAGtacBHnGzeAIuJGazcp45KP5NuyARXoKb7cwulAGWVsbeSxdG/cb0Q==", "dev": true, "license": "ISC", "dependencies": { "semver": "^7.3.5" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/@npmcli/git": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-5.0.8.tgz", - "integrity": "sha512-liASfw5cqhjNW9UFd+ruwwdEf/lbOAQjLL2XY2dFW/bkJheXDYZgOyul/4gVvEV4BWkTXjYGmDqMw9uegdbJNQ==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-6.0.1.tgz", + "integrity": "sha512-BBWMMxeQzalmKadyimwb2/VVQyJB01PH0HhVSNLHNBDZN/M/h/02P6f8fxedIiFhpMj11SO9Ep5tKTBE7zL2nw==", "dev": true, "license": "ISC", "dependencies": { - "@npmcli/promise-spawn": "^7.0.0", - "ini": "^4.1.3", + "@npmcli/promise-spawn": "^8.0.0", + "ini": "^5.0.0", "lru-cache": "^10.0.1", - "npm-pick-manifest": "^9.0.0", - "proc-log": "^4.0.0", + "npm-pick-manifest": "^10.0.0", + "proc-log": "^5.0.0", "promise-inflight": "^1.0.1", "promise-retry": "^2.0.1", "semver": "^7.3.5", - "which": "^4.0.0" + "which": "^5.0.0" }, "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/@npmcli/git/node_modules/isexe": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", - "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=16" - } - }, - "node_modules/@npmcli/git/node_modules/lru-cache": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/@npmcli/git/node_modules/which": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", - "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", - "dev": true, - "license": "ISC", - "dependencies": { - "isexe": "^3.1.1" - }, - "bin": { - "node-which": "bin/which.js" - }, - "engines": { - "node": "^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/@npmcli/installed-package-contents": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-2.1.0.tgz", - "integrity": "sha512-c8UuGLeZpm69BryRykLuKRyKFZYJsZSCT4aVY5ds4omyZqJ172ApzgfKJ5eV/r3HgLdUYgFVe54KSFVjKoe27w==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-3.0.0.tgz", + "integrity": "sha512-fkxoPuFGvxyrH+OQzyTkX2LUEamrF4jZSmxjAtPPHHGO0dqsQ8tTKjnIS8SAnPHdk2I03BDtSMR5K/4loKg79Q==", "dev": true, "license": "ISC", "dependencies": { - "npm-bundled": "^3.0.0", - "npm-normalize-package-bin": "^3.0.0" + "npm-bundled": "^4.0.0", + "npm-normalize-package-bin": "^4.0.0" }, "bin": { "installed-package-contents": "bin/index.js" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/@npmcli/node-gyp": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-3.0.0.tgz", - "integrity": "sha512-gp8pRXC2oOxu0DUE1/M3bYtb1b3/DbJ5aM113+XJBgfXdussRAsX0YOrOhdd8WvnAR6auDBvJomGAkLKA5ydxA==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-4.0.0.tgz", + "integrity": "sha512-+t5DZ6mO/QFh78PByMq1fGSAub/agLJZDRfJRMeOSNCt8s9YVlTjmGpIPwPhvXTGUIJk+WszlT0rQa1W33yzNA==", "dev": true, "license": "ISC", "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/@npmcli/package-json": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/@npmcli/package-json/-/package-json-5.2.1.tgz", - "integrity": "sha512-f7zYC6kQautXHvNbLEWgD/uGu1+xCn9izgqBfgItWSx22U0ZDekxN08A1vM8cTxj/cRVe0Q94Ode+tdoYmIOOQ==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@npmcli/package-json/-/package-json-6.1.0.tgz", + "integrity": "sha512-t6G+6ZInT4X+tqj2i+wlLIeCKnKOTuz9/VFYDtj+TGTur5q7sp/OYrQA19LdBbWfXDOi0Y4jtedV6xtB8zQ9ug==", "dev": true, "license": "ISC", "dependencies": { - "@npmcli/git": "^5.0.0", + "@npmcli/git": "^6.0.0", "glob": "^10.2.2", - "hosted-git-info": "^7.0.0", - "json-parse-even-better-errors": "^3.0.0", - "normalize-package-data": "^6.0.0", - "proc-log": "^4.0.0", + "hosted-git-info": "^8.0.0", + "json-parse-even-better-errors": "^4.0.0", + "normalize-package-data": "^7.0.0", + "proc-log": "^5.0.0", "semver": "^7.5.3" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/@npmcli/package-json/node_modules/glob": { @@ -6250,6 +7481,16 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/@npmcli/package-json/node_modules/json-parse-even-better-errors": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-4.0.0.tgz", + "integrity": "sha512-lR4MXjGNgkJc7tkQ97kb2nuEMnNCyU//XYVH0MKTGcXEiSudQ5MKGKen3C5QubYy0vmq+JGitUg92uuywGEwIA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, "node_modules/@npmcli/package-json/node_modules/minimatch": { "version": "9.0.5", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", @@ -6267,96 +7508,44 @@ } }, "node_modules/@npmcli/promise-spawn": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-7.0.2.tgz", - "integrity": "sha512-xhfYPXoV5Dy4UkY0D+v2KkwvnDfiA/8Mt3sWCGI/hM03NsYIH8ZaG6QzS9x7pje5vHZBZJ2v6VRFVTWACnqcmQ==", + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-8.0.2.tgz", + "integrity": "sha512-/bNJhjc+o6qL+Dwz/bqfTQClkEO5nTQ1ZEcdCkAQjhkZMHIh22LPG7fNh1enJP1NKWDqYiiABnjFCY7E0zHYtQ==", "dev": true, "license": "ISC", "dependencies": { - "which": "^4.0.0" + "which": "^5.0.0" }, "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/@npmcli/promise-spawn/node_modules/isexe": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", - "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=16" - } - }, - "node_modules/@npmcli/promise-spawn/node_modules/which": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", - "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", - "dev": true, - "license": "ISC", - "dependencies": { - "isexe": "^3.1.1" - }, - "bin": { - "node-which": "bin/which.js" - }, - "engines": { - "node": "^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/@npmcli/redact": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@npmcli/redact/-/redact-2.0.1.tgz", - "integrity": "sha512-YgsR5jCQZhVmTJvjduTOIHph0L73pK8xwMVaDY0PatySqVM9AZj93jpoXYSJqfHFxFkN9dmqTw6OiqExsS3LPw==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/redact/-/redact-3.0.0.tgz", + "integrity": "sha512-/1uFzjVcfzqrgCeGW7+SZ4hv0qLWmKXVzFahZGJ6QuJBj6Myt9s17+JL86i76NV9YSnJRcGXJYQbAU0rn1YTCQ==", "dev": true, "license": "ISC", "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/@npmcli/run-script": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-8.1.0.tgz", - "integrity": "sha512-y7efHHwghQfk28G2z3tlZ67pLG0XdfYbcVG26r7YIXALRsrVQcTq4/tdenSmdOrEsNahIYA/eh8aEVROWGFUDg==", + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-9.0.2.tgz", + "integrity": "sha512-cJXiUlycdizQwvqE1iaAb4VRUM3RX09/8q46zjvy+ct9GhfZRWd7jXYVc1tn/CfRlGPVkX/u4sstRlepsm7hfw==", "dev": true, "license": "ISC", "dependencies": { - "@npmcli/node-gyp": "^3.0.0", - "@npmcli/package-json": "^5.0.0", - "@npmcli/promise-spawn": "^7.0.0", - "node-gyp": "^10.0.0", - "proc-log": "^4.0.0", - "which": "^4.0.0" + "@npmcli/node-gyp": "^4.0.0", + "@npmcli/package-json": "^6.0.0", + "@npmcli/promise-spawn": "^8.0.0", + "node-gyp": "^11.0.0", + "proc-log": "^5.0.0", + "which": "^5.0.0" }, "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/@npmcli/run-script/node_modules/isexe": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", - "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=16" - } - }, - "node_modules/@npmcli/run-script/node_modules/which": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", - "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", - "dev": true, - "license": "ISC", - "dependencies": { - "isexe": "^3.1.1" - }, - "bin": { - "node-which": "bin/which.js" - }, - "engines": { - "node": "^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/@nuxtjs/opencollective": { @@ -6377,147 +7566,80 @@ "npm": ">=5.0.0" } }, - "node_modules/@nuxtjs/opencollective/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@nuxtjs/opencollective/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@nuxtjs/opencollective/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/@nuxtjs/opencollective/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/@nx/angular": { - "version": "20.1.2", - "resolved": "https://registry.npmjs.org/@nx/angular/-/angular-20.1.2.tgz", - "integrity": "sha512-brGmrT6DDPCV7liN69N5T0rHqkn2FO7zceAum++h/s65++g4CscZTIS0CyKr8ZBRG9wvDBuOWkKbnwtV9297HA==", + "version": "20.3.0", + "resolved": "https://registry.npmjs.org/@nx/angular/-/angular-20.3.0.tgz", + "integrity": "sha512-QdgHkOza4f3brmyepHoMvpMKFyPXTGvp5R4zImq0hkwX4UguZyKgSEQV5ldOPsDxe9HOAgypXZnGo/CfQAdhmQ==", "dev": true, "license": "MIT", "dependencies": { - "@module-federation/enhanced": "0.6.9", - "@nx/devkit": "20.1.2", - "@nx/eslint": "20.1.2", - "@nx/js": "20.1.2", - "@nx/web": "20.1.2", - "@nx/webpack": "20.1.2", - "@nx/workspace": "20.1.2", + "@nx/devkit": "20.3.0", + "@nx/eslint": "20.3.0", + "@nx/js": "20.3.0", + "@nx/module-federation": "20.3.0", + "@nx/web": "20.3.0", + "@nx/webpack": "20.3.0", + "@nx/workspace": "20.3.0", "@phenomnomnominal/tsquery": "~5.0.1", "@typescript-eslint/type-utils": "^8.0.0", "chalk": "^4.1.0", - "find-cache-dir": "^3.3.2", "magic-string": "~0.30.2", "minimatch": "9.0.3", "piscina": "^4.4.0", "semver": "^7.5.3", "tslib": "^2.3.0", - "webpack": "^5.88.0", "webpack-merge": "^5.8.0" }, "peerDependencies": { - "@angular-devkit/build-angular": ">= 16.0.0 < 19.0.0", - "@angular-devkit/core": ">= 16.0.0 < 19.0.0", - "@angular-devkit/schematics": ">= 16.0.0 < 19.0.0", - "@schematics/angular": ">= 16.0.0 < 19.0.0", + "@angular-devkit/build-angular": ">= 17.0.0 < 20.0.0", + "@angular-devkit/core": ">= 17.0.0 < 20.0.0", + "@angular-devkit/schematics": ">= 17.0.0 < 20.0.0", + "@schematics/angular": ">= 17.0.0 < 20.0.0", "rxjs": "^6.5.3 || ^7.5.0" } }, - "node_modules/@nx/angular/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/@nx/angular/node_modules/magic-string": { + "version": "0.30.17", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz", + "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==", "dev": true, "license": "MIT", "dependencies": { - "color-convert": "^2.0.1" + "@jridgewell/sourcemap-codec": "^1.5.0" + } + }, + "node_modules/@nx/angular/node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" }, "engines": { - "node": ">=8" + "node": ">=16 || 14 >=14.17" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@nx/angular/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/@nx/angular/node_modules/piscina": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/piscina/-/piscina-4.8.0.tgz", + "integrity": "sha512-EZJb+ZxDrQf3dihsUL7p42pjNyrNIFJCrRHPMgxu/svsj+P3xS3fuEWp7k2+rfsavfl1N0G29b1HGs7J0m8rZA==", "dev": true, "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "optionalDependencies": { + "@napi-rs/nice": "^1.0.1" } }, - "node_modules/@nx/angular/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "node_modules/@nx/angular/node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/@nx/angular/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } + "license": "0BSD" }, "node_modules/@nx/angular/node_modules/webpack-merge": { "version": "5.10.0", @@ -6535,15 +7657,15 @@ } }, "node_modules/@nx/cypress": { - "version": "20.1.2", - "resolved": "https://registry.npmjs.org/@nx/cypress/-/cypress-20.1.2.tgz", - "integrity": "sha512-kT/vXWqD4DxYawtVBA3E1EYlFi6ba6XvEnh+Ac5A1EX0PmVqBxhtBxpDlLjJxDOEgpIWbZDFdkJ41twYQgYDGA==", + "version": "20.3.0", + "resolved": "https://registry.npmjs.org/@nx/cypress/-/cypress-20.3.0.tgz", + "integrity": "sha512-Fi4HOhz8JYPLrnmFDxgVK1lNTBb6ZZC0EiibFxqCeFdPOQFJx36VyzMNIdfGHI50TCBUsSzK5eWD/8NHSBuFUg==", "dev": true, "license": "MIT", "dependencies": { - "@nx/devkit": "20.1.2", - "@nx/eslint": "20.1.2", - "@nx/js": "20.1.2", + "@nx/devkit": "20.3.0", + "@nx/eslint": "20.3.0", + "@nx/js": "20.3.0", "@phenomnomnominal/tsquery": "~5.0.1", "detect-port": "^1.5.1", "tslib": "^2.3.0" @@ -6557,10 +7679,17 @@ } } }, + "node_modules/@nx/cypress/node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "dev": true, + "license": "0BSD" + }, "node_modules/@nx/devkit": { - "version": "20.1.2", - "resolved": "https://registry.npmjs.org/@nx/devkit/-/devkit-20.1.2.tgz", - "integrity": "sha512-MTEWiEST7DhzZ2QmrixLnHfYVDZk7QN9omLL8m+5Etcn/3ZKa1aAo9Amd2MkUM+0MPoTKnxoGdw0fQUpAy21Mg==", + "version": "20.3.0", + "resolved": "https://registry.npmjs.org/@nx/devkit/-/devkit-20.3.0.tgz", + "integrity": "sha512-u9oRd2F33DLNWPbzpYGW7xuMEYUAOwO9DLP9nGYpxbZXy6Z4AdoKeqhN+KBTyg8+DyQGuKUSEXcWriDyLLgcHw==", "dev": true, "license": "MIT", "dependencies": { @@ -6577,18 +7706,41 @@ "nx": ">= 19 <= 21" } }, + "node_modules/@nx/devkit/node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@nx/devkit/node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "dev": true, + "license": "0BSD" + }, "node_modules/@nx/eslint": { - "version": "20.1.2", - "resolved": "https://registry.npmjs.org/@nx/eslint/-/eslint-20.1.2.tgz", - "integrity": "sha512-VMJ65E0jUEjup8hxz6LtqYbYnk2TUoLCM7ZV4rZdPqm0rLvlHDmb7BfdY2u2sZa3dwRDtupeDMlbyPX/Eb8Rcw==", + "version": "20.3.0", + "resolved": "https://registry.npmjs.org/@nx/eslint/-/eslint-20.3.0.tgz", + "integrity": "sha512-QhApF0HAcMm0tc7kXna4XuFUuO3oroWvGmvzGqBSa3GyuXbAz1VJ1RFWYkyQzjAsltaBcMUFCA+ORUM+PN1sWA==", "dev": true, "license": "MIT", "dependencies": { - "@nx/devkit": "20.1.2", - "@nx/js": "20.1.2", + "@nx/devkit": "20.3.0", + "@nx/js": "20.3.0", "semver": "^7.5.3", "tslib": "^2.3.0", - "typescript": "~5.4.2" + "typescript": "~5.6.2" }, "peerDependencies": { "@zkochan/js-yaml": "0.0.7", @@ -6601,14 +7753,14 @@ } }, "node_modules/@nx/eslint-plugin": { - "version": "20.1.2", - "resolved": "https://registry.npmjs.org/@nx/eslint-plugin/-/eslint-plugin-20.1.2.tgz", - "integrity": "sha512-eLOVzaBPwS71Bb07jhJFZYtkvD33fZb3ObwLDXG5DmfpNpYBGOD4XX0qj6eq/5cfsIck6n8n7RKVm+7ZyqYowg==", + "version": "20.3.0", + "resolved": "https://registry.npmjs.org/@nx/eslint-plugin/-/eslint-plugin-20.3.0.tgz", + "integrity": "sha512-U9DvbR7quyfnWk8ZCJlwKbIInZ5gd4be93X5gii966vM81n3lbWLc7y4avU4r3732X2pnpFGJqBgP8ov8JE/fw==", "dev": true, "license": "MIT", "dependencies": { - "@nx/devkit": "20.1.2", - "@nx/js": "20.1.2", + "@nx/devkit": "20.3.0", + "@nx/js": "20.3.0", "@typescript-eslint/type-utils": "^8.0.0", "@typescript-eslint/utils": "^8.0.0", "chalk": "^4.1.0", @@ -6628,43 +7780,10 @@ } } }, - "node_modules/@nx/eslint-plugin/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@nx/eslint-plugin/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, "node_modules/@nx/eslint-plugin/node_modules/globals": { - "version": "15.11.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-15.11.0.tgz", - "integrity": "sha512-yeyNSjdbyVaWurlwCpcA6XNBrHTMIeDdj0/hnvX/OLJ9ekOXYbLsLinH/MucQyGvNnXhidTdNhTtJaffL2sMfw==", + "version": "15.14.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-15.14.0.tgz", + "integrity": "sha512-OkToC372DtlQeje9/zHIo5CT8lRP/FUgEOKBEhU4e0abL7J7CD24fD9ohiLN5hagG/kWCYj4K5oaxxtj2Z0Dig==", "dev": true, "license": "MIT", "engines": { @@ -6674,54 +7793,31 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@nx/eslint-plugin/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "node_modules/@nx/eslint-plugin/node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } + "license": "0BSD" }, - "node_modules/@nx/eslint-plugin/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/@nx/eslint/node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@nx/eslint/node_modules/typescript": { - "version": "5.4.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz", - "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", - "dev": true, - "license": "Apache-2.0", - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } + "license": "0BSD" }, "node_modules/@nx/jest": { - "version": "20.1.2", - "resolved": "https://registry.npmjs.org/@nx/jest/-/jest-20.1.2.tgz", - "integrity": "sha512-KUHm+NcH4Iq/Pk6GpaRhACEHd8Gt28dbXUAErxo/T9b+a3ir/6uUb4Sr+aXf63uYSePDhUmYbrYxGf/KzS2I8w==", + "version": "20.3.0", + "resolved": "https://registry.npmjs.org/@nx/jest/-/jest-20.3.0.tgz", + "integrity": "sha512-szkmlq8Zgx1J04yq34HfbC1jGrELVXcJTfo76SnFonL9crnbBsLS2mPrvCe431Zm9Xs1PYNvxZLeIbxf6bVXcQ==", "dev": true, "license": "MIT", "dependencies": { "@jest/reporters": "^29.4.1", "@jest/test-result": "^29.4.1", - "@nx/devkit": "20.1.2", - "@nx/js": "20.1.2", + "@nx/devkit": "20.3.0", + "@nx/js": "20.3.0", "@phenomnomnominal/tsquery": "~5.0.1", "chalk": "^4.1.0", "identity-obj-proxy": "3.0.0", @@ -6729,72 +7825,39 @@ "jest-resolve": "^29.4.1", "jest-util": "^29.4.1", "minimatch": "9.0.3", - "resolve.exports": "1.1.0", + "resolve.exports": "2.0.3", "semver": "^7.5.3", "tslib": "^2.3.0", "yargs-parser": "21.1.1" } }, - "node_modules/@nx/jest/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/@nx/jest/node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", "dev": true, - "license": "MIT", + "license": "ISC", "dependencies": { - "color-convert": "^2.0.1" + "brace-expansion": "^2.0.1" }, "engines": { - "node": ">=8" + "node": ">=16 || 14 >=14.17" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@nx/jest/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/@nx/jest/node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@nx/jest/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/@nx/jest/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } + "license": "0BSD" }, "node_modules/@nx/js": { - "version": "20.1.2", - "resolved": "https://registry.npmjs.org/@nx/js/-/js-20.1.2.tgz", - "integrity": "sha512-+ULLy0vuAUyRicQqjMsG3JmgEylZdciJJOuOanwrmmG/+jv64nUJYycZbwPmGsioViHk/0WB1d5SWWfH7cZ+Ww==", + "version": "20.3.0", + "resolved": "https://registry.npmjs.org/@nx/js/-/js-20.3.0.tgz", + "integrity": "sha512-hnO1jzJUvO7+bBsC2uaUElpX9gpMiSA3wdt34V8nnPcIBWtdMrjKX7yRFSwZKimeNauesiX0uorTJf+z28R2bg==", "dev": true, "license": "MIT", "dependencies": { @@ -6805,8 +7868,8 @@ "@babel/preset-env": "^7.23.2", "@babel/preset-typescript": "^7.22.5", "@babel/runtime": "^7.22.6", - "@nx/devkit": "20.1.2", - "@nx/workspace": "20.1.2", + "@nx/devkit": "20.3.0", + "@nx/workspace": "20.3.0", "@zkochan/js-yaml": "0.0.7", "babel-plugin-const-enum": "^1.0.1", "babel-plugin-macros": "^2.8.0", @@ -6815,7 +7878,6 @@ "columnify": "^1.6.0", "detect-port": "^1.5.1", "enquirer": "~2.3.6", - "fast-glob": "3.2.7", "ignore": "^5.0.4", "js-tokens": "^4.0.0", "jsonc-parser": "3.2.0", @@ -6825,6 +7887,7 @@ "ora": "5.3.0", "semver": "^7.5.3", "source-map-support": "0.5.19", + "tinyglobby": "^0.2.10", "ts-node": "10.9.1", "tsconfig-paths": "^4.1.2", "tslib": "^2.3.0" @@ -6838,99 +7901,64 @@ } } }, - "node_modules/@nx/js/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/@nx/js/node_modules/babel-plugin-macros": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-2.8.0.tgz", + "integrity": "sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg==", "dev": true, "license": "MIT", "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "@babel/runtime": "^7.7.2", + "cosmiconfig": "^6.0.0", + "resolve": "^1.12.0" } }, - "node_modules/@nx/js/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/@nx/js/node_modules/cosmiconfig": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", + "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", "dev": true, "license": "MIT", "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@nx/js/node_modules/cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dev": true, - "license": "MIT", - "dependencies": { - "restore-cursor": "^3.1.0" + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.7.2" }, "engines": { "node": ">=8" } }, - "node_modules/@nx/js/node_modules/fast-glob": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.7.tgz", - "integrity": "sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@nx/js/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "node_modules/@nx/js/node_modules/hosted-git-info": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.2.tgz", + "integrity": "sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==", "dev": true, "license": "ISC", "dependencies": { - "is-glob": "^4.0.1" + "lru-cache": "^10.0.1" }, "engines": { - "node": ">= 6" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/@nx/js/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "node_modules/@nx/js/node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", "dev": true, - "license": "MIT", + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, "engines": { - "node": ">=8" + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@nx/js/node_modules/jsonc-parser": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", - "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", - "dev": true, - "license": "MIT" - }, "node_modules/@nx/js/node_modules/npm-package-arg": { "version": "11.0.1", "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-11.0.1.tgz", @@ -6980,37 +8008,6 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/@nx/js/node_modules/restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "dev": true, - "license": "MIT", - "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@nx/js/node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/@nx/js/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/@nx/js/node_modules/source-map-support": { "version": "0.5.19", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", @@ -7022,19 +8019,6 @@ "source-map": "^0.6.0" } }, - "node_modules/@nx/js/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/@nx/js/node_modules/ts-node": { "version": "10.9.1", "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", @@ -7079,18 +8063,275 @@ } } }, + "node_modules/@nx/js/node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "dev": true, + "license": "0BSD" + }, + "node_modules/@nx/js/node_modules/validate-npm-package-name": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-5.0.1.tgz", + "integrity": "sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@nx/module-federation": { + "version": "20.3.0", + "resolved": "https://registry.npmjs.org/@nx/module-federation/-/module-federation-20.3.0.tgz", + "integrity": "sha512-txb3Gs9BkxnCo0Xo0EYqs8dRyScue4p6AcIxHHaTne469JS1qKzr0rGSpkL3j6KH5PAjfDpp8XZHtQg4Yd3TsQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@module-federation/enhanced": "0.7.6", + "@module-federation/node": "2.6.11", + "@module-federation/sdk": "0.7.6", + "@nx/devkit": "20.3.0", + "@nx/js": "20.3.0", + "@nx/web": "20.3.0", + "@rspack/core": "^1.1.5", + "express": "^4.19.2", + "http-proxy-middleware": "^3.0.3", + "picocolors": "^1.1.0", + "tslib": "^2.3.0", + "webpack": "5.88.0" + } + }, + "node_modules/@nx/module-federation/node_modules/@module-federation/enhanced": { + "version": "0.7.6", + "resolved": "https://registry.npmjs.org/@module-federation/enhanced/-/enhanced-0.7.6.tgz", + "integrity": "sha512-ivTVuRKhew/25fiblAW22RybYzyacQsvnQG3y9zSNsYbwcj+0u7THWMmsK8vNKxDUpjxuQulCK07BEycDjoB5Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@module-federation/bridge-react-webpack-plugin": "0.7.6", + "@module-federation/data-prefetch": "0.7.6", + "@module-federation/dts-plugin": "0.7.6", + "@module-federation/managers": "0.7.6", + "@module-federation/manifest": "0.7.6", + "@module-federation/rspack": "0.7.6", + "@module-federation/runtime-tools": "0.7.6", + "@module-federation/sdk": "0.7.6", + "btoa": "^1.2.1", + "upath": "2.0.1" + }, + "peerDependencies": { + "typescript": "^4.9.0 || ^5.0.0", + "vue-tsc": ">=1.0.24", + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + }, + "vue-tsc": { + "optional": true + }, + "webpack": { + "optional": true + } + } + }, + "node_modules/@nx/module-federation/node_modules/@module-federation/node": { + "version": "2.6.11", + "resolved": "https://registry.npmjs.org/@module-federation/node/-/node-2.6.11.tgz", + "integrity": "sha512-ytCNML9Q9dQ7Xi/pTYp4Y+yP/YUiFyyCa8BEKnSt5Ipiqtu4QMxj46EkOIgvLv0nSlK+xOVgAzqtXLI89SfhCg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@module-federation/enhanced": "0.7.6", + "@module-federation/runtime": "0.7.6", + "@module-federation/sdk": "0.7.6", + "@module-federation/utilities": "3.1.29", + "btoa": "1.2.1", + "encoding": "^0.1.13", + "node-fetch": "2.7.0" + }, + "peerDependencies": { + "react": "^16||^17||^18", + "react-dom": "^16||^17||^18", + "webpack": "^5.40.0" + }, + "peerDependenciesMeta": { + "next": { + "optional": true + }, + "react": { + "optional": true + }, + "react-dom": { + "optional": true + } + } + }, + "node_modules/@nx/module-federation/node_modules/@module-federation/utilities": { + "version": "3.1.29", + "resolved": "https://registry.npmjs.org/@module-federation/utilities/-/utilities-3.1.29.tgz", + "integrity": "sha512-yhHOgm3mkZBvQzT4HoBJAVhGIa7Nfhpd4Zdc11g0vYEMapU6lfN5HHipUFdj6bLUzHhDyrY6CaF3syqTuabAfQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@module-federation/sdk": "0.7.6" + }, + "peerDependencies": { + "react": "^16 || ^17 || ^18", + "react-dom": "^16 || ^17 || ^18", + "webpack": "^5.40.0" + }, + "peerDependenciesMeta": { + "next": { + "optional": true + }, + "react": { + "optional": true + }, + "react-dom": { + "optional": true + } + } + }, + "node_modules/@nx/module-federation/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/@nx/module-federation/node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/@nx/module-federation/node_modules/http-proxy-middleware": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-3.0.3.tgz", + "integrity": "sha512-usY0HG5nyDUwtqpiZdETNbmKtw3QQ1jwYFZ9wi5iHzX2BcILwQKtYDJPo7XHTsu5Z0B2Hj3W9NNnbd+AjFWjqg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/http-proxy": "^1.17.15", + "debug": "^4.3.6", + "http-proxy": "^1.18.1", + "is-glob": "^4.0.3", + "is-plain-object": "^5.0.0", + "micromatch": "^4.0.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@nx/module-federation/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@nx/module-federation/node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/@nx/module-federation/node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "dev": true, + "license": "0BSD" + }, + "node_modules/@nx/module-federation/node_modules/webpack": { + "version": "5.88.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.88.0.tgz", + "integrity": "sha512-O3jDhG5e44qIBSi/P6KpcCcH7HD+nYIHVBhdWFxcLOcIGN8zGo5nqF3BjyNCxIh4p1vFdNnreZv2h2KkoAw3lw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/eslint-scope": "^3.7.3", + "@types/estree": "^1.0.0", + "@webassemblyjs/ast": "^1.11.5", + "@webassemblyjs/wasm-edit": "^1.11.5", + "@webassemblyjs/wasm-parser": "^1.11.5", + "acorn": "^8.7.1", + "acorn-import-assertions": "^1.9.0", + "browserslist": "^4.14.5", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.15.0", + "es-module-lexer": "^1.2.1", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.9", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.2.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.3.7", + "watchpack": "^2.4.0", + "webpack-sources": "^3.2.3" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, "node_modules/@nx/nest": { - "version": "20.1.2", - "resolved": "https://registry.npmjs.org/@nx/nest/-/nest-20.1.2.tgz", - "integrity": "sha512-pNQTI30KMnvCh39aBIX7LFY1hgolN4xH7K2Oc/49Hm87cbySg18nYHnTnotz0Yyy3CR5Q6/smL0uZXfBPJ3WTw==", + "version": "20.3.0", + "resolved": "https://registry.npmjs.org/@nx/nest/-/nest-20.3.0.tgz", + "integrity": "sha512-z7yjlS0Z0TNxEUU+pVkIRCFkrtRnvKjmOwIzj4DfHR8/SoF+0x06IPo+ZFHFOLe/DDjZuNOqjqzOQmQY1VhINw==", "dev": true, "license": "MIT", "dependencies": { "@nestjs/schematics": "^9.1.0", - "@nx/devkit": "20.1.2", - "@nx/eslint": "20.1.2", - "@nx/js": "20.1.2", - "@nx/node": "20.1.2", + "@nx/devkit": "20.3.0", + "@nx/eslint": "20.3.0", + "@nx/js": "20.3.0", + "@nx/node": "20.3.0", "tslib": "^2.3.0" } }, @@ -7173,42 +8414,76 @@ "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/@nx/nest/node_modules/ajv-formats": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", - "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "node_modules/@nx/nest/node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", "dev": true, "license": "MIT", + "optional": true, + "peer": true, "dependencies": { - "ajv": "^8.0.0" - }, - "peerDependencies": { - "ajv": "^8.0.0" - }, - "peerDependenciesMeta": { - "ajv": { - "optional": true - } - } - }, - "node_modules/@nx/nest/node_modules/jsonc-parser": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", - "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", - "dev": true, - "license": "MIT" - }, - "node_modules/@nx/nest/node_modules/magic-string": { - "version": "0.30.0", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.0.tgz", - "integrity": "sha512-LA+31JYDJLs82r2ScLrlz1GjSgu66ZV518eyWT+S8VhyQn/JL0u9MeBOvQMGYiPk1DBiSN9DDMOcXvigJZaViQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.4.13" + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" }, "engines": { - "node": ">=12" + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/@nx/nest/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "optional": true, + "peer": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@nx/nest/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/@nx/nest/node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" } }, "node_modules/@nx/nest/node_modules/rxjs": { @@ -7221,24 +8496,48 @@ "tslib": "^2.1.0" } }, + "node_modules/@nx/nest/node_modules/source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nx/nest/node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "dev": true, + "license": "0BSD" + }, "node_modules/@nx/node": { - "version": "20.1.2", - "resolved": "https://registry.npmjs.org/@nx/node/-/node-20.1.2.tgz", - "integrity": "sha512-PGPSXkzTJc97GnsRNSBcekH5L5BM/SCSWA8lH/bBV/N8HBFUWppsv0Nj+UUcGGH3O3kjEMrhtbG9iJijX7+9kw==", + "version": "20.3.0", + "resolved": "https://registry.npmjs.org/@nx/node/-/node-20.3.0.tgz", + "integrity": "sha512-6tHufkw92acIdcdLGARUJOTpjx7x4+Bu+rmM8rnugkZ4aGj62/IdI32rNBjSltYKcSo38HJyCSzmp0REdXsrbg==", "dev": true, "license": "MIT", "dependencies": { - "@nx/devkit": "20.1.2", - "@nx/eslint": "20.1.2", - "@nx/jest": "20.1.2", - "@nx/js": "20.1.2", + "@nx/devkit": "20.3.0", + "@nx/eslint": "20.3.0", + "@nx/jest": "20.3.0", + "@nx/js": "20.3.0", "tslib": "^2.3.0" } }, + "node_modules/@nx/node/node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "dev": true, + "license": "0BSD" + }, "node_modules/@nx/nx-darwin-arm64": { - "version": "20.1.2", - "resolved": "https://registry.npmjs.org/@nx/nx-darwin-arm64/-/nx-darwin-arm64-20.1.2.tgz", - "integrity": "sha512-PJ91TQhd28kitDBubKUOXMYvrtSDrG+rr8MsIe9cHo1CvU9smcGVBwuHBxniq0DXsyOX/5GL6ngq7hjN2nQ3XQ==", + "version": "20.3.0", + "resolved": "https://registry.npmjs.org/@nx/nx-darwin-arm64/-/nx-darwin-arm64-20.3.0.tgz", + "integrity": "sha512-9PqSe1Sh7qNqA4GL0cZH0t3S0EZzb2Xn14XY9au7yf0+eoxyag1oETjjULrxLeUmSoXW2hDxzNtoqKFE9zF07Q==", "cpu": [ "arm64" ], @@ -7252,202 +8551,61 @@ "node": ">= 10" } }, - "node_modules/@nx/nx-darwin-x64": { - "version": "20.1.2", - "resolved": "https://registry.npmjs.org/@nx/nx-darwin-x64/-/nx-darwin-x64-20.1.2.tgz", - "integrity": "sha512-1fopau7nxIhTF26vDTIzMxl15AtW4FvUSdy+r1mNRKrKyjjpqnlu00SQBW7JzGV0agDD1B/61yYei5Q2aMOt7Q==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@nx/nx-freebsd-x64": { - "version": "20.1.2", - "resolved": "https://registry.npmjs.org/@nx/nx-freebsd-x64/-/nx-freebsd-x64-20.1.2.tgz", - "integrity": "sha512-55YgIp3v4zz7xMzJO93dtglbOTER2XdS6jrCt8GbKaWGFl5drRrBoNGONtiGNU7C3hLx1VsorbynCkJT18PjKQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@nx/nx-linux-arm-gnueabihf": { - "version": "20.1.2", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm-gnueabihf/-/nx-linux-arm-gnueabihf-20.1.2.tgz", - "integrity": "sha512-sMhNA8uAV43UYVEXEa8TZ8Fjpom4CGq1umTptEGOF4TTtdNn2AUBreg+0bVODM8MMSzRWGI1VbkZzHESnAPwqw==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@nx/nx-linux-arm64-gnu": { - "version": "20.1.2", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm64-gnu/-/nx-linux-arm64-gnu-20.1.2.tgz", - "integrity": "sha512-bsevarNHglaYLmIvPNQOdHrBnBgaW3EOUM0flwaXdWuZbL1bWx8GoVwHp9yJpZOAOfIF/Nhq5iTpaZB2nYFrAA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@nx/nx-linux-arm64-musl": { - "version": "20.1.2", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm64-musl/-/nx-linux-arm64-musl-20.1.2.tgz", - "integrity": "sha512-GFZTptkhZPL/iZ3tYDmspIcPEaXyy/L/o59gyp33GoFAAyDhiXIF7J1Lz81Xn8VKrX6TvEY8/9qSh86pb7qzDQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@nx/nx-linux-x64-gnu": { - "version": "20.1.2", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-x64-gnu/-/nx-linux-x64-gnu-20.1.2.tgz", - "integrity": "sha512-yqEW/iglKT4d9lgfnwSNhmDzPxCkRhtdmZqOYpGDM0eZFwYwJF+WRGjW8xIqMj8PA1yrGItzXZOmyFjJqHAF2w==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@nx/nx-linux-x64-musl": { - "version": "20.1.2", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-x64-musl/-/nx-linux-x64-musl-20.1.2.tgz", - "integrity": "sha512-SP6PpWT4cQVrC4WJQdpfADrYJQzkbhgmcGleWbpr7II1HJgOsAcvoDwQGpPQX+3Wo+VBiNecvUAOzacMQkXPGw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@nx/nx-win32-arm64-msvc": { - "version": "20.1.2", - "resolved": "https://registry.npmjs.org/@nx/nx-win32-arm64-msvc/-/nx-win32-arm64-msvc-20.1.2.tgz", - "integrity": "sha512-JZQx9gr39LY3D7uleiXlpxUsavuOrOQNBocwKHkAMnykaT/e1VCxTnm/hk+2b4foWwfURTqoRiFEba70iiCdYg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@nx/nx-win32-x64-msvc": { - "version": "20.1.2", - "resolved": "https://registry.npmjs.org/@nx/nx-win32-x64-msvc/-/nx-win32-x64-msvc-20.1.2.tgz", - "integrity": "sha512-6GmT8iswDiCvJaCtW9DpWeAQmLS/kfAuRLYBisfzlONuLPaDdjhgVIxZBqqUSFfclwcVz+NhIOGvdr0aGFZCtQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } - }, "node_modules/@nx/storybook": { - "version": "20.1.2", - "resolved": "https://registry.npmjs.org/@nx/storybook/-/storybook-20.1.2.tgz", - "integrity": "sha512-M3ymcFuMYgZ2GT6hPjvVbtSCyfVPGmDy7DY1oHOYBkLqywkjzTcpjmN6Kqm5ZQUZfKYFWgIkNs2J5VL9Knn3cg==", + "version": "20.3.0", + "resolved": "https://registry.npmjs.org/@nx/storybook/-/storybook-20.3.0.tgz", + "integrity": "sha512-H1ngnqg9JIwh1UB/PfPMHZS0L6YQbCPPL7gXr1NUcjbkXX2D+sZiBvqFwjIi0eglSM+1US7fy6/n2j3pwfQVQA==", "dev": true, "license": "MIT", "dependencies": { - "@nx/cypress": "20.1.2", - "@nx/devkit": "20.1.2", - "@nx/eslint": "20.1.2", - "@nx/js": "20.1.2", + "@nx/cypress": "20.3.0", + "@nx/devkit": "20.3.0", + "@nx/eslint": "20.3.0", + "@nx/js": "20.3.0", "@phenomnomnominal/tsquery": "~5.0.1", "semver": "^7.5.3", "tslib": "^2.3.0" } }, + "node_modules/@nx/storybook/node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "dev": true, + "license": "0BSD" + }, "node_modules/@nx/web": { - "version": "20.1.2", - "resolved": "https://registry.npmjs.org/@nx/web/-/web-20.1.2.tgz", - "integrity": "sha512-CRMAJXwj375J+/GI9hRfOt2SJ0DQ5prCzOcmXJvQIfHy3CT5chrkSj2qc7IgKkkMiqZojr4VCTUHmJ2WAR3sCw==", + "version": "20.3.0", + "resolved": "https://registry.npmjs.org/@nx/web/-/web-20.3.0.tgz", + "integrity": "sha512-MKmXI9uAX+fdLY0GfF/3rH4EXrEjyLI6FSt3kUuF1/UzAUUUqww6owoM+9EaC1mRcCYDd0nwN7piblVz/wIVLw==", "dev": true, "license": "MIT", "dependencies": { - "@nx/devkit": "20.1.2", - "@nx/js": "20.1.2", + "@nx/devkit": "20.3.0", + "@nx/js": "20.3.0", "detect-port": "^1.5.1", "http-server": "^14.1.0", "picocolors": "^1.1.0", "tslib": "^2.3.0" } }, + "node_modules/@nx/web/node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "dev": true, + "license": "0BSD" + }, "node_modules/@nx/webpack": { - "version": "20.1.2", - "resolved": "https://registry.npmjs.org/@nx/webpack/-/webpack-20.1.2.tgz", - "integrity": "sha512-H67DkdpaGnUwYbz4u31+2/TSRmkvBQHX742FNKJAc1/D0uzHH6GI3am0h0QF9wrJyc/fXGVNfRZLEh9ScU70Jw==", + "version": "20.3.0", + "resolved": "https://registry.npmjs.org/@nx/webpack/-/webpack-20.3.0.tgz", + "integrity": "sha512-KW04Ge8cQtv5RmezWV6bsIptLwXNhq5d6Ew3GigL5h6BKYPEmyMes5yMSUsNqNGC1SPI5nNPwzRkTxW18b+jnA==", "dev": true, "license": "MIT", "dependencies": { "@babel/core": "^7.23.2", - "@module-federation/enhanced": "^0.6.0", - "@module-federation/sdk": "^0.6.0", - "@nx/devkit": "20.1.2", - "@nx/js": "20.1.2", + "@nx/devkit": "20.3.0", + "@nx/js": "20.3.0", "@phenomnomnominal/tsquery": "~5.0.1", "ajv": "^8.12.0", "autoprefixer": "^10.4.9", @@ -7456,9 +8614,7 @@ "copy-webpack-plugin": "^10.2.4", "css-loader": "^6.4.0", "css-minimizer-webpack-plugin": "^5.0.0", - "express": "^4.19.2", "fork-ts-checker-webpack-plugin": "7.2.13", - "http-proxy-middleware": "^3.0.3", "less": "4.1.3", "less-loader": "11.1.0", "license-webpack-plugin": "^4.0.2", @@ -7486,312 +8642,17 @@ "webpack-subresource-integrity": "^5.1.0" } }, - "node_modules/@nx/webpack/node_modules/array-union": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-3.0.1.tgz", - "integrity": "sha512-1OvF9IbWwaeiM9VhzYXVQacMibxpXOMYVNIvMtKRyX9SImBXpKcFr8XvFDeEslCyuH/t6KRt7HEO94AlP8Iatw==", + "node_modules/@nx/webpack/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@nx/webpack/node_modules/big.js": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", - "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": "*" - } - }, - "node_modules/@nx/webpack/node_modules/body-parser": { - "version": "1.20.3", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz", - "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==", - "dev": true, - "license": "MIT", + "license": "ISC", "dependencies": { - "bytes": "3.1.2", - "content-type": "~1.0.5", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.13.0", - "raw-body": "2.5.2", - "type-is": "~1.6.18", - "unpipe": "1.0.0" + "is-glob": "^4.0.1" }, "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/@nx/webpack/node_modules/body-parser/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/@nx/webpack/node_modules/body-parser/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true, - "license": "MIT" - }, - "node_modules/@nx/webpack/node_modules/cookie": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz", - "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/@nx/webpack/node_modules/copy-webpack-plugin": { - "version": "10.2.4", - "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-10.2.4.tgz", - "integrity": "sha512-xFVltahqlsRcyyJqQbDY6EYTtyQZF9rf+JPjwHObLdPFMEISqkFkr7mFoVOC6BfYS/dNThyoQKvziugm+OnwBg==", - "dev": true, - "license": "MIT", - "dependencies": { - "fast-glob": "^3.2.7", - "glob-parent": "^6.0.1", - "globby": "^12.0.2", - "normalize-path": "^3.0.0", - "schema-utils": "^4.0.0", - "serialize-javascript": "^6.0.0" - }, - "engines": { - "node": ">= 12.20.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.1.0" - } - }, - "node_modules/@nx/webpack/node_modules/cosmiconfig": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", - "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.2.1", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.10.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@nx/webpack/node_modules/css-loader": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.11.0.tgz", - "integrity": "sha512-CTJ+AEQJjq5NzLga5pE39qdiSV56F8ywCIsqNIRF0r7BDgWsN25aazToqAFg7ZrtA/U016xudB3ffgweORxX7g==", - "dev": true, - "license": "MIT", - "dependencies": { - "icss-utils": "^5.1.0", - "postcss": "^8.4.33", - "postcss-modules-extract-imports": "^3.1.0", - "postcss-modules-local-by-default": "^4.0.5", - "postcss-modules-scope": "^3.2.0", - "postcss-modules-values": "^4.0.0", - "postcss-value-parser": "^4.2.0", - "semver": "^7.5.4" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "@rspack/core": "0.x || 1.x", - "webpack": "^5.0.0" - }, - "peerDependenciesMeta": { - "@rspack/core": { - "optional": true - }, - "webpack": { - "optional": true - } - } - }, - "node_modules/@nx/webpack/node_modules/encodeurl": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", - "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/@nx/webpack/node_modules/express": { - "version": "4.21.1", - "resolved": "https://registry.npmjs.org/express/-/express-4.21.1.tgz", - "integrity": "sha512-YSFlK1Ee0/GC8QaO91tHcDxJiE/X4FbpAyQWkxAvG6AXCuR65YzK8ua6D9hvi/TzUfZMpc+BwuM1IPw8fmQBiQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.20.3", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.7.1", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "2.0.0", - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "1.3.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "merge-descriptors": "1.0.3", - "methods": "~1.1.2", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.10", - "proxy-addr": "~2.0.7", - "qs": "6.13.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.19.0", - "serve-static": "1.16.2", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/@nx/webpack/node_modules/express/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/@nx/webpack/node_modules/express/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true, - "license": "MIT" - }, - "node_modules/@nx/webpack/node_modules/finalhandler": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz", - "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "2.6.9", - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "statuses": "2.0.1", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/@nx/webpack/node_modules/finalhandler/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/@nx/webpack/node_modules/finalhandler/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true, - "license": "MIT" - }, - "node_modules/@nx/webpack/node_modules/globby": { - "version": "12.2.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-12.2.0.tgz", - "integrity": "sha512-wiSuFQLZ+urS9x2gGPl1H5drc5twabmm4m2gTR27XDFyjUHJUNsS8o/2aKyIF6IoBaR630atdher0XJ5g6OMmA==", - "dev": true, - "license": "MIT", - "dependencies": { - "array-union": "^3.0.1", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.7", - "ignore": "^5.1.9", - "merge2": "^1.4.1", - "slash": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@nx/webpack/node_modules/http-proxy-middleware": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-3.0.3.tgz", - "integrity": "sha512-usY0HG5nyDUwtqpiZdETNbmKtw3QQ1jwYFZ9wi5iHzX2BcILwQKtYDJPo7XHTsu5Z0B2Hj3W9NNnbd+AjFWjqg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/http-proxy": "^1.17.15", - "debug": "^4.3.6", - "http-proxy": "^1.18.1", - "is-glob": "^4.0.3", - "is-plain-object": "^5.0.0", - "micromatch": "^4.0.8" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@nx/webpack/node_modules/is-plain-object": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", - "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" + "node": ">= 6" } }, "node_modules/@nx/webpack/node_modules/less": { @@ -7842,84 +8703,6 @@ "webpack": "^5.0.0" } }, - "node_modules/@nx/webpack/node_modules/loader-utils": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", - "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", - "dev": true, - "license": "MIT", - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - }, - "engines": { - "node": ">=8.9.0" - } - }, - "node_modules/@nx/webpack/node_modules/make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "pify": "^4.0.1", - "semver": "^5.6.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@nx/webpack/node_modules/make-dir/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "dev": true, - "license": "ISC", - "optional": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/@nx/webpack/node_modules/merge-descriptors": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", - "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@nx/webpack/node_modules/mini-css-extract-plugin": { - "version": "2.4.7", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.4.7.tgz", - "integrity": "sha512-euWmddf0sk9Nv1O0gfeeUAvAkoSlWncNLF77C0TP2+WoPvy8mAHKOzMajcCz2dzvyt3CNgxb1obIEVFIRxaipg==", - "dev": true, - "license": "MIT", - "dependencies": { - "schema-utils": "^4.0.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.0.0" - } - }, - "node_modules/@nx/webpack/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true, - "license": "MIT" - }, "node_modules/@nx/webpack/node_modules/parse5": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz", @@ -7927,61 +8710,30 @@ "dev": true, "license": "MIT" }, - "node_modules/@nx/webpack/node_modules/path-to-regexp": { - "version": "0.1.10", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.10.tgz", - "integrity": "sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==", - "dev": true, - "license": "MIT" - }, - "node_modules/@nx/webpack/node_modules/pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "node_modules/@nx/webpack/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, "license": "MIT", - "optional": true, "engines": { - "node": ">=6" + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/@nx/webpack/node_modules/postcss-loader": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-6.2.1.tgz", - "integrity": "sha512-WbbYpmAaKcux/P66bZ40bpWsBucjx/TTgVVzRZ9yUO8yQfVBlameJ0ZGVaPfH64hNSBh63a+ICP5nqOpBA0w+Q==", + "node_modules/@nx/webpack/node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", "dev": true, "license": "MIT", "dependencies": { - "cosmiconfig": "^7.0.0", - "klona": "^2.0.5", - "semver": "^7.3.5" + "picomatch": "^2.2.1" }, "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "postcss": "^7.0.0 || ^8.0.1", - "webpack": "^5.0.0" - } - }, - "node_modules/@nx/webpack/node_modules/qs": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", - "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "side-channel": "^1.0.6" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=8.10.0" } }, "node_modules/@nx/webpack/node_modules/rxjs": { @@ -7994,6 +8746,27 @@ "tslib": "^2.1.0" } }, + "node_modules/@nx/webpack/node_modules/sass": { + "version": "1.83.0", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.83.0.tgz", + "integrity": "sha512-qsSxlayzoOjdvXMVLkzF84DJFc2HZEL/rFyGIKbbilYtAvlCxyuzUeff9LawTn4btVnLKg75Z8MMr1lxU1lfGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "chokidar": "^4.0.0", + "immutable": "^5.0.2", + "source-map-js": ">=0.6.2 <2.0.0" + }, + "bin": { + "sass": "sass.js" + }, + "engines": { + "node": ">=14.0.0" + }, + "optionalDependencies": { + "@parcel/watcher": "^2.4.1" + } + }, "node_modules/@nx/webpack/node_modules/sass-loader": { "version": "12.6.0", "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-12.6.0.tgz", @@ -8033,256 +8806,274 @@ } } }, - "node_modules/@nx/webpack/node_modules/send": { - "version": "0.19.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", - "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "2.4.1", - "range-parser": "~1.2.1", - "statuses": "2.0.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/@nx/webpack/node_modules/send/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/@nx/webpack/node_modules/send/node_modules/debug/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true, - "license": "MIT" - }, - "node_modules/@nx/webpack/node_modules/send/node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/@nx/webpack/node_modules/serve-static": { - "version": "1.16.2", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", - "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", - "dev": true, - "license": "MIT", - "dependencies": { - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.19.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/@nx/webpack/node_modules/slash": { + "node_modules/@nx/webpack/node_modules/tsconfig-paths-webpack-plugin": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", - "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "resolved": "https://registry.npmjs.org/tsconfig-paths-webpack-plugin/-/tsconfig-paths-webpack-plugin-4.0.0.tgz", + "integrity": "sha512-fw/7265mIWukrSHd0i+wSwx64kYUSAKPfxRDksjKIYTxSAp9W9/xcZVBF4Kl0eqQd5eBpAQ/oQrc5RyM/0c1GQ==", "dev": true, "license": "MIT", + "dependencies": { + "chalk": "^4.1.0", + "enhanced-resolve": "^5.7.0", + "tsconfig-paths": "^4.0.0" + }, "engines": { - "node": ">=12" + "node": ">=10.13.0" + } + }, + "node_modules/@nx/webpack/node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "dev": true, + "license": "0BSD" + }, + "node_modules/@nx/webpack/node_modules/webpack-dev-server": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-5.2.0.tgz", + "integrity": "sha512-90SqqYXA2SK36KcT6o1bvwvZfJFcmoamqeJY7+boioffX9g9C0wjjJRGUrQIuh43pb0ttX7+ssavmj/WN2RHtA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/bonjour": "^3.5.13", + "@types/connect-history-api-fallback": "^1.5.4", + "@types/express": "^4.17.21", + "@types/serve-index": "^1.9.4", + "@types/serve-static": "^1.15.5", + "@types/sockjs": "^0.3.36", + "@types/ws": "^8.5.10", + "ansi-html-community": "^0.0.8", + "bonjour-service": "^1.2.1", + "chokidar": "^3.6.0", + "colorette": "^2.0.10", + "compression": "^1.7.4", + "connect-history-api-fallback": "^2.0.0", + "express": "^4.21.2", + "graceful-fs": "^4.2.6", + "http-proxy-middleware": "^2.0.7", + "ipaddr.js": "^2.1.0", + "launch-editor": "^2.6.1", + "open": "^10.0.3", + "p-retry": "^6.2.0", + "schema-utils": "^4.2.0", + "selfsigned": "^2.4.1", + "serve-index": "^1.9.1", + "sockjs": "^0.3.24", + "spdy": "^4.0.2", + "webpack-dev-middleware": "^7.4.2", + "ws": "^8.18.0" + }, + "bin": { + "webpack-dev-server": "bin/webpack-dev-server.js" + }, + "engines": { + "node": ">= 18.12.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "webpack": { + "optional": true + }, + "webpack-cli": { + "optional": true + } } }, - "node_modules/@nx/webpack/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "node_modules/@nx/webpack/node_modules/webpack-dev-server/node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", "dev": true, - "license": "BSD-3-Clause", - "optional": true, + "license": "MIT", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, "engines": { - "node": ">=0.10.0" + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" } }, "node_modules/@nx/workspace": { - "version": "20.1.2", - "resolved": "https://registry.npmjs.org/@nx/workspace/-/workspace-20.1.2.tgz", - "integrity": "sha512-YZiBwHU+NsJvJ7e7AZnyk5cP523AIHmHFf28nEpBY3zhxLghx/s9C99Swbw+uUyWlUf7JtTO9jB6OsEfMc38Uw==", + "version": "20.3.0", + "resolved": "https://registry.npmjs.org/@nx/workspace/-/workspace-20.3.0.tgz", + "integrity": "sha512-z8NSAo5SiLEMPuwasDvLdCCtaTGdINh1cSZMCom8HeLbT8F7risbR0IlHVqVrKj9FPKqrAIsH+4knVb4dHHCnQ==", "dev": true, "license": "MIT", "dependencies": { - "@nx/devkit": "20.1.2", + "@nx/devkit": "20.3.0", "chalk": "^4.1.0", "enquirer": "~2.3.6", - "nx": "20.1.2", + "nx": "20.3.0", "tslib": "^2.3.0", "yargs-parser": "21.1.1" } }, - "node_modules/@nx/workspace/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/@nx/workspace/node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", "dev": true, + "license": "0BSD" + }, + "node_modules/@parcel/watcher": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.0.tgz", + "integrity": "sha512-i0GV1yJnm2n3Yq1qw6QrUrd/LI9bE8WEBOTtOkpCXHHdyN3TAGgqAK/DAT05z4fq2x04cARXt2pDmjWjL92iTQ==", + "hasInstallScript": true, "license": "MIT", + "optional": true, "dependencies": { - "color-convert": "^2.0.1" + "detect-libc": "^1.0.3", + "is-glob": "^4.0.3", + "micromatch": "^4.0.5", + "node-addon-api": "^7.0.0" }, "engines": { - "node": ">=8" + "node": ">= 10.0.0" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "@parcel/watcher-android-arm64": "2.5.0", + "@parcel/watcher-darwin-arm64": "2.5.0", + "@parcel/watcher-darwin-x64": "2.5.0", + "@parcel/watcher-freebsd-x64": "2.5.0", + "@parcel/watcher-linux-arm-glibc": "2.5.0", + "@parcel/watcher-linux-arm-musl": "2.5.0", + "@parcel/watcher-linux-arm64-glibc": "2.5.0", + "@parcel/watcher-linux-arm64-musl": "2.5.0", + "@parcel/watcher-linux-x64-glibc": "2.5.0", + "@parcel/watcher-linux-x64-musl": "2.5.0", + "@parcel/watcher-win32-arm64": "2.5.0", + "@parcel/watcher-win32-ia32": "2.5.0", + "@parcel/watcher-win32-x64": "2.5.0" } }, - "node_modules/@nx/workspace/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, + "node_modules/@parcel/watcher-darwin-arm64": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.5.0.tgz", + "integrity": "sha512-hyZ3TANnzGfLpRA2s/4U1kbw2ZI4qGxaRJbBH2DCSREFfubMswheh8TeiC1sGZ3z2jUf3s37P0BBlrD3sjVTUw==", + "cpu": [ + "arm64" + ], "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": ">=10" + "node": ">= 10.0.0" }, "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@nx/workspace/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/@nx/workspace/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" + "type": "opencollective", + "url": "https://opencollective.com/parcel" } }, "node_modules/@peculiar/asn1-android": { - "version": "2.3.13", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-android/-/asn1-android-2.3.13.tgz", - "integrity": "sha512-0VTNazDGKrLS6a3BwTDZanqq6DR/I3SbvmDMuS8Be+OYpvM6x1SRDh9AGDsHVnaCOIztOspCPc6N1m+iUv1Xxw==", + "version": "2.3.15", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-android/-/asn1-android-2.3.15.tgz", + "integrity": "sha512-8U2TIj59cRlSXTX2d0mzUKP7whfWGFMzTeC3qPgAbccXFrPNZLaDhpNEdG5U2QZ/tBv/IHlCJ8s+KYXpJeop6w==", "license": "MIT", "dependencies": { - "@peculiar/asn1-schema": "^2.3.13", + "@peculiar/asn1-schema": "^2.3.15", "asn1js": "^3.0.5", - "tslib": "^2.6.2" + "tslib": "^2.8.1" } }, "node_modules/@peculiar/asn1-android/node_modules/tslib": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.0.tgz", - "integrity": "sha512-jWVzBLplnCmoaTr13V9dYbiQ99wvZRd0vNWaDRg+aVYRcjDF3nDksxFDE/+fkXnKhpnUUkmx5pK/v8mCtLVqZA==", + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", "license": "0BSD" }, "node_modules/@peculiar/asn1-ecc": { - "version": "2.3.14", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-ecc/-/asn1-ecc-2.3.14.tgz", - "integrity": "sha512-zWPyI7QZto6rnLv6zPniTqbGaLh6zBpJyI46r1yS/bVHJXT2amdMHCRRnbV5yst2H8+ppXG6uXu/M6lKakiQ8w==", + "version": "2.3.15", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-ecc/-/asn1-ecc-2.3.15.tgz", + "integrity": "sha512-/HtR91dvgog7z/WhCVdxZJ/jitJuIu8iTqiyWVgRE9Ac5imt2sT/E4obqIVGKQw7PIy+X6i8lVBoT6wC73XUgA==", "license": "MIT", "dependencies": { - "@peculiar/asn1-schema": "^2.3.13", - "@peculiar/asn1-x509": "^2.3.13", + "@peculiar/asn1-schema": "^2.3.15", + "@peculiar/asn1-x509": "^2.3.15", "asn1js": "^3.0.5", - "tslib": "^2.6.2" + "tslib": "^2.8.1" } }, "node_modules/@peculiar/asn1-ecc/node_modules/tslib": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.0.tgz", - "integrity": "sha512-jWVzBLplnCmoaTr13V9dYbiQ99wvZRd0vNWaDRg+aVYRcjDF3nDksxFDE/+fkXnKhpnUUkmx5pK/v8mCtLVqZA==", + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", "license": "0BSD" }, "node_modules/@peculiar/asn1-rsa": { - "version": "2.3.13", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-rsa/-/asn1-rsa-2.3.13.tgz", - "integrity": "sha512-wBNQqCyRtmqvXkGkL4DR3WxZhHy8fDiYtOjTeCd7SFE5F6GBeafw3EJ94PX/V0OJJrjQ40SkRY2IZu3ZSyBqcg==", + "version": "2.3.15", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-rsa/-/asn1-rsa-2.3.15.tgz", + "integrity": "sha512-p6hsanvPhexRtYSOHihLvUUgrJ8y0FtOM97N5UEpC+VifFYyZa0iZ5cXjTkZoDwxJ/TTJ1IJo3HVTB2JJTpXvg==", "license": "MIT", "dependencies": { - "@peculiar/asn1-schema": "^2.3.13", - "@peculiar/asn1-x509": "^2.3.13", + "@peculiar/asn1-schema": "^2.3.15", + "@peculiar/asn1-x509": "^2.3.15", "asn1js": "^3.0.5", - "tslib": "^2.6.2" + "tslib": "^2.8.1" } }, "node_modules/@peculiar/asn1-rsa/node_modules/tslib": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.0.tgz", - "integrity": "sha512-jWVzBLplnCmoaTr13V9dYbiQ99wvZRd0vNWaDRg+aVYRcjDF3nDksxFDE/+fkXnKhpnUUkmx5pK/v8mCtLVqZA==", + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", "license": "0BSD" }, "node_modules/@peculiar/asn1-schema": { - "version": "2.3.13", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-schema/-/asn1-schema-2.3.13.tgz", - "integrity": "sha512-3Xq3a01WkHRZL8X04Zsfg//mGaA21xlL4tlVn4v2xGT0JStiztATRkMwa5b+f/HXmY2smsiLXYK46Gwgzvfg3g==", + "version": "2.3.15", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-schema/-/asn1-schema-2.3.15.tgz", + "integrity": "sha512-QPeD8UA8axQREpgR5UTAfu2mqQmm97oUqahDtNdBcfj3qAnoXzFdQW+aNf/tD2WVXF8Fhmftxoj0eMIT++gX2w==", "license": "MIT", "dependencies": { "asn1js": "^3.0.5", - "pvtsutils": "^1.3.5", - "tslib": "^2.6.2" + "pvtsutils": "^1.3.6", + "tslib": "^2.8.1" } }, "node_modules/@peculiar/asn1-schema/node_modules/tslib": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.0.tgz", - "integrity": "sha512-jWVzBLplnCmoaTr13V9dYbiQ99wvZRd0vNWaDRg+aVYRcjDF3nDksxFDE/+fkXnKhpnUUkmx5pK/v8mCtLVqZA==", + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", "license": "0BSD" }, "node_modules/@peculiar/asn1-x509": { - "version": "2.3.13", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-x509/-/asn1-x509-2.3.13.tgz", - "integrity": "sha512-PfeLQl2skXmxX2/AFFCVaWU8U6FKW1Db43mgBhShCOFS1bVxqtvusq1hVjfuEcuSQGedrLdCSvTgabluwN/M9A==", + "version": "2.3.15", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-x509/-/asn1-x509-2.3.15.tgz", + "integrity": "sha512-0dK5xqTqSLaxv1FHXIcd4Q/BZNuopg+u1l23hT9rOmQ1g4dNtw0g/RnEi+TboB0gOwGtrWn269v27cMgchFIIg==", "license": "MIT", "dependencies": { - "@peculiar/asn1-schema": "^2.3.13", + "@peculiar/asn1-schema": "^2.3.15", "asn1js": "^3.0.5", - "ipaddr.js": "^2.1.0", - "pvtsutils": "^1.3.5", - "tslib": "^2.6.2" + "pvtsutils": "^1.3.6", + "tslib": "^2.8.1" } }, "node_modules/@peculiar/asn1-x509/node_modules/tslib": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.0.tgz", - "integrity": "sha512-jWVzBLplnCmoaTr13V9dYbiQ99wvZRd0vNWaDRg+aVYRcjDF3nDksxFDE/+fkXnKhpnUUkmx5pK/v8mCtLVqZA==", + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", "license": "0BSD" }, "node_modules/@peculiar/json-schema": { @@ -8316,9 +9107,9 @@ } }, "node_modules/@peculiar/webcrypto/node_modules/tslib": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.0.tgz", - "integrity": "sha512-jWVzBLplnCmoaTr13V9dYbiQ99wvZRd0vNWaDRg+aVYRcjDF3nDksxFDE/+fkXnKhpnUUkmx5pK/v8mCtLVqZA==", + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", "license": "0BSD", "peer": true }, @@ -8339,6 +9130,7 @@ "version": "0.11.0", "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "dev": true, "license": "MIT", "optional": true, "engines": { @@ -8479,36 +9271,10 @@ "@redis/client": "^1.0.0" } }, - "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.22.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.22.4.tgz", - "integrity": "sha512-Fxamp4aEZnfPOcGA8KSNEohV8hX7zVHOemC8jVBoBUHu5zpJK/Eu3uJwt6BMgy9fkvzxDaurgj96F/NiLukF2w==", - "cpu": [ - "arm" - ], - "license": "MIT", - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-android-arm64": { - "version": "4.22.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.22.4.tgz", - "integrity": "sha512-VXoK5UMrgECLYaMuGuVTOx5kcuap1Jm8g/M83RnCHBKOqvPPmROFJGQaZhGccnsFtfXQ3XYa4/jMCJvZnbJBdA==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "android" - ] - }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.22.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.22.4.tgz", - "integrity": "sha512-xMM9ORBqu81jyMKCDP+SZDhnX2QEVQzTcC6G18KlTQEzWK8r/oNZtKuZaCcHhnsa6fEeOBionoyl5JsAbE/36Q==", + "version": "4.26.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.26.0.tgz", + "integrity": "sha512-ErTASs8YKbqTBoPLp/kA1B1Um5YSom8QAc4rKhg7b9tyyVqDBlQxy7Bf2wW7yIlPGPg2UODDQcbkTlruPzDosw==", "cpu": [ "arm64" ], @@ -8518,174 +9284,110 @@ "darwin" ] }, - "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.22.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.22.4.tgz", - "integrity": "sha512-aJJyYKQwbHuhTUrjWjxEvGnNNBCnmpHDvrb8JFDbeSH3m2XdHcxDd3jthAzvmoI8w/kSjd2y0udT+4okADsZIw==", + "node_modules/@rspack/binding": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/@rspack/binding/-/binding-1.1.8.tgz", + "integrity": "sha512-+/JzXx1HctfgPj+XtsCTbRkxiaOfAXGZZLEvs7jgp04WgWRSZ5u97WRCePNPvy+sCfOEH/2zw2ZK36Z7oQRGhQ==", + "devOptional": true, + "license": "MIT", + "optionalDependencies": { + "@rspack/binding-darwin-arm64": "1.1.8", + "@rspack/binding-darwin-x64": "1.1.8", + "@rspack/binding-linux-arm64-gnu": "1.1.8", + "@rspack/binding-linux-arm64-musl": "1.1.8", + "@rspack/binding-linux-x64-gnu": "1.1.8", + "@rspack/binding-linux-x64-musl": "1.1.8", + "@rspack/binding-win32-arm64-msvc": "1.1.8", + "@rspack/binding-win32-ia32-msvc": "1.1.8", + "@rspack/binding-win32-x64-msvc": "1.1.8" + } + }, + "node_modules/@rspack/binding-darwin-arm64": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/@rspack/binding-darwin-arm64/-/binding-darwin-arm64-1.1.8.tgz", + "integrity": "sha512-I7avr471ghQ3LAqKm2fuXuJPLgQ9gffn5Q4nHi8rsukuZUtiLDPfYzK1QuupEp2JXRWM1gG5lIbSUOht3cD6Ug==", "cpu": [ - "x64" + "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ "darwin" ] }, - "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.22.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.22.4.tgz", - "integrity": "sha512-j63YtCIRAzbO+gC2L9dWXRh5BFetsv0j0va0Wi9epXDgU/XUi5dJKo4USTttVyK7fGw2nPWK0PbAvyliz50SCQ==", - "cpu": [ - "arm" - ], + "node_modules/@rspack/core": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/@rspack/core/-/core-1.1.8.tgz", + "integrity": "sha512-pcZtcj5iXLCuw9oElTYC47bp/RQADm/MMEb3djHdwJuSlFWfWPQi5QFgJ/lJAxIW9UNHnTFrYtytycfjpuoEcA==", + "devOptional": true, "license": "MIT", - "optional": true, - "os": [ - "linux" - ] + "dependencies": { + "@module-federation/runtime-tools": "0.5.1", + "@rspack/binding": "1.1.8", + "@rspack/lite-tapable": "1.0.1", + "caniuse-lite": "^1.0.30001616" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "@swc/helpers": ">=0.5.1" + }, + "peerDependenciesMeta": { + "@swc/helpers": { + "optional": true + } + } }, - "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.22.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.22.4.tgz", - "integrity": "sha512-dJnWUgwWBX1YBRsuKKMOlXCzh2Wu1mlHzv20TpqEsfdZLb3WoJW2kIEsGwLkroYf24IrPAvOT/ZQ2OYMV6vlrg==", - "cpu": [ - "arm" - ], + "node_modules/@rspack/core/node_modules/@module-federation/runtime": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/@module-federation/runtime/-/runtime-0.5.1.tgz", + "integrity": "sha512-xgiMUWwGLWDrvZc9JibuEbXIbhXg6z2oUkemogSvQ4LKvrl/n0kbqP1Blk669mXzyWbqtSp6PpvNdwaE1aN5xQ==", + "devOptional": true, "license": "MIT", - "optional": true, - "os": [ - "linux" - ] + "dependencies": { + "@module-federation/sdk": "0.5.1" + } }, - "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.22.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.22.4.tgz", - "integrity": "sha512-AdPRoNi3NKVLolCN/Sp4F4N1d98c4SBnHMKoLuiG6RXgoZ4sllseuGioszumnPGmPM2O7qaAX/IJdeDU8f26Aw==", - "cpu": [ - "arm64" - ], + "node_modules/@rspack/core/node_modules/@module-federation/runtime-tools": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/@module-federation/runtime-tools/-/runtime-tools-0.5.1.tgz", + "integrity": "sha512-nfBedkoZ3/SWyO0hnmaxuz0R0iGPSikHZOAZ0N/dVSQaIzlffUo35B5nlC2wgWIc0JdMZfkwkjZRrnuuDIJbzg==", + "devOptional": true, "license": "MIT", - "optional": true, - "os": [ - "linux" - ] + "dependencies": { + "@module-federation/runtime": "0.5.1", + "@module-federation/webpack-bundler-runtime": "0.5.1" + } }, - "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.22.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.22.4.tgz", - "integrity": "sha512-Gl0AxBtDg8uoAn5CCqQDMqAx22Wx22pjDOjBdmG0VIWX3qUBHzYmOKh8KXHL4UpogfJ14G4wk16EQogF+v8hmA==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] + "node_modules/@rspack/core/node_modules/@module-federation/sdk": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/@module-federation/sdk/-/sdk-0.5.1.tgz", + "integrity": "sha512-exvchtjNURJJkpqjQ3/opdbfeT2wPKvrbnGnyRkrwW5o3FH1LaST1tkiNviT6OXTexGaVc2DahbdniQHVtQ7pA==", + "devOptional": true, + "license": "MIT" }, - "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.22.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.22.4.tgz", - "integrity": "sha512-3aVCK9xfWW1oGQpTsYJJPF6bfpWfhbRnhdlyhak2ZiyFLDaayz0EP5j9V1RVLAAxlmWKTDfS9wyRyY3hvhPoOg==", - "cpu": [ - "ppc64" - ], + "node_modules/@rspack/core/node_modules/@module-federation/webpack-bundler-runtime": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/@module-federation/webpack-bundler-runtime/-/webpack-bundler-runtime-0.5.1.tgz", + "integrity": "sha512-mMhRFH0k2VjwHt3Jol9JkUsmI/4XlrAoBG3E0o7HoyoPYv1UFOWyqAflfANcUPgbYpvqmyLzDcO+3IT36LXnrA==", + "devOptional": true, "license": "MIT", - "optional": true, - "os": [ - "linux" - ] + "dependencies": { + "@module-federation/runtime": "0.5.1", + "@module-federation/sdk": "0.5.1" + } }, - "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.22.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.22.4.tgz", - "integrity": "sha512-ePYIir6VYnhgv2C5Xe9u+ico4t8sZWXschR6fMgoPUK31yQu7hTEJb7bCqivHECwIClJfKgE7zYsh1qTP3WHUA==", - "cpu": [ - "riscv64" - ], + "node_modules/@rspack/lite-tapable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@rspack/lite-tapable/-/lite-tapable-1.0.1.tgz", + "integrity": "sha512-VynGOEsVw2s8TAlLf/uESfrgfrq2+rcXB1muPJYBWbsm1Oa6r5qVQhjA5ggM6z/coYPrsVMgovl3Ff7Q7OCp1w==", + "devOptional": true, "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.22.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.22.4.tgz", - "integrity": "sha512-GqFJ9wLlbB9daxhVlrTe61vJtEY99/xB3C8e4ULVsVfflcpmR6c8UZXjtkMA6FhNONhj2eA5Tk9uAVw5orEs4Q==", - "cpu": [ - "s390x" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.22.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.22.4.tgz", - "integrity": "sha512-87v0ol2sH9GE3cLQLNEy0K/R0pz1nvg76o8M5nhMR0+Q+BBGLnb35P0fVz4CQxHYXaAOhE8HhlkaZfsdUOlHwg==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.22.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.22.4.tgz", - "integrity": "sha512-UV6FZMUgePDZrFjrNGIWzDo/vABebuXBhJEqrHxrGiU6HikPy0Z3LfdtciIttEUQfuDdCn8fqh7wiFJjCNwO+g==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.22.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.22.4.tgz", - "integrity": "sha512-BjI+NVVEGAXjGWYHz/vv0pBqfGoUH0IGZ0cICTn7kB9PyjrATSkX+8WkguNjWoj2qSr1im/+tTGRaY+4/PdcQw==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.22.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.22.4.tgz", - "integrity": "sha512-SiWG/1TuUdPvYmzmYnmd3IEifzR61Tragkbx9D3+R8mzQqDBz8v+BvZNDlkiTtI9T15KYZhP0ehn3Dld4n9J5g==", - "cpu": [ - "ia32" - ], - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.22.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.22.4.tgz", - "integrity": "sha512-j8pPKp53/lq9lMXN57S8cFz0MynJk8OWNuUnXct/9KCpKU7DgU3bYMJhwWmcqC0UU29p8Lr0/7KEVcaM6bf47Q==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] + "engines": { + "node": ">=16.0.0" + } }, "node_modules/@samverschueren/stream-to-observable": { "version": "0.3.1", @@ -8709,13 +9411,13 @@ } }, "node_modules/@schematics/angular": { - "version": "18.2.9", - "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-18.2.9.tgz", - "integrity": "sha512-LlMHZQ6f8zrqSK24OBXi4u2MTNHNu9ZN6JXpbElq0bz/9QkUR2zy+Kk2wLpPxCwXYTZby7/xgHiTzXvG+zTdhw==", + "version": "19.0.6", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-19.0.6.tgz", + "integrity": "sha512-HicclmbW/+mlljU7a4PzbyIWG+7tognoL5LsgMFJQUDzJXHNjRt1riL0vk57o8Pcprnz9FheeWZXO1KRhXkQuw==", "license": "MIT", "dependencies": { - "@angular-devkit/core": "18.2.9", - "@angular-devkit/schematics": "18.2.9", + "@angular-devkit/core": "19.0.6", + "@angular-devkit/schematics": "19.0.6", "jsonc-parser": "3.3.1" }, "engines": { @@ -8724,27 +9426,33 @@ "yarn": ">= 1.13.0" } }, + "node_modules/@schematics/angular/node_modules/jsonc-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.3.1.tgz", + "integrity": "sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==", + "license": "MIT" + }, "node_modules/@sigstore/bundle": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/@sigstore/bundle/-/bundle-2.3.2.tgz", - "integrity": "sha512-wueKWDk70QixNLB363yHc2D2ItTgYiMTdPwK8D9dKQMR3ZQ0c35IxP5xnwQ8cNLoCgCRcHf14kE+CLIvNX1zmA==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@sigstore/bundle/-/bundle-3.0.0.tgz", + "integrity": "sha512-XDUYX56iMPAn/cdgh/DTJxz5RWmqKV4pwvUAEKEWJl+HzKdCd/24wUa9JYNMlDSCb7SUHAdtksxYX779Nne/Zg==", "dev": true, "license": "Apache-2.0", "dependencies": { "@sigstore/protobuf-specs": "^0.3.2" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/@sigstore/core": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@sigstore/core/-/core-1.1.0.tgz", - "integrity": "sha512-JzBqdVIyqm2FRQCulY6nbQzMpJJpSiJ8XXWMhtOX9eKgaXXpfNOF53lzQEjIydlStnd/eFtuC1dW4VYdD93oRg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@sigstore/core/-/core-2.0.0.tgz", + "integrity": "sha512-nYxaSb/MtlSI+JWcwTHQxyNmWeWrUXJJ/G4liLrGG7+tS4vAz6LF3xRXqLH6wPIVUoZQel2Fs4ddLx4NCpiIYg==", "dev": true, "license": "Apache-2.0", "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/@sigstore/protobuf-specs": { @@ -8758,50 +9466,50 @@ } }, "node_modules/@sigstore/sign": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/@sigstore/sign/-/sign-2.3.2.tgz", - "integrity": "sha512-5Vz5dPVuunIIvC5vBb0APwo7qKA4G9yM48kPWJT+OEERs40md5GoUR1yedwpekWZ4m0Hhw44m6zU+ObsON+iDA==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@sigstore/sign/-/sign-3.0.0.tgz", + "integrity": "sha512-UjhDMQOkyDoktpXoc5YPJpJK6IooF2gayAr5LvXI4EL7O0vd58okgfRcxuaH+YTdhvb5aa1Q9f+WJ0c2sVuYIw==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@sigstore/bundle": "^2.3.2", - "@sigstore/core": "^1.0.0", + "@sigstore/bundle": "^3.0.0", + "@sigstore/core": "^2.0.0", "@sigstore/protobuf-specs": "^0.3.2", - "make-fetch-happen": "^13.0.1", - "proc-log": "^4.2.0", + "make-fetch-happen": "^14.0.1", + "proc-log": "^5.0.0", "promise-retry": "^2.0.1" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/@sigstore/tuf": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/@sigstore/tuf/-/tuf-2.3.4.tgz", - "integrity": "sha512-44vtsveTPUpqhm9NCrbU8CWLe3Vck2HO1PNLw7RIajbB7xhtn5RBPm1VNSCMwqGYHhDsBJG8gDF0q4lgydsJvw==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@sigstore/tuf/-/tuf-3.0.0.tgz", + "integrity": "sha512-9Xxy/8U5OFJu7s+OsHzI96IX/OzjF/zj0BSSaWhgJgTqtlBhQIV2xdrQI5qxLD7+CWWDepadnXAxzaZ3u9cvRw==", "dev": true, "license": "Apache-2.0", "dependencies": { "@sigstore/protobuf-specs": "^0.3.2", - "tuf-js": "^2.2.1" + "tuf-js": "^3.0.1" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/@sigstore/verify": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@sigstore/verify/-/verify-1.2.1.tgz", - "integrity": "sha512-8iKx79/F73DKbGfRf7+t4dqrc0bRr0thdPrxAtCKWRm/F0tG71i6O1rvlnScncJLLBZHn3h8M3c1BSUAb9yu8g==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@sigstore/verify/-/verify-2.0.0.tgz", + "integrity": "sha512-Ggtq2GsJuxFNUvQzLoXqRwS4ceRfLAJnrIHUDrzAD0GgnOhwujJkKkxM/s5Bako07c3WtAs/sZo5PJq7VHjeDg==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@sigstore/bundle": "^2.3.2", - "@sigstore/core": "^1.1.0", + "@sigstore/bundle": "^3.0.0", + "@sigstore/core": "^2.0.0", "@sigstore/protobuf-specs": "^0.3.2" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/@simplewebauthn/browser": { @@ -8833,6 +9541,15 @@ "node": ">=16.0.0" } }, + "node_modules/@simplewebauthn/server/node_modules/cross-fetch": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-4.1.0.tgz", + "integrity": "sha512-uKm5PU+MHTootlWEY+mZ4vvXoCn4fLQxT9dSc1sXVMSFkINTJVN8cAQROpwcKm8bJ/c7rgZVIBWzH5T78sNZZw==", + "license": "MIT", + "dependencies": { + "node-fetch": "^2.7.0" + } + }, "node_modules/@simplewebauthn/types": { "version": "9.0.1", "resolved": "https://registry.npmjs.org/@simplewebauthn/types/-/types-9.0.1.tgz", @@ -8891,9 +9608,9 @@ } }, "node_modules/@stencil/core": { - "version": "4.22.1", - "resolved": "https://registry.npmjs.org/@stencil/core/-/core-4.22.1.tgz", - "integrity": "sha512-/vaKFIK/BWpGVDTj3u6TE7Nc2SCqG1PmXPtg3mEpiJw1aJZFar/jrZzbvyBOVQ7TGpDdO1ne3esXAQndj73UTQ==", + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/@stencil/core/-/core-4.23.0.tgz", + "integrity": "sha512-9vI8ywhoqlaDEmrcntejrZ9X76Tddv2JyWakjVpqJAdDNXgf520sYkyjzGT0p8VJfPtSaKm6pMtl5sAH1r9cFg==", "license": "MIT", "bin": { "stencil": "bin/stencil" @@ -8904,9 +9621,9 @@ } }, "node_modules/@storybook/addon-actions": { - "version": "8.3.6", - "resolved": "https://registry.npmjs.org/@storybook/addon-actions/-/addon-actions-8.3.6.tgz", - "integrity": "sha512-nOqgl0WoZK2KwjaABaXMoIgrIHOQl9inOzJvqQau0HOtsvnXGXYfJXYnpjZenoZDoZXKbUDl0U2haDFx2a2fJw==", + "version": "8.4.7", + "resolved": "https://registry.npmjs.org/@storybook/addon-actions/-/addon-actions-8.4.7.tgz", + "integrity": "sha512-mjtD5JxcPuW74T6h7nqMxWTvDneFtokg88p6kQ5OnC1M259iAXb//yiSZgu/quunMHPCXSiqn4FNOSgASTSbsA==", "dev": true, "license": "MIT", "dependencies": { @@ -8921,7 +9638,7 @@ "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "storybook": "^8.3.6" + "storybook": "^8.4.7" } }, "node_modules/@storybook/addon-actions/node_modules/uuid": { @@ -8939,9 +9656,9 @@ } }, "node_modules/@storybook/addon-backgrounds": { - "version": "8.3.6", - "resolved": "https://registry.npmjs.org/@storybook/addon-backgrounds/-/addon-backgrounds-8.3.6.tgz", - "integrity": "sha512-yBn+a8i5OJzJaX6Bx5MAkfei7c2nvq+RRmvuyvxw11rtDGR6Nz4OBBe56reWxo868wVUggpRTPJCMVe5tDYgVg==", + "version": "8.4.7", + "resolved": "https://registry.npmjs.org/@storybook/addon-backgrounds/-/addon-backgrounds-8.4.7.tgz", + "integrity": "sha512-I4/aErqtFiazcoWyKafOAm3bLpxTj6eQuH/woSbk1Yx+EzN+Dbrgx1Updy8//bsNtKkcrXETITreqHC+a57DHQ==", "dev": true, "license": "MIT", "dependencies": { @@ -8954,19 +9671,18 @@ "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "storybook": "^8.3.6" + "storybook": "^8.4.7" } }, "node_modules/@storybook/addon-controls": { - "version": "8.3.6", - "resolved": "https://registry.npmjs.org/@storybook/addon-controls/-/addon-controls-8.3.6.tgz", - "integrity": "sha512-9IMLHgtWPuFoRCt3hDsIk1FbkK5SlCMDW1DDwtTBIeWYYZLvptS42+vGVTeQ8v5SejmVzZkzuUdzu3p4sb3IcA==", + "version": "8.4.7", + "resolved": "https://registry.npmjs.org/@storybook/addon-controls/-/addon-controls-8.4.7.tgz", + "integrity": "sha512-377uo5IsJgXLnQLJixa47+11V+7Wn9KcDEw+96aGCBCfLbWNH8S08tJHHnSu+jXg9zoqCAC23MetntVp6LetHA==", "dev": true, "license": "MIT", "dependencies": { "@storybook/global": "^5.0.0", "dequal": "^2.0.2", - "lodash": "^4.17.21", "ts-dedent": "^2.0.0" }, "funding": { @@ -8974,27 +9690,22 @@ "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "storybook": "^8.3.6" + "storybook": "^8.4.7" } }, "node_modules/@storybook/addon-docs": { - "version": "8.3.6", - "resolved": "https://registry.npmjs.org/@storybook/addon-docs/-/addon-docs-8.3.6.tgz", - "integrity": "sha512-31Rk1TOhDIzGM2wNCUIB1xKuWtArW0D2Puua9warEXlQ3FtvwmxnPrwbIzw6ufYZDWPwl9phDYTcRh8WqZIoGg==", + "version": "8.4.7", + "resolved": "https://registry.npmjs.org/@storybook/addon-docs/-/addon-docs-8.4.7.tgz", + "integrity": "sha512-NwWaiTDT5puCBSUOVuf6ME7Zsbwz7Y79WF5tMZBx/sLQ60vpmJVQsap6NSjvK1Ravhc21EsIXqemAcBjAWu80w==", "dev": true, "license": "MIT", "dependencies": { "@mdx-js/react": "^3.0.0", - "@storybook/blocks": "8.3.6", - "@storybook/csf-plugin": "8.3.6", - "@storybook/global": "^5.0.0", - "@storybook/react-dom-shim": "8.3.6", - "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "fs-extra": "^11.1.0", + "@storybook/blocks": "8.4.7", + "@storybook/csf-plugin": "8.4.7", + "@storybook/react-dom-shim": "8.4.7", "react": "^16.8.0 || ^17.0.0 || ^18.0.0", "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0", - "rehype-external-links": "^3.0.0", - "rehype-slug": "^6.0.0", "ts-dedent": "^2.0.0" }, "funding": { @@ -9002,40 +9713,129 @@ "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "storybook": "^8.3.6" + "storybook": "^8.4.7" } }, - "node_modules/@storybook/addon-docs/node_modules/fs-extra": { - "version": "11.2.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", - "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", + "node_modules/@storybook/addon-docs/node_modules/@mdx-js/react": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@mdx-js/react/-/react-3.1.0.tgz", + "integrity": "sha512-QjHtSaoameoalGnKDT3FoIl4+9RwyTmo9ZJGBdLOks/YOiWHoRDI3PUwEzOE7kEmGcV3AFcp9K6dYu9rEuKLAQ==", "dev": true, "license": "MIT", "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" + "@types/mdx": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + }, + "peerDependencies": { + "@types/react": ">=16", + "react": ">=16" + } + }, + "node_modules/@storybook/addon-docs/node_modules/@storybook/blocks": { + "version": "8.4.7", + "resolved": "https://registry.npmjs.org/@storybook/blocks/-/blocks-8.4.7.tgz", + "integrity": "sha512-+QH7+JwXXXIyP3fRCxz/7E2VZepAanXJM7G8nbR3wWsqWgrRp4Wra6MvybxAYCxU7aNfJX5c+RW84SNikFpcIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@storybook/csf": "^0.1.11", + "@storybook/icons": "^1.2.12", + "ts-dedent": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", + "storybook": "^8.4.7" + }, + "peerDependenciesMeta": { + "react": { + "optional": true + }, + "react-dom": { + "optional": true + } + } + }, + "node_modules/@storybook/addon-docs/node_modules/@storybook/icons": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@storybook/icons/-/icons-1.3.0.tgz", + "integrity": "sha512-Nz/UzeYQdUZUhacrPyfkiiysSjydyjgg/p0P9HxB4p/WaJUUjMAcaoaLgy3EXx61zZJ3iD36WPuDkZs5QYrA0A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta" + } + }, + "node_modules/@storybook/addon-docs/node_modules/@storybook/react-dom-shim": { + "version": "8.4.7", + "resolved": "https://registry.npmjs.org/@storybook/react-dom-shim/-/react-dom-shim-8.4.7.tgz", + "integrity": "sha512-6bkG2jvKTmWrmVzCgwpTxwIugd7Lu+2btsLAqhQSzDyIj2/uhMNp8xIMr/NBDtLgq3nomt9gefNa9xxLwk/OMg==", + "dev": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", + "storybook": "^8.4.7" + } + }, + "node_modules/@storybook/addon-docs/node_modules/react": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", + "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0" }, "engines": { - "node": ">=14.14" + "node": ">=0.10.0" + } + }, + "node_modules/@storybook/addon-docs/node_modules/react-dom": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", + "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", + "dev": true, + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.2" + }, + "peerDependencies": { + "react": "^18.3.1" } }, "node_modules/@storybook/addon-essentials": { - "version": "8.3.6", - "resolved": "https://registry.npmjs.org/@storybook/addon-essentials/-/addon-essentials-8.3.6.tgz", - "integrity": "sha512-MQPFvThlGU7wlda1xhBPQCmDh90cSSZ31OsVs1uC5kJh0aLbY2gYXPurq1G54kzrYo8SMfBxsXrCplz8Ir6UTg==", + "version": "8.4.7", + "resolved": "https://registry.npmjs.org/@storybook/addon-essentials/-/addon-essentials-8.4.7.tgz", + "integrity": "sha512-+BtZHCBrYtQKILtejKxh0CDRGIgTl9PumfBOKRaihYb4FX1IjSAxoV/oo/IfEjlkF5f87vouShWsRa8EUauFDw==", "dev": true, "license": "MIT", "dependencies": { - "@storybook/addon-actions": "8.3.6", - "@storybook/addon-backgrounds": "8.3.6", - "@storybook/addon-controls": "8.3.6", - "@storybook/addon-docs": "8.3.6", - "@storybook/addon-highlight": "8.3.6", - "@storybook/addon-measure": "8.3.6", - "@storybook/addon-outline": "8.3.6", - "@storybook/addon-toolbars": "8.3.6", - "@storybook/addon-viewport": "8.3.6", + "@storybook/addon-actions": "8.4.7", + "@storybook/addon-backgrounds": "8.4.7", + "@storybook/addon-controls": "8.4.7", + "@storybook/addon-docs": "8.4.7", + "@storybook/addon-highlight": "8.4.7", + "@storybook/addon-measure": "8.4.7", + "@storybook/addon-outline": "8.4.7", + "@storybook/addon-toolbars": "8.4.7", + "@storybook/addon-viewport": "8.4.7", "ts-dedent": "^2.0.0" }, "funding": { @@ -9043,13 +9843,13 @@ "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "storybook": "^8.3.6" + "storybook": "^8.4.7" } }, "node_modules/@storybook/addon-highlight": { - "version": "8.3.6", - "resolved": "https://registry.npmjs.org/@storybook/addon-highlight/-/addon-highlight-8.3.6.tgz", - "integrity": "sha512-A7uU+1OPVXGpkklEUJjSl2VEEDLCSNvmffUJlvW1GjajsNFIHOW2CSD+KnfFlQyPxyVbnWAYLqUP4XJxoqrvDw==", + "version": "8.4.7", + "resolved": "https://registry.npmjs.org/@storybook/addon-highlight/-/addon-highlight-8.4.7.tgz", + "integrity": "sha512-whQIDBd3PfVwcUCrRXvCUHWClXe9mQ7XkTPCdPo4B/tZ6Z9c6zD8JUHT76ddyHivixFLowMnA8PxMU6kCMAiNw==", "dev": true, "license": "MIT", "dependencies": { @@ -9060,19 +9860,19 @@ "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "storybook": "^8.3.6" + "storybook": "^8.4.7" } }, "node_modules/@storybook/addon-interactions": { - "version": "8.3.6", - "resolved": "https://registry.npmjs.org/@storybook/addon-interactions/-/addon-interactions-8.3.6.tgz", - "integrity": "sha512-Y0YUJj0oE1+6DFkaTPXM/8+dwTSoy0ltj2Sn2KOTJYzxKQYXBp8TlUv0QOQiGH7o/GKXIWek/VlTuvG/JEeiWw==", + "version": "8.4.7", + "resolved": "https://registry.npmjs.org/@storybook/addon-interactions/-/addon-interactions-8.4.7.tgz", + "integrity": "sha512-fnufT3ym8ht3HHUIRVXAH47iOJW/QOb0VSM+j269gDuvyDcY03D1civCu1v+eZLGaXPKJ8vtjr0L8zKQ/4P0JQ==", "dev": true, "license": "MIT", "dependencies": { "@storybook/global": "^5.0.0", - "@storybook/instrumenter": "8.3.6", - "@storybook/test": "8.3.6", + "@storybook/instrumenter": "8.4.7", + "@storybook/test": "8.4.7", "polished": "^4.2.2", "ts-dedent": "^2.2.0" }, @@ -9081,13 +9881,13 @@ "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "storybook": "^8.3.6" + "storybook": "^8.4.7" } }, "node_modules/@storybook/addon-measure": { - "version": "8.3.6", - "resolved": "https://registry.npmjs.org/@storybook/addon-measure/-/addon-measure-8.3.6.tgz", - "integrity": "sha512-VHWeGgYjhzhwb2WAqYW/qyEPqg5pwKR/XqFfd+3tEirUs/64olL1l3lzLwZ8Cm07cJ81T8Z4myywb9kObZfQlw==", + "version": "8.4.7", + "resolved": "https://registry.npmjs.org/@storybook/addon-measure/-/addon-measure-8.4.7.tgz", + "integrity": "sha512-QfvqYWDSI5F68mKvafEmZic3SMiK7zZM8VA0kTXx55hF/+vx61Mm0HccApUT96xCXIgmwQwDvn9gS4TkX81Dmw==", "dev": true, "license": "MIT", "dependencies": { @@ -9099,13 +9899,13 @@ "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "storybook": "^8.3.6" + "storybook": "^8.4.7" } }, "node_modules/@storybook/addon-outline": { - "version": "8.3.6", - "resolved": "https://registry.npmjs.org/@storybook/addon-outline/-/addon-outline-8.3.6.tgz", - "integrity": "sha512-+VXpM8SIHX2cn30qLlMvER9/6iioFRSn2sAfLniqy4RrcQmcMP+qgE7ZzbzExt7cneJh3VFsYqBS/HElu14Vgg==", + "version": "8.4.7", + "resolved": "https://registry.npmjs.org/@storybook/addon-outline/-/addon-outline-8.4.7.tgz", + "integrity": "sha512-6LYRqUZxSodmAIl8icr585Oi8pmzbZ90aloZJIpve+dBAzo7ydYrSQxxoQEVltXbKf3VeVcrs64ouAYqjisMYA==", "dev": true, "license": "MIT", "dependencies": { @@ -9117,13 +9917,13 @@ "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "storybook": "^8.3.6" + "storybook": "^8.4.7" } }, "node_modules/@storybook/addon-toolbars": { - "version": "8.3.6", - "resolved": "https://registry.npmjs.org/@storybook/addon-toolbars/-/addon-toolbars-8.3.6.tgz", - "integrity": "sha512-FJH+lRoZXENfpMR/G09ZqB0TmL/k6bv07GN1ysoVs420tKRgjfz6uXaZz5COrhcdISr5mTNmG+mw9x7xXTfX3Q==", + "version": "8.4.7", + "resolved": "https://registry.npmjs.org/@storybook/addon-toolbars/-/addon-toolbars-8.4.7.tgz", + "integrity": "sha512-OSfdv5UZs+NdGB+nZmbafGUWimiweJ/56gShlw8Neo/4jOJl1R3rnRqqY7MYx8E4GwoX+i3GF5C3iWFNQqlDcw==", "dev": true, "license": "MIT", "funding": { @@ -9131,13 +9931,13 @@ "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "storybook": "^8.3.6" + "storybook": "^8.4.7" } }, "node_modules/@storybook/addon-viewport": { - "version": "8.3.6", - "resolved": "https://registry.npmjs.org/@storybook/addon-viewport/-/addon-viewport-8.3.6.tgz", - "integrity": "sha512-bL51v837W1cng/+0pypkoLsWKWmvux96zLOzqLCpcWAQ4OSMhW3foIWpCiFwMG/KY+GanoOocTx6i7j5hLtuTA==", + "version": "8.4.7", + "resolved": "https://registry.npmjs.org/@storybook/addon-viewport/-/addon-viewport-8.4.7.tgz", + "integrity": "sha512-hvczh/jjuXXcOogih09a663sRDDSATXwbE866al1DXgbDFraYD/LxX/QDb38W9hdjU9+Qhx8VFIcNWoMQns5HQ==", "dev": true, "license": "MIT", "dependencies": { @@ -9148,23 +9948,23 @@ "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "storybook": "^8.3.6" + "storybook": "^8.4.7" } }, "node_modules/@storybook/angular": { - "version": "8.3.6", - "resolved": "https://registry.npmjs.org/@storybook/angular/-/angular-8.3.6.tgz", - "integrity": "sha512-mTJD8keLAYpymB6hJeliEIAbfnVAY5wKBIJzecq88YYID3QinS++evUue56TM3W7t8uxMpBxslSbRZb+U1sd0Q==", + "version": "8.4.7", + "resolved": "https://registry.npmjs.org/@storybook/angular/-/angular-8.4.7.tgz", + "integrity": "sha512-PYWWEvoe+sT8riprSQVCyGnQbifbuzT9YNYPi22YBxB8ZGVuIVwjshKjSZvC99ULQbMvJ/g2OPCcBA8hhc3aTg==", "dev": true, "license": "MIT", "dependencies": { - "@storybook/builder-webpack5": "8.3.6", - "@storybook/components": "^8.3.6", - "@storybook/core-webpack": "8.3.6", + "@storybook/builder-webpack5": "8.4.7", + "@storybook/components": "8.4.7", + "@storybook/core-webpack": "8.4.7", "@storybook/global": "^5.0.0", - "@storybook/manager-api": "^8.3.6", - "@storybook/preview-api": "^8.3.6", - "@storybook/theming": "^8.3.6", + "@storybook/manager-api": "8.4.7", + "@storybook/preview-api": "8.4.7", + "@storybook/theming": "8.4.7", "@types/node": "^22.0.0", "@types/react": "^18.0.37", "@types/react-dom": "^18.0.11", @@ -9187,19 +9987,19 @@ "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "@angular-devkit/architect": ">=0.1500.0 < 0.1900.0", - "@angular-devkit/build-angular": ">=15.0.0 < 19.0.0", - "@angular-devkit/core": ">=15.0.0 < 19.0.0", - "@angular/cli": ">=15.0.0 < 19.0.0", - "@angular/common": ">=15.0.0 < 19.0.0", - "@angular/compiler": ">=15.0.0 < 19.0.0", - "@angular/compiler-cli": ">=15.0.0 < 19.0.0", - "@angular/core": ">=15.0.0 < 19.0.0", - "@angular/forms": ">=15.0.0 < 19.0.0", - "@angular/platform-browser": ">=15.0.0 < 19.0.0", - "@angular/platform-browser-dynamic": ">=15.0.0 < 19.0.0", + "@angular-devkit/architect": ">=0.1500.0 < 0.2000.0", + "@angular-devkit/build-angular": ">=15.0.0 < 20.0.0", + "@angular-devkit/core": ">=15.0.0 < 20.0.0", + "@angular/cli": ">=15.0.0 < 20.0.0", + "@angular/common": ">=15.0.0 < 20.0.0", + "@angular/compiler": ">=15.0.0 < 20.0.0", + "@angular/compiler-cli": ">=15.0.0 < 20.0.0", + "@angular/core": ">=15.0.0 < 20.0.0", + "@angular/forms": ">=15.0.0 < 20.0.0", + "@angular/platform-browser": ">=15.0.0 < 20.0.0", + "@angular/platform-browser-dynamic": ">=15.0.0 < 20.0.0", "rxjs": "^6.0.0 || ^7.4.0", - "storybook": "^8.3.6", + "storybook": "^8.4.7", "typescript": "^4.0.0 || ^5.0.0", "zone.js": ">= 0.11.1 < 1.0.0" }, @@ -9210,141 +10010,79 @@ } }, "node_modules/@storybook/angular/node_modules/@types/node": { - "version": "22.7.7", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.7.7.tgz", - "integrity": "sha512-SRxCrrg9CL/y54aiMCG3edPKdprgMVGDXjA3gB8UmmBW5TcXzRUYAh8EWzTnSJFAd1rgImPELza+A3bJ+qxz8Q==", + "version": "22.10.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.2.tgz", + "integrity": "sha512-Xxr6BBRCAOQixvonOye19wnzyDiUtTeqldOOmj3CkeblonbccA12PFwlufvRdrpjXxqnmUaeiU5EOA+7s5diUQ==", "dev": true, "license": "MIT", "dependencies": { - "undici-types": "~6.19.2" + "undici-types": "~6.20.0" } }, - "node_modules/@storybook/angular/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/@storybook/angular/node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, "license": "MIT", "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@storybook/angular/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" }, "engines": { "node": ">=10" }, "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@storybook/angular/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/@storybook/angular/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/@storybook/angular/node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, "license": "MIT", "dependencies": { - "has-flag": "^4.0.0" + "p-locate": "^5.0.0" }, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@storybook/angular/node_modules/tsconfig-paths-webpack-plugin": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/tsconfig-paths-webpack-plugin/-/tsconfig-paths-webpack-plugin-4.1.0.tgz", - "integrity": "sha512-xWFISjviPydmtmgeUAuXp4N1fky+VCtfhOkDUFIv5ea7p4wuTomI4QTrXvFBX2S4jZsmyTSrStQl+E+4w+RzxA==", + "node_modules/@storybook/angular/node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, "license": "MIT", "dependencies": { - "chalk": "^4.1.0", - "enhanced-resolve": "^5.7.0", - "tsconfig-paths": "^4.1.2" + "p-limit": "^3.0.2" }, "engines": { - "node": ">=10.13.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/@storybook/angular/node_modules/undici-types": { - "version": "6.19.8", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", - "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", + "version": "6.20.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", + "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", "dev": true, "license": "MIT" }, - "node_modules/@storybook/blocks": { - "version": "8.3.6", - "resolved": "https://registry.npmjs.org/@storybook/blocks/-/blocks-8.3.6.tgz", - "integrity": "sha512-Oc5jU6EzfsENjrd91KcKyEKBh60RT+8uyLi1RIrymC2C/mzZMTEoNIrbnQt0eIqbjlHxn6y9JMJxHu4NJ4EmZg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@storybook/csf": "^0.1.11", - "@storybook/global": "^5.0.0", - "@storybook/icons": "^1.2.10", - "@types/lodash": "^4.14.167", - "color-convert": "^2.0.1", - "dequal": "^2.0.2", - "lodash": "^4.17.21", - "markdown-to-jsx": "^7.4.5", - "memoizerific": "^1.11.3", - "polished": "^4.2.2", - "react-colorful": "^5.1.2", - "telejson": "^7.2.0", - "ts-dedent": "^2.0.0", - "util-deprecate": "^1.0.2" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", - "storybook": "^8.3.6" - }, - "peerDependenciesMeta": { - "react": { - "optional": true - }, - "react-dom": { - "optional": true - } - } - }, "node_modules/@storybook/builder-webpack5": { - "version": "8.3.6", - "resolved": "https://registry.npmjs.org/@storybook/builder-webpack5/-/builder-webpack5-8.3.6.tgz", - "integrity": "sha512-Eqn2k8aA9f0o6IMQNAxGAMfSDeTP3YYCQAtOL5Gt5lgrqLV5JMTbZOfmaRBZ82ej/BBSAopnQKIJjQBBFx6kAQ==", + "version": "8.4.7", + "resolved": "https://registry.npmjs.org/@storybook/builder-webpack5/-/builder-webpack5-8.4.7.tgz", + "integrity": "sha512-O8LpsQ+4g2x5kh7rI9+jEUdX8k1a5egBQU1lbudmHchqsV0IKiVqBD9LL5Gj3wpit4vB8coSW4ZWTFBw8FQb4Q==", "dev": true, "license": "MIT", "dependencies": { - "@storybook/core-webpack": "8.3.6", + "@storybook/core-webpack": "8.4.7", "@types/node": "^22.0.0", "@types/semver": "^7.3.4", "browser-assert": "^1.2.1", @@ -9353,9 +10091,7 @@ "constants-browserify": "^1.0.0", "css-loader": "^6.7.1", "es-module-lexer": "^1.5.0", - "express": "^4.19.2", "fork-ts-checker-webpack-plugin": "^8.0.0", - "fs-extra": "^11.1.0", "html-webpack-plugin": "^5.5.0", "magic-string": "^0.30.5", "path-browserify": "^1.0.1", @@ -9377,7 +10113,7 @@ "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "storybook": "^8.3.6" + "storybook": "^8.4.7" }, "peerDependenciesMeta": { "typescript": { @@ -9386,13 +10122,13 @@ } }, "node_modules/@storybook/builder-webpack5/node_modules/@types/node": { - "version": "22.7.7", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.7.7.tgz", - "integrity": "sha512-SRxCrrg9CL/y54aiMCG3edPKdprgMVGDXjA3gB8UmmBW5TcXzRUYAh8EWzTnSJFAd1rgImPELza+A3bJ+qxz8Q==", + "version": "22.10.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.2.tgz", + "integrity": "sha512-Xxr6BBRCAOQixvonOye19wnzyDiUtTeqldOOmj3CkeblonbccA12PFwlufvRdrpjXxqnmUaeiU5EOA+7s5diUQ==", "dev": true, "license": "MIT", "dependencies": { - "undici-types": "~6.19.2" + "undici-types": "~6.20.0" } }, "node_modules/@storybook/builder-webpack5/node_modules/ajv": { @@ -9422,218 +10158,29 @@ "ajv": "^6.9.1" } }, - "node_modules/@storybook/builder-webpack5/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/@storybook/builder-webpack5/node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", "dev": true, "license": "MIT", "dependencies": { - "color-convert": "^2.0.1" + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" }, "engines": { - "node": ">=8" + "node": ">= 8.10.0" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@storybook/builder-webpack5/node_modules/body-parser": { - "version": "1.20.3", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz", - "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==", - "dev": true, - "license": "MIT", - "dependencies": { - "bytes": "3.1.2", - "content-type": "~1.0.5", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.13.0", - "raw-body": "2.5.2", - "type-is": "~1.6.18", - "unpipe": "1.0.0" + "url": "https://paulmillr.com/funding/" }, - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/@storybook/builder-webpack5/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/@storybook/builder-webpack5/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@storybook/builder-webpack5/node_modules/cookie": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz", - "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/@storybook/builder-webpack5/node_modules/cosmiconfig": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", - "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.2.1", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.10.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@storybook/builder-webpack5/node_modules/css-loader": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.11.0.tgz", - "integrity": "sha512-CTJ+AEQJjq5NzLga5pE39qdiSV56F8ywCIsqNIRF0r7BDgWsN25aazToqAFg7ZrtA/U016xudB3ffgweORxX7g==", - "dev": true, - "license": "MIT", - "dependencies": { - "icss-utils": "^5.1.0", - "postcss": "^8.4.33", - "postcss-modules-extract-imports": "^3.1.0", - "postcss-modules-local-by-default": "^4.0.5", - "postcss-modules-scope": "^3.2.0", - "postcss-modules-values": "^4.0.0", - "postcss-value-parser": "^4.2.0", - "semver": "^7.5.4" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "@rspack/core": "0.x || 1.x", - "webpack": "^5.0.0" - }, - "peerDependenciesMeta": { - "@rspack/core": { - "optional": true - }, - "webpack": { - "optional": true - } - } - }, - "node_modules/@storybook/builder-webpack5/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/@storybook/builder-webpack5/node_modules/encodeurl": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", - "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/@storybook/builder-webpack5/node_modules/express": { - "version": "4.21.1", - "resolved": "https://registry.npmjs.org/express/-/express-4.21.1.tgz", - "integrity": "sha512-YSFlK1Ee0/GC8QaO91tHcDxJiE/X4FbpAyQWkxAvG6AXCuR65YzK8ua6D9hvi/TzUfZMpc+BwuM1IPw8fmQBiQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.20.3", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.7.1", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "2.0.0", - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "1.3.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "merge-descriptors": "1.0.3", - "methods": "~1.1.2", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.10", - "proxy-addr": "~2.0.7", - "qs": "6.13.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.19.0", - "serve-static": "1.16.2", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/@storybook/builder-webpack5/node_modules/finalhandler": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz", - "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "2.6.9", - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "statuses": "2.0.1", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" + "optionalDependencies": { + "fsevents": "~2.3.2" } }, "node_modules/@storybook/builder-webpack5/node_modules/fork-ts-checker-webpack-plugin": { @@ -9665,7 +10212,7 @@ "webpack": "^5.11.0" } }, - "node_modules/@storybook/builder-webpack5/node_modules/fork-ts-checker-webpack-plugin/node_modules/fs-extra": { + "node_modules/@storybook/builder-webpack5/node_modules/fs-extra": { "version": "10.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", @@ -9680,7 +10227,63 @@ "node": ">=12" } }, - "node_modules/@storybook/builder-webpack5/node_modules/fork-ts-checker-webpack-plugin/node_modules/schema-utils": { + "node_modules/@storybook/builder-webpack5/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@storybook/builder-webpack5/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@storybook/builder-webpack5/node_modules/magic-string": { + "version": "0.30.17", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz", + "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0" + } + }, + "node_modules/@storybook/builder-webpack5/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/@storybook/builder-webpack5/node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/@storybook/builder-webpack5/node_modules/schema-utils": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", @@ -9699,166 +10302,10 @@ "url": "https://opencollective.com/webpack" } }, - "node_modules/@storybook/builder-webpack5/node_modules/fs-extra": { - "version": "11.2.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", - "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", - "dev": true, - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=14.14" - } - }, - "node_modules/@storybook/builder-webpack5/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/@storybook/builder-webpack5/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true, - "license": "MIT" - }, - "node_modules/@storybook/builder-webpack5/node_modules/merge-descriptors": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", - "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@storybook/builder-webpack5/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/@storybook/builder-webpack5/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true, - "license": "MIT" - }, - "node_modules/@storybook/builder-webpack5/node_modules/path-to-regexp": { - "version": "0.1.10", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.10.tgz", - "integrity": "sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==", - "dev": true, - "license": "MIT" - }, - "node_modules/@storybook/builder-webpack5/node_modules/qs": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", - "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "side-channel": "^1.0.6" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/@storybook/builder-webpack5/node_modules/send": { - "version": "0.19.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", - "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "2.4.1", - "range-parser": "~1.2.1", - "statuses": "2.0.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/@storybook/builder-webpack5/node_modules/send/node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/@storybook/builder-webpack5/node_modules/send/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@storybook/builder-webpack5/node_modules/serve-static": { - "version": "1.16.2", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", - "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", - "dev": true, - "license": "MIT", - "dependencies": { - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.19.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/@storybook/builder-webpack5/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/@storybook/builder-webpack5/node_modules/undici-types": { - "version": "6.19.8", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", - "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", + "version": "6.20.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", + "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", "dev": true, "license": "MIT" }, @@ -9891,10 +10338,67 @@ } } }, + "node_modules/@storybook/builder-webpack5/node_modules/webpack-dev-middleware/node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/@storybook/builder-webpack5/node_modules/webpack-dev-middleware/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/@storybook/builder-webpack5/node_modules/webpack-dev-middleware/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true, + "license": "MIT" + }, + "node_modules/@storybook/builder-webpack5/node_modules/webpack-dev-middleware/node_modules/schema-utils": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.0.tgz", + "integrity": "sha512-Gf9qqc58SpCA/xdziiHz35F4GNIWYWZrEshUc/G/r5BnLph6xpKuLeoJoQuj5WfBIx/eQLf+hmVPYHaxJu7V2g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, "node_modules/@storybook/components": { - "version": "8.3.6", - "resolved": "https://registry.npmjs.org/@storybook/components/-/components-8.3.6.tgz", - "integrity": "sha512-TXuoGZY7X3iixF45lXkYOFk8k2q9OHcqHyHyem1gATLLQXgyOvDgzm+VB7uKBNzssRQPEE+La70nfG8bq/viRw==", + "version": "8.4.7", + "resolved": "https://registry.npmjs.org/@storybook/components/-/components-8.4.7.tgz", + "integrity": "sha512-uyJIcoyeMWKAvjrG9tJBUCKxr2WZk+PomgrgrUwejkIfXMO76i6jw9BwLa0NZjYdlthDv30r9FfbYZyeNPmF0g==", "dev": true, "license": "MIT", "funding": { @@ -9902,23 +10406,21 @@ "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "storybook": "^8.3.6" + "storybook": "^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0" } }, "node_modules/@storybook/core": { - "version": "8.3.6", - "resolved": "https://registry.npmjs.org/@storybook/core/-/core-8.3.6.tgz", - "integrity": "sha512-frwfgf0EJ7QL29DWZ5bla/g0eOOWqJGd14t+VUBlpP920zB6sdDfo7+p9JoCjD9u08lGeFDqbPNKayUk+0qDag==", + "version": "8.4.7", + "resolved": "https://registry.npmjs.org/@storybook/core/-/core-8.4.7.tgz", + "integrity": "sha512-7Z8Z0A+1YnhrrSXoKKwFFI4gnsLbWzr8fnDCU6+6HlDukFYh8GHRcZ9zKfqmy6U3hw2h8H5DrHsxWfyaYUUOoA==", "dev": true, "license": "MIT", "dependencies": { "@storybook/csf": "^0.1.11", - "@types/express": "^4.17.21", "better-opn": "^3.0.2", "browser-assert": "^1.2.1", - "esbuild": "^0.18.0 || ^0.19.0 || ^0.20.0 || ^0.21.0 || ^0.22.0 || ^0.23.0", + "esbuild": "^0.18.0 || ^0.19.0 || ^0.20.0 || ^0.21.0 || ^0.22.0 || ^0.23.0 || ^0.24.0", "esbuild-register": "^3.5.0", - "express": "^4.19.2", "jsdoc-type-pratt-parser": "^4.0.0", "process": "^0.11.10", "recast": "^0.23.5", @@ -9929,12 +10431,20 @@ "funding": { "type": "opencollective", "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "prettier": "^2 || ^3" + }, + "peerDependenciesMeta": { + "prettier": { + "optional": true + } } }, "node_modules/@storybook/core-server": { - "version": "8.3.6", - "resolved": "https://registry.npmjs.org/@storybook/core-server/-/core-server-8.3.6.tgz", - "integrity": "sha512-jDaeIQQ7hiltfR/krqhkTu2XUMRDHbWATOV2tkf92yRKfESqMhs4ZxwkFZbP4DQda+zBPK6sXYeI1lenWpUlgA==", + "version": "8.4.7", + "resolved": "https://registry.npmjs.org/@storybook/core-server/-/core-server-8.4.7.tgz", + "integrity": "sha512-RW5R+kqRmcP+7QNTmhcrh46qWYkVpxaRlN8MmkHV52m2H5nbBrvgwc3/sb3wdgm1PEU0K5wxT0cmAMIwtnHC9Q==", "dev": true, "license": "MIT", "funding": { @@ -9942,13 +10452,13 @@ "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "storybook": "^8.3.6" + "storybook": "^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0" } }, "node_modules/@storybook/core-webpack": { - "version": "8.3.6", - "resolved": "https://registry.npmjs.org/@storybook/core-webpack/-/core-webpack-8.3.6.tgz", - "integrity": "sha512-ks306CFKD7FePQzRYyTjddiLsSriceblzv4rI+IjVtftkJvcEbxub2yWkV27kPP/e9kSd4Li3M34bX5mkiwkZA==", + "version": "8.4.7", + "resolved": "https://registry.npmjs.org/@storybook/core-webpack/-/core-webpack-8.4.7.tgz", + "integrity": "sha512-Tj+CjQLpFyBJxhhMms+vbPT3+gTRAiQlrhY3L1IEVwBa3wtRMS0qjozH26d1hK4G6mUIEdwu13L54HMU/w33Sg==", "dev": true, "license": "MIT", "dependencies": { @@ -9960,271 +10470,30 @@ "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "storybook": "^8.3.6" + "storybook": "^8.4.7" } }, "node_modules/@storybook/core-webpack/node_modules/@types/node": { - "version": "22.7.7", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.7.7.tgz", - "integrity": "sha512-SRxCrrg9CL/y54aiMCG3edPKdprgMVGDXjA3gB8UmmBW5TcXzRUYAh8EWzTnSJFAd1rgImPELza+A3bJ+qxz8Q==", + "version": "22.10.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.2.tgz", + "integrity": "sha512-Xxr6BBRCAOQixvonOye19wnzyDiUtTeqldOOmj3CkeblonbccA12PFwlufvRdrpjXxqnmUaeiU5EOA+7s5diUQ==", "dev": true, "license": "MIT", "dependencies": { - "undici-types": "~6.19.2" + "undici-types": "~6.20.0" } }, "node_modules/@storybook/core-webpack/node_modules/undici-types": { - "version": "6.19.8", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", - "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", + "version": "6.20.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", + "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", "dev": true, "license": "MIT" }, - "node_modules/@storybook/core/node_modules/@types/express": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz", - "integrity": "sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.33", - "@types/qs": "*", - "@types/serve-static": "*" - } - }, - "node_modules/@storybook/core/node_modules/@types/express-serve-static-core": { - "version": "4.19.6", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.6.tgz", - "integrity": "sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*", - "@types/send": "*" - } - }, - "node_modules/@storybook/core/node_modules/body-parser": { - "version": "1.20.3", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz", - "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==", - "dev": true, - "license": "MIT", - "dependencies": { - "bytes": "3.1.2", - "content-type": "~1.0.5", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.13.0", - "raw-body": "2.5.2", - "type-is": "~1.6.18", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/@storybook/core/node_modules/cookie": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz", - "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/@storybook/core/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/@storybook/core/node_modules/encodeurl": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", - "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/@storybook/core/node_modules/express": { - "version": "4.21.1", - "resolved": "https://registry.npmjs.org/express/-/express-4.21.1.tgz", - "integrity": "sha512-YSFlK1Ee0/GC8QaO91tHcDxJiE/X4FbpAyQWkxAvG6AXCuR65YzK8ua6D9hvi/TzUfZMpc+BwuM1IPw8fmQBiQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.20.3", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.7.1", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "2.0.0", - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "1.3.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "merge-descriptors": "1.0.3", - "methods": "~1.1.2", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.10", - "proxy-addr": "~2.0.7", - "qs": "6.13.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.19.0", - "serve-static": "1.16.2", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/@storybook/core/node_modules/finalhandler": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz", - "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "2.6.9", - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "statuses": "2.0.1", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/@storybook/core/node_modules/merge-descriptors": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", - "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@storybook/core/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true, - "license": "MIT" - }, - "node_modules/@storybook/core/node_modules/path-to-regexp": { - "version": "0.1.10", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.10.tgz", - "integrity": "sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==", - "dev": true, - "license": "MIT" - }, - "node_modules/@storybook/core/node_modules/qs": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", - "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "side-channel": "^1.0.6" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/@storybook/core/node_modules/send": { - "version": "0.19.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", - "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "2.4.1", - "range-parser": "~1.2.1", - "statuses": "2.0.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/@storybook/core/node_modules/send/node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/@storybook/core/node_modules/send/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@storybook/core/node_modules/serve-static": { - "version": "1.16.2", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", - "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", - "dev": true, - "license": "MIT", - "dependencies": { - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.19.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, "node_modules/@storybook/csf": { - "version": "0.1.11", - "resolved": "https://registry.npmjs.org/@storybook/csf/-/csf-0.1.11.tgz", - "integrity": "sha512-dHYFQH3mA+EtnCkHXzicbLgsvzYjcDJ1JWsogbItZogkPHgSJM/Wr71uMkcvw8v9mmCyP4NpXJuu6bPoVsOnzg==", + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/@storybook/csf/-/csf-0.1.13.tgz", + "integrity": "sha512-7xOOwCLGB3ebM87eemep89MYRFTko+D8qE7EdAAq74lgdqRR5cOUtYWJLjO2dLtP94nqoOdHJo6MdLLKzg412Q==", "dev": true, "license": "MIT", "dependencies": { @@ -10232,9 +10501,9 @@ } }, "node_modules/@storybook/csf-plugin": { - "version": "8.3.6", - "resolved": "https://registry.npmjs.org/@storybook/csf-plugin/-/csf-plugin-8.3.6.tgz", - "integrity": "sha512-TJyJPFejO6Gyr3+bXqE/+LomQbivvfHEbee/GwtlRj0XF4KQlqnvuEdEdcK25JbD0NXT8AbyncEUmjoxE7ojQw==", + "version": "8.4.7", + "resolved": "https://registry.npmjs.org/@storybook/csf-plugin/-/csf-plugin-8.4.7.tgz", + "integrity": "sha512-Fgogplu4HImgC+AYDcdGm1rmL6OR1rVdNX1Be9C/NEXwOCpbbBwi0BxTf/2ZxHRk9fCeaPEcOdP5S8QHfltc1g==", "dev": true, "license": "MIT", "dependencies": { @@ -10245,7 +10514,20 @@ "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "storybook": "^8.3.6" + "storybook": "^8.4.7" + } + }, + "node_modules/@storybook/csf/node_modules/type-fest": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", + "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/@storybook/global": { @@ -10255,43 +10537,28 @@ "dev": true, "license": "MIT" }, - "node_modules/@storybook/icons": { - "version": "1.2.12", - "resolved": "https://registry.npmjs.org/@storybook/icons/-/icons-1.2.12.tgz", - "integrity": "sha512-UxgyK5W3/UV4VrI3dl6ajGfHM4aOqMAkFLWe2KibeQudLf6NJpDrDMSHwZj+3iKC4jFU7dkKbbtH2h/al4sW3Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" - } - }, "node_modules/@storybook/instrumenter": { - "version": "8.3.6", - "resolved": "https://registry.npmjs.org/@storybook/instrumenter/-/instrumenter-8.3.6.tgz", - "integrity": "sha512-0RowbKwoB/s7rtymlnKNiyWN1Z3ZK5mwgzVjlRmzxDL8hrdi5KDjTNExuJTRR3ZaBP2RR0/I3m/n0p9JhHAZvg==", + "version": "8.4.7", + "resolved": "https://registry.npmjs.org/@storybook/instrumenter/-/instrumenter-8.4.7.tgz", + "integrity": "sha512-k6NSD3jaRCCHAFtqXZ7tw8jAzD/yTEWXGya+REgZqq5RCkmJ+9S4Ytp/6OhQMPtPFX23gAuJJzTQVLcCr+gjRg==", "dev": true, "license": "MIT", "dependencies": { "@storybook/global": "^5.0.0", - "@vitest/utils": "^2.0.5", - "util": "^0.12.4" + "@vitest/utils": "^2.1.1" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "storybook": "^8.3.6" + "storybook": "^8.4.7" } }, "node_modules/@storybook/manager-api": { - "version": "8.3.6", - "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-8.3.6.tgz", - "integrity": "sha512-Xt5VFZcL+G/9uzaHjzWFhxRNrP+4rPhSRKEvCZorAbC9+Hv+ZDs1JSZS5wMb4WKpXBZ0rwDVOLwngqbVtfRHuQ==", + "version": "8.4.7", + "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-8.4.7.tgz", + "integrity": "sha512-ELqemTviCxAsZ5tqUz39sDmQkvhVAvAgiplYy9Uf15kO0SP2+HKsCMzlrm2ue2FfkUNyqbDayCPPCB0Cdn/mpQ==", "dev": true, "license": "MIT", "funding": { @@ -10299,13 +10566,13 @@ "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "storybook": "^8.3.6" + "storybook": "^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0" } }, "node_modules/@storybook/preview-api": { - "version": "8.3.6", - "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-8.3.6.tgz", - "integrity": "sha512-/Wxvb7wbI2O2iH63arRQQyyojA630vibdshkFjuC/u1nYdptEV1jkxa0OYmbZbKCn4/ze6uH4hfsKOpDPV9SWg==", + "version": "8.4.7", + "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-8.4.7.tgz", + "integrity": "sha512-0QVQwHw+OyZGHAJEXo6Knx+6/4er7n2rTDE5RYJ9F2E2Lg42E19pfdLlq2Jhoods2Xrclo3wj6GWR//Ahi39Eg==", "dev": true, "license": "MIT", "funding": { @@ -10313,54 +10580,37 @@ "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "storybook": "^8.3.6" - } - }, - "node_modules/@storybook/react-dom-shim": { - "version": "8.3.6", - "resolved": "https://registry.npmjs.org/@storybook/react-dom-shim/-/react-dom-shim-8.3.6.tgz", - "integrity": "sha512-9BO6VXIdli4GHSfiP/Z0gwAf7oQig3D/yWK2U1+91UWDV8nIAgnNBAi76U4ORC6MiK5MdkDfIikIxnLLeLnahA==", - "dev": true, - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", - "storybook": "^8.3.6" + "storybook": "^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0" } }, "node_modules/@storybook/test": { - "version": "8.3.6", - "resolved": "https://registry.npmjs.org/@storybook/test/-/test-8.3.6.tgz", - "integrity": "sha512-WIc8LzK9jaEw+e3OiweEM2j3cppPzsWod59swuf6gDBf176EQLIyjtVc+Kh3qO4NNkcL+lwmqaLPjOxlBLaDbg==", + "version": "8.4.7", + "resolved": "https://registry.npmjs.org/@storybook/test/-/test-8.4.7.tgz", + "integrity": "sha512-AhvJsu5zl3uG40itSQVuSy5WByp3UVhS6xAnme4FWRwgSxhvZjATJ3AZkkHWOYjnnk+P2/sbz/XuPli1FVCWoQ==", "dev": true, "license": "MIT", "dependencies": { "@storybook/csf": "^0.1.11", "@storybook/global": "^5.0.0", - "@storybook/instrumenter": "8.3.6", + "@storybook/instrumenter": "8.4.7", "@testing-library/dom": "10.4.0", "@testing-library/jest-dom": "6.5.0", "@testing-library/user-event": "14.5.2", "@vitest/expect": "2.0.5", - "@vitest/spy": "2.0.5", - "util": "^0.12.4" + "@vitest/spy": "2.0.5" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "storybook": "^8.3.6" + "storybook": "^8.4.7" } }, "node_modules/@storybook/theming": { - "version": "8.3.6", - "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-8.3.6.tgz", - "integrity": "sha512-LQjUk6GXRW9ELkoBKuqzQKFUW+ajfGPfVELcfs3/VQX61VhthJ4olov4bGPc04wsmmFMgN/qODxT485IwOHfPQ==", + "version": "8.4.7", + "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-8.4.7.tgz", + "integrity": "sha512-99rgLEjf7iwfSEmdqlHkSG3AyLcK0sfExcr0jnc6rLiAkBhzuIsvcHjjUwkR210SOCgXqBPW0ZA6uhnuyppHLw==", "dev": true, "license": "MIT", "funding": { @@ -10368,27 +10618,33 @@ "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "storybook": "^8.3.6" + "storybook": "^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0" } }, "node_modules/@stripe/stripe-js": { - "version": "4.9.0", - "resolved": "https://registry.npmjs.org/@stripe/stripe-js/-/stripe-js-4.9.0.tgz", - "integrity": "sha512-tMPZQZZXGWyNX7hbgenq+1xEj2oigJ54XddbtSX36VedoKsPBq7dxwRXu4Xd5FdpT3JDyyDtnmvYkaSnH1yHTQ==", + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@stripe/stripe-js/-/stripe-js-5.4.0.tgz", + "integrity": "sha512-3tfMbSvLGB+OsJ2MsjWjWo+7sp29dwx+3+9kG/TEnZQJt+EwbF/Nomm43cSK+6oXZA9uhspgyrB+BbrPRumx4g==", "license": "MIT", "engines": { "node": ">=12.16" } }, "node_modules/@swc/helpers": { - "version": "0.5.13", - "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.13.tgz", - "integrity": "sha512-UoKGxQ3r5kYI9dALKJapMmuK+1zWM/H17Z1+iwnNmzcJRnfFuevZs375TA5rW31pu4BS4NoSy1fRsexDXfWn5w==", + "version": "0.5.15", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.15.tgz", + "integrity": "sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==", "license": "Apache-2.0", "dependencies": { - "tslib": "^2.4.0" + "tslib": "^2.8.0" } }, + "node_modules/@swc/helpers/node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" + }, "node_modules/@szmarczak/http-timer": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", @@ -10422,60 +10678,49 @@ } }, "node_modules/@testing-library/dom/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", "dev": true, "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, "engines": { - "node": ">=8" + "node": ">=10" }, "funding": { "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@testing-library/dom/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/@testing-library/dom/node_modules/aria-query": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", + "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "dequal": "^2.0.3" + } + }, + "node_modules/@testing-library/dom/node_modules/pretty-format": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", + "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", "dev": true, "license": "MIT", "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "node_modules/@testing-library/dom/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "node_modules/@testing-library/dom/node_modules/react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/@testing-library/dom/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } + "license": "MIT" }, "node_modules/@testing-library/jest-dom": { "version": "6.5.0", @@ -10498,22 +10743,6 @@ "yarn": ">=1" } }, - "node_modules/@testing-library/jest-dom/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, "node_modules/@testing-library/jest-dom/node_modules/chalk": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", @@ -10535,29 +10764,6 @@ "dev": true, "license": "MIT" }, - "node_modules/@testing-library/jest-dom/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/@testing-library/jest-dom/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/@testing-library/user-event": { "version": "14.5.2", "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-14.5.2.tgz", @@ -10621,6 +10827,20 @@ "node": ">=6.9.0" } }, + "node_modules/@trivago/prettier-plugin-sort-imports/node_modules/@babel/generator/node_modules/@babel/types": { + "version": "7.26.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.3.tgz", + "integrity": "sha512-vN5p+1kl59GVKMvTHt55NzzmYVxprfJD+ql7U9NFIfKCBkYE55LYtS+WtPlaYOyzydrKI8Nezd+aZextrd+FMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@trivago/prettier-plugin-sort-imports/node_modules/@babel/traverse": { "version": "7.23.2", "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.2.tgz", @@ -10644,13 +10864,14 @@ } }, "node_modules/@trivago/prettier-plugin-sort-imports/node_modules/@babel/traverse/node_modules/@babel/generator": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.25.7.tgz", - "integrity": "sha512-5Dqpl5fyV9pIAD62yK9P7fcA768uVPUyrQmqpqstHWgMma4feF1x/oFysBCVZLY5wJ2GkMUCdsNDnGZrPoR6rA==", + "version": "7.26.3", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.3.tgz", + "integrity": "sha512-6FF/urZvD0sTeO7k6/B15pMLC4CHUv1426lzr3N01aHJTl046uCAh9LXW/fzeXXjPNCJ6iABW5XaWOsIZB93aQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.25.7", + "@babel/parser": "^7.26.3", + "@babel/types": "^7.26.3", "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25", "jsesc": "^3.0.2" @@ -10660,24 +10881,23 @@ } }, "node_modules/@trivago/prettier-plugin-sort-imports/node_modules/@babel/traverse/node_modules/@babel/types": { - "version": "7.25.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.8.tgz", - "integrity": "sha512-JWtuCu8VQsMladxVz/P4HzHUGCAwpuqacmowgXFs5XjxIgKuNjnLokQzuVjlTvIzODaDmpjT3oxcC48vyk9EWg==", + "version": "7.26.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.3.tgz", + "integrity": "sha512-vN5p+1kl59GVKMvTHt55NzzmYVxprfJD+ql7U9NFIfKCBkYE55LYtS+WtPlaYOyzydrKI8Nezd+aZextrd+FMA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-string-parser": "^7.25.7", - "@babel/helper-validator-identifier": "^7.25.7", - "to-fast-properties": "^2.0.0" + "@babel/helper-string-parser": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@trivago/prettier-plugin-sort-imports/node_modules/@babel/traverse/node_modules/jsesc": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", - "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", "dev": true, "license": "MIT", "bin": { @@ -10701,6 +10921,19 @@ "node": ">=6.9.0" } }, + "node_modules/@trivago/prettier-plugin-sort-imports/node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/@trivago/prettier-plugin-sort-imports/node_modules/source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", @@ -10756,17 +10989,17 @@ } }, "node_modules/@tufjs/models": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@tufjs/models/-/models-2.0.1.tgz", - "integrity": "sha512-92F7/SFyufn4DXsha9+QfKnN03JGqtMFMXgSHbZOo8JG59WkTni7UzAouNQDf7AuP9OAMxVOPQcqG3sB7w+kkg==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@tufjs/models/-/models-3.0.1.tgz", + "integrity": "sha512-UUYHISyhCU3ZgN8yaear3cGATHb3SMuKHsQ/nVbHXcmnBf+LzQ/cQfhNG+rfaSHgqGKNEm2cOCLVLELStUQ1JA==", "dev": true, "license": "MIT", "dependencies": { "@tufjs/canonical-json": "2.0.0", - "minimatch": "^9.0.4" + "minimatch": "^9.0.5" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/@tufjs/models/node_modules/minimatch": { @@ -10795,6 +11028,13 @@ "tslib": "^2.4.0" } }, + "node_modules/@tybys/wasm-util/node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "dev": true, + "license": "0BSD" + }, "node_modules/@types/aria-query": { "version": "5.0.4", "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.4.tgz", @@ -10864,6 +11104,21 @@ "@types/node": "*" } }, + "node_modules/@types/body-parser/node_modules/@types/node": { + "version": "22.10.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.2.tgz", + "integrity": "sha512-Xxr6BBRCAOQixvonOye19wnzyDiUtTeqldOOmj3CkeblonbccA12PFwlufvRdrpjXxqnmUaeiU5EOA+7s5diUQ==", + "license": "MIT", + "dependencies": { + "undici-types": "~6.20.0" + } + }, + "node_modules/@types/body-parser/node_modules/undici-types": { + "version": "6.20.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", + "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", + "license": "MIT" + }, "node_modules/@types/bonjour": { "version": "3.5.13", "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.13.tgz", @@ -10873,6 +11128,21 @@ "@types/node": "*" } }, + "node_modules/@types/bonjour/node_modules/@types/node": { + "version": "22.10.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.2.tgz", + "integrity": "sha512-Xxr6BBRCAOQixvonOye19wnzyDiUtTeqldOOmj3CkeblonbccA12PFwlufvRdrpjXxqnmUaeiU5EOA+7s5diUQ==", + "license": "MIT", + "dependencies": { + "undici-types": "~6.20.0" + } + }, + "node_modules/@types/bonjour/node_modules/undici-types": { + "version": "6.20.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", + "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", + "license": "MIT" + }, "node_modules/@types/cache-manager": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/@types/cache-manager/-/cache-manager-4.0.6.tgz", @@ -10892,6 +11162,21 @@ "@types/responselike": "^1.0.0" } }, + "node_modules/@types/cacheable-request/node_modules/@types/node": { + "version": "22.10.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.2.tgz", + "integrity": "sha512-Xxr6BBRCAOQixvonOye19wnzyDiUtTeqldOOmj3CkeblonbccA12PFwlufvRdrpjXxqnmUaeiU5EOA+7s5diUQ==", + "license": "MIT", + "dependencies": { + "undici-types": "~6.20.0" + } + }, + "node_modules/@types/cacheable-request/node_modules/undici-types": { + "version": "6.20.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", + "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", + "license": "MIT" + }, "node_modules/@types/color": { "version": "3.0.6", "resolved": "https://registry.npmjs.org/@types/color/-/color-3.0.6.tgz", @@ -10938,6 +11223,36 @@ "@types/node": "*" } }, + "node_modules/@types/connect-history-api-fallback/node_modules/@types/node": { + "version": "22.10.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.2.tgz", + "integrity": "sha512-Xxr6BBRCAOQixvonOye19wnzyDiUtTeqldOOmj3CkeblonbccA12PFwlufvRdrpjXxqnmUaeiU5EOA+7s5diUQ==", + "license": "MIT", + "dependencies": { + "undici-types": "~6.20.0" + } + }, + "node_modules/@types/connect-history-api-fallback/node_modules/undici-types": { + "version": "6.20.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", + "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", + "license": "MIT" + }, + "node_modules/@types/connect/node_modules/@types/node": { + "version": "22.10.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.2.tgz", + "integrity": "sha512-Xxr6BBRCAOQixvonOye19wnzyDiUtTeqldOOmj3CkeblonbccA12PFwlufvRdrpjXxqnmUaeiU5EOA+7s5diUQ==", + "license": "MIT", + "dependencies": { + "undici-types": "~6.20.0" + } + }, + "node_modules/@types/connect/node_modules/undici-types": { + "version": "6.20.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", + "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", + "license": "MIT" + }, "node_modules/@types/d3-scale": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-4.0.8.tgz", @@ -10949,16 +11264,16 @@ } }, "node_modules/@types/d3-scale-chromatic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/d3-scale-chromatic/-/d3-scale-chromatic-3.0.3.tgz", - "integrity": "sha512-laXM4+1o5ImZv3RpFAsTRn3TEkzqkytiOY0Dz0sq5cnd1dtNlk6sHLon4OvqaiJb28T0S/TdsBI3Sjsy+keJrw==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@types/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz", + "integrity": "sha512-iWMJgwkK7yTRmWqRB5plb1kadXyQ5Sj8V/zYlFGMUBbIPKQScw+Dku9cAAMgJG+z5GYDoMjWGLVOvjghDEFnKQ==", "license": "MIT", "optional": true }, "node_modules/@types/d3-time": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/d3-time/-/d3-time-3.0.3.tgz", - "integrity": "sha512-2p6olUZ4w3s+07q3Tm2dbiMZy5pCDfYwtLXXHUnVzXgQlZ/OyPtUz6OL382BkOuGlLXqfT+wqv8Fw2v8/0geBw==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/d3-time/-/d3-time-3.0.4.tgz", + "integrity": "sha512-yuzZug1nkAAaBlBBikKZTgzCeA+k1uy4ZFwWANOfKw5z5LRhV0gNA7gNkKm7HoK+HRN0wX3EkxGk0fpbWhmB7g==", "license": "MIT", "optional": true }, @@ -10972,28 +11287,48 @@ "@types/ms": "*" } }, + "node_modules/@types/eslint": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-9.6.1.tgz", + "integrity": "sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==", + "license": "MIT", + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/eslint-scope": { + "version": "3.7.7", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", + "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", + "license": "MIT", + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, "node_modules/@types/estree": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", - "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", "license": "MIT" }, "node_modules/@types/express": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@types/express/-/express-5.0.0.tgz", - "integrity": "sha512-DvZriSMehGHL1ZNLzi6MidnsDhUZM/x2pRdDIKdwbUNqqwHxMlRdkxtn6/EPKyqKpHqTl/4nRZsRNLpZxZRpPQ==", + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz", + "integrity": "sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==", "license": "MIT", "dependencies": { "@types/body-parser": "*", - "@types/express-serve-static-core": "^5.0.0", + "@types/express-serve-static-core": "^4.17.33", "@types/qs": "*", "@types/serve-static": "*" } }, "node_modules/@types/express-serve-static-core": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-5.0.0.tgz", - "integrity": "sha512-AbXMTZGt40T+KON9/Fdxx0B2WK5hsgxcfXJLr5bFpZ7b4JCex2WyQPTEKdXqfHiY5nKKBScZ7yCoO6Pvgxfvnw==", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-5.0.2.tgz", + "integrity": "sha512-vluaspfvWEtE4vcSDlKRNer52DvOGrB2xv6diXy6UKyKW0lqZiWHGNApSyxOv+8DE5Z27IzVvE7hNkxg7EXIcg==", "license": "MIT", "dependencies": { "@types/node": "*", @@ -11002,6 +11337,48 @@ "@types/send": "*" } }, + "node_modules/@types/express-serve-static-core/node_modules/@types/node": { + "version": "22.10.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.2.tgz", + "integrity": "sha512-Xxr6BBRCAOQixvonOye19wnzyDiUtTeqldOOmj3CkeblonbccA12PFwlufvRdrpjXxqnmUaeiU5EOA+7s5diUQ==", + "license": "MIT", + "dependencies": { + "undici-types": "~6.20.0" + } + }, + "node_modules/@types/express-serve-static-core/node_modules/undici-types": { + "version": "6.20.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", + "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", + "license": "MIT" + }, + "node_modules/@types/express/node_modules/@types/express-serve-static-core": { + "version": "4.19.6", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.6.tgz", + "integrity": "sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A==", + "license": "MIT", + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*", + "@types/send": "*" + } + }, + "node_modules/@types/express/node_modules/@types/node": { + "version": "22.10.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.2.tgz", + "integrity": "sha512-Xxr6BBRCAOQixvonOye19wnzyDiUtTeqldOOmj3CkeblonbccA12PFwlufvRdrpjXxqnmUaeiU5EOA+7s5diUQ==", + "license": "MIT", + "dependencies": { + "undici-types": "~6.20.0" + } + }, + "node_modules/@types/express/node_modules/undici-types": { + "version": "6.20.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", + "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", + "license": "MIT" + }, "node_modules/@types/google-spreadsheet": { "version": "3.1.5", "resolved": "https://registry.npmjs.org/@types/google-spreadsheet/-/google-spreadsheet-3.1.5.tgz", @@ -11019,16 +11396,23 @@ "@types/node": "*" } }, - "node_modules/@types/hast": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", - "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", - "dev": true, + "node_modules/@types/graceful-fs/node_modules/@types/node": { + "version": "22.10.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.2.tgz", + "integrity": "sha512-Xxr6BBRCAOQixvonOye19wnzyDiUtTeqldOOmj3CkeblonbccA12PFwlufvRdrpjXxqnmUaeiU5EOA+7s5diUQ==", + "devOptional": true, "license": "MIT", "dependencies": { - "@types/unist": "*" + "undici-types": "~6.20.0" } }, + "node_modules/@types/graceful-fs/node_modules/undici-types": { + "version": "6.20.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", + "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", + "devOptional": true, + "license": "MIT" + }, "node_modules/@types/html-minifier-terser": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", @@ -11057,6 +11441,21 @@ "@types/node": "*" } }, + "node_modules/@types/http-proxy/node_modules/@types/node": { + "version": "22.10.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.2.tgz", + "integrity": "sha512-Xxr6BBRCAOQixvonOye19wnzyDiUtTeqldOOmj3CkeblonbccA12PFwlufvRdrpjXxqnmUaeiU5EOA+7s5diUQ==", + "license": "MIT", + "dependencies": { + "undici-types": "~6.20.0" + } + }, + "node_modules/@types/http-proxy/node_modules/undici-types": { + "version": "6.20.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", + "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", + "license": "MIT" + }, "node_modules/@types/istanbul-lib-coverage": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", @@ -11095,41 +11494,6 @@ "pretty-format": "^29.0.0" } }, - "node_modules/@types/jest/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@types/jest/node_modules/pretty-format": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", - "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/schemas": "^29.6.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@types/jest/node_modules/react-is": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", - "dev": true, - "license": "MIT" - }, "node_modules/@types/jsdom": { "version": "20.0.1", "resolved": "https://registry.npmjs.org/@types/jsdom/-/jsdom-20.0.1.tgz", @@ -11142,6 +11506,23 @@ "parse5": "^7.0.0" } }, + "node_modules/@types/jsdom/node_modules/@types/node": { + "version": "22.10.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.2.tgz", + "integrity": "sha512-Xxr6BBRCAOQixvonOye19wnzyDiUtTeqldOOmj3CkeblonbccA12PFwlufvRdrpjXxqnmUaeiU5EOA+7s5diUQ==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "undici-types": "~6.20.0" + } + }, + "node_modules/@types/jsdom/node_modules/undici-types": { + "version": "6.20.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", + "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", + "devOptional": true, + "license": "MIT" + }, "node_modules/@types/json-schema": { "version": "7.0.15", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", @@ -11164,6 +11545,21 @@ "@types/node": "*" } }, + "node_modules/@types/jsonwebtoken/node_modules/@types/node": { + "version": "22.10.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.2.tgz", + "integrity": "sha512-Xxr6BBRCAOQixvonOye19wnzyDiUtTeqldOOmj3CkeblonbccA12PFwlufvRdrpjXxqnmUaeiU5EOA+7s5diUQ==", + "license": "MIT", + "dependencies": { + "undici-types": "~6.20.0" + } + }, + "node_modules/@types/jsonwebtoken/node_modules/undici-types": { + "version": "6.20.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", + "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", + "license": "MIT" + }, "node_modules/@types/keyv": { "version": "3.1.4", "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz", @@ -11173,6 +11569,21 @@ "@types/node": "*" } }, + "node_modules/@types/keyv/node_modules/@types/node": { + "version": "22.10.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.2.tgz", + "integrity": "sha512-Xxr6BBRCAOQixvonOye19wnzyDiUtTeqldOOmj3CkeblonbccA12PFwlufvRdrpjXxqnmUaeiU5EOA+7s5diUQ==", + "license": "MIT", + "dependencies": { + "undici-types": "~6.20.0" + } + }, + "node_modules/@types/keyv/node_modules/undici-types": { + "version": "6.20.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", + "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", + "license": "MIT" + }, "node_modules/@types/lodash": { "version": "4.17.7", "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.7.tgz", @@ -11210,15 +11621,6 @@ "license": "MIT", "optional": true }, - "node_modules/@types/mute-stream": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/@types/mute-stream/-/mute-stream-0.0.4.tgz", - "integrity": "sha512-CPM9nzrCPPJHQNA9keH9CVkVI+WR5kMa+7XEs5jcGQ0VoAGnLv242w8lIVgwAEfmE4oufJRaTc9PNLQl0ioAow==", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, "node_modules/@types/node": { "version": "20.14.10", "resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.10.tgz", @@ -11237,6 +11639,21 @@ "@types/node": "*" } }, + "node_modules/@types/node-forge/node_modules/@types/node": { + "version": "22.10.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.2.tgz", + "integrity": "sha512-Xxr6BBRCAOQixvonOye19wnzyDiUtTeqldOOmj3CkeblonbccA12PFwlufvRdrpjXxqnmUaeiU5EOA+7s5diUQ==", + "license": "MIT", + "dependencies": { + "undici-types": "~6.20.0" + } + }, + "node_modules/@types/node-forge/node_modules/undici-types": { + "version": "6.20.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", + "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", + "license": "MIT" + }, "node_modules/@types/oauth": { "version": "0.9.6", "resolved": "https://registry.npmjs.org/@types/oauth/-/oauth-0.9.6.tgz", @@ -11247,6 +11664,23 @@ "@types/node": "*" } }, + "node_modules/@types/oauth/node_modules/@types/node": { + "version": "22.10.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.2.tgz", + "integrity": "sha512-Xxr6BBRCAOQixvonOye19wnzyDiUtTeqldOOmj3CkeblonbccA12PFwlufvRdrpjXxqnmUaeiU5EOA+7s5diUQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~6.20.0" + } + }, + "node_modules/@types/oauth/node_modules/undici-types": { + "version": "6.20.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", + "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", + "dev": true, + "license": "MIT" + }, "node_modules/@types/papaparse": { "version": "5.3.7", "resolved": "https://registry.npmjs.org/@types/papaparse/-/papaparse-5.3.7.tgz", @@ -11257,6 +11691,23 @@ "@types/node": "*" } }, + "node_modules/@types/papaparse/node_modules/@types/node": { + "version": "22.10.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.2.tgz", + "integrity": "sha512-Xxr6BBRCAOQixvonOye19wnzyDiUtTeqldOOmj3CkeblonbccA12PFwlufvRdrpjXxqnmUaeiU5EOA+7s5diUQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~6.20.0" + } + }, + "node_modules/@types/papaparse/node_modules/undici-types": { + "version": "6.20.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", + "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", + "dev": true, + "license": "MIT" + }, "node_modules/@types/parse-json": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz", @@ -11265,9 +11716,9 @@ "license": "MIT" }, "node_modules/@types/passport": { - "version": "1.0.16", - "resolved": "https://registry.npmjs.org/@types/passport/-/passport-1.0.16.tgz", - "integrity": "sha512-FD0qD5hbPWQzaM0wHUnJ/T0BBCJBxCeemtnCwc/ThhTg3x9jfrAcRUmj5Dopza+MfFS9acTe3wk7rcVnRIp/0A==", + "version": "1.0.17", + "resolved": "https://registry.npmjs.org/@types/passport/-/passport-1.0.17.tgz", + "integrity": "sha512-aciLyx+wDwT2t2/kJGJR2AEeBz0nJU4WuRX04Wu9Dqc5lSUtwu0WERPHYsLhF9PtseiAMPBGNUOtFjxZ56prsg==", "dev": true, "license": "MIT", "dependencies": { @@ -11286,6 +11737,19 @@ "@types/passport-oauth2": "*" } }, + "node_modules/@types/passport-google-oauth20/node_modules/@types/express": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@types/express/-/express-5.0.0.tgz", + "integrity": "sha512-DvZriSMehGHL1ZNLzi6MidnsDhUZM/x2pRdDIKdwbUNqqwHxMlRdkxtn6/EPKyqKpHqTl/4nRZsRNLpZxZRpPQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^5.0.0", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, "node_modules/@types/passport-oauth2": { "version": "1.4.17", "resolved": "https://registry.npmjs.org/@types/passport-oauth2/-/passport-oauth2-1.4.17.tgz", @@ -11298,17 +11762,43 @@ "@types/passport": "*" } }, + "node_modules/@types/passport-oauth2/node_modules/@types/express": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@types/express/-/express-5.0.0.tgz", + "integrity": "sha512-DvZriSMehGHL1ZNLzi6MidnsDhUZM/x2pRdDIKdwbUNqqwHxMlRdkxtn6/EPKyqKpHqTl/4nRZsRNLpZxZRpPQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^5.0.0", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "node_modules/@types/passport/node_modules/@types/express": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@types/express/-/express-5.0.0.tgz", + "integrity": "sha512-DvZriSMehGHL1ZNLzi6MidnsDhUZM/x2pRdDIKdwbUNqqwHxMlRdkxtn6/EPKyqKpHqTl/4nRZsRNLpZxZRpPQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^5.0.0", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, "node_modules/@types/prop-types": { - "version": "15.7.13", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.13.tgz", - "integrity": "sha512-hCZTSvwbzWGvhqxp/RqVqwU999pBf2vp7hzIjiYOsl8wqOmUxkQ6ddw1cV3l8811+kdUFus/q4d1Y3E3SyEifA==", + "version": "15.7.14", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.14.tgz", + "integrity": "sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ==", "dev": true, "license": "MIT" }, "node_modules/@types/qs": { - "version": "6.9.16", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.16.tgz", - "integrity": "sha512-7i+zxXdPD0T4cKDuxCUXJ4wHcsJLwENa6Z3dCu8cfCK743OGy5Nu1RmAGqDPsoTDINVEcdXKRvR/zre+P2Ku1A==", + "version": "6.9.17", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.17.tgz", + "integrity": "sha512-rX4/bPcfmvxHDv0XjfJELTTr+iB+tn032nPILqHm5wbthUUUuVtNGGqzhya9XUxjTP8Fpr0qYgSZZKxGY++svQ==", "license": "MIT" }, "node_modules/@types/range-parser": { @@ -11318,9 +11808,9 @@ "license": "MIT" }, "node_modules/@types/react": { - "version": "18.3.11", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.11.tgz", - "integrity": "sha512-r6QZ069rFTjrEYgFdOck1gK7FLVsgJE7tTz0pQBczlBNUhBNk0MQH4UbnFSwjpQLMkLzgqvBBa+qGpLje16eTQ==", + "version": "18.3.18", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.18.tgz", + "integrity": "sha512-t4yC+vtgnkYjNSKlFx1jkAhH8LgTo2N/7Qvi83kdEaUtMDiwpbLAktKDaAMlRcJ5eSxZkH74eEGt1ky31d7kfQ==", "dev": true, "license": "MIT", "dependencies": { @@ -11329,13 +11819,13 @@ } }, "node_modules/@types/react-dom": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.1.tgz", - "integrity": "sha512-qW1Mfv8taImTthu4KoXgDfLuk4bydU6Q/TkADnDWWHwi4NX4BR+LWfTp2sVmTqRrsHvyDDTelgelxJ+SsejKKQ==", + "version": "18.3.5", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.5.tgz", + "integrity": "sha512-P4t6saawp+b/dFrUr2cvkVsfvPguwsxtH6dNIYRllMsefqFzkZk5UIjzyDOv5g1dXIPdG4Sp1yCR4Z6RCUsG/Q==", "dev": true, "license": "MIT", - "dependencies": { - "@types/react": "*" + "peerDependencies": { + "@types/react": "^18.0.0" } }, "node_modules/@types/responselike": { @@ -11347,6 +11837,21 @@ "@types/node": "*" } }, + "node_modules/@types/responselike/node_modules/@types/node": { + "version": "22.10.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.2.tgz", + "integrity": "sha512-Xxr6BBRCAOQixvonOye19wnzyDiUtTeqldOOmj3CkeblonbccA12PFwlufvRdrpjXxqnmUaeiU5EOA+7s5diUQ==", + "license": "MIT", + "dependencies": { + "undici-types": "~6.20.0" + } + }, + "node_modules/@types/responselike/node_modules/undici-types": { + "version": "6.20.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", + "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", + "license": "MIT" + }, "node_modules/@types/retry": { "version": "0.12.2", "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.2.tgz", @@ -11370,6 +11875,21 @@ "@types/node": "*" } }, + "node_modules/@types/send/node_modules/@types/node": { + "version": "22.10.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.2.tgz", + "integrity": "sha512-Xxr6BBRCAOQixvonOye19wnzyDiUtTeqldOOmj3CkeblonbccA12PFwlufvRdrpjXxqnmUaeiU5EOA+7s5diUQ==", + "license": "MIT", + "dependencies": { + "undici-types": "~6.20.0" + } + }, + "node_modules/@types/send/node_modules/undici-types": { + "version": "6.20.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", + "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", + "license": "MIT" + }, "node_modules/@types/serve-index": { "version": "1.9.4", "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.4.tgz", @@ -11379,6 +11899,18 @@ "@types/express": "*" } }, + "node_modules/@types/serve-index/node_modules/@types/express": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@types/express/-/express-5.0.0.tgz", + "integrity": "sha512-DvZriSMehGHL1ZNLzi6MidnsDhUZM/x2pRdDIKdwbUNqqwHxMlRdkxtn6/EPKyqKpHqTl/4nRZsRNLpZxZRpPQ==", + "license": "MIT", + "dependencies": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^5.0.0", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, "node_modules/@types/serve-static": { "version": "1.15.7", "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.7.tgz", @@ -11390,6 +11922,21 @@ "@types/send": "*" } }, + "node_modules/@types/serve-static/node_modules/@types/node": { + "version": "22.10.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.2.tgz", + "integrity": "sha512-Xxr6BBRCAOQixvonOye19wnzyDiUtTeqldOOmj3CkeblonbccA12PFwlufvRdrpjXxqnmUaeiU5EOA+7s5diUQ==", + "license": "MIT", + "dependencies": { + "undici-types": "~6.20.0" + } + }, + "node_modules/@types/serve-static/node_modules/undici-types": { + "version": "6.20.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", + "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", + "license": "MIT" + }, "node_modules/@types/sinonjs__fake-timers": { "version": "6.0.4", "resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-6.0.4.tgz", @@ -11398,9 +11945,9 @@ "license": "MIT" }, "node_modules/@types/sizzle": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.8.tgz", - "integrity": "sha512-0vWLNK2D5MT9dg0iOo8GlKguPAU02QjmZitPEsXRuJXU/OGIOt9vT9Fc26wtYuavLxtO45v9PGleoL9Z0k1LHg==", + "version": "2.3.9", + "resolved": "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.9.tgz", + "integrity": "sha512-xzLEyKB50yqCUPUJkIsrVvoWNfFUbIZI+RspLWt8u+tIW/BetMBZtgV2LY/2o+tYH8dRvQ+eoPf3NdhQCcLE2w==", "dev": true, "license": "MIT" }, @@ -11413,6 +11960,21 @@ "@types/node": "*" } }, + "node_modules/@types/sockjs/node_modules/@types/node": { + "version": "22.10.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.2.tgz", + "integrity": "sha512-Xxr6BBRCAOQixvonOye19wnzyDiUtTeqldOOmj3CkeblonbccA12PFwlufvRdrpjXxqnmUaeiU5EOA+7s5diUQ==", + "license": "MIT", + "dependencies": { + "undici-types": "~6.20.0" + } + }, + "node_modules/@types/sockjs/node_modules/undici-types": { + "version": "6.20.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", + "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", + "license": "MIT" + }, "node_modules/@types/stack-utils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", @@ -11430,8 +11992,8 @@ "version": "2.0.11", "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==", - "devOptional": true, - "license": "MIT" + "license": "MIT", + "optional": true }, "node_modules/@types/uuid": { "version": "9.0.8", @@ -11453,21 +12015,30 @@ "dev": true, "license": "MIT" }, - "node_modules/@types/wrap-ansi": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/wrap-ansi/-/wrap-ansi-3.0.0.tgz", - "integrity": "sha512-ltIpx+kM7g/MLRZfkbL7EsCEjfzCcScLpkg37eXEtx5kmrAKBkTJwd1GIAjDSL8wTpM6Hzn5YO4pSb91BEwu1g==", - "license": "MIT" - }, "node_modules/@types/ws": { - "version": "8.5.12", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.12.tgz", - "integrity": "sha512-3tPRkv1EtkDpzlgyKyI8pGsGZAGPEaXeu0DOj5DI25Ja91bdAYddYHbADRYVrZMRbfW+1l5YwXVDKohDJNQxkQ==", + "version": "8.5.13", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.13.tgz", + "integrity": "sha512-osM/gWBTPKgHV8XkTunnegTRIsvF6owmf5w+JtAfOw472dptdm0dlGv4xCt6GwQRcC2XVOvvRE/0bAoQcL2QkA==", "license": "MIT", "dependencies": { "@types/node": "*" } }, + "node_modules/@types/ws/node_modules/@types/node": { + "version": "22.10.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.2.tgz", + "integrity": "sha512-Xxr6BBRCAOQixvonOye19wnzyDiUtTeqldOOmj3CkeblonbccA12PFwlufvRdrpjXxqnmUaeiU5EOA+7s5diUQ==", + "license": "MIT", + "dependencies": { + "undici-types": "~6.20.0" + } + }, + "node_modules/@types/ws/node_modules/undici-types": { + "version": "6.20.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", + "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", + "license": "MIT" + }, "node_modules/@types/yargs": { "version": "17.0.33", "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.33.tgz", @@ -11549,6 +12120,20 @@ } } }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/types": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.21.0.tgz", + "integrity": "sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/utils": { "version": "6.21.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.21.0.tgz", @@ -11604,6 +12189,20 @@ } } }, + "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/types": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.21.0.tgz", + "integrity": "sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, "node_modules/@typescript-eslint/scope-manager": { "version": "6.21.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.21.0.tgz", @@ -11622,15 +12221,29 @@ "url": "https://opencollective.com/typescript-eslint" } }, + "node_modules/@typescript-eslint/scope-manager/node_modules/@typescript-eslint/types": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.21.0.tgz", + "integrity": "sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, "node_modules/@typescript-eslint/type-utils": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.10.0.tgz", - "integrity": "sha512-PCpUOpyQSpxBn230yIcK+LeCQaXuxrgCm2Zk1S+PTIRJsEfU6nJ0TtwyH8pIwPK/vJoA+7TZtzyAJSGBz+s/dg==", + "version": "8.18.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.18.2.tgz", + "integrity": "sha512-AB/Wr1Lz31bzHfGm/jgbFR0VB0SML/hd2P1yxzKDM48YmP7vbyJNHRExUE/wZsQj2wUCvbWH8poNHFuxLqCTnA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/typescript-estree": "8.10.0", - "@typescript-eslint/utils": "8.10.0", + "@typescript-eslint/typescript-estree": "8.18.2", + "@typescript-eslint/utils": "8.18.2", "debug": "^4.3.4", "ts-api-utils": "^1.3.0" }, @@ -11641,35 +12254,20 @@ "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/types": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.10.0.tgz", - "integrity": "sha512-k/E48uzsfJCRRbGLapdZgrX52csmWJ2rcowwPvOZ8lwPUv3xW6CcFeJAXgx4uJm+Ge4+a4tFOkdYvSpxhRhg1w==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.8.0" } }, "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/typescript-estree": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.10.0.tgz", - "integrity": "sha512-3OE0nlcOHaMvQ8Xu5gAfME3/tWVDpb/HxtpUZ1WeOAksZ/h/gwrBzCklaGzwZT97/lBbbxJ16dMA98JMEngW4w==", + "version": "8.18.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.18.2.tgz", + "integrity": "sha512-WXAVt595HjpmlfH4crSdM/1bcsqh+1weFRWIa9XMTx/XHZ9TCKMcr725tLYqWOgzKdeDrqVHxFotrvWcEsk2Tg==", "dev": true, - "license": "BSD-2-Clause", + "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.10.0", - "@typescript-eslint/visitor-keys": "8.10.0", + "@typescript-eslint/types": "8.18.2", + "@typescript-eslint/visitor-keys": "8.18.2", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", @@ -11684,21 +12282,19 @@ "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "peerDependencies": { + "typescript": ">=4.8.4 <5.8.0" } }, "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/visitor-keys": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.10.0.tgz", - "integrity": "sha512-k8nekgqwr7FadWk548Lfph6V3r9OVqjzAIVskE7orMZR23cGJjAOVazsZSJW+ElyjfTM4wx/1g88Mi70DDtG9A==", + "version": "8.18.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.18.2.tgz", + "integrity": "sha512-zORcwn4C3trOWiCqFQP1x6G3xTRyZ1LYydnj51cRnJ6hxBlr/cKPckk+PKPUw/fXmvfKTcw7bwY3w9izgx5jZw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.10.0", - "eslint-visitor-keys": "^3.4.3" + "@typescript-eslint/types": "8.18.2", + "eslint-visitor-keys": "^4.2.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -11708,6 +12304,19 @@ "url": "https://opencollective.com/typescript-eslint" } }, + "node_modules/@typescript-eslint/type-utils/node_modules/eslint-visitor-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", + "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, "node_modules/@typescript-eslint/type-utils/node_modules/minimatch": { "version": "9.0.5", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", @@ -11725,13 +12334,13 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.21.0.tgz", - "integrity": "sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==", + "version": "8.18.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.18.2.tgz", + "integrity": "sha512-Z/zblEPp8cIvmEn6+tPDIHUbRu/0z5lqZ+NvolL5SvXWT5rQy7+Nch83M0++XzO0XrWRFWECgOAyE8bsJTl1GQ==", "dev": true, "license": "MIT", "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", @@ -11767,17 +12376,47 @@ } } }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/@typescript-eslint/types": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.21.0.tgz", + "integrity": "sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/@typescript-eslint/utils": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.10.0.tgz", - "integrity": "sha512-Oq4uZ7JFr9d1ZunE/QKy5egcDRXT/FrS2z/nlxzPua2VHFtmMvFNDvpq1m/hq0ra+T52aUezfcjGRIB7vNJF9w==", + "version": "8.18.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.18.2.tgz", + "integrity": "sha512-Cr4A0H7DtVIPkauj4sTSXVl+VBWewE9/o40KcF3TV9aqDEOWoXF3/+oRXNby3DYzZeCATvbdksYsGZzplwnK/Q==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "8.10.0", - "@typescript-eslint/types": "8.10.0", - "@typescript-eslint/typescript-estree": "8.10.0" + "@typescript-eslint/scope-manager": "8.18.2", + "@typescript-eslint/types": "8.18.2", + "@typescript-eslint/typescript-estree": "8.18.2" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -11787,18 +12426,19 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0" + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.8.0" } }, "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/scope-manager": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.10.0.tgz", - "integrity": "sha512-AgCaEjhfql9MDKjMUxWvH7HjLeBqMCBfIaBbzzIcBbQPZE7CPh1m6FF+L75NUMJFMLYhCywJXIDEMa3//1A0dw==", + "version": "8.18.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.18.2.tgz", + "integrity": "sha512-YJFSfbd0CJjy14r/EvWapYgV4R5CHzptssoag2M7y3Ra7XNta6GPAJPPP5KGB9j14viYXyrzRO5GkX7CRfo8/g==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.10.0", - "@typescript-eslint/visitor-keys": "8.10.0" + "@typescript-eslint/types": "8.18.2", + "@typescript-eslint/visitor-keys": "8.18.2" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -11808,29 +12448,15 @@ "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/types": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.10.0.tgz", - "integrity": "sha512-k/E48uzsfJCRRbGLapdZgrX52csmWJ2rcowwPvOZ8lwPUv3xW6CcFeJAXgx4uJm+Ge4+a4tFOkdYvSpxhRhg1w==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/typescript-estree": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.10.0.tgz", - "integrity": "sha512-3OE0nlcOHaMvQ8Xu5gAfME3/tWVDpb/HxtpUZ1WeOAksZ/h/gwrBzCklaGzwZT97/lBbbxJ16dMA98JMEngW4w==", + "version": "8.18.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.18.2.tgz", + "integrity": "sha512-WXAVt595HjpmlfH4crSdM/1bcsqh+1weFRWIa9XMTx/XHZ9TCKMcr725tLYqWOgzKdeDrqVHxFotrvWcEsk2Tg==", "dev": true, - "license": "BSD-2-Clause", + "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.10.0", - "@typescript-eslint/visitor-keys": "8.10.0", + "@typescript-eslint/types": "8.18.2", + "@typescript-eslint/visitor-keys": "8.18.2", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", @@ -11845,21 +12471,19 @@ "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "peerDependencies": { + "typescript": ">=4.8.4 <5.8.0" } }, "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/visitor-keys": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.10.0.tgz", - "integrity": "sha512-k8nekgqwr7FadWk548Lfph6V3r9OVqjzAIVskE7orMZR23cGJjAOVazsZSJW+ElyjfTM4wx/1g88Mi70DDtG9A==", + "version": "8.18.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.18.2.tgz", + "integrity": "sha512-zORcwn4C3trOWiCqFQP1x6G3xTRyZ1LYydnj51cRnJ6hxBlr/cKPckk+PKPUw/fXmvfKTcw7bwY3w9izgx5jZw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.10.0", - "eslint-visitor-keys": "^3.4.3" + "@typescript-eslint/types": "8.18.2", + "eslint-visitor-keys": "^4.2.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -11869,6 +12493,19 @@ "url": "https://opencollective.com/typescript-eslint" } }, + "node_modules/@typescript-eslint/utils/node_modules/eslint-visitor-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", + "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, "node_modules/@typescript-eslint/utils/node_modules/minimatch": { "version": "9.0.5", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", @@ -11903,10 +12540,24 @@ "url": "https://opencollective.com/typescript-eslint" } }, + "node_modules/@typescript-eslint/visitor-keys/node_modules/@typescript-eslint/types": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.21.0.tgz", + "integrity": "sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, "node_modules/@ungap/structured-clone": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", - "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.1.tgz", + "integrity": "sha512-fEzPV3hSkSMltkw152tJKNARhOupqbH96MZWyRjNaYZOMIzbrTeQDG+MTc6Mr2pgzFQzFxAfmhGDNP5QK++2ZA==", "dev": true, "license": "ISC" }, @@ -11968,9 +12619,9 @@ } }, "node_modules/@vitest/pretty-format": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-2.1.3.tgz", - "integrity": "sha512-XH1XdtoLZCpqV59KRbPrIhFCOO0hErxrQCMcvnQete3Vibb9UeIOX02uFPfVn3Z9ZXsq78etlfyhnkmIZSzIwQ==", + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-2.1.8.tgz", + "integrity": "sha512-9HiSZ9zpqNLKlbIDRWOnAWqgcA7xu+8YxXSekhr0Ykab7PAYFkhkwoqVArPOtJhPmYeE2YHgKZlj3CP36z2AJQ==", "dev": true, "license": "MIT", "dependencies": { @@ -11994,14 +12645,14 @@ } }, "node_modules/@vitest/utils": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-2.1.3.tgz", - "integrity": "sha512-xpiVfDSg1RrYT0tX6czgerkpcKFmFOF/gCr30+Mve5V2kewCy4Prn1/NDMSRwaSmT7PRaOF83wu+bEtsY1wrvA==", + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-2.1.8.tgz", + "integrity": "sha512-dwSoui6djdwbfFmIgbIjX2ZhIoG7Ex/+xpxyiEgIGzjliY8xGkcpITKTlp6B4MgtGkF2ilvm97cPM96XZaAgcA==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/pretty-format": "2.1.3", - "loupe": "^3.1.1", + "@vitest/pretty-format": "2.1.8", + "loupe": "^3.1.2", "tinyrainbow": "^1.2.0" }, "funding": { @@ -12009,148 +12660,148 @@ } }, "node_modules/@webassemblyjs/ast": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.12.1.tgz", - "integrity": "sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz", + "integrity": "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==", "license": "MIT", "dependencies": { - "@webassemblyjs/helper-numbers": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6" + "@webassemblyjs/helper-numbers": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2" } }, "node_modules/@webassemblyjs/floating-point-hex-parser": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", - "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz", + "integrity": "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==", "license": "MIT" }, "node_modules/@webassemblyjs/helper-api-error": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", - "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz", + "integrity": "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==", "license": "MIT" }, "node_modules/@webassemblyjs/helper-buffer": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.12.1.tgz", - "integrity": "sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz", + "integrity": "sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==", "license": "MIT" }, "node_modules/@webassemblyjs/helper-numbers": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", - "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz", + "integrity": "sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==", "license": "MIT", "dependencies": { - "@webassemblyjs/floating-point-hex-parser": "1.11.6", - "@webassemblyjs/helper-api-error": "1.11.6", + "@webassemblyjs/floating-point-hex-parser": "1.13.2", + "@webassemblyjs/helper-api-error": "1.13.2", "@xtuc/long": "4.2.2" } }, "node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", - "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz", + "integrity": "sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==", "license": "MIT" }, "node_modules/@webassemblyjs/helper-wasm-section": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.12.1.tgz", - "integrity": "sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz", + "integrity": "sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==", "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-buffer": "1.12.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/wasm-gen": "1.12.1" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/wasm-gen": "1.14.1" } }, "node_modules/@webassemblyjs/ieee754": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", - "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz", + "integrity": "sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==", "license": "MIT", "dependencies": { "@xtuc/ieee754": "^1.2.0" } }, "node_modules/@webassemblyjs/leb128": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", - "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.13.2.tgz", + "integrity": "sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==", "license": "Apache-2.0", "dependencies": { "@xtuc/long": "4.2.2" } }, "node_modules/@webassemblyjs/utf8": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", - "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.13.2.tgz", + "integrity": "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==", "license": "MIT" }, "node_modules/@webassemblyjs/wasm-edit": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.12.1.tgz", - "integrity": "sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz", + "integrity": "sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==", "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-buffer": "1.12.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/helper-wasm-section": "1.12.1", - "@webassemblyjs/wasm-gen": "1.12.1", - "@webassemblyjs/wasm-opt": "1.12.1", - "@webassemblyjs/wasm-parser": "1.12.1", - "@webassemblyjs/wast-printer": "1.12.1" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/helper-wasm-section": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-opt": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1", + "@webassemblyjs/wast-printer": "1.14.1" } }, "node_modules/@webassemblyjs/wasm-gen": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.12.1.tgz", - "integrity": "sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz", + "integrity": "sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==", "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/ieee754": "1.11.6", - "@webassemblyjs/leb128": "1.11.6", - "@webassemblyjs/utf8": "1.11.6" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" } }, "node_modules/@webassemblyjs/wasm-opt": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.12.1.tgz", - "integrity": "sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz", + "integrity": "sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==", "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-buffer": "1.12.1", - "@webassemblyjs/wasm-gen": "1.12.1", - "@webassemblyjs/wasm-parser": "1.12.1" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1" } }, "node_modules/@webassemblyjs/wasm-parser": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.12.1.tgz", - "integrity": "sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz", + "integrity": "sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==", "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-api-error": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/ieee754": "1.11.6", - "@webassemblyjs/leb128": "1.11.6", - "@webassemblyjs/utf8": "1.11.6" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-api-error": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" } }, "node_modules/@webassemblyjs/wast-printer": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.12.1.tgz", - "integrity": "sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz", + "integrity": "sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==", "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/ast": "1.14.1", "@xtuc/long": "4.2.2" } }, @@ -12187,6 +12838,13 @@ "node": ">=18.12.0" } }, + "node_modules/@yarnpkg/parsers/node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "dev": true, + "license": "0BSD" + }, "node_modules/@zkochan/js-yaml": { "version": "0.0.7", "resolved": "https://registry.npmjs.org/@zkochan/js-yaml/-/js-yaml-0.0.7.tgz", @@ -12204,7 +12862,6 @@ "version": "2.0.6", "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", - "deprecated": "Use your platform's native atob() and btoa() methods instead", "devOptional": true, "license": "BSD-3-Clause" }, @@ -12244,9 +12901,9 @@ } }, "node_modules/acorn": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.13.0.tgz", - "integrity": "sha512-8zSiw54Oxrdym50NlZ9sUusyO1Z1ZchgRLWRaK6c86XJFClyCgFKetdowBg5bKxyp/u+CDBJG4Mpp0m3HLZl9w==", + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", + "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", "license": "MIT", "bin": { "acorn": "bin/acorn" @@ -12266,10 +12923,11 @@ "acorn-walk": "^8.0.2" } }, - "node_modules/acorn-import-attributes": { - "version": "1.9.5", - "resolved": "https://registry.npmjs.org/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz", - "integrity": "sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==", + "node_modules/acorn-import-assertions": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz", + "integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==", + "dev": true, "license": "MIT", "peerDependencies": { "acorn": "^8" @@ -12320,29 +12978,6 @@ "node": ">=8.9" } }, - "node_modules/adjust-sourcemap-loader/node_modules/big.js": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", - "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", - "license": "MIT", - "engines": { - "node": "*" - } - }, - "node_modules/adjust-sourcemap-loader/node_modules/loader-utils": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", - "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", - "license": "MIT", - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - }, - "engines": { - "node": ">=8.9.0" - } - }, "node_modules/adm-zip": { "version": "0.5.16", "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.16.tgz", @@ -12354,41 +12989,14 @@ } }, "node_modules/agent-base": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", - "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.3.tgz", + "integrity": "sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==", "license": "MIT", - "dependencies": { - "debug": "^4.3.4" - }, "engines": { "node": ">= 14" } }, - "node_modules/aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "dev": true, - "license": "MIT", - "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/aggregate-error/node_modules/indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/ajv": { "version": "8.17.1", "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", @@ -12406,9 +13014,9 @@ } }, "node_modules/ajv-formats": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz", - "integrity": "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", "license": "MIT", "dependencies": { "ajv": "^8.0.0" @@ -12446,15 +13054,6 @@ "node": ">=6.0.0" } }, - "node_modules/alphavantage/node_modules/cross-fetch": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.8.tgz", - "integrity": "sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg==", - "license": "MIT", - "dependencies": { - "node-fetch": "^2.6.12" - } - }, "node_modules/ansi-colors": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", @@ -12479,18 +13078,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/ansi-escapes/node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/ansi-html-community": { "version": "0.0.8", "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", @@ -12513,32 +13100,20 @@ } }, "node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "license": "MIT", "dependencies": { - "color-convert": "^1.9.0" + "color-convert": "^2.0.1" }, "engines": { - "node": ">=4" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/ansi-styles/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "license": "MIT", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/ansi-styles/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "license": "MIT" - }, "node_modules/any-observable": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/any-observable/-/any-observable-0.3.0.tgz", @@ -12624,24 +13199,24 @@ "license": "Python-2.0" }, "node_modules/aria-query": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", - "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz", + "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==", "dev": true, "license": "Apache-2.0", - "dependencies": { - "dequal": "^2.0.3" + "engines": { + "node": ">= 0.4" } }, "node_modules/array-buffer-byte-length": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", - "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz", + "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.5", - "is-array-buffer": "^3.0.4" + "call-bound": "^1.0.3", + "is-array-buffer": "^3.0.5" }, "engines": { "node": ">= 0.4" @@ -12716,16 +13291,16 @@ } }, "node_modules/array.prototype.flat": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", - "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.3.tgz", + "integrity": "sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0" + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-shim-unscopables": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -12735,16 +13310,16 @@ } }, "node_modules/array.prototype.flatmap": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", - "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.3.tgz", + "integrity": "sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0" + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-shim-unscopables": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -12754,20 +13329,19 @@ } }, "node_modules/arraybuffer.prototype.slice": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", - "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz", + "integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==", "dev": true, "license": "MIT", "dependencies": { "array-buffer-byte-length": "^1.0.1", - "call-bind": "^1.0.5", + "call-bind": "^1.0.8", "define-properties": "^1.2.1", - "es-abstract": "^1.22.3", - "es-errors": "^1.2.1", - "get-intrinsic": "^1.2.3", - "is-array-buffer": "^3.0.4", - "is-shared-array-buffer": "^1.0.2" + "es-abstract": "^1.23.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "is-array-buffer": "^3.0.4" }, "engines": { "node": ">= 0.4" @@ -12809,6 +13383,12 @@ "node": ">=12.0.0" } }, + "node_modules/asn1js/node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" + }, "node_modules/assert-plus": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", @@ -12944,9 +13524,9 @@ "license": "MIT" }, "node_modules/axios": { - "version": "1.7.7", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.7.tgz", - "integrity": "sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q==", + "version": "1.7.9", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.9.tgz", + "integrity": "sha512-LhLcE7Hbiryz8oMDdDptSrWowmB4Bl6RCt6sIJKpRB4XtVf0iEgewX3au/pJqm+Py1kCASkb/FFKjxQaLtxJvw==", "dev": true, "license": "MIT", "dependencies": { @@ -12956,13 +13536,13 @@ } }, "node_modules/axobject-query": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.0.0.tgz", - "integrity": "sha512-+60uv1hiVFhHZeO+Lz0RYzsVHy5Wr1ayX0mwda9KPDVLNJgZ1T9Ny7VmFbLDzxsH0D87I86vgj3gFrjTJUYznw==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.0.2.tgz", + "integrity": "sha512-MCeek8ZH7hKyO1rWUbKNQBbl4l2eY0ntk7OGi+q0RlafrCnfPxC06WZA+uebCfmYp4mNU9jRBP1AhGyf8+W3ww==", "dev": true, "license": "Apache-2.0", "dependencies": { - "dequal": "^2.0.3" + "ast-types-flow": "0.0.7" } }, "node_modules/babel-jest": { @@ -12987,66 +13567,10 @@ "@babel/core": "^7.8.0" } }, - "node_modules/babel-jest/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/babel-jest/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/babel-jest/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "devOptional": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/babel-jest/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/babel-loader": { - "version": "9.1.3", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-9.1.3.tgz", - "integrity": "sha512-xG3ST4DglodGf8qSwv0MdeWLhrDsw/32QMdTO5T1ZIp9gQur0HkCyFs7Awskr10JKXFXwpAhiCuYX5oGXnRGbw==", + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-9.2.1.tgz", + "integrity": "sha512-fqe8naHt46e0yIdkjUZYqddSXfej3AHajX+CSO5X7oy0EmPc6o5Xh+RClNoHjnieWz9AW4kZxW9yyFMhVB1QLA==", "license": "MIT", "dependencies": { "find-cache-dir": "^4.0.0", @@ -13060,119 +13584,6 @@ "webpack": ">=5" } }, - "node_modules/babel-loader/node_modules/find-cache-dir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-4.0.0.tgz", - "integrity": "sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==", - "license": "MIT", - "dependencies": { - "common-path-prefix": "^3.0.0", - "pkg-dir": "^7.0.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/babel-loader/node_modules/find-up": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", - "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", - "license": "MIT", - "dependencies": { - "locate-path": "^7.1.0", - "path-exists": "^5.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/babel-loader/node_modules/locate-path": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", - "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", - "license": "MIT", - "dependencies": { - "p-locate": "^6.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/babel-loader/node_modules/p-limit": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", - "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", - "license": "MIT", - "dependencies": { - "yocto-queue": "^1.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/babel-loader/node_modules/p-locate": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", - "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", - "license": "MIT", - "dependencies": { - "p-limit": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/babel-loader/node_modules/path-exists": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", - "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", - "license": "MIT", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - } - }, - "node_modules/babel-loader/node_modules/pkg-dir": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-7.0.0.tgz", - "integrity": "sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==", - "license": "MIT", - "dependencies": { - "find-up": "^6.3.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/babel-loader/node_modules/yocto-queue": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.1.1.tgz", - "integrity": "sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==", - "license": "MIT", - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/babel-plugin-const-enum": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/babel-plugin-const-enum/-/babel-plugin-const-enum-1.2.0.tgz", @@ -13249,25 +13660,31 @@ } }, "node_modules/babel-plugin-macros": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-2.8.0.tgz", - "integrity": "sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz", + "integrity": "sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==", "dev": true, "license": "MIT", + "optional": true, + "peer": true, "dependencies": { - "@babel/runtime": "^7.7.2", - "cosmiconfig": "^6.0.0", - "resolve": "^1.12.0" + "@babel/runtime": "^7.12.5", + "cosmiconfig": "^7.0.0", + "resolve": "^1.19.0" + }, + "engines": { + "node": ">=10", + "npm": ">=6" } }, "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.4.11", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.11.tgz", - "integrity": "sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q==", + "version": "0.4.12", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.12.tgz", + "integrity": "sha512-CPWT6BwvhrTO2d8QVorhTCQw9Y43zOu7G9HigcfxvepOU6b8o3tcWad6oVgZIsZCTt42FFv97aA7ZJsbM4+8og==", "license": "MIT", "dependencies": { "@babel/compat-data": "^7.22.6", - "@babel/helper-define-polyfill-provider": "^0.6.2", + "@babel/helper-define-polyfill-provider": "^0.6.3", "semver": "^6.3.1" }, "peerDependencies": { @@ -13297,12 +13714,12 @@ } }, "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.2.tgz", - "integrity": "sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg==", + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.3.tgz", + "integrity": "sha512-LiWSbl4CRSIa5x/JAU6jZiG9eit9w6mz+yVMFwDE83LAWvt0AfGBoZ7HS/mkhrKuh2ZlzfVZYKoLjXdqw6Yt7Q==", "license": "MIT", "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.6.2" + "@babel/helper-define-polyfill-provider": "^0.6.3" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" @@ -13366,6 +13783,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "devOptional": true, "license": "MIT" }, "node_modules/base64-arraybuffer": { @@ -13441,12 +13859,21 @@ "tweetnacl": "^0.14.3" } }, - "node_modules/bcrypt-pbkdf/node_modules/tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==", - "dev": true, - "license": "Unlicense" + "node_modules/beasties": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/beasties/-/beasties-0.1.0.tgz", + "integrity": "sha512-+Ssscd2gVG24qRNC+E2g88D+xsQW4xwakWtKAiGEQ3Pw54/FGdyo9RrfxhGhEv6ilFVbB7r3Lgx+QnAxnSpECw==", + "license": "Apache-2.0", + "dependencies": { + "css-select": "^5.1.0", + "css-what": "^6.1.0", + "dom-serializer": "^2.0.0", + "domhandler": "^5.0.3", + "htmlparser2": "^9.0.0", + "picocolors": "^1.1.1", + "postcss": "^8.4.47", + "postcss-media-query-parser": "^0.2.3" + } }, "node_modules/better-opn": { "version": "3.0.2", @@ -13471,22 +13898,6 @@ "node": ">=8" } }, - "node_modules/better-opn/node_modules/is-docker": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", - "dev": true, - "license": "MIT", - "bin": { - "is-docker": "cli.js" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/better-opn/node_modules/is-wsl": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", @@ -13610,6 +14021,18 @@ "ms": "2.0.0" } }, + "node_modules/body-parser/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/body-parser/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -13617,9 +14040,9 @@ "license": "MIT" }, "node_modules/bonjour-service": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.2.1.tgz", - "integrity": "sha512-oSzCS2zV14bh2kji6vNe7vrpJYCHGvcZnlffFQ1MEoX/WOeQ/teD8SYWKR942OI3INjq8OMNJlbPK5LLLUxFDw==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.3.0.tgz", + "integrity": "sha512-3YuAUiSkWykd+2Azjgyxei8OWf8thdn8AITIog2M4UICzoqfjlqr64WIjEXZllf/W6vK1goqleSR6brGomxQqA==", "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.3", @@ -13668,6 +14091,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "devOptional": true, "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" @@ -13692,9 +14116,9 @@ "dev": true }, "node_modules/browserslist": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.0.tgz", - "integrity": "sha512-Rmb62sR1Zpjql25eSanFGEhAxcFwfA1K0GuQcLoaJBAcENegrQut3hYdhXFF1obQfiDyqIW/cLM5HSJ/9k884A==", + "version": "4.24.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.3.tgz", + "integrity": "sha512-1CPmv8iobE2fyRMV97dAcMVegvvWKxmq94hkLiAkUGwKVTyDLw33K+ZxiFrREKmmps4rIw6grcCFCnTMSZ/YiA==", "funding": [ { "type": "opencollective", @@ -13711,10 +14135,10 @@ ], "license": "MIT", "dependencies": { - "caniuse-lite": "^1.0.30001663", - "electron-to-chromium": "^1.5.28", - "node-releases": "^2.0.18", - "update-browserslist-db": "^1.1.0" + "caniuse-lite": "^1.0.30001688", + "electron-to-chromium": "^1.5.73", + "node-releases": "^2.0.19", + "update-browserslist-db": "^1.1.1" }, "bin": { "browserslist": "cli.js" @@ -13879,13 +14303,13 @@ } }, "node_modules/cacache": { - "version": "18.0.4", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-18.0.4.tgz", - "integrity": "sha512-B+L5iIa9mgcjLbliir2th36yEwPftrzteHYujzsx3dFP/31GCHcIeS8f5MGd80odLOjaOvSpU3EEAmRQptkxLQ==", + "version": "19.0.1", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-19.0.1.tgz", + "integrity": "sha512-hdsUxulXCi5STId78vRVYEtDAjq99ICAUktLTeTYsLoTE6Z8dS0c8pWNCxwdrk9YfJeobDZc2Y186hD/5ZQgFQ==", "dev": true, "license": "ISC", "dependencies": { - "@npmcli/fs": "^3.1.0", + "@npmcli/fs": "^4.0.0", "fs-minipass": "^3.0.0", "glob": "^10.2.2", "lru-cache": "^10.0.1", @@ -13893,13 +14317,13 @@ "minipass-collect": "^2.0.1", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", - "p-map": "^4.0.0", - "ssri": "^10.0.0", - "tar": "^6.1.11", - "unique-filename": "^3.0.0" + "p-map": "^7.0.2", + "ssri": "^12.0.0", + "tar": "^7.4.3", + "unique-filename": "^4.0.0" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/cacache/node_modules/glob": { @@ -13923,13 +14347,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/cacache/node_modules/lru-cache": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", - "dev": true, - "license": "ISC" - }, "node_modules/cacache/node_modules/minimatch": { "version": "9.0.5", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", @@ -13947,16 +14364,13 @@ } }, "node_modules/cacache/node_modules/p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-7.0.3.tgz", + "integrity": "sha512-VkndIv2fIB99swvQoA65bm+fsmt6UNdGeIB0oxBs+WhAhdh08QA04JXpI7rbB9r08/nkbysKoya9rtDERYOYMA==", "dev": true, "license": "MIT", - "dependencies": { - "aggregate-error": "^3.0.0" - }, "engines": { - "node": ">=10" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -13995,7 +14409,6 @@ "version": "5.1.4", "resolved": "https://registry.npmjs.org/cache-manager-redis-yet/-/cache-manager-redis-yet-5.1.4.tgz", "integrity": "sha512-2mXZjo+txfH2m+mSTHTITNq8c5SssU2nP7NutzrocO3Mw/SbjHcDo+mriI3ZuR63ov/oUUIaF9iF+MzDqVzMoQ==", - "deprecated": "With cache-manager v6 we now are using Keyv", "license": "MIT", "dependencies": { "@redis/bloom": "^1.2.0", @@ -14011,12 +14424,6 @@ "node": ">= 18" } }, - "node_modules/cache-manager/node_modules/lru-cache": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", - "license": "ISC" - }, "node_modules/cacheable-lookup": { "version": "5.0.4", "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", @@ -14055,16 +14462,45 @@ } }, "node_modules/call-bind": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", - "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", + "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", + "dev": true, "license": "MIT", "dependencies": { + "call-bind-apply-helpers": "^1.0.0", "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", "get-intrinsic": "^1.2.4", - "set-function-length": "^1.2.1" + "set-function-length": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.1.tgz", + "integrity": "sha512-BhYE+WDaywFg2TBWYNXAE+8B1ATnThNBqXHP5nQu0jWJdVvY2hvkpyB3qOmtmDePiS5/BDQ8wASEWGMWRG148g==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.3.tgz", + "integrity": "sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "get-intrinsic": "^1.2.6" }, "engines": { "node": ">= 0.4" @@ -14093,14 +14529,24 @@ "tslib": "^2.0.3" } }, + "node_modules/camel-case/node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "devOptional": true, + "license": "0BSD" + }, "node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", "devOptional": true, "license": "MIT", "engines": { - "node": ">=6" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/caniuse-api": { @@ -14117,9 +14563,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001669", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001669.tgz", - "integrity": "sha512-DlWzFDJqstqtIVx1zeSpIMLjunf5SmwOw0N2Ck/QSQdS8PLS4+9HrLaYei4w8BIAL7IB/UEDu889d8vhCTPA0w==", + "version": "1.0.30001690", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001690.tgz", + "integrity": "sha512-5ExiE3qQN6oF8Clf8ifIDcMRCRE/dMGcETG/XGMD8/XiXm6HXQgQTh1yZYLXXpSOsEUlJm1Xr7kGULZTuGtP/w==", "funding": [ { "type": "opencollective", @@ -14154,9 +14600,9 @@ "license": "Apache-2.0" }, "node_modules/chai": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/chai/-/chai-5.1.1.tgz", - "integrity": "sha512-pT1ZgP8rPNqUgieVaEY+ryQr6Q4HXNg8Ei9UnLUrjN4IA7dvQC5JB+/kxVcPNDHyBcc/26CXPkbNzq3qwrOEKA==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/chai/-/chai-5.1.2.tgz", + "integrity": "sha512-aGtmf24DW6MLHHG5gCx4zaI3uBq3KRtxeVs0DjFH6Z0rDNbsvTxFASFvdj79pxjxZ8/5u3PIiN3IwEIQkiiuPw==", "dev": true, "license": "MIT", "dependencies": { @@ -14171,17 +14617,19 @@ } }, "node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "license": "MIT", "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">=4" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, "node_modules/char-regex": { @@ -14323,25 +14771,6 @@ "url": "https://github.com/sponsors/fb55" } }, - "node_modules/cheerio/node_modules/htmlparser2": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-9.1.0.tgz", - "integrity": "sha512-5zfg6mHUoaer/97TxnGpxmbR7zJtPwIYFMZ/H5ucTlPZhKvtum05yiPK3Mgai3a0DyVxv7qYqoweaEd2nrYQzQ==", - "funding": [ - "https://github.com/fb55/htmlparser2?sponsor=1", - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ], - "license": "MIT", - "dependencies": { - "domelementtype": "^2.3.0", - "domhandler": "^5.0.3", - "domutils": "^3.1.0", - "entities": "^4.5.0" - } - }, "node_modules/cheerio/node_modules/whatwg-mimetype": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz", @@ -14352,49 +14781,28 @@ } }, "node_modules/chokidar": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", - "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", + "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", "license": "MIT", "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" + "readdirp": "^4.0.1" }, "engines": { - "node": ">= 8.10.0" + "node": ">= 14.16.0" }, "funding": { "url": "https://paulmillr.com/funding/" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/chokidar/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" } }, "node_modules/chownr": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-3.0.0.tgz", + "integrity": "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==", "dev": true, - "license": "ISC", + "license": "BlueOak-1.0.0", "engines": { - "node": ">=10" + "node": ">=18" } }, "node_modules/chrome-trace-event": { @@ -14407,11 +14815,20 @@ } }, "node_modules/ci-info": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", - "dev": true, - "license": "MIT" + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "devOptional": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "license": "MIT", + "engines": { + "node": ">=8" + } }, "node_modules/cjs-module-lexer": { "version": "1.4.1", @@ -14450,43 +14867,22 @@ "node": ">= 10.0" } }, - "node_modules/clean-css/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "devOptional": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, "node_modules/cli-cursor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz", - "integrity": "sha512-25tABq090YNKkF6JH7lcwO0zFJTRke4Jcq9iX2nr/Sz0Cjjv4gckmwlW6Ty/aoyFd6z3ysR2hMGC2GFugmBo6A==", - "dev": true, + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", "license": "MIT", "dependencies": { - "restore-cursor": "^1.0.1" + "restore-cursor": "^3.1.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, "node_modules/cli-spinners": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.6.1.tgz", - "integrity": "sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==", + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz", + "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", "license": "MIT", "engines": { "node": ">=6" @@ -14512,68 +14908,69 @@ } }, "node_modules/cli-truncate": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-0.2.1.tgz", - "integrity": "sha512-f4r4yJnbT++qUPI9NR4XLDLq41gQ+uqnPItWG0F5ZkehuNiTTa3EY0S4AqTSUOeJ7/zU41oWPQSNkW5BqPL9bg==", - "dev": true, + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-4.0.0.tgz", + "integrity": "sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==", "license": "MIT", "dependencies": { - "slice-ansi": "0.0.4", - "string-width": "^1.0.1" + "slice-ansi": "^5.0.0", + "string-width": "^7.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/cli-truncate/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", - "dev": true, + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, - "node_modules/cli-truncate/node_modules/is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==", - "dev": true, - "license": "MIT", - "dependencies": { - "number-is-nan": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } + "node_modules/cli-truncate/node_modules/emoji-regex": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.4.0.tgz", + "integrity": "sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==", + "license": "MIT" }, "node_modules/cli-truncate/node_modules/string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==", - "dev": true, + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", "license": "MIT", "dependencies": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/cli-truncate/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", - "dev": true, + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", "license": "MIT", "dependencies": { - "ansi-regex": "^2.0.0" + "ansi-regex": "^6.0.1" }, "engines": { - "node": ">=0.10.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, "node_modules/cli-width": { @@ -14611,21 +15008,6 @@ "node": ">=12" } }, - "node_modules/cliui/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, "node_modules/cliui/node_modules/wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", @@ -14666,6 +15048,18 @@ "node": ">=6" } }, + "node_modules/clone-deep/node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "license": "MIT", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/clone-response": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz", @@ -14678,6 +15072,15 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/clone-response/node_modules/mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, "node_modules/cluster-key-slot": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/cluster-key-slot/-/cluster-key-slot-1.1.2.tgz", @@ -14769,16 +15172,6 @@ "commander": "^2.11.0" } }, - "node_modules/codelyzer/node_modules/axobject-query": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.0.2.tgz", - "integrity": "sha512-MCeek8ZH7hKyO1rWUbKNQBbl4l2eY0ntk7OGi+q0RlafrCnfPxC06WZA+uebCfmYp4mNU9jRBP1AhGyf8+W3ww==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "ast-types-flow": "0.0.7" - } - }, "node_modules/codelyzer/node_modules/rxjs": { "version": "6.6.7", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", @@ -14943,13 +15336,6 @@ "node": ">=4.0.0" } }, - "node_modules/commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", - "dev": true, - "license": "MIT" - }, "node_modules/compressible": { "version": "2.0.18", "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", @@ -14962,33 +15348,33 @@ "node": ">= 0.6" } }, + "node_modules/compressible/node_modules/mime-db": { + "version": "1.53.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.53.0.tgz", + "integrity": "sha512-oHlN/w+3MQ3rba9rqFr6V/ypF10LSkdwUysQL7GkXoTgIWeV+tcXGA852TBxH+gsh8UWoyhR1hKcoMJTuWflpg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, "node_modules/compression": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", - "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.5.tgz", + "integrity": "sha512-bQJ0YRck5ak3LgtnpKkiabX5pNF7tMUh1BSy2ZBOTh0Dim0BUu6aPPwByIns6/A5Prh8PufSPerMDUklpzes2Q==", "license": "MIT", "dependencies": { - "accepts": "~1.3.5", - "bytes": "3.0.0", - "compressible": "~2.0.16", + "bytes": "3.1.2", + "compressible": "~2.0.18", "debug": "2.6.9", + "negotiator": "~0.6.4", "on-headers": "~1.0.2", - "safe-buffer": "5.1.2", + "safe-buffer": "5.2.1", "vary": "~1.1.2" }, "engines": { "node": ">= 0.8.0" } }, - "node_modules/compression/node_modules/bytes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, "node_modules/compression/node_modules/debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", @@ -15004,11 +15390,14 @@ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "license": "MIT" }, - "node_modules/compression/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "license": "MIT" + "node_modules/compression/node_modules/negotiator": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.4.tgz", + "integrity": "sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } }, "node_modules/concat-map": { "version": "0.0.1", @@ -15119,15 +15508,15 @@ } }, "node_modules/convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", "license": "MIT" }, "node_modules/cookie": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", - "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz", + "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==", "license": "MIT", "engines": { "node": ">= 0.6" @@ -15166,20 +15555,21 @@ } }, "node_modules/copy-webpack-plugin": { - "version": "12.0.2", - "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-12.0.2.tgz", - "integrity": "sha512-SNwdBeHyII+rWvee/bTnAYyO8vfVdcSTud4EIb6jcZ8inLeWucJE0DnxXQBjlQ5zlteuuvooGQy3LIyGxhvlOA==", + "version": "10.2.4", + "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-10.2.4.tgz", + "integrity": "sha512-xFVltahqlsRcyyJqQbDY6EYTtyQZF9rf+JPjwHObLdPFMEISqkFkr7mFoVOC6BfYS/dNThyoQKvziugm+OnwBg==", + "dev": true, "license": "MIT", "dependencies": { - "fast-glob": "^3.3.2", + "fast-glob": "^3.2.7", "glob-parent": "^6.0.1", - "globby": "^14.0.0", + "globby": "^12.0.2", "normalize-path": "^3.0.0", - "schema-utils": "^4.2.0", - "serialize-javascript": "^6.0.2" + "schema-utils": "^4.0.0", + "serialize-javascript": "^6.0.0" }, "engines": { - "node": ">= 18.12.0" + "node": ">= 12.20.0" }, "funding": { "type": "opencollective", @@ -15189,30 +15579,11 @@ "webpack": "^5.1.0" } }, - "node_modules/copy-webpack-plugin/node_modules/globby": { - "version": "14.0.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-14.0.2.tgz", - "integrity": "sha512-s3Fq41ZVh7vbbe2PN3nrW7yC7U7MFVc5c98/iTl9c2GawNMKx/J648KQRW6WKkuU8GIbbh2IXfIRQjOZnXcTnw==", - "license": "MIT", - "dependencies": { - "@sindresorhus/merge-streams": "^2.1.0", - "fast-glob": "^3.3.2", - "ignore": "^5.2.4", - "path-type": "^5.0.0", - "slash": "^5.1.0", - "unicorn-magic": "^0.1.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/copy-webpack-plugin/node_modules/path-type": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-5.0.0.tgz", - "integrity": "sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==", + "node_modules/copy-webpack-plugin/node_modules/array-union": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-3.0.1.tgz", + "integrity": "sha512-1OvF9IbWwaeiM9VhzYXVQacMibxpXOMYVNIvMtKRyX9SImBXpKcFr8XvFDeEslCyuH/t6KRt7HEO94AlP8Iatw==", + "dev": true, "license": "MIT", "engines": { "node": ">=12" @@ -15221,25 +15592,47 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/copy-webpack-plugin/node_modules/globby": { + "version": "12.2.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-12.2.0.tgz", + "integrity": "sha512-wiSuFQLZ+urS9x2gGPl1H5drc5twabmm4m2gTR27XDFyjUHJUNsS8o/2aKyIF6IoBaR630atdher0XJ5g6OMmA==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-union": "^3.0.1", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.7", + "ignore": "^5.1.9", + "merge2": "^1.4.1", + "slash": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/copy-webpack-plugin/node_modules/slash": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz", - "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "dev": true, "license": "MIT", "engines": { - "node": ">=14.16" + "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/core-js-compat": { - "version": "3.38.1", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.38.1.tgz", - "integrity": "sha512-JRH6gfXxGmrzF3tZ57lFx97YARxCXPaMzPo6jELZhv88pBH5VXpQ+y0znKGlFnzuaihqhLbefxSJxWJMPtfDzw==", + "version": "3.39.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.39.0.tgz", + "integrity": "sha512-VgEUx3VwlExr5no0tXlBt+silBvhTryPwCXRI2Id1PN8WTKu7MreethvddqOubrYxkFdv/RnYrqlv1sFNAUelw==", "license": "MIT", "dependencies": { - "browserslist": "^4.23.3" + "browserslist": "^4.24.2" }, "funding": { "type": "opencollective", @@ -15286,20 +15679,20 @@ } }, "node_modules/cosmiconfig": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", - "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", "dev": true, "license": "MIT", "dependencies": { "@types/parse-json": "^4.0.0", - "import-fresh": "^3.1.0", + "import-fresh": "^3.2.1", "parse-json": "^5.0.0", "path-type": "^4.0.0", - "yaml": "^1.7.2" + "yaml": "^1.10.0" }, "engines": { - "node": ">=8" + "node": ">=10" } }, "node_modules/countries-and-timezones": { @@ -15346,135 +15739,12 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/create-jest/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/create-jest/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/create-jest/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "devOptional": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/create-jest/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/create-require": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", "license": "MIT" }, - "node_modules/critters": { - "version": "0.0.24", - "resolved": "https://registry.npmjs.org/critters/-/critters-0.0.24.tgz", - "integrity": "sha512-Oyqew0FGM0wYUSNqR0L6AteO5MpMoUU0rhKRieXeiKs+PmRTxiJMyaunYB2KF6fQ3dzChXKCpbFOEJx3OQ1v/Q==", - "license": "Apache-2.0", - "dependencies": { - "chalk": "^4.1.0", - "css-select": "^5.1.0", - "dom-serializer": "^2.0.0", - "domhandler": "^5.0.2", - "htmlparser2": "^8.0.2", - "postcss": "^8.4.23", - "postcss-media-query-parser": "^0.2.3" - } - }, - "node_modules/critters/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/critters/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/critters/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/critters/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/cron": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/cron/-/cron-2.4.0.tgz", @@ -15497,18 +15767,19 @@ } }, "node_modules/cross-fetch": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-4.0.0.tgz", - "integrity": "sha512-e4a5N8lVvuLgAWgnCrLr2PP0YyDOTHa9H/Rj54dirp61qXnNq46m82bRhNqIA5VccJtWBvPTFRV3TtvHUKPB1g==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.2.0.tgz", + "integrity": "sha512-Q+xVJLoGOeIMXZmbUK4HYk+69cQH6LudR0Vu/pRm2YlU/hDV9CiS0gKUMaWY5f2NeUH9C1nV3bsTlCo0FsTV1Q==", "license": "MIT", "dependencies": { - "node-fetch": "^2.6.12" + "node-fetch": "^2.7.0" } }, "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "devOptional": true, "license": "MIT", "dependencies": { "path-key": "^3.1.0", @@ -15519,6 +15790,22 @@ "node": ">= 8" } }, + "node_modules/cross-spawn/node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "devOptional": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, "node_modules/css-declaration-sorter": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-7.2.0.tgz", @@ -15533,9 +15820,10 @@ } }, "node_modules/css-loader": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-7.1.2.tgz", - "integrity": "sha512-6WvYYn7l/XEGN8Xu2vWFt9nVzrCn39vKyTEFf/ExEyoksJjjSZV/0/35XPlMbpnr6VGhZIUg5yJrL8tGfes/FA==", + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.11.0.tgz", + "integrity": "sha512-CTJ+AEQJjq5NzLga5pE39qdiSV56F8ywCIsqNIRF0r7BDgWsN25aazToqAFg7ZrtA/U016xudB3ffgweORxX7g==", + "dev": true, "license": "MIT", "dependencies": { "icss-utils": "^5.1.0", @@ -15548,7 +15836,7 @@ "semver": "^7.5.4" }, "engines": { - "node": ">= 18.12.0" + "node": ">= 12.13.0" }, "funding": { "type": "opencollective", @@ -15556,7 +15844,7 @@ }, "peerDependencies": { "@rspack/core": "0.x || 1.x", - "webpack": "^5.27.0" + "webpack": "^5.0.0" }, "peerDependenciesMeta": { "@rspack/core": { @@ -15897,39 +16185,6 @@ "node": ">=10.0.0" } }, - "node_modules/cypress/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/cypress/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, "node_modules/cypress/node_modules/commander": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", @@ -15940,33 +16195,10 @@ "node": ">= 6" } }, - "node_modules/cypress/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/cypress/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/cytoscape": { - "version": "3.30.2", - "resolved": "https://registry.npmjs.org/cytoscape/-/cytoscape-3.30.2.tgz", - "integrity": "sha512-oICxQsjW8uSaRmn4UK/jkczKOqTrVqt5/1WL0POiJUT2EKNc9STM4hYFHv917yu55aTBMFNRzymlJhVAiWPCxw==", + "version": "3.30.4", + "resolved": "https://registry.npmjs.org/cytoscape/-/cytoscape-3.30.4.tgz", + "integrity": "sha512-OxtlZwQl1WbwMmLiyPSEBuzeTIQnwZhJYYWFzZ2PhEHVFwpeaqNIkUzSiso00D98qk60l8Gwon2RP304d3BJ1A==", "license": "MIT", "optional": true, "engines": { @@ -16177,19 +16409,6 @@ "node": ">= 10" } }, - "node_modules/d3-dsv/node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "license": "MIT", - "optional": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/d3-ease": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz", @@ -16533,15 +16752,15 @@ } }, "node_modules/data-view-buffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", - "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz", + "integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.6", + "call-bound": "^1.0.3", "es-errors": "^1.3.0", - "is-data-view": "^1.0.1" + "is-data-view": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -16551,31 +16770,31 @@ } }, "node_modules/data-view-byte-length": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz", - "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz", + "integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", + "call-bound": "^1.0.3", "es-errors": "^1.3.0", - "is-data-view": "^1.0.1" + "is-data-view": "^1.0.2" }, "engines": { "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/inspect-js" } }, "node_modules/data-view-byte-offset": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz", - "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz", + "integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.6", + "call-bound": "^1.0.2", "es-errors": "^1.3.0", "is-data-view": "^1.0.1" }, @@ -16621,9 +16840,9 @@ "license": "MIT" }, "node_modules/debug": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", - "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", "license": "MIT", "dependencies": { "ms": "^2.1.3" @@ -16679,16 +16898,19 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/decompress-response/node_modules/mimic-response": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", - "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", + "node_modules/dedent": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.3.tgz", + "integrity": "sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==", + "devOptional": true, "license": "MIT", - "engines": { - "node": ">=10" + "peerDependencies": { + "babel-plugin-macros": "^3.1.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependenciesMeta": { + "babel-plugin-macros": { + "optional": true + } } }, "node_modules/deep-eql": { @@ -16752,68 +16974,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/default-gateway": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", - "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", - "license": "BSD-2-Clause", - "dependencies": { - "execa": "^5.0.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/default-gateway/node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "license": "MIT", - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/default-gateway/node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/default-gateway/node_modules/human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "license": "Apache-2.0", - "engines": { - "node": ">=10.17.0" - } - }, - "node_modules/default-gateway/node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "license": "ISC" - }, "node_modules/defaults": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", @@ -16839,6 +16999,7 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, "license": "MIT", "dependencies": { "es-define-property": "^1.0.0", @@ -16961,12 +17122,16 @@ } }, "node_modules/detect-libc": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz", - "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", + "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", "license": "Apache-2.0", + "optional": true, + "bin": { + "detect-libc": "bin/detect-libc.js" + }, "engines": { - "node": ">=8" + "node": ">=0.10" } }, "node_modules/detect-newline": { @@ -17048,16 +17213,16 @@ } }, "node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "dev": true, "license": "Apache-2.0", "dependencies": { "esutils": "^2.0.2" }, "engines": { - "node": ">=6.0.0" + "node": ">=0.10.0" } }, "node_modules/dom-accessibility-api": { @@ -17107,7 +17272,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/domexception/-/domexception-4.0.0.tgz", "integrity": "sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==", - "deprecated": "Use your platform's native DOMException instead", "devOptional": true, "license": "MIT", "dependencies": { @@ -17140,9 +17304,9 @@ "optional": true }, "node_modules/domutils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", - "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.1.tgz", + "integrity": "sha512-xWXmuRnN9OMP6ptPd2+H0cCbcYBULa5YDTbMm/2lvkWvNA3O4wcW+GvzooqBuNM8yy6pl3VIAeJTUUWUbfI5Fw==", "license": "BSD-2-Clause", "dependencies": { "dom-serializer": "^2.0.0", @@ -17164,16 +17328,24 @@ "tslib": "^2.0.3" } }, + "node_modules/dot-case/node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "devOptional": true, + "license": "0BSD" + }, "node_modules/dotenv": { - "version": "16.1.4", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.1.4.tgz", - "integrity": "sha512-m55RtE8AsPeJBpOIFKihEmqUcoVncQIwo7x9U8ZwLEZw9ZpXboz2c+rvog+jUaJvVrZ5kBOeYQBX5+8Aa/OZQw==", + "version": "16.4.7", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.7.tgz", + "integrity": "sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==", + "dev": true, "license": "BSD-2-Clause", "engines": { "node": ">=12" }, "funding": { - "url": "https://github.com/motdotla/dotenv?sponsor=1" + "url": "https://dotenvx.com" } }, "node_modules/dotenv-expand": { @@ -17185,6 +17357,20 @@ "node": ">=12" } }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/duplexer": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", @@ -17196,6 +17382,7 @@ "version": "0.2.0", "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "devOptional": true, "license": "MIT" }, "node_modules/ecc-jsbn": { @@ -17209,13 +17396,6 @@ "safer-buffer": "^2.1.0" } }, - "node_modules/ecc-jsbn/node_modules/jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==", - "dev": true, - "license": "MIT" - }, "node_modules/ecdsa-sig-formatter": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", @@ -17248,9 +17428,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.5.41", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.41.tgz", - "integrity": "sha512-dfdv/2xNjX0P8Vzme4cfzHqnPm5xsZXwsolTYr0eyW18IUmNyG08vL+fttvinTfhKfIKdRoqkDIC9e9iWQCNYQ==", + "version": "1.5.76", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.76.tgz", + "integrity": "sha512-CjVQyG7n7Sr+eBXE86HIulnL5N8xZY1sgmOPGuq/F0Rr0FJq63lg0kEtOIDfZBk44FnDLf6FUJ+dsJcuiUDdDQ==", "license": "ISC" }, "node_modules/elegant-spinner": { @@ -17318,8 +17498,8 @@ "version": "0.1.13", "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "devOptional": true, "license": "MIT", - "optional": true, "dependencies": { "iconv-lite": "^0.6.2" } @@ -17337,18 +17517,6 @@ "url": "https://github.com/fb55/encoding-sniffer?sponsor=1" } }, - "node_modules/encoding-sniffer/node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "license": "MIT", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/encoding-sniffer/node_modules/whatwg-encoding": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz", @@ -17361,19 +17529,6 @@ "node": ">=18" } }, - "node_modules/encoding/node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "license": "MIT", - "optional": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/end-of-stream": { "version": "1.4.4", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", @@ -17384,9 +17539,9 @@ } }, "node_modules/enhanced-resolve": { - "version": "5.17.1", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz", - "integrity": "sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==", + "version": "5.18.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.0.tgz", + "integrity": "sha512-0/r0MySGYG8YqlayBZ6MuCfECmHFdJ5qyPh8s8wa5Hnm6SaFLSK1VYCbj+NKp090Nm1caZhD+QTnmxO7esYGyQ==", "license": "MIT", "dependencies": { "graceful-fs": "^4.2.4", @@ -17490,58 +17645,59 @@ } }, "node_modules/es-abstract": { - "version": "1.23.3", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz", - "integrity": "sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==", + "version": "1.23.7", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.7.tgz", + "integrity": "sha512-OygGC8kIcDhXX+6yAZRGLqwi2CmEXCbLQixeGUgYeR+Qwlppqmo7DIDr8XibtEBZp+fJcoYpoatp5qwLMEdcqQ==", "dev": true, "license": "MIT", "dependencies": { - "array-buffer-byte-length": "^1.0.1", - "arraybuffer.prototype.slice": "^1.0.3", + "array-buffer-byte-length": "^1.0.2", + "arraybuffer.prototype.slice": "^1.0.4", "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.7", - "data-view-buffer": "^1.0.1", - "data-view-byte-length": "^1.0.1", - "data-view-byte-offset": "^1.0.0", - "es-define-property": "^1.0.0", + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "data-view-buffer": "^1.0.2", + "data-view-byte-length": "^1.0.2", + "data-view-byte-offset": "^1.0.1", + "es-define-property": "^1.0.1", "es-errors": "^1.3.0", "es-object-atoms": "^1.0.0", "es-set-tostringtag": "^2.0.3", - "es-to-primitive": "^1.2.1", - "function.prototype.name": "^1.1.6", - "get-intrinsic": "^1.2.4", - "get-symbol-description": "^1.0.2", - "globalthis": "^1.0.3", - "gopd": "^1.0.1", + "es-to-primitive": "^1.3.0", + "function.prototype.name": "^1.1.8", + "get-intrinsic": "^1.2.6", + "get-symbol-description": "^1.1.0", + "globalthis": "^1.0.4", + "gopd": "^1.2.0", "has-property-descriptors": "^1.0.2", - "has-proto": "^1.0.3", - "has-symbols": "^1.0.3", + "has-proto": "^1.2.0", + "has-symbols": "^1.1.0", "hasown": "^2.0.2", - "internal-slot": "^1.0.7", - "is-array-buffer": "^3.0.4", + "internal-slot": "^1.1.0", + "is-array-buffer": "^3.0.5", "is-callable": "^1.2.7", - "is-data-view": "^1.0.1", - "is-negative-zero": "^2.0.3", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.3", - "is-string": "^1.0.7", - "is-typed-array": "^1.1.13", - "is-weakref": "^1.0.2", - "object-inspect": "^1.13.1", + "is-data-view": "^1.0.2", + "is-regex": "^1.2.1", + "is-shared-array-buffer": "^1.0.4", + "is-string": "^1.1.1", + "is-typed-array": "^1.1.15", + "is-weakref": "^1.1.0", + "math-intrinsics": "^1.1.0", + "object-inspect": "^1.13.3", "object-keys": "^1.1.1", - "object.assign": "^4.1.5", - "regexp.prototype.flags": "^1.5.2", - "safe-array-concat": "^1.1.2", - "safe-regex-test": "^1.0.3", - "string.prototype.trim": "^1.2.9", - "string.prototype.trimend": "^1.0.8", + "object.assign": "^4.1.7", + "regexp.prototype.flags": "^1.5.3", + "safe-array-concat": "^1.1.3", + "safe-regex-test": "^1.1.0", + "string.prototype.trim": "^1.2.10", + "string.prototype.trimend": "^1.0.9", "string.prototype.trimstart": "^1.0.8", - "typed-array-buffer": "^1.0.2", - "typed-array-byte-length": "^1.0.1", - "typed-array-byte-offset": "^1.0.2", - "typed-array-length": "^1.0.6", - "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.15" + "typed-array-buffer": "^1.0.3", + "typed-array-byte-length": "^1.0.3", + "typed-array-byte-offset": "^1.0.4", + "typed-array-length": "^1.0.7", + "unbox-primitive": "^1.1.0", + "which-typed-array": "^1.1.18" }, "engines": { "node": ">= 0.4" @@ -17551,13 +17707,10 @@ } }, "node_modules/es-define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", - "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", "license": "MIT", - "dependencies": { - "get-intrinsic": "^1.2.4" - }, "engines": { "node": ">= 0.4" } @@ -17572,16 +17725,15 @@ } }, "node_modules/es-module-lexer": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.4.tgz", - "integrity": "sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.6.0.tgz", + "integrity": "sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ==", "license": "MIT" }, "node_modules/es-object-atoms": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", - "dev": true, "license": "MIT", "dependencies": { "es-errors": "^1.3.0" @@ -17616,15 +17768,15 @@ } }, "node_modules/es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.0.tgz", + "integrity": "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==", "dev": true, "license": "MIT", "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" + "is-callable": "^1.2.7", + "is-date-object": "^1.0.5", + "is-symbol": "^1.0.4" }, "engines": { "node": ">= 0.4" @@ -17634,9 +17786,10 @@ } }, "node_modules/esbuild": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.23.0.tgz", - "integrity": "sha512-1lvV17H2bMYda/WaFb2jLPeHU3zml2k4/yagNMG8Q/YtfMjCwEUZa2eXXMgZTVSL5q1n4H7sQ0X6CdJDqqeCFA==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.24.2.tgz", + "integrity": "sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==", + "dev": true, "hasInstallScript": true, "license": "MIT", "bin": { @@ -17646,30 +17799,31 @@ "node": ">=18" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.23.0", - "@esbuild/android-arm": "0.23.0", - "@esbuild/android-arm64": "0.23.0", - "@esbuild/android-x64": "0.23.0", - "@esbuild/darwin-arm64": "0.23.0", - "@esbuild/darwin-x64": "0.23.0", - "@esbuild/freebsd-arm64": "0.23.0", - "@esbuild/freebsd-x64": "0.23.0", - "@esbuild/linux-arm": "0.23.0", - "@esbuild/linux-arm64": "0.23.0", - "@esbuild/linux-ia32": "0.23.0", - "@esbuild/linux-loong64": "0.23.0", - "@esbuild/linux-mips64el": "0.23.0", - "@esbuild/linux-ppc64": "0.23.0", - "@esbuild/linux-riscv64": "0.23.0", - "@esbuild/linux-s390x": "0.23.0", - "@esbuild/linux-x64": "0.23.0", - "@esbuild/netbsd-x64": "0.23.0", - "@esbuild/openbsd-arm64": "0.23.0", - "@esbuild/openbsd-x64": "0.23.0", - "@esbuild/sunos-x64": "0.23.0", - "@esbuild/win32-arm64": "0.23.0", - "@esbuild/win32-ia32": "0.23.0", - "@esbuild/win32-x64": "0.23.0" + "@esbuild/aix-ppc64": "0.24.2", + "@esbuild/android-arm": "0.24.2", + "@esbuild/android-arm64": "0.24.2", + "@esbuild/android-x64": "0.24.2", + "@esbuild/darwin-arm64": "0.24.2", + "@esbuild/darwin-x64": "0.24.2", + "@esbuild/freebsd-arm64": "0.24.2", + "@esbuild/freebsd-x64": "0.24.2", + "@esbuild/linux-arm": "0.24.2", + "@esbuild/linux-arm64": "0.24.2", + "@esbuild/linux-ia32": "0.24.2", + "@esbuild/linux-loong64": "0.24.2", + "@esbuild/linux-mips64el": "0.24.2", + "@esbuild/linux-ppc64": "0.24.2", + "@esbuild/linux-riscv64": "0.24.2", + "@esbuild/linux-s390x": "0.24.2", + "@esbuild/linux-x64": "0.24.2", + "@esbuild/netbsd-arm64": "0.24.2", + "@esbuild/netbsd-x64": "0.24.2", + "@esbuild/openbsd-arm64": "0.24.2", + "@esbuild/openbsd-x64": "0.24.2", + "@esbuild/sunos-x64": "0.24.2", + "@esbuild/win32-arm64": "0.24.2", + "@esbuild/win32-ia32": "0.24.2", + "@esbuild/win32-x64": "0.24.2" } }, "node_modules/esbuild-register": { @@ -17686,9 +17840,9 @@ } }, "node_modules/esbuild-wasm": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/esbuild-wasm/-/esbuild-wasm-0.23.0.tgz", - "integrity": "sha512-6jP8UmWy6R6TUUV8bMuC3ZyZ6lZKI56x0tkxyCIqWwRRJ/DgeQKneh/Oid5EoGoPFLrGNkz47ZEtWAYuiY/u9g==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/esbuild-wasm/-/esbuild-wasm-0.24.0.tgz", + "integrity": "sha512-xhNn5tL1AhkPg4ft59yXT6FkwKXiPSYyz1IeinJHUJpjvOHOIPvdmFQc0pGdjxlKSbzZc2mNmtVOWAR1EF/JAg==", "license": "MIT", "bin": { "esbuild": "bin/esbuild" @@ -17716,49 +17870,77 @@ "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, "license": "MIT", "engines": { "node": ">=0.8.0" } }, "node_modules/escodegen": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", - "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", - "devOptional": true, + "version": "1.14.3", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz", + "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", "license": "BSD-2-Clause", "dependencies": { "esprima": "^4.0.1", - "estraverse": "^5.2.0", - "esutils": "^2.0.2" + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1" }, "bin": { "escodegen": "bin/escodegen.js", "esgenerate": "bin/esgenerate.js" }, "engines": { - "node": ">=6.0" + "node": ">=4.0" }, "optionalDependencies": { "source-map": "~0.6.1" } }, - "node_modules/escodegen/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "license": "BSD-3-Clause", - "optional": true, + "node_modules/escodegen/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "license": "BSD-2-Clause", "engines": { - "node": ">=0.10.0" + "node": ">=4.0" + } + }, + "node_modules/escodegen/node_modules/levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", + "license": "MIT", + "dependencies": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/escodegen/node_modules/optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "license": "MIT", + "dependencies": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + }, + "engines": { + "node": ">= 0.8.0" } }, "node_modules/eslint": { "version": "8.57.0", "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", - "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.", "dev": true, "license": "MIT", "dependencies": { @@ -17962,17 +18144,6 @@ "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" } }, - "node_modules/eslint-plugin-import/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, "node_modules/eslint-plugin-import/node_modules/debug": { "version": "3.2.7", "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", @@ -17983,19 +18154,6 @@ "ms": "^2.1.1" } }, - "node_modules/eslint-plugin-import/node_modules/doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/eslint-plugin-import/node_modules/json5": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", @@ -18009,19 +18167,6 @@ "json5": "lib/cli.js" } }, - "node_modules/eslint-plugin-import/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, "node_modules/eslint-plugin-import/node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", @@ -18039,16 +18184,6 @@ "semver": "bin/semver.js" } }, - "node_modules/eslint-plugin-import/node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, "node_modules/eslint-plugin-import/node_modules/tsconfig-paths": { "version": "3.15.0", "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", @@ -18196,11 +18331,10 @@ "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/eslint-plugin-storybook/node_modules/eslint-scope": { + "node_modules/eslint-scope": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, "license": "BSD-2-Clause", "dependencies": { "esrecurse": "^4.3.0", @@ -18210,56 +18344,15 @@ "node": ">=8.0.0" } }, - "node_modules/eslint-plugin-storybook/node_modules/estraverse": { + "node_modules/eslint-scope/node_modules/estraverse": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true, "license": "BSD-2-Clause", "engines": { "node": ">=4.0" } }, - "node_modules/eslint-plugin-storybook/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true, - "license": "0BSD" - }, - "node_modules/eslint-plugin-storybook/node_modules/tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", - "dev": true, - "license": "MIT", - "dependencies": { - "tslib": "^1.8.1" - }, - "engines": { - "node": ">= 6" - }, - "peerDependencies": { - "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" - } - }, - "node_modules/eslint-scope": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.1.0.tgz", - "integrity": "sha512-14dSvlhaVhKKsa9Fx1l8A17s7ah7Ef7wCakJ10LYk6+GYmP9yDti2oq2SEwcyndt6knfcZyhyxwY3i9yL78EQw==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, "node_modules/eslint-visitor-keys": { "version": "3.4.3", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", @@ -18290,48 +18383,17 @@ "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/eslint/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/eslint/node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", "dev": true, - "license": "MIT", + "license": "Apache-2.0", "dependencies": { - "color-convert": "^2.0.1" + "esutils": "^2.0.2" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/eslint/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/eslint/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "node": ">=6.0.0" } }, "node_modules/eslint/node_modules/escape-string-regexp": { @@ -18364,6 +18426,23 @@ "url": "https://opencollective.com/eslint" } }, + "node_modules/eslint/node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/eslint/node_modules/globals": { "version": "13.24.0", "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", @@ -18380,16 +18459,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/eslint/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/eslint/node_modules/js-yaml": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", @@ -18410,30 +18479,36 @@ "dev": true, "license": "MIT" }, - "node_modules/eslint/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/eslint/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/eslint/node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, "license": "MIT", "dependencies": { - "has-flag": "^4.0.0" + "p-locate": "^5.0.0" }, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/eslint/node_modules/type-fest": { @@ -18596,13 +18671,6 @@ "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, - "node_modules/execa/node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true, - "license": "ISC" - }, "node_modules/executable": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/executable/-/executable-4.1.1.tgz", @@ -18673,37 +18741,37 @@ "license": "Apache-2.0" }, "node_modules/express": { - "version": "4.18.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", - "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", + "version": "4.21.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.21.2.tgz", + "integrity": "sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==", "license": "MIT", "dependencies": { "accepts": "~1.3.8", "array-flatten": "1.1.1", - "body-parser": "1.20.1", + "body-parser": "1.20.3", "content-disposition": "0.5.4", "content-type": "~1.0.4", - "cookie": "0.5.0", + "cookie": "0.7.1", "cookie-signature": "1.0.6", "debug": "2.6.9", "depd": "2.0.0", - "encodeurl": "~1.0.2", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "etag": "~1.8.1", - "finalhandler": "1.2.0", + "finalhandler": "1.3.1", "fresh": "0.5.2", "http-errors": "2.0.0", - "merge-descriptors": "1.0.1", + "merge-descriptors": "1.0.3", "methods": "~1.1.2", "on-finished": "2.4.1", "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", + "path-to-regexp": "0.1.12", "proxy-addr": "~2.0.7", - "qs": "6.11.0", + "qs": "6.13.0", "range-parser": "~1.2.1", "safe-buffer": "5.2.1", - "send": "0.18.0", - "serve-static": "1.15.0", + "send": "0.19.0", + "serve-static": "1.16.2", "setprototypeof": "1.2.0", "statuses": "2.0.1", "type-is": "~1.6.18", @@ -18712,24 +18780,28 @@ }, "engines": { "node": ">= 0.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, "node_modules/express/node_modules/body-parser": { - "version": "1.20.1", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", - "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", + "version": "1.20.3", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz", + "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==", "license": "MIT", "dependencies": { "bytes": "3.1.2", - "content-type": "~1.0.4", + "content-type": "~1.0.5", "debug": "2.6.9", "depd": "2.0.0", "destroy": "1.2.0", "http-errors": "2.0.0", "iconv-lite": "0.4.24", "on-finished": "2.4.1", - "qs": "6.11.0", - "raw-body": "2.5.1", + "qs": "6.13.0", + "raw-body": "2.5.2", "type-is": "~1.6.18", "unpipe": "1.0.0" }, @@ -18747,33 +18819,87 @@ "ms": "2.0.0" } }, + "node_modules/express/node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/express/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/express/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "license": "MIT" }, - "node_modules/express/node_modules/path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==", - "license": "MIT" + "node_modules/express/node_modules/qs": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", + "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", + "license": "BSD-3-Clause", + "dependencies": { + "side-channel": "^1.0.6" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "node_modules/express/node_modules/raw-body": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", - "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "node_modules/express/node_modules/send": { + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", + "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", "license": "MIT", "dependencies": { - "bytes": "3.1.2", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/express/node_modules/send/node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "license": "MIT", "engines": { "node": ">= 0.8" } }, + "node_modules/express/node_modules/send/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, "node_modules/extend": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", @@ -18795,6 +18921,19 @@ "node": ">=4" } }, + "node_modules/external-editor/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/external-editor/node_modules/tmp": { "version": "0.0.33", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", @@ -18923,9 +19062,9 @@ "license": "MIT" }, "node_modules/fastq": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", - "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.18.0.tgz", + "integrity": "sha512-QKHXPW0hD8g4UET03SdOdunzSouc9N4AuHdsX8XNcTsuz+yYFILVNIX4l9yHABMhiEI9Db0JTTIpu0wB+Y1QQw==", "license": "ISC", "dependencies": { "reusify": "^1.0.4" @@ -18973,6 +19112,21 @@ "pend": "~1.2.0" } }, + "node_modules/fdir": { + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.2.tgz", + "integrity": "sha512-KnhMXsKSPZlAhp7+IjUkRZKPb4fUyccpDrdFXbi4QL1qkmFh9kVY09Yox+n4MaOb3lHZ1Tv829C3oaaXoMYPDQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, "node_modules/figures": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", @@ -19036,13 +19190,13 @@ } }, "node_modules/finalhandler": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", - "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz", + "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==", "license": "MIT", "dependencies": { "debug": "2.6.9", - "encodeurl": "~1.0.2", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "on-finished": "2.4.1", "parseurl": "~1.3.3", @@ -19062,6 +19216,15 @@ "ms": "2.0.0" } }, + "node_modules/finalhandler/node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/finalhandler/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -19069,21 +19232,116 @@ "license": "MIT" }, "node_modules/find-cache-dir": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", - "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", - "dev": true, + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-4.0.0.tgz", + "integrity": "sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==", "license": "MIT", "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" + "common-path-prefix": "^3.0.0", + "pkg-dir": "^7.0.0" }, "engines": { - "node": ">=8" + "node": ">=14.16" }, "funding": { - "url": "https://github.com/avajs/find-cache-dir?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/find-cache-dir/node_modules/find-up": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", + "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", + "license": "MIT", + "dependencies": { + "locate-path": "^7.1.0", + "path-exists": "^5.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/find-cache-dir/node_modules/locate-path": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", + "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", + "license": "MIT", + "dependencies": { + "p-locate": "^6.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/find-cache-dir/node_modules/p-limit": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", + "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", + "license": "MIT", + "dependencies": { + "yocto-queue": "^1.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/find-cache-dir/node_modules/p-locate": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", + "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", + "license": "MIT", + "dependencies": { + "p-limit": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/find-cache-dir/node_modules/path-exists": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", + "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/find-cache-dir/node_modules/pkg-dir": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-7.0.0.tgz", + "integrity": "sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==", + "license": "MIT", + "dependencies": { + "find-up": "^6.3.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/find-cache-dir/node_modules/yocto-queue": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.1.1.tgz", + "integrity": "sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==", + "license": "MIT", + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/find-file-up": { @@ -19113,20 +19371,17 @@ } }, "node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "devOptional": true, "license": "MIT", "dependencies": { - "locate-path": "^6.0.0", + "locate-path": "^5.0.0", "path-exists": "^4.0.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8" } }, "node_modules/flat": { @@ -19153,10 +19408,26 @@ "node": "^10.12.0 || >=12.0.0" } }, + "node_modules/flat-cache/node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/flatted": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", - "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.2.tgz", + "integrity": "sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==", "dev": true, "license": "ISC" }, @@ -19194,6 +19465,7 @@ "version": "3.3.0", "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", + "devOptional": true, "license": "ISC", "dependencies": { "cross-spawn": "^7.0.0", @@ -19206,6 +19478,19 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/foreground-child/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "devOptional": true, + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/forever-agent": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", @@ -19278,65 +19563,29 @@ "ajv": "^6.9.1" } }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/fork-ts-checker-webpack-plugin/node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", "dev": true, "license": "MIT", "dependencies": { - "color-convert": "^2.0.1" + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" }, "engines": { - "node": ">=8" + "node": ">= 8.10.0" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "url": "https://paulmillr.com/funding/" }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/cosmiconfig": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", - "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.2.1", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.10.0" - }, - "engines": { - "node": ">=10" + "optionalDependencies": { + "fsevents": "~2.3.2" } }, "node_modules/fork-ts-checker-webpack-plugin/node_modules/fs-extra": { @@ -19354,14 +19603,17 @@ "node": ">=12" } }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "node_modules/fork-ts-checker-webpack-plugin/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, - "license": "MIT", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, "engines": { - "node": ">=8" + "node": ">= 6" } }, "node_modules/fork-ts-checker-webpack-plugin/node_modules/json-schema-traverse": { @@ -19371,17 +19623,30 @@ "dev": true, "license": "MIT" }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "node_modules/fork-ts-checker-webpack-plugin/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, - "license": "ISC", + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "license": "MIT", "dependencies": { - "brace-expansion": "^1.1.7" + "picomatch": "^2.2.1" }, "engines": { - "node": "*" + "node": ">=8.10.0" } }, "node_modules/fork-ts-checker-webpack-plugin/node_modules/schema-utils": { @@ -19403,19 +19668,6 @@ "url": "https://opencollective.com/webpack" } }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/form-data": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.1.tgz", @@ -19526,7 +19778,6 @@ "version": "2.3.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "hasInstallScript": true, "license": "MIT", "optional": true, "os": [ @@ -19546,16 +19797,18 @@ } }, "node_modules/function.prototype.name": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", - "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.8.tgz", + "integrity": "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "functions-have-names": "^1.2.3" + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "functions-have-names": "^1.2.3", + "hasown": "^2.0.2", + "is-callable": "^1.2.7" }, "engines": { "node": ">= 0.4" @@ -19590,31 +19843,6 @@ "node": ">=10" } }, - "node_modules/gaxios/node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "license": "MIT", - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/gaxios/node_modules/https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "license": "MIT", - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/gcp-metadata": { "version": "4.3.1", "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-4.3.1.tgz", @@ -19668,16 +19896,21 @@ } }, "node_modules/get-intrinsic": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", - "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.6.tgz", + "integrity": "sha512-qxsEs+9A+u85HhllWJJFicJfPDhRmjzoYdl64aMWW9yRIJmSyxdn8IEkuIM530/7T+lv0TIHd8L6Q/ra0tEoeA==", "license": "MIT", "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "dunder-proto": "^1.0.0", + "es-define-property": "^1.0.1", "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", "function-bind": "^1.1.2", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0" + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -19724,15 +19957,15 @@ } }, "node_modules/get-symbol-description": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", - "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz", + "integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.5", + "call-bound": "^1.0.3", "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4" + "get-intrinsic": "^1.2.6" }, "engines": { "node": ">= 0.4" @@ -19761,18 +19994,10 @@ "assert-plus": "^1.0.0" } }, - "node_modules/github-slugger": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-2.0.0.tgz", - "integrity": "sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==", - "dev": true, - "license": "ISC" - }, "node_modules/glob": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "deprecated": "Glob versions prior to v9 are no longer supported", "devOptional": true, "license": "ISC", "dependencies": { @@ -19808,30 +20033,6 @@ "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", "license": "BSD-2-Clause" }, - "node_modules/glob/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/glob/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "devOptional": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, "node_modules/global-dirs": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-2.1.0.tgz", @@ -19984,6 +20185,27 @@ "node": ">=10" } }, + "node_modules/google-auth-library/node_modules/jwa": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.0.tgz", + "integrity": "sha512-jrZ2Qx916EA+fq9cEAeCROWPTfCwi1IVHqT2tapuqLEVVDKFDENFw1oL+MwrTvH6msKxsd1YTDVw6uKEcsrLEA==", + "license": "MIT", + "dependencies": { + "buffer-equal-constant-time": "1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/google-auth-library/node_modules/jws": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jws/-/jws-4.0.0.tgz", + "integrity": "sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg==", + "license": "MIT", + "dependencies": { + "jwa": "^2.0.0", + "safe-buffer": "^5.0.1" + } + }, "node_modules/google-auth-library/node_modules/lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", @@ -20000,7 +20222,6 @@ "version": "3.1.4", "resolved": "https://registry.npmjs.org/google-p12-pem/-/google-p12-pem-3.1.4.tgz", "integrity": "sha512-HHuHmkLgwjdmVRngf5+gSmpkyaRI6QmOg77J8tkNBHhNEI62sGHyw4/+UkgyZEI7h84NbWprXDJ+sa3xOYFvTg==", - "deprecated": "Package is no longer maintained", "license": "MIT", "dependencies": { "node-forge": "^1.3.1" @@ -20036,12 +20257,12 @@ } }, "node_modules/gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", "license": "MIT", - "dependencies": { - "get-intrinsic": "^1.1.3" + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -20099,6 +20320,27 @@ "node": ">=10" } }, + "node_modules/gtoken/node_modules/jwa": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.0.tgz", + "integrity": "sha512-jrZ2Qx916EA+fq9cEAeCROWPTfCwi1IVHqT2tapuqLEVVDKFDENFw1oL+MwrTvH6msKxsd1YTDVw6uKEcsrLEA==", + "license": "MIT", + "dependencies": { + "buffer-equal-constant-time": "1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/gtoken/node_modules/jws": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jws/-/jws-4.0.0.tgz", + "integrity": "sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg==", + "license": "MIT", + "dependencies": { + "jwa": "^2.0.0", + "safe-buffer": "^5.0.1" + } + }, "node_modules/gzip-size": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz", @@ -20152,22 +20394,25 @@ } }, "node_modules/has-bigints": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", - "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz", + "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==", "dev": true, "license": "MIT", + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "license": "MIT", "engines": { - "node": ">=4" + "node": ">=8" } }, "node_modules/has-own-prop": { @@ -20184,6 +20429,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dev": true, "license": "MIT", "dependencies": { "es-define-property": "^1.0.0" @@ -20193,10 +20439,14 @@ } }, "node_modules/has-proto": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", - "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz", + "integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==", + "dev": true, "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.0" + }, "engines": { "node": ">= 0.4" }, @@ -20205,9 +20455,9 @@ } }, "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", "license": "MIT", "engines": { "node": ">= 0.4" @@ -20244,48 +20494,6 @@ "node": ">= 0.4" } }, - "node_modules/hast-util-heading-rank": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/hast-util-heading-rank/-/hast-util-heading-rank-3.0.0.tgz", - "integrity": "sha512-EJKb8oMUXVHcWZTDepnr+WNbfnXKFNf9duMesmr4S8SXTJBJ9M4Yok08pu9vxdJwdlGRhVumk9mEhkEvKGifwA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/hast": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-is-element": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/hast-util-is-element/-/hast-util-is-element-3.0.0.tgz", - "integrity": "sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/hast": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-to-string": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/hast-util-to-string/-/hast-util-to-string-3.0.1.tgz", - "integrity": "sha512-XelQVTDWvqcl3axRfI0xSeoVKzyIFPwsAGSLIsKdJKQMXDYJS4WYrBNF/8J7RdhIcFI2BOHgAifggsvsxp/3+A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/hast": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/he": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", @@ -20319,25 +20527,18 @@ } }, "node_modules/hosted-git-info": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.2.tgz", - "integrity": "sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==", + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-8.0.2.tgz", + "integrity": "sha512-sYKnA7eGln5ov8T8gnYlkSOxFJvywzEx9BueN6xo/GKO8PGiI6uK6xx+DIGe45T3bdVjLAQDQW1aicT8z8JwQg==", "dev": true, "license": "ISC", "dependencies": { "lru-cache": "^10.0.1" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, - "node_modules/hosted-git-info/node_modules/lru-cache": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", - "dev": true, - "license": "ISC" - }, "node_modules/hpack.js": { "version": "2.1.6", "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", @@ -20454,10 +20655,36 @@ "node": ">= 12" } }, + "node_modules/html-minifier-terser/node_modules/terser": { + "version": "5.37.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.37.0.tgz", + "integrity": "sha512-B8wRRkmre4ERucLM/uXx4MOV5cbnOlVAqUst+1+iLKPI0dOgFO28f84ptoQt9HEI537PMzfYa/d+GEPKTRXmYA==", + "devOptional": true, + "license": "BSD-2-Clause", + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/html-minifier-terser/node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "devOptional": true, + "license": "MIT" + }, "node_modules/html-webpack-plugin": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.6.2.tgz", - "integrity": "sha512-q7xp/FO9RGBVoTKNItkdX1jKLscLFkgn/dLVFNYbHVbfHLBk6DYW5nsQ8kCzIWcgKP/kUBocetjvav6lD8YfCQ==", + "version": "5.6.3", + "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.6.3.tgz", + "integrity": "sha512-QSf1yjtSAsmf7rYBV7XX86uua4W/vkhIt0xNXKbsi2foEeW7vjJQz4bhnpL3xH+l1ryl1680uNv968Z+X6jSYg==", "devOptional": true, "license": "MIT", "dependencies": { @@ -20488,9 +20715,9 @@ } }, "node_modules/htmlparser2": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz", - "integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-9.1.0.tgz", + "integrity": "sha512-5zfg6mHUoaer/97TxnGpxmbR7zJtPwIYFMZ/H5ucTlPZhKvtum05yiPK3Mgai3a0DyVxv7qYqoweaEd2nrYQzQ==", "funding": [ "https://github.com/fb55/htmlparser2?sponsor=1", { @@ -20502,8 +20729,8 @@ "dependencies": { "domelementtype": "^2.3.0", "domhandler": "^5.0.3", - "domutils": "^3.0.1", - "entities": "^4.4.0" + "domutils": "^3.1.0", + "entities": "^4.5.0" } }, "node_modules/http-assert": { @@ -20634,20 +20861,27 @@ } }, "node_modules/http-proxy-middleware": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-3.0.0.tgz", - "integrity": "sha512-36AV1fIaI2cWRzHo+rbcxhe3M3jUDCNzc4D5zRl57sEWRAxdXYtw7FSQKYY6PDKssiAKjLYypbssHk+xs/kMXw==", + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.7.tgz", + "integrity": "sha512-fgVY8AV7qU7z/MmXJ/rxwbrtQH4jBQ9m7kp3llF0liB7glmFeVZFBepQb32T3y8n8k2+AEYuMPCpinYW+/CuRA==", "license": "MIT", "dependencies": { - "@types/http-proxy": "^1.17.10", - "debug": "^4.3.4", + "@types/http-proxy": "^1.17.8", "http-proxy": "^1.18.1", "is-glob": "^4.0.1", "is-plain-obj": "^3.0.0", - "micromatch": "^4.0.5" + "micromatch": "^4.0.2" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=12.0.0" + }, + "peerDependencies": { + "@types/express": "^4.17.13" + }, + "peerDependenciesMeta": { + "@types/express": { + "optional": true + } } }, "node_modules/http-proxy/node_modules/eventemitter3": { @@ -20684,62 +20918,6 @@ "node": ">=12" } }, - "node_modules/http-server/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/http-server/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/http-server/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/http-server/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/http-signature": { "version": "1.3.6", "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.3.6.tgz", @@ -20775,16 +20953,28 @@ } }, "node_modules/https-proxy-agent": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz", - "integrity": "sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", "license": "MIT", "dependencies": { - "agent-base": "^7.0.2", + "agent-base": "6", "debug": "4" }, "engines": { - "node": ">= 14" + "node": ">= 6" + } + }, + "node_modules/https-proxy-agent/node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "license": "MIT", + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" } }, "node_modules/human-signals": { @@ -20823,12 +21013,12 @@ } }, "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "license": "MIT", "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" + "safer-buffer": ">= 2.1.2 < 3.0.0" }, "engines": { "node": ">=0.10.0" @@ -20895,16 +21085,32 @@ } }, "node_modules/ignore-walk": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-6.0.5.tgz", - "integrity": "sha512-VuuG0wCnjhnylG1ABXT3dAuIpTNDs/G8jlpmwXY03fXoXy/8ZK8/T+hMzt8L4WnrLCJgdybqgPagnF/f97cg3A==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-7.0.0.tgz", + "integrity": "sha512-T4gbf83A4NH95zvhVYZc+qWocBBGlpzUXLPGurJggw/WIOwicfXJChLDP/iBZnN5WqROSu5Bm3hhle4z8a8YGQ==", "dev": true, "license": "ISC", "dependencies": { "minimatch": "^9.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/ignore-walk/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/image-size": { @@ -20921,9 +21127,9 @@ } }, "node_modules/immutable": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.7.tgz", - "integrity": "sha512-1hqclzwYwjRDFLjcFxOM5AYkkG0rpFPpr1RLPMEuGczoS7YA8gLhy8SWXYRAA/XwfEHpfo3cw5JGioS32fnMRw==", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-5.0.3.tgz", + "integrity": "sha512-P8IdPQHq3lA1xVeBRi5VPqUm5HDgKnx0Ru51wZz5mjxHr5n3RWhjIpOFU7ybkUxfB+5IToy+OLaHYDBIWsv+uw==", "license": "MIT" }, "node_modules/import-fresh": { @@ -20995,7 +21201,6 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", "devOptional": true, "license": "ISC", "dependencies": { @@ -21010,25 +21215,25 @@ "license": "ISC" }, "node_modules/ini": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.3.tgz", - "integrity": "sha512-X7rqawQBvfdjS10YU1y1YVreA3SsLrW9dX2CewP2EbBJM4ypVNLDkO5y04gejPwKIY9lR+7r9gn3rFPt/kmWFg==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-5.0.0.tgz", + "integrity": "sha512-+N0ngpO3e7cRUWOJAS7qw0IZIVc6XPrW4MlFBdD066F2L4k1L6ker3hLqSq7iXxU5tgS4WGkIUElWn5vogAEnw==", "dev": true, "license": "ISC", "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/internal-slot": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", - "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz", + "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==", "dev": true, "license": "MIT", "dependencies": { "es-errors": "^1.3.0", - "hasown": "^2.0.0", - "side-channel": "^1.0.4" + "hasown": "^2.0.2", + "side-channel": "^1.1.0" }, "engines": { "node": ">= 0.4" @@ -21064,9 +21269,9 @@ } }, "node_modules/ioredis": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/ioredis/-/ioredis-5.4.1.tgz", - "integrity": "sha512-2YZsvl7jopIa1gaePkeMtd9rAcSjOOjPtpcLlOeusyO+XH2SK5ZcT+UCrElPP+WVIInh2TzeI4XW9ENaSLVVHA==", + "version": "5.4.2", + "resolved": "https://registry.npmjs.org/ioredis/-/ioredis-5.4.2.tgz", + "integrity": "sha512-0SZXGNGZ+WzISQ67QDyZ2x0+wVxjjUndtD8oSeik/4ajifeiRufed8fCb8QW8VMyi4MXcS+UO1k/0NGhvq1PAg==", "license": "MIT", "dependencies": { "@ioredis/commands": "^1.1.1", @@ -21101,6 +21306,13 @@ "node": ">= 12" } }, + "node_modules/ip-address/node_modules/jsbn": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz", + "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==", + "dev": true, + "license": "MIT" + }, "node_modules/ipaddr.js": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.2.0.tgz", @@ -21110,28 +21322,15 @@ "node": ">= 10" } }, - "node_modules/is-absolute-url": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-4.0.1.tgz", - "integrity": "sha512-/51/TKE88Lmm7Gc4/8btclNXWS+g50wXhYJq8HWIBAGUBnoAdRu1aXeh364t/O7wXDAcTJDP8PNuNKWUDWie+A==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/is-arguments": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", - "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.2.0.tgz", + "integrity": "sha512-7bVbi0huj/wrIAOzb8U1aszg9kdi3KN/CyU19CTI7tAoZYEZoL9yCDXpbXN+uPsuWnP02cyug1gleqq+TU+YCA==", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -21141,14 +21340,15 @@ } }, "node_modules/is-array-buffer": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", - "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz", + "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1" + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" }, "engines": { "node": ">= 0.4" @@ -21163,14 +21363,33 @@ "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", "license": "MIT" }, - "node_modules/is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "node_modules/is-async-function": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz", + "integrity": "sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==", "dev": true, "license": "MIT", "dependencies": { - "has-bigints": "^1.0.1" + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-bigint": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz", + "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-bigints": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -21189,14 +21408,14 @@ } }, "node_modules/is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.1.tgz", + "integrity": "sha512-l9qO6eFlUETHtuihLcYOaLKByJ1f+N4kthcU9YjHy3N+B3hWv0y/2Nd0mu/7lTFnRQHTrSdXF50HQ3bl5fEnng==", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -21231,10 +21450,17 @@ "is-ci": "bin.js" } }, + "node_modules/is-ci/node_modules/ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", + "dev": true, + "license": "MIT" + }, "node_modules/is-core-module": { - "version": "2.15.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.1.tgz", - "integrity": "sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==", + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", "license": "MIT", "dependencies": { "hasown": "^2.0.2" @@ -21247,12 +21473,14 @@ } }, "node_modules/is-data-view": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz", - "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz", + "integrity": "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==", "dev": true, "license": "MIT", "dependencies": { + "call-bound": "^1.0.2", + "get-intrinsic": "^1.2.6", "is-typed-array": "^1.1.13" }, "engines": { @@ -21263,13 +21491,14 @@ } }, "node_modules/is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz", + "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==", "dev": true, "license": "MIT", "dependencies": { - "has-tostringtag": "^1.0.0" + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -21279,15 +21508,16 @@ } }, "node_modules/is-docker": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", - "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "dev": true, "license": "MIT", "bin": { "is-docker": "cli.js" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -21302,6 +21532,22 @@ "node": ">=0.10.0" } }, + "node_modules/is-finalizationregistry": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz", + "integrity": "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", @@ -21367,6 +21613,21 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/is-inside-container/node_modules/is-docker": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", + "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", + "license": "MIT", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-installed-globally": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.3.2.tgz", @@ -21393,17 +21654,10 @@ "node": ">=8" } }, - "node_modules/is-lambda": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", - "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/is-negative-zero": { + "node_modules/is-map": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", - "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", + "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", "dev": true, "license": "MIT", "engines": { @@ -21435,13 +21689,14 @@ } }, "node_modules/is-number-object": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", - "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz", + "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==", "dev": true, "license": "MIT", "dependencies": { - "has-tostringtag": "^1.0.0" + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -21496,13 +21751,10 @@ } }, "node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", "license": "MIT", - "dependencies": { - "isobject": "^3.0.1" - }, "engines": { "node": ">=0.10.0" } @@ -21522,14 +21774,16 @@ "license": "MIT" }, "node_modules/is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", + "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" + "call-bound": "^1.0.2", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" }, "engines": { "node": ">= 0.4" @@ -21538,14 +21792,27 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-set": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", + "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-shared-array-buffer": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", - "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz", + "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.7" + "call-bound": "^1.0.3" }, "engines": { "node": ">= 0.4" @@ -21567,13 +21834,14 @@ } }, "node_modules/is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz", + "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==", "dev": true, "license": "MIT", "dependencies": { - "has-tostringtag": "^1.0.0" + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -21583,13 +21851,15 @@ } }, "node_modules/is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz", + "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==", "dev": true, "license": "MIT", "dependencies": { - "has-symbols": "^1.0.2" + "call-bound": "^1.0.2", + "has-symbols": "^1.1.0", + "safe-regex-test": "^1.1.0" }, "engines": { "node": ">= 0.4" @@ -21599,13 +21869,13 @@ } }, "node_modules/is-typed-array": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", - "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", + "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", "dev": true, "license": "MIT", "dependencies": { - "which-typed-array": "^1.1.14" + "which-typed-array": "^1.1.16" }, "engines": { "node": ">= 0.4" @@ -21633,14 +21903,47 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/is-weakmap": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", + "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-weakref": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.0.tgz", + "integrity": "sha512-SXM8Nwyys6nT5WP6pltOwKytLV7FqQ4UiibxVmW+EIosHcmCqkkjViTb5SNssDlkCiEYRP1/pdWUKVvZBmsR2Q==", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.2" + "call-bound": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakset": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz", + "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -21688,6 +21991,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "devOptional": true, "license": "ISC" }, "node_modules/iso-url": { @@ -21708,6 +22012,16 @@ "node": ">=0.10.0" } }, + "node_modules/isomorphic-rslog": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/isomorphic-rslog/-/isomorphic-rslog-0.0.6.tgz", + "integrity": "sha512-HM0q6XqQ93psDlqvuViNs/Ea3hAyGDkIdVAHlrEocjjAwGrs1fZ+EdQjS9eUPacnYB7Y8SoDdSY3H8p3ce205A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.17.6" + } + }, "node_modules/isomorphic-ws": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-5.0.0.tgz", @@ -21765,16 +22079,6 @@ "node": ">=10" } }, - "node_modules/istanbul-lib-report/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "devOptional": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/istanbul-lib-report/node_modules/make-dir": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", @@ -21791,19 +22095,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/istanbul-lib-report/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/istanbul-lib-source-maps": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", @@ -21819,16 +22110,6 @@ "node": ">=10" } }, - "node_modules/istanbul-lib-source-maps/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "devOptional": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/istanbul-reports": { "version": "3.1.7", "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz", @@ -21856,6 +22137,7 @@ "version": "3.4.3", "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", + "devOptional": true, "license": "BlueOak-1.0.0", "dependencies": { "@isaacs/cliui": "^8.0.2" @@ -21886,86 +22168,6 @@ "node": ">=10" } }, - "node_modules/jake/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jake/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/jake/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jake/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/jake/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/jake/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/javascript-natural-sort": { "version": "0.7.1", "resolved": "https://registry.npmjs.org/javascript-natural-sort/-/javascript-natural-sort-0.7.1.tgz", @@ -22062,13 +22264,6 @@ "node": ">=10.17.0" } }, - "node_modules/jest-changed-files/node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "devOptional": true, - "license": "ISC" - }, "node_modules/jest-circus": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz", @@ -22101,149 +22296,23 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-circus/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/jest-circus/node_modules/@types/node": { + "version": "22.10.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.2.tgz", + "integrity": "sha512-Xxr6BBRCAOQixvonOye19wnzyDiUtTeqldOOmj3CkeblonbccA12PFwlufvRdrpjXxqnmUaeiU5EOA+7s5diUQ==", "devOptional": true, "license": "MIT", "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "undici-types": "~6.20.0" } }, - "node_modules/jest-circus/node_modules/babel-plugin-macros": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz", - "integrity": "sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "@babel/runtime": "^7.12.5", - "cosmiconfig": "^7.0.0", - "resolve": "^1.19.0" - }, - "engines": { - "node": ">=10", - "npm": ">=6" - } - }, - "node_modules/jest-circus/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-circus/node_modules/cosmiconfig": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", - "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.2.1", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.10.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/jest-circus/node_modules/dedent": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.3.tgz", - "integrity": "sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==", - "devOptional": true, - "license": "MIT", - "peerDependencies": { - "babel-plugin-macros": "^3.1.0" - }, - "peerDependenciesMeta": { - "babel-plugin-macros": { - "optional": true - } - } - }, - "node_modules/jest-circus/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "devOptional": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-circus/node_modules/pretty-format": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", - "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "@jest/schemas": "^29.6.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-circus/node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "devOptional": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-circus/node_modules/react-is": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "node_modules/jest-circus/node_modules/undici-types": { + "version": "6.20.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", + "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", "devOptional": true, "license": "MIT" }, - "node_modules/jest-circus/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/jest-cli": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz", @@ -22278,62 +22347,6 @@ } } }, - "node_modules/jest-cli/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-cli/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-cli/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "devOptional": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-cli/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/jest-config": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", @@ -22380,113 +22393,6 @@ } } }, - "node_modules/jest-config/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-config/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-config/node_modules/ci-info": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", - "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", - "devOptional": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/sibiraj-s" - } - ], - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-config/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "devOptional": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-config/node_modules/pretty-format": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", - "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "@jest/schemas": "^29.6.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-config/node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "devOptional": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-config/node_modules/react-is": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", - "devOptional": true, - "license": "MIT" - }, - "node_modules/jest-config/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/jest-diff": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", @@ -22503,97 +22409,6 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-diff/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-diff/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-diff/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "devOptional": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-diff/node_modules/pretty-format": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", - "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "@jest/schemas": "^29.6.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-diff/node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "devOptional": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-diff/node_modules/react-is": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", - "devOptional": true, - "license": "MIT" - }, - "node_modules/jest-diff/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/jest-docblock": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", @@ -22624,97 +22439,6 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-each/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-each/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-each/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "devOptional": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-each/node_modules/pretty-format": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", - "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "@jest/schemas": "^29.6.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-each/node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "devOptional": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-each/node_modules/react-is": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", - "devOptional": true, - "license": "MIT" - }, - "node_modules/jest-each/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/jest-environment-jsdom": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-29.7.0.tgz", @@ -22743,6 +22467,23 @@ } } }, + "node_modules/jest-environment-jsdom/node_modules/@types/node": { + "version": "22.10.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.2.tgz", + "integrity": "sha512-Xxr6BBRCAOQixvonOye19wnzyDiUtTeqldOOmj3CkeblonbccA12PFwlufvRdrpjXxqnmUaeiU5EOA+7s5diUQ==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "undici-types": "~6.20.0" + } + }, + "node_modules/jest-environment-jsdom/node_modules/undici-types": { + "version": "6.20.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", + "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", + "devOptional": true, + "license": "MIT" + }, "node_modules/jest-environment-node": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", @@ -22761,6 +22502,23 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, + "node_modules/jest-environment-node/node_modules/@types/node": { + "version": "22.10.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.2.tgz", + "integrity": "sha512-Xxr6BBRCAOQixvonOye19wnzyDiUtTeqldOOmj3CkeblonbccA12PFwlufvRdrpjXxqnmUaeiU5EOA+7s5diUQ==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "undici-types": "~6.20.0" + } + }, + "node_modules/jest-environment-node/node_modules/undici-types": { + "version": "6.20.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", + "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", + "devOptional": true, + "license": "MIT" + }, "node_modules/jest-get-type": { "version": "29.6.3", "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", @@ -22797,6 +22555,23 @@ "fsevents": "^2.3.2" } }, + "node_modules/jest-haste-map/node_modules/@types/node": { + "version": "22.10.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.2.tgz", + "integrity": "sha512-Xxr6BBRCAOQixvonOye19wnzyDiUtTeqldOOmj3CkeblonbccA12PFwlufvRdrpjXxqnmUaeiU5EOA+7s5diUQ==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "undici-types": "~6.20.0" + } + }, + "node_modules/jest-haste-map/node_modules/undici-types": { + "version": "6.20.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", + "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", + "devOptional": true, + "license": "MIT" + }, "node_modules/jest-leak-detector": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz", @@ -22811,41 +22586,6 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-leak-detector/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "devOptional": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-leak-detector/node_modules/pretty-format": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", - "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "@jest/schemas": "^29.6.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-leak-detector/node_modules/react-is": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", - "devOptional": true, - "license": "MIT" - }, "node_modules/jest-matcher-utils": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", @@ -22862,97 +22602,6 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-matcher-utils/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-matcher-utils/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-matcher-utils/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "devOptional": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-matcher-utils/node_modules/pretty-format": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", - "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "@jest/schemas": "^29.6.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-matcher-utils/node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "devOptional": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-matcher-utils/node_modules/react-is": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", - "devOptional": true, - "license": "MIT" - }, - "node_modules/jest-matcher-utils/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/jest-message-util": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", @@ -22974,97 +22623,6 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-message-util/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-message-util/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-message-util/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "devOptional": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-message-util/node_modules/pretty-format": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", - "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "@jest/schemas": "^29.6.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-message-util/node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "devOptional": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-message-util/node_modules/react-is": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", - "devOptional": true, - "license": "MIT" - }, - "node_modules/jest-message-util/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/jest-mock": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", @@ -23080,6 +22638,23 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, + "node_modules/jest-mock/node_modules/@types/node": { + "version": "22.10.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.2.tgz", + "integrity": "sha512-Xxr6BBRCAOQixvonOye19wnzyDiUtTeqldOOmj3CkeblonbccA12PFwlufvRdrpjXxqnmUaeiU5EOA+7s5diUQ==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "undici-types": "~6.20.0" + } + }, + "node_modules/jest-mock/node_modules/undici-types": { + "version": "6.20.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", + "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", + "devOptional": true, + "license": "MIT" + }, "node_modules/jest-pnp-resolver": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", @@ -23099,9 +22674,9 @@ } }, "node_modules/jest-preset-angular": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/jest-preset-angular/-/jest-preset-angular-14.1.0.tgz", - "integrity": "sha512-UJwPtpsAMl30UtBjHW0Ai0hhoKsNURC1dXH5tSYjumUsWR7iDke+oBEykz7uXv4rN+PWgeNIqkxo4KHQjOITlw==", + "version": "14.4.2", + "resolved": "https://registry.npmjs.org/jest-preset-angular/-/jest-preset-angular-14.4.2.tgz", + "integrity": "sha512-BYYv0FaTDfBNh8WyA9mpOV3krfw20kurBGK8INZUnv7KZDAWZuQtCET4TwTWxSNQ9jS1OX1+a5weCm/bTDDM1A==", "dev": true, "license": "MIT", "dependencies": { @@ -23119,49 +22694,75 @@ "esbuild": ">=0.15.13" }, "peerDependencies": { - "@angular-devkit/build-angular": ">=15.0.0 <19.0.0", - "@angular/compiler-cli": ">=15.0.0 <19.0.0", - "@angular/core": ">=15.0.0 <19.0.0", - "@angular/platform-browser-dynamic": ">=15.0.0 <19.0.0", + "@angular/compiler-cli": ">=15.0.0 <20.0.0", + "@angular/core": ">=15.0.0 <20.0.0", + "@angular/platform-browser-dynamic": ">=15.0.0 <20.0.0", "jest": "^29.0.0", "typescript": ">=4.8" } }, - "node_modules/jest-preset-angular/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "node_modules/jest-preset-angular/node_modules/esbuild-wasm": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/esbuild-wasm/-/esbuild-wasm-0.24.2.tgz", + "integrity": "sha512-03/7Z1gD+ohDnScFztvI4XddTAbKVmMEzCvvkBpQdWKEXJ+73dTyeNrmdxP1Q0zpDMFjzUJwtK4rLjqwiHbzkw==", "dev": true, "license": "MIT", - "engines": { - "node": ">=10" + "bin": { + "esbuild": "bin/esbuild" }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "engines": { + "node": ">=18" } }, - "node_modules/jest-preset-angular/node_modules/pretty-format": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", - "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "node_modules/jest-preset-angular/node_modules/ts-jest": { + "version": "29.2.5", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.2.5.tgz", + "integrity": "sha512-KD8zB2aAZrcKIdGk4OwpJggeLcH1FgrICqDSROWqlnJXGCXK4Mn6FcdK2B6670Xr73lHMG1kHw8R87A0ecZ+vA==", "dev": true, "license": "MIT", "dependencies": { - "@jest/schemas": "^29.6.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" + "bs-logger": "^0.2.6", + "ejs": "^3.1.10", + "fast-json-stable-stringify": "^2.1.0", + "jest-util": "^29.0.0", + "json5": "^2.2.3", + "lodash.memoize": "^4.1.2", + "make-error": "^1.3.6", + "semver": "^7.6.3", + "yargs-parser": "^21.1.1" + }, + "bin": { + "ts-jest": "cli.js" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "^14.15.0 || ^16.10.0 || ^18.0.0 || >=20.0.0" + }, + "peerDependencies": { + "@babel/core": ">=7.0.0-beta.0 <8", + "@jest/transform": "^29.0.0", + "@jest/types": "^29.0.0", + "babel-jest": "^29.0.0", + "jest": "^29.0.0", + "typescript": ">=4.3 <6" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + }, + "@jest/transform": { + "optional": true + }, + "@jest/types": { + "optional": true + }, + "babel-jest": { + "optional": true + }, + "esbuild": { + "optional": true + } } }, - "node_modules/jest-preset-angular/node_modules/react-is": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", - "dev": true, - "license": "MIT" - }, "node_modules/jest-regex-util": { "version": "29.6.3", "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", @@ -23207,72 +22808,6 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-resolve/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-resolve/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-resolve/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "devOptional": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-resolve/node_modules/resolve.exports": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", - "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", - "devOptional": true, - "license": "MIT", - "engines": { - "node": ">=10" - } - }, - "node_modules/jest-resolve/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/jest-runner": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz", @@ -23306,57 +22841,14 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-runner/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/jest-runner/node_modules/@types/node": { + "version": "22.10.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.2.tgz", + "integrity": "sha512-Xxr6BBRCAOQixvonOye19wnzyDiUtTeqldOOmj3CkeblonbccA12PFwlufvRdrpjXxqnmUaeiU5EOA+7s5diUQ==", "devOptional": true, "license": "MIT", "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-runner/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-runner/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "devOptional": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-runner/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "devOptional": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" + "undici-types": "~6.20.0" } }, "node_modules/jest-runner/node_modules/source-map-support": { @@ -23370,18 +22862,12 @@ "source-map": "^0.6.0" } }, - "node_modules/jest-runner/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/jest-runner/node_modules/undici-types": { + "version": "6.20.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", + "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", "devOptional": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } + "license": "MIT" }, "node_modules/jest-runtime": { "version": "29.7.0", @@ -23417,61 +22903,32 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-runtime/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/jest-runtime/node_modules/@types/node": { + "version": "22.10.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.2.tgz", + "integrity": "sha512-Xxr6BBRCAOQixvonOye19wnzyDiUtTeqldOOmj3CkeblonbccA12PFwlufvRdrpjXxqnmUaeiU5EOA+7s5diUQ==", "devOptional": true, "license": "MIT", "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "undici-types": "~6.20.0" } }, - "node_modules/jest-runtime/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-runtime/node_modules/has-flag": { + "node_modules/jest-runtime/node_modules/strip-bom": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", "devOptional": true, "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/jest-runtime/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/jest-runtime/node_modules/undici-types": { + "version": "6.20.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", + "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", "devOptional": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } + "license": "MIT" }, "node_modules/jest-snapshot": { "version": "29.7.0", @@ -23505,97 +22962,6 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-snapshot/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-snapshot/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-snapshot/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "devOptional": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-snapshot/node_modules/pretty-format": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", - "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "@jest/schemas": "^29.6.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-snapshot/node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "devOptional": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-snapshot/node_modules/react-is": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", - "devOptional": true, - "license": "MIT" - }, - "node_modules/jest-snapshot/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/jest-util": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", @@ -23614,63 +22980,14 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-util/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/jest-util/node_modules/@types/node": { + "version": "22.10.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.2.tgz", + "integrity": "sha512-Xxr6BBRCAOQixvonOye19wnzyDiUtTeqldOOmj3CkeblonbccA12PFwlufvRdrpjXxqnmUaeiU5EOA+7s5diUQ==", "devOptional": true, "license": "MIT", "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-util/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-util/node_modules/ci-info": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", - "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", - "devOptional": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/sibiraj-s" - } - ], - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-util/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "devOptional": true, - "license": "MIT", - "engines": { - "node": ">=8" + "undici-types": "~6.20.0" } }, "node_modules/jest-util/node_modules/picomatch": { @@ -23686,18 +23003,12 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/jest-util/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/jest-util/node_modules/undici-types": { + "version": "6.20.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", + "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", "devOptional": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } + "license": "MIT" }, "node_modules/jest-validate": { "version": "29.7.0", @@ -23717,110 +23028,6 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-validate/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-validate/node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "devOptional": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/jest-validate/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-validate/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "devOptional": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-validate/node_modules/pretty-format": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", - "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "@jest/schemas": "^29.6.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-validate/node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "devOptional": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-validate/node_modules/react-is": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", - "devOptional": true, - "license": "MIT" - }, - "node_modules/jest-validate/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/jest-watcher": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz", @@ -23841,61 +23048,22 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-watcher/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/jest-watcher/node_modules/@types/node": { + "version": "22.10.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.2.tgz", + "integrity": "sha512-Xxr6BBRCAOQixvonOye19wnzyDiUtTeqldOOmj3CkeblonbccA12PFwlufvRdrpjXxqnmUaeiU5EOA+7s5diUQ==", "devOptional": true, "license": "MIT", "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "undici-types": "~6.20.0" } }, - "node_modules/jest-watcher/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/jest-watcher/node_modules/undici-types": { + "version": "6.20.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", + "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", "devOptional": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-watcher/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "devOptional": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-watcher/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } + "license": "MIT" }, "node_modules/jest-worker": { "version": "29.7.0", @@ -23913,14 +23081,14 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-worker/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "node_modules/jest-worker/node_modules/@types/node": { + "version": "22.10.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.2.tgz", + "integrity": "sha512-Xxr6BBRCAOQixvonOye19wnzyDiUtTeqldOOmj3CkeblonbccA12PFwlufvRdrpjXxqnmUaeiU5EOA+7s5diUQ==", "devOptional": true, "license": "MIT", - "engines": { - "node": ">=8" + "dependencies": { + "undici-types": "~6.20.0" } }, "node_modules/jest-worker/node_modules/supports-color": { @@ -23939,10 +23107,17 @@ "url": "https://github.com/chalk/supports-color?sponsor=1" } }, + "node_modules/jest-worker/node_modules/undici-types": { + "version": "6.20.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", + "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", + "devOptional": true, + "license": "MIT" + }, "node_modules/jiti": { - "version": "1.21.6", - "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.6.tgz", - "integrity": "sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==", + "version": "1.21.7", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.7.tgz", + "integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==", "license": "MIT", "bin": { "jiti": "bin/jiti.js" @@ -23999,9 +23174,9 @@ "license": "BSD-3-Clause" }, "node_modules/jsbn": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz", - "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==", + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==", "dev": true, "license": "MIT" }, @@ -24061,43 +23236,38 @@ } } }, - "node_modules/jsdom/node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "node_modules/jsdom/node_modules/escodegen": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", + "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", "devOptional": true, - "license": "MIT", + "license": "BSD-2-Clause", "dependencies": { - "debug": "4" + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" }, "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/jsdom/node_modules/https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "agent-base": "6", - "debug": "4" + "node": ">=6.0" }, - "engines": { - "node": ">= 6" + "optionalDependencies": { + "source-map": "~0.6.1" } }, "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", "license": "MIT", "bin": { "jsesc": "bin/jsesc" }, "engines": { - "node": ">=4" + "node": ">=6" } }, "node_modules/json-bigint": { @@ -24116,14 +23286,10 @@ "license": "MIT" }, "node_modules/json-parse-even-better-errors": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.2.tgz", - "integrity": "sha512-fi0NG4bPjCHunUJffmLd0gxssIgkNmArMvis4iNah6Owg1MCJjWhEcDLmsK6iGkJq3tHwbDkTlce70/tmXN4cQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "license": "MIT" }, "node_modules/json-schema": { "version": "0.4.0", @@ -24193,9 +23359,10 @@ } }, "node_modules/jsonc-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.3.1.tgz", - "integrity": "sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", + "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", + "dev": true, "license": "MIT" }, "node_modules/jsonfile": { @@ -24260,27 +23427,6 @@ "npm": ">=6" } }, - "node_modules/jsonwebtoken/node_modules/jwa": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", - "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", - "license": "MIT", - "dependencies": { - "buffer-equal-constant-time": "1.0.1", - "ecdsa-sig-formatter": "1.0.11", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/jsonwebtoken/node_modules/jws": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", - "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", - "license": "MIT", - "dependencies": { - "jwa": "^1.4.1", - "safe-buffer": "^5.0.1" - } - }, "node_modules/jsonwebtoken/node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", @@ -24304,9 +23450,9 @@ } }, "node_modules/jwa": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.0.tgz", - "integrity": "sha512-jrZ2Qx916EA+fq9cEAeCROWPTfCwi1IVHqT2tapuqLEVVDKFDENFw1oL+MwrTvH6msKxsd1YTDVw6uKEcsrLEA==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", + "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", "license": "MIT", "dependencies": { "buffer-equal-constant-time": "1.0.1", @@ -24315,12 +23461,12 @@ } }, "node_modules/jws": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jws/-/jws-4.0.0.tgz", - "integrity": "sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", + "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", "license": "MIT", "dependencies": { - "jwa": "^2.0.0", + "jwa": "^1.4.1", "safe-buffer": "^5.0.1" } }, @@ -24334,9 +23480,9 @@ } }, "node_modules/katex": { - "version": "0.16.11", - "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.11.tgz", - "integrity": "sha512-RQrI8rlHY92OLf3rho/Ts8i/XvjgguEjOkO1BEXcU3N8BqPpSzBNwV/G0Ukr+P/l3ivvJUE/Fa/CwbS6HesGNQ==", + "version": "0.16.18", + "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.18.tgz", + "integrity": "sha512-LRuk0rPdXrecAFwQucYjMiIs0JFefk6N1q/04mlw14aVIVgxq1FO0MA9RiIIGVaKOB5GIP5GH4aBBNraZERmaQ==", "funding": [ "https://opencollective.com/katex", "https://github.com/sponsors/katex" @@ -24563,75 +23709,11 @@ "source-map": "~0.6.0" } }, - "node_modules/less-loader": { - "version": "12.2.0", - "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-12.2.0.tgz", - "integrity": "sha512-MYUxjSQSBUQmowc0l5nPieOYwMzGPUaTzB6inNW/bdPEG9zOL3eAAD1Qw5ZxSPk7we5dMojHwNODYMV1hq4EVg==", - "license": "MIT", - "engines": { - "node": ">= 18.12.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "@rspack/core": "0.x || 1.x", - "less": "^3.5.0 || ^4.0.0", - "webpack": "^5.0.0" - }, - "peerDependenciesMeta": { - "@rspack/core": { - "optional": true - }, - "webpack": { - "optional": true - } - } - }, - "node_modules/less/node_modules/make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "license": "MIT", - "optional": true, - "dependencies": { - "pify": "^4.0.1", - "semver": "^5.6.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/less/node_modules/pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "license": "MIT", - "optional": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/less/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "license": "ISC", - "optional": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/less/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "license": "BSD-3-Clause", - "optional": true, - "engines": { - "node": ">=0.10.0" - } + "node_modules/less/node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" }, "node_modules/leven": { "version": "3.1.0", @@ -24657,10 +23739,33 @@ "node": ">= 0.8.0" } }, + "node_modules/levn/node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/levn/node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, "node_modules/libphonenumber-js": { - "version": "1.11.12", - "resolved": "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.11.12.tgz", - "integrity": "sha512-QkJn9/D7zZ1ucvT++TQSvZuSA2xAWeUytU+DiEQwbPKLyrDpvbul2AFs1CGbRAPpSCCk47aRAb5DX5mmcayp4g==", + "version": "1.11.17", + "resolved": "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.11.17.tgz", + "integrity": "sha512-Jr6v8thd5qRlOlc6CslSTzGzzQW03uiscab7KHQZX1Dfo4R6n6FDhZ0Hri6/X7edLIDv9gl4VMZXhxTjLnl0VQ==", "license": "MIT" }, "node_modules/license-webpack-plugin": { @@ -24681,9 +23786,9 @@ } }, "node_modules/lilconfig": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.2.tgz", - "integrity": "sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", + "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", "dev": true, "license": "MIT", "engines": { @@ -24757,6 +23862,16 @@ "listr": "^0.14.2" } }, + "node_modules/listr-update-renderer/node_modules/ansi-escapes": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", + "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, "node_modules/listr-update-renderer/node_modules/ansi-regex": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", @@ -24794,6 +23909,46 @@ "node": ">=0.10.0" } }, + "node_modules/listr-update-renderer/node_modules/cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==", + "dev": true, + "license": "MIT", + "dependencies": { + "restore-cursor": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/listr-update-renderer/node_modules/cli-truncate": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-0.2.1.tgz", + "integrity": "sha512-f4r4yJnbT++qUPI9NR4XLDLq41gQ+uqnPItWG0F5ZkehuNiTTa3EY0S4AqTSUOeJ7/zU41oWPQSNkW5BqPL9bg==", + "dev": true, + "license": "MIT", + "dependencies": { + "slice-ansi": "0.0.4", + "string-width": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/listr-update-renderer/node_modules/is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "number-is-nan": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/listr-update-renderer/node_modules/log-symbols": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz", @@ -24807,6 +23962,83 @@ "node": ">=0.10.0" } }, + "node_modules/listr-update-renderer/node_modules/log-update": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-2.3.0.tgz", + "integrity": "sha512-vlP11XfFGyeNQlmEn9tJ66rEW1coA/79m5z6BCkudjbAGE83uhAcGYrBFwfs3AdLiLzGRusRPAbSPK9xZteCmg==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-escapes": "^3.0.0", + "cli-cursor": "^2.0.0", + "wrap-ansi": "^3.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/listr-update-renderer/node_modules/mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/listr-update-renderer/node_modules/onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-fn": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/listr-update-renderer/node_modules/restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/listr-update-renderer/node_modules/slice-ansi": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-0.0.4.tgz", + "integrity": "sha512-up04hB2hR92PgjpyU3y/eg91yIBILyjVY26NvvciY3EVVPjybkMszMpXQ9QAkcS3I5rtJBDLoTxxg+qvW8c7rw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/listr-update-renderer/node_modules/string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==", + "dev": true, + "license": "MIT", + "dependencies": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/listr-update-renderer/node_modules/strip-ansi": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", @@ -24830,6 +24062,67 @@ "node": ">=0.8.0" } }, + "node_modules/listr-update-renderer/node_modules/wrap-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-3.0.1.tgz", + "integrity": "sha512-iXR3tDXpbnTpzjKSylUJRkLuOrEC7hwEB221cgn6wtF8wpmz28puFXAEfPT5zrjM3wahygB//VuWEr1vTkDcNQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/listr-update-renderer/node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", + "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/listr-update-renderer/node_modules/wrap-ansi/node_modules/is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/listr-update-renderer/node_modules/wrap-ansi/node_modules/string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/listr-update-renderer/node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/listr-verbose-renderer": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/listr-verbose-renderer/-/listr-verbose-renderer-0.5.0.tgz", @@ -24846,6 +24139,34 @@ "node": ">=4" } }, + "node_modules/listr-verbose-renderer/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/listr-verbose-renderer/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/listr-verbose-renderer/node_modules/cli-cursor": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", @@ -24859,6 +24180,23 @@ "node": ">=4" } }, + "node_modules/listr-verbose-renderer/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/listr-verbose-renderer/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true, + "license": "MIT" + }, "node_modules/listr-verbose-renderer/node_modules/date-fns": { "version": "1.30.1", "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-1.30.1.tgz", @@ -24879,6 +24217,16 @@ "node": ">=4" } }, + "node_modules/listr-verbose-renderer/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, "node_modules/listr-verbose-renderer/node_modules/mimic-fn": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", @@ -24916,12 +24264,18 @@ "node": ">=4" } }, - "node_modules/listr-verbose-renderer/node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "node_modules/listr-verbose-renderer/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, - "license": "ISC" + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } }, "node_modules/listr/node_modules/is-stream": { "version": "1.1.0", @@ -24954,9 +24308,9 @@ "license": "0BSD" }, "node_modules/listr2": { - "version": "8.2.4", - "resolved": "https://registry.npmjs.org/listr2/-/listr2-8.2.4.tgz", - "integrity": "sha512-opevsywziHd3zHCVQGAj8zu+Z3yHNkkoYhWIGnq54RrCVwLz0MozotJEDnKsIBLvkfLGN6BLOyAeRrYI0pKA4g==", + "version": "8.2.5", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-8.2.5.tgz", + "integrity": "sha512-iyAZCeyD+c1gPyE9qpFu8af0Y+MRtmKOncdGoA2S5EY8iFq99dmmvkNnHiWo+pj0s7yH7l3KPIgee77tKpXPWQ==", "license": "MIT", "dependencies": { "cli-truncate": "^4.0.0", @@ -24970,265 +24324,39 @@ "node": ">=18.0.0" } }, - "node_modules/listr2/node_modules/ansi-escapes": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-7.0.0.tgz", - "integrity": "sha512-GdYO7a61mR0fOlAsvC9/rIHf7L96sBc6dEWzeOu+KAea5bZyQRPIpojrVoI4AXGJS/ycu/fBTdLrUkA4ODrvjw==", - "license": "MIT", - "dependencies": { - "environment": "^1.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/listr2/node_modules/ansi-regex": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", - "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/listr2/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/listr2/node_modules/cli-cursor": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-5.0.0.tgz", - "integrity": "sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==", - "license": "MIT", - "dependencies": { - "restore-cursor": "^5.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/listr2/node_modules/cli-truncate": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-4.0.0.tgz", - "integrity": "sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==", - "license": "MIT", - "dependencies": { - "slice-ansi": "^5.0.0", - "string-width": "^7.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/listr2/node_modules/emoji-regex": { - "version": "10.4.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.4.0.tgz", - "integrity": "sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==", - "license": "MIT" - }, - "node_modules/listr2/node_modules/is-fullwidth-code-point": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", - "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/listr2/node_modules/log-update": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/log-update/-/log-update-6.1.0.tgz", - "integrity": "sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==", - "license": "MIT", - "dependencies": { - "ansi-escapes": "^7.0.0", - "cli-cursor": "^5.0.0", - "slice-ansi": "^7.1.0", - "strip-ansi": "^7.1.0", - "wrap-ansi": "^9.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/listr2/node_modules/log-update/node_modules/is-fullwidth-code-point": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-5.0.0.tgz", - "integrity": "sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA==", - "license": "MIT", - "dependencies": { - "get-east-asian-width": "^1.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/listr2/node_modules/log-update/node_modules/slice-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-7.1.0.tgz", - "integrity": "sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==", - "license": "MIT", - "dependencies": { - "ansi-styles": "^6.2.1", - "is-fullwidth-code-point": "^5.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" - } - }, - "node_modules/listr2/node_modules/onetime": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-7.0.0.tgz", - "integrity": "sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==", - "license": "MIT", - "dependencies": { - "mimic-function": "^5.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/listr2/node_modules/restore-cursor": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-5.1.0.tgz", - "integrity": "sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==", - "license": "MIT", - "dependencies": { - "onetime": "^7.0.0", - "signal-exit": "^4.1.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/listr2/node_modules/slice-ansi": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz", - "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==", - "license": "MIT", - "dependencies": { - "ansi-styles": "^6.0.0", - "is-fullwidth-code-point": "^4.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" - } - }, - "node_modules/listr2/node_modules/string-width": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", - "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", - "license": "MIT", - "dependencies": { - "emoji-regex": "^10.3.0", - "get-east-asian-width": "^1.0.0", - "strip-ansi": "^7.1.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/listr2/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "license": "MIT", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/listr2/node_modules/wrap-ansi": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.0.tgz", - "integrity": "sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==", - "license": "MIT", - "dependencies": { - "ansi-styles": "^6.2.1", - "string-width": "^7.0.0", - "strip-ansi": "^7.1.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, "node_modules/lmdb": { - "version": "3.0.13", - "resolved": "https://registry.npmjs.org/lmdb/-/lmdb-3.0.13.tgz", - "integrity": "sha512-UGe+BbaSUQtAMZobTb4nHvFMrmvuAQKSeaqAX2meTEQjfsbpl5sxdHD8T72OnwD4GU9uwNhYXIVe4QGs8N9Zyw==", + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/lmdb/-/lmdb-3.1.5.tgz", + "integrity": "sha512-46Mch5Drq+A93Ss3gtbg+Xuvf5BOgIuvhKDWoGa3HcPHI6BL2NCOkRdSx1D4VfzwrxhnsjbyIVsLRlQHu6URvw==", "hasInstallScript": true, "license": "MIT", + "optional": true, "dependencies": { - "msgpackr": "^1.10.2", + "msgpackr": "^1.11.2", "node-addon-api": "^6.1.0", "node-gyp-build-optional-packages": "5.2.2", - "ordered-binary": "^1.4.1", + "ordered-binary": "^1.5.3", "weak-lru-cache": "^1.2.2" }, "bin": { "download-lmdb-prebuilds": "bin/download-prebuilds.js" }, "optionalDependencies": { - "@lmdb/lmdb-darwin-arm64": "3.0.13", - "@lmdb/lmdb-darwin-x64": "3.0.13", - "@lmdb/lmdb-linux-arm": "3.0.13", - "@lmdb/lmdb-linux-arm64": "3.0.13", - "@lmdb/lmdb-linux-x64": "3.0.13", - "@lmdb/lmdb-win32-x64": "3.0.13" + "@lmdb/lmdb-darwin-arm64": "3.1.5", + "@lmdb/lmdb-darwin-x64": "3.1.5", + "@lmdb/lmdb-linux-arm": "3.1.5", + "@lmdb/lmdb-linux-arm64": "3.1.5", + "@lmdb/lmdb-linux-x64": "3.1.5", + "@lmdb/lmdb-win32-x64": "3.1.5" } }, + "node_modules/lmdb/node_modules/node-addon-api": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-6.1.0.tgz", + "integrity": "sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==", + "license": "MIT", + "optional": true + }, "node_modules/loader-runner": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", @@ -25239,28 +24367,39 @@ } }, "node_modules/loader-utils": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.3.1.tgz", - "integrity": "sha512-FMJTLMXfCLMLfJxcX9PFqX5qD88Z5MRGaZCVzfuqeZSPsyiBzs+pahDQjbIWz2QIzPZz0NX9Zy4FX3lmK6YHIg==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "license": "MIT", + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/loader-utils/node_modules/big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", "license": "MIT", "engines": { - "node": ">= 12.13.0" + "node": "*" } }, "node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "devOptional": true, "license": "MIT", "dependencies": { - "p-locate": "^5.0.0" + "p-locate": "^4.1.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8" } }, "node_modules/lodash": { @@ -25301,12 +24440,48 @@ "integrity": "sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==", "license": "MIT" }, + "node_modules/lodash.includes": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", + "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==", + "license": "MIT" + }, "node_modules/lodash.isarguments": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", "integrity": "sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg==", "license": "MIT" }, + "node_modules/lodash.isboolean": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", + "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==", + "license": "MIT" + }, + "node_modules/lodash.isinteger": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", + "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==", + "license": "MIT" + }, + "node_modules/lodash.isnumber": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", + "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==", + "license": "MIT" + }, + "node_modules/lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", + "license": "MIT" + }, + "node_modules/lodash.isstring": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==", + "license": "MIT" + }, "node_modules/lodash.memoize": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", @@ -25325,7 +24500,6 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==", - "dev": true, "license": "MIT" }, "node_modules/lodash.uniq": { @@ -25351,199 +24525,166 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/log-symbols/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/log-update": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-6.1.0.tgz", + "integrity": "sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==", "license": "MIT", "dependencies": { - "color-convert": "^2.0.1" + "ansi-escapes": "^7.0.0", + "cli-cursor": "^5.0.0", + "slice-ansi": "^7.1.0", + "strip-ansi": "^7.1.0", + "wrap-ansi": "^9.0.0" }, "engines": { - "node": ">=8" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update/node_modules/ansi-escapes": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-7.0.0.tgz", + "integrity": "sha512-GdYO7a61mR0fOlAsvC9/rIHf7L96sBc6dEWzeOu+KAea5bZyQRPIpojrVoI4AXGJS/ycu/fBTdLrUkA4ODrvjw==", + "license": "MIT", + "dependencies": { + "environment": "^1.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/log-update/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "license": "MIT", + "engines": { + "node": ">=12" }, "funding": { "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/log-symbols/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/log-update/node_modules/cli-cursor": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-5.0.0.tgz", + "integrity": "sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==", "license": "MIT", "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "restore-cursor": "^5.0.0" }, "engines": { - "node": ">=10" + "node": ">=18" }, "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/log-symbols/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/log-symbols/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/log-update": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/log-update/-/log-update-2.3.0.tgz", - "integrity": "sha512-vlP11XfFGyeNQlmEn9tJ66rEW1coA/79m5z6BCkudjbAGE83uhAcGYrBFwfs3AdLiLzGRusRPAbSPK9xZteCmg==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-escapes": "^3.0.0", - "cli-cursor": "^2.0.0", - "wrap-ansi": "^3.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/log-update/node_modules/ansi-escapes": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", - "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/log-update/node_modules/ansi-regex": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", - "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/log-update/node_modules/cli-cursor": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", - "integrity": "sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==", - "dev": true, - "license": "MIT", - "dependencies": { - "restore-cursor": "^2.0.0" - }, - "engines": { - "node": ">=4" + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/log-update/node_modules/is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", - "dev": true, + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-5.0.0.tgz", + "integrity": "sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA==", "license": "MIT", + "dependencies": { + "get-east-asian-width": "^1.0.0" + }, "engines": { - "node": ">=4" - } - }, - "node_modules/log-update/node_modules/mimic-fn": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/log-update/node_modules/onetime": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==", - "dev": true, + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-7.0.0.tgz", + "integrity": "sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==", "license": "MIT", "dependencies": { - "mimic-fn": "^1.0.0" + "mimic-function": "^5.0.0" }, "engines": { - "node": ">=4" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/log-update/node_modules/restore-cursor": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", - "integrity": "sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==", - "dev": true, + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-5.1.0.tgz", + "integrity": "sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==", "license": "MIT", "dependencies": { - "onetime": "^2.0.0", - "signal-exit": "^3.0.2" + "onetime": "^7.0.0", + "signal-exit": "^4.1.0" }, "engines": { - "node": ">=4" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/log-update/node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true, - "license": "ISC" + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } }, - "node_modules/log-update/node_modules/string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, + "node_modules/log-update/node_modules/slice-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-7.1.0.tgz", + "integrity": "sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==", "license": "MIT", "dependencies": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" + "ansi-styles": "^6.2.1", + "is-fullwidth-code-point": "^5.0.0" }, "engines": { - "node": ">=4" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" } }, "node_modules/log-update/node_modules/strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", - "dev": true, + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", "license": "MIT", "dependencies": { - "ansi-regex": "^3.0.0" + "ansi-regex": "^6.0.1" }, "engines": { - "node": ">=4" - } - }, - "node_modules/log-update/node_modules/wrap-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-3.0.1.tgz", - "integrity": "sha512-iXR3tDXpbnTpzjKSylUJRkLuOrEC7hwEB221cgn6wtF8wpmz28puFXAEfPT5zrjM3wahygB//VuWEr1vTkDcNQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0" + "node": ">=12" }, - "engines": { - "node": ">=4" + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, "node_modules/log4js": { @@ -25600,6 +24741,13 @@ "tslib": "^2.0.3" } }, + "node_modules/lower-case/node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "devOptional": true, + "license": "0BSD" + }, "node_modules/lowercase-keys": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", @@ -25610,18 +24758,9 @@ } }, "node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "license": "ISC", - "dependencies": { - "yallist": "^3.0.2" - } - }, - "node_modules/lru-cache/node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", "license": "ISC" }, "node_modules/luxon": { @@ -25644,38 +24783,50 @@ } }, "node_modules/magic-string": { - "version": "0.30.11", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.11.tgz", - "integrity": "sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A==", + "version": "0.30.0", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.0.tgz", + "integrity": "sha512-LA+31JYDJLs82r2ScLrlz1GjSgu66ZV518eyWT+S8VhyQn/JL0u9MeBOvQMGYiPk1DBiSN9DDMOcXvigJZaViQ==", + "dev": true, "license": "MIT", "dependencies": { - "@jridgewell/sourcemap-codec": "^1.5.0" + "@jridgewell/sourcemap-codec": "^1.4.13" + }, + "engines": { + "node": ">=12" } }, "node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", "license": "MIT", + "optional": true, "dependencies": { - "semver": "^6.0.0" + "pify": "^4.0.1", + "semver": "^5.6.0" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=6" + } + }, + "node_modules/make-dir/node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=6" } }, "node_modules/make-dir/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "license": "ISC", + "optional": true, "bin": { - "semver": "bin/semver.js" + "semver": "bin/semver" } }, "node_modules/make-error": { @@ -25685,27 +24836,36 @@ "license": "ISC" }, "node_modules/make-fetch-happen": { - "version": "13.0.1", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-13.0.1.tgz", - "integrity": "sha512-cKTUFc/rbKUd/9meOvgrpJ2WrNzymt6jfRDdwg5UCnVzv9dTpEj9JS5m3wtziXVCjluIXyL8pcaukYqezIzZQA==", + "version": "14.0.3", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-14.0.3.tgz", + "integrity": "sha512-QMjGbFTP0blj97EeidG5hk/QhKQ3T4ICckQGLgz38QF7Vgbk6e6FTARN8KhKxyBbWn8R0HU+bnw8aSoFPD4qtQ==", "dev": true, "license": "ISC", "dependencies": { - "@npmcli/agent": "^2.0.0", - "cacache": "^18.0.0", + "@npmcli/agent": "^3.0.0", + "cacache": "^19.0.1", "http-cache-semantics": "^4.1.1", - "is-lambda": "^1.0.1", "minipass": "^7.0.2", - "minipass-fetch": "^3.0.0", + "minipass-fetch": "^4.0.0", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.3", - "proc-log": "^4.2.0", + "negotiator": "^1.0.0", + "proc-log": "^5.0.0", "promise-retry": "^2.0.1", - "ssri": "^10.0.0" + "ssri": "^12.0.0" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/make-fetch-happen/node_modules/negotiator": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-1.0.0.tgz", + "integrity": "sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" } }, "node_modules/makeerror": { @@ -25725,23 +24885,10 @@ "dev": true, "license": "MIT" }, - "node_modules/markdown-to-jsx": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/markdown-to-jsx/-/markdown-to-jsx-7.5.0.tgz", - "integrity": "sha512-RrBNcMHiFPcz/iqIj0n3wclzHXjwS7mzjBNWecKKVhNTIxQepIix6Il/wZCn2Cg5Y1ow2Qi84+eJrryFRWBEWw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 10" - }, - "peerDependencies": { - "react": ">= 0.14.0" - } - }, "node_modules/marked": { - "version": "12.0.2", - "resolved": "https://registry.npmjs.org/marked/-/marked-12.0.2.tgz", - "integrity": "sha512-qXUm7e/YKFoqFPYPa3Ukg9xlI5cyAtGmyEIzMfW//m6kXwCy2Ps9DYf5ioijFKQ8qyuscrHoY04iJGctu2Kg0Q==", + "version": "15.0.4", + "resolved": "https://registry.npmjs.org/marked/-/marked-15.0.4.tgz", + "integrity": "sha512-TCHvDqmb3ZJ4PWG7VEGVgtefA5/euFmsIhxtD0XsBxI39gUSKL81mIRFdt0AiNQozUahd4ke98ZdirExd/vSEw==", "license": "MIT", "bin": { "marked": "bin/marked.js" @@ -25750,6 +24897,15 @@ "node": ">= 18" } }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, "node_modules/mdast-util-from-markdown": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-1.3.1.tgz", @@ -25806,9 +24962,9 @@ } }, "node_modules/memfs": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.5.3.tgz", - "integrity": "sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.6.0.tgz", + "integrity": "sha512-EGowvkkgbMcIChjMTMkESFDbZeSh8xZ7kNSF0hAiAN4Jh6jgHCRS0Ga/+C8y6Au+oqpezRHCfPsmJ2+DwAgiwQ==", "dev": true, "license": "Unlicense", "dependencies": { @@ -25829,10 +24985,13 @@ } }, "node_modules/merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==", - "license": "MIT" + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", + "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, "node_modules/merge-stream": { "version": "2.0.0", @@ -25850,9 +25009,9 @@ } }, "node_modules/mermaid": { - "version": "10.9.2", - "resolved": "https://registry.npmjs.org/mermaid/-/mermaid-10.9.2.tgz", - "integrity": "sha512-UkZyMSuIYcI1Q0H+2pv/5CiY84sOwQ2XlKoDZMl9Y/MtrLEtxQtyA6LWGkMxnZxj0dJqI+7nw51bYjNnrbdFsQ==", + "version": "10.9.3", + "resolved": "https://registry.npmjs.org/mermaid/-/mermaid-10.9.3.tgz", + "integrity": "sha512-V80X1isSEvAewIL3xhmz/rVmc27CVljcsbWxkxlWJWY/1kQa4XOABqpDl2qQLGKzpKm6WbTfUEKImBlUfFYArw==", "license": "MIT", "optional": true, "dependencies": { @@ -26444,12 +25603,15 @@ } }, "node_modules/mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", "license": "MIT", "engines": { - "node": ">=4" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/min-indent": { @@ -26463,13 +25625,13 @@ } }, "node_modules/mini-css-extract-plugin": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.9.0.tgz", - "integrity": "sha512-Zs1YsZVfemekSZG+44vBsYTLQORkPMwnlv+aehcxK/NLKC+EGhDB39/YePYYqx/sTk6NnYpuqikhSn7+JIevTA==", + "version": "2.4.7", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.4.7.tgz", + "integrity": "sha512-euWmddf0sk9Nv1O0gfeeUAvAkoSlWncNLF77C0TP2+WoPvy8mAHKOzMajcCz2dzvyt3CNgxb1obIEVFIRxaipg==", + "dev": true, "license": "MIT", "dependencies": { - "schema-utils": "^4.0.0", - "tapable": "^2.2.1" + "schema-utils": "^4.0.0" }, "engines": { "node": ">= 12.13.0" @@ -26489,19 +25651,27 @@ "license": "ISC" }, "node_modules/minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", - "dev": true, + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "devOptional": true, "license": "ISC", "dependencies": { - "brace-expansion": "^2.0.1" + "brace-expansion": "^1.1.7" }, "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": "*" + } + }, + "node_modules/minimatch/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, "node_modules/minimist": { @@ -26517,6 +25687,7 @@ "version": "7.1.2", "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "devOptional": true, "license": "ISC", "engines": { "node": ">=16 || 14 >=14.17" @@ -26536,18 +25707,18 @@ } }, "node_modules/minipass-fetch": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.5.tgz", - "integrity": "sha512-2N8elDQAtSnFV0Dk7gt15KHsS0Fyz6CbYZ360h0WTYV1Ty46li3rAXVOQj1THMNLdmrD9Vt5pBPtWtVkpwGBqg==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-4.0.0.tgz", + "integrity": "sha512-2v6aXUXwLP1Epd/gc32HAMIWoczx+fZwEPRHm/VwtrJzRGwR1qGZXEYV3Zp8ZjjbwaZhMrM6uHV4KVkk+XCc2w==", "dev": true, "license": "MIT", "dependencies": { "minipass": "^7.0.3", "minipass-sized": "^1.0.3", - "minizlib": "^2.1.2" + "minizlib": "^3.0.1" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" }, "optionalDependencies": { "encoding": "^0.1.13" @@ -26632,30 +25803,17 @@ } }, "node_modules/minizlib": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-3.0.1.tgz", + "integrity": "sha512-umcy022ILvb5/3Djuu8LWeqUa8D68JaBzlttKeMWen48SjabqS3iY5w/vzeMzMUNhLDifyhbOwKDSznB1vvrwg==", "dev": true, "license": "MIT", "dependencies": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" + "minipass": "^7.0.4", + "rimraf": "^5.0.5" }, "engines": { - "node": ">= 8" - } - }, - "node_modules/minizlib/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dev": true, - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" + "node": ">= 18" } }, "node_modules/mkdirp": { @@ -26709,9 +25867,9 @@ } }, "node_modules/msgpackr": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/msgpackr/-/msgpackr-1.11.0.tgz", - "integrity": "sha512-I8qXuuALqJe5laEBYoFykChhSXLikZmUhccjGsPuSJ/7uPip2TJ7lwdIQwWSAi0jGZDXv4WOP8Qg65QZRuXxXw==", + "version": "1.11.2", + "resolved": "https://registry.npmjs.org/msgpackr/-/msgpackr-1.11.2.tgz", + "integrity": "sha512-F9UngXRlPyWCDEASDpTf6c9uNhGPTqnTeLVt7bN+bU1eajoR/8V9ys2BRaV5C/e5ihE6sJ9uPIKaYt6bFuO32g==", "license": "MIT", "optionalDependencies": { "msgpackr-extract": "^3.0.2" @@ -26774,15 +25932,16 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-1.0.0.tgz", "integrity": "sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==", + "dev": true, "license": "ISC", "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/nanoid": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", - "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "version": "3.3.8", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz", + "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==", "funding": [ { "type": "github", @@ -26821,19 +25980,6 @@ "node": ">= 4.4.x" } }, - "node_modules/needle/node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "license": "MIT", - "optional": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/negotiator": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", @@ -26850,134 +25996,73 @@ "license": "MIT" }, "node_modules/ng-extract-i18n-merge": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/ng-extract-i18n-merge/-/ng-extract-i18n-merge-2.12.0.tgz", - "integrity": "sha512-ohzt7WLraXS0PVPEohYK0f/TxzGu/1vOYeukncd8r6sJybrSUG/dm/lpxC4Ozkhq4rhKEHRPRTKA5x59qjIfjw==", + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/ng-extract-i18n-merge/-/ng-extract-i18n-merge-2.13.1.tgz", + "integrity": "sha512-aU+shz0VSe0qqKYmlpg42P2C6Ol6eQ+DZDTYzQM4PTMfEBWJNFtl+c7B+MA68/AzdpcNPKu0BWJLZchCdZtjhQ==", "license": "MIT", "dependencies": { - "@angular-devkit/architect": "^0.1301.0 || ^0.1401.0 || ^0.1501.0 || ^0.1601.0 || ^0.1700.0 || ^0.1800.0", - "@angular-devkit/core": "^13.0.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0", - "@angular-devkit/schematics": "^13.0.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0", - "@schematics/angular": "^13.0.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0", + "@angular-devkit/architect": "^0.1301.0 || ^0.1401.0 || ^0.1501.0 || ^0.1601.0 || ^0.1700.0 || ^0.1800.0 || ^0.1900.0", + "@angular-devkit/core": "^13.0.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", + "@angular-devkit/schematics": "^13.0.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", + "@schematics/angular": "^13.0.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", "xmldoc": "^1.1.3" }, "engines": { "node": ">=14.0.0" }, "peerDependencies": { - "@angular-devkit/build-angular": "^13.0.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0" - } - }, - "node_modules/ng-extract-i18n-merge/node_modules/@angular-devkit/architect": { - "version": "0.1800.7", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1800.7.tgz", - "integrity": "sha512-ZYIjdngUOjY6G2XJGHtATLr+HhJWdo7Z3ATlzQTGI9D1a02kW3UFlELQBhFIn+1o78FU6W0STZgyfBH8M7wD2w==", - "license": "MIT", - "dependencies": { - "@angular-devkit/core": "18.0.7", - "rxjs": "7.8.1" - }, - "engines": { - "node": "^18.19.1 || ^20.11.1 || >=22.0.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" - } - }, - "node_modules/ng-extract-i18n-merge/node_modules/@angular-devkit/core": { - "version": "18.0.7", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-18.0.7.tgz", - "integrity": "sha512-pVmuE37DNuTe3S4Lh1jg6U4dyHljiZiqI99u3gtS7PF765P4AeGlugHIYE7ztC74fYd9gy04sWnbeV+RQuBTVw==", - "license": "MIT", - "dependencies": { - "ajv": "8.13.0", - "ajv-formats": "3.0.1", - "jsonc-parser": "3.2.1", - "picomatch": "4.0.2", - "rxjs": "7.8.1", - "source-map": "0.7.4" - }, - "engines": { - "node": "^18.19.1 || ^20.11.1 || >=22.0.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" - }, - "peerDependencies": { - "chokidar": "^3.5.2" - }, - "peerDependenciesMeta": { - "chokidar": { - "optional": true - } - } - }, - "node_modules/ng-extract-i18n-merge/node_modules/ajv": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.13.0.tgz", - "integrity": "sha512-PRA911Blj99jR5RMeTunVbNXMF6Lp4vZXnk5GQjcnUWUTsrXtekg/pnmFFI2u/I36Y/2bITGS30GZCXei6uNkA==", - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.3", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.4.1" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ng-extract-i18n-merge/node_modules/jsonc-parser": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.1.tgz", - "integrity": "sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==", - "license": "MIT" - }, - "node_modules/ng-extract-i18n-merge/node_modules/rxjs": { - "version": "7.8.1", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", - "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", - "license": "Apache-2.0", - "dependencies": { - "tslib": "^2.1.0" + "@angular-devkit/build-angular": "^13.0.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "node_modules/ngx-device-detector": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/ngx-device-detector/-/ngx-device-detector-8.0.0.tgz", - "integrity": "sha512-ik6EwUKnlN+xwoWHzyJp5+V+QRWYrmpTqAvRwa16xBnAVd7/i3jElN7MZjs/InwcYz7AW3XcSNeu+XRvtHgb9w==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/ngx-device-detector/-/ngx-device-detector-9.0.0.tgz", + "integrity": "sha512-zpio/wqH1GnxIpWCdA7cp5fmWf7YLycgzfXzQHmB9vaS7eAcqpBF5mxDS65IhE7TzNTJziDrYJCT+9tVqBcsDg==", "license": "MIT", "dependencies": { "tslib": "^2.0.0" }, "peerDependencies": { - "@angular/common": "^18.0.0", - "@angular/core": "^18.0.0" + "@angular/common": "^19.0.0", + "@angular/core": "^19.0.0" } }, + "node_modules/ngx-device-detector/node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" + }, "node_modules/ngx-markdown": { - "version": "18.0.0", - "resolved": "https://registry.npmjs.org/ngx-markdown/-/ngx-markdown-18.0.0.tgz", - "integrity": "sha512-sFR9dIOKobdhNKZTlCrX3RmpoAhZ7k3T9h7oWJP676Oe9BsoxuAYZKJmFDT20vrY6xmFD3WtLJDZR7rNRLf6Uw==", + "version": "19.0.0", + "resolved": "https://registry.npmjs.org/ngx-markdown/-/ngx-markdown-19.0.0.tgz", + "integrity": "sha512-/UDTYxK2sbG9LjeuPfqErCg9gbT1O64Rnqvs9qgvK70X//gEVCMStNUi1zYIqw/SLRk19Rk48DZMgPiFRbgb1Q==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" }, "optionalDependencies": { "clipboard": "^2.0.11", - "emoji-toolkit": "^8.0.0", + "emoji-toolkit": ">= 8.0.0 < 10.0.0", "katex": "^0.16.0", - "mermaid": "^10.6.0", + "mermaid": ">= 10.6.0 < 12.0.0", "prismjs": "^1.28.0" }, "peerDependencies": { - "@angular/common": "^18.0.0", - "@angular/core": "^18.0.0", - "@angular/platform-browser": "^18.0.0", - "marked": ">= 9.0.0 < 13.0.0", + "@angular/common": "^19.0.0", + "@angular/core": "^19.0.0", + "@angular/platform-browser": "^19.0.0", + "marked": "^15.0.0", "rxjs": "^6.5.3 || ^7.4.0", - "zone.js": "~0.14.0" + "zone.js": "~0.15.0" } }, + "node_modules/ngx-markdown/node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" + }, "node_modules/ngx-skeleton-loader": { "version": "9.0.0", "resolved": "https://registry.npmjs.org/ngx-skeleton-loader/-/ngx-skeleton-loader-9.0.0.tgz", @@ -26991,41 +26076,31 @@ "@angular/core": ">=16.0.0" } }, + "node_modules/ngx-skeleton-loader/node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" + }, "node_modules/ngx-stripe": { - "version": "18.1.0", - "resolved": "https://registry.npmjs.org/ngx-stripe/-/ngx-stripe-18.1.0.tgz", - "integrity": "sha512-fNWmFaCWWzfsr8GU9Bmi6fwgHZHMI9UwpV5M0HMvkANnz9n7JWjP2Uck6zk0lXdu9q989aIbqj4awbLCZk/TUw==", + "version": "19.0.0", + "resolved": "https://registry.npmjs.org/ngx-stripe/-/ngx-stripe-19.0.0.tgz", + "integrity": "sha512-Q95EnHcEjZrHg4f4XMwMhRlJNg/jenBfypk9JISC3T4R2hc+J6HS2NMHBuft9hfRepKrcQY+FiSLzH2yS+5cAg==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" }, "peerDependencies": { - "@angular/common": ">=18.0.0 <19.0.0", - "@angular/core": ">=18.0.0 <19.0.0", - "@stripe/stripe-js": ">=4.0.0 <5.0.0" + "@angular/common": ">=19.0.0 <20.0.0", + "@angular/core": ">=19.0.0 <20.0.0", + "@stripe/stripe-js": ">=5.0.0 <6.0.0" } }, - "node_modules/nice-napi": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/nice-napi/-/nice-napi-1.0.2.tgz", - "integrity": "sha512-px/KnJAJZf5RuBGcfD+Sp2pAKq0ytz8j+1NehvgIGFkvtvFrDM3T8E4x/JJODXK9WZow8RRGrbA9QQ3hs+pDhA==", - "hasInstallScript": true, - "license": "MIT", - "optional": true, - "os": [ - "!win32" - ], - "dependencies": { - "node-addon-api": "^3.0.0", - "node-gyp-build": "^4.2.2" - } - }, - "node_modules/nice-napi/node_modules/node-addon-api": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz", - "integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==", - "license": "MIT", - "optional": true + "node_modules/ngx-stripe/node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" }, "node_modules/no-case": { "version": "3.0.4", @@ -27038,6 +26113,13 @@ "tslib": "^2.0.3" } }, + "node_modules/no-case/node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "devOptional": true, + "license": "0BSD" + }, "node_modules/node-abort-controller": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/node-abort-controller/-/node-abort-controller-3.1.1.tgz", @@ -27046,10 +26128,11 @@ "license": "MIT" }, "node_modules/node-addon-api": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-6.1.0.tgz", - "integrity": "sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==", - "license": "MIT" + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz", + "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==", + "license": "MIT", + "optional": true }, "node_modules/node-fetch": { "version": "2.7.0", @@ -27103,9 +26186,9 @@ } }, "node_modules/node-gyp": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-10.2.0.tgz", - "integrity": "sha512-sp3FonBAaFe4aYTcFdZUn2NYkbP7xroPGYvQmP4Nl5PxamznItBnNCgjrVTKrEfQynInMsJvZrdmqUnysCJ8rw==", + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-11.0.0.tgz", + "integrity": "sha512-zQS+9MTTeCMgY0F3cWPyJyRFAkVltQ1uXm+xXu/ES6KFgC6Czo1Seb9vQW2wNxSX2OrDTiqL0ojtkFxBQ0ypIw==", "dev": true, "license": "MIT", "dependencies": { @@ -27113,30 +26196,18 @@ "exponential-backoff": "^3.1.1", "glob": "^10.3.10", "graceful-fs": "^4.2.6", - "make-fetch-happen": "^13.0.0", - "nopt": "^7.0.0", - "proc-log": "^4.1.0", + "make-fetch-happen": "^14.0.3", + "nopt": "^8.0.0", + "proc-log": "^5.0.0", "semver": "^7.3.5", - "tar": "^6.2.1", - "which": "^4.0.0" + "tar": "^7.4.3", + "which": "^5.0.0" }, "bin": { "node-gyp": "bin/node-gyp.js" }, "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/node-gyp-build": { - "version": "4.8.2", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.2.tgz", - "integrity": "sha512-IRUxE4BVsHWXkV/SFOut4qTlagw2aM8T5/vnTsmrHJvVoKueJHRc/JaFND7QDDc61kLYUJ6qlZM3sqTSyx2dTw==", - "license": "MIT", - "optional": true, - "bin": { - "node-gyp-build": "bin.js", - "node-gyp-build-optional": "optional.js", - "node-gyp-build-test": "build-test.js" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/node-gyp-build-optional-packages": { @@ -27144,6 +26215,7 @@ "resolved": "https://registry.npmjs.org/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.2.2.tgz", "integrity": "sha512-s+w+rBWnpTMwSFbaE0UXsRlg7hU4FjekKU4eyAih5T8nJuNZT1nNsskXpxmeqSK9UzkBl6UgRlnKc8hz8IEqOw==", "license": "MIT", + "optional": true, "dependencies": { "detect-libc": "^2.0.1" }, @@ -27153,6 +26225,16 @@ "node-gyp-build-optional-packages-test": "build-test.js" } }, + "node_modules/node-gyp-build-optional-packages/node_modules/detect-libc": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz", + "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==", + "license": "Apache-2.0", + "optional": true, + "engines": { + "node": ">=8" + } + }, "node_modules/node-gyp/node_modules/glob": { "version": "10.4.5", "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", @@ -27174,16 +26256,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/node-gyp/node_modules/isexe": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", - "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=16" - } - }, "node_modules/node-gyp/node_modules/minimatch": { "version": "9.0.5", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", @@ -27200,22 +26272,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/node-gyp/node_modules/which": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", - "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", - "dev": true, - "license": "ISC", - "dependencies": { - "isexe": "^3.1.1" - }, - "bin": { - "node-which": "bin/which.js" - }, - "engines": { - "node": "^16.13.0 || >=18.0.0" - } - }, "node_modules/node-int64": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", @@ -27231,9 +26287,9 @@ "license": "MIT" }, "node_modules/node-releases": { - "version": "2.0.18", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", - "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==", + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", + "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", "license": "MIT" }, "node_modules/node-schedule": { @@ -27259,9 +26315,9 @@ "optional": true }, "node_modules/nopt": { - "version": "7.2.1", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-7.2.1.tgz", - "integrity": "sha512-taM24ViiimT/XntxbPyJQzCG+p4EKOpgD3mxFwW38mGjVUrfERQOeY4EDHjdnptttfHuHQXFx+lTP08Q+mLa/w==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-8.0.0.tgz", + "integrity": "sha512-1L/fTJ4UmV/lUxT2Uf006pfZKTvAgCF+chz+0OgBHO8u2Z67pE7AaAUUj7CJy0lXqHmymUvGFt6NE9R3HER0yw==", "dev": true, "license": "ISC", "dependencies": { @@ -27271,22 +26327,22 @@ "nopt": "bin/nopt.js" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/normalize-package-data": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-6.0.2.tgz", - "integrity": "sha512-V6gygoYb/5EmNI+MEGrWkC+e6+Rr7mTmfHrxDbLzxQogBkgzo76rkok0Am6thgSF7Mv2nLOajAJj5vDJZEFn7g==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-7.0.0.tgz", + "integrity": "sha512-k6U0gKRIuNCTkwHGZqblCfLfBRh+w1vI6tBo+IeJwq2M8FUiOqhX7GH+GArQGScA7azd1WfyRCvxoXDO3hQDIA==", "dev": true, "license": "BSD-2-Clause", "dependencies": { - "hosted-git-info": "^7.0.0", + "hosted-git-info": "^8.0.0", "semver": "^7.3.5", "validate-npm-package-license": "^3.0.4" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/normalize-path": { @@ -27320,110 +26376,111 @@ } }, "node_modules/npm-bundled": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-3.0.1.tgz", - "integrity": "sha512-+AvaheE/ww1JEwRHOrn4WHNzOxGtVp+adrg2AeZS/7KuxGUYFuBta98wYpfHBbJp6Tg6j1NKSEVHNcfZzJHQwQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-4.0.0.tgz", + "integrity": "sha512-IxaQZDMsqfQ2Lz37VvyyEtKLe8FsRZuysmedy/N06TU1RyVppYKXrO4xIhR0F+7ubIBox6Q7nir6fQI3ej39iA==", "dev": true, "license": "ISC", "dependencies": { - "npm-normalize-package-bin": "^3.0.0" + "npm-normalize-package-bin": "^4.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/npm-install-checks": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-6.3.0.tgz", - "integrity": "sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-7.1.1.tgz", + "integrity": "sha512-u6DCwbow5ynAX5BdiHQ9qvexme4U3qHW3MWe5NqH+NeBm0LbiH6zvGjNNew1fY+AZZUtVHbOPF3j7mJxbUzpXg==", "dev": true, "license": "BSD-2-Clause", "dependencies": { "semver": "^7.1.1" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/npm-normalize-package-bin": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.1.tgz", - "integrity": "sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-4.0.0.tgz", + "integrity": "sha512-TZKxPvItzai9kN9H/TkmCtx/ZN/hvr3vUycjlfmH0ootY9yFBzNOpiXAdIn1Iteqsvk4lQn6B5PTrt+n6h8k/w==", "dev": true, "license": "ISC", "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/npm-package-arg": { - "version": "11.0.3", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-11.0.3.tgz", - "integrity": "sha512-sHGJy8sOC1YraBywpzQlIKBE4pBbGbiF95U6Auspzyem956E0+FtDtsx1ZxlOJkQCZ1AFXAY/yuvtFYrOxF+Bw==", + "version": "12.0.1", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-12.0.1.tgz", + "integrity": "sha512-aDxjFfPV3Liw0WOBWlyZLMBqtbgbg03rmGvHDJa2Ttv7tIz+1oB5qWec4psCDFZcZi9b5XdGkPdQiJxOPzvQRQ==", "dev": true, "license": "ISC", "dependencies": { - "hosted-git-info": "^7.0.0", - "proc-log": "^4.0.0", + "hosted-git-info": "^8.0.0", + "proc-log": "^5.0.0", "semver": "^7.3.5", - "validate-npm-package-name": "^5.0.0" + "validate-npm-package-name": "^6.0.0" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/npm-packlist": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-8.0.2.tgz", - "integrity": "sha512-shYrPFIS/JLP4oQmAwDyk5HcyysKW8/JLTEA32S0Z5TzvpaeeX2yMFfoK1fjEBnCBvVyIB/Jj/GBFdm0wsgzbA==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-9.0.0.tgz", + "integrity": "sha512-8qSayfmHJQTx3nJWYbbUmflpyarbLMBc6LCAjYsiGtXxDB68HaZpb8re6zeaLGxZzDuMdhsg70jryJe+RrItVQ==", "dev": true, "license": "ISC", "dependencies": { - "ignore-walk": "^6.0.4" + "ignore-walk": "^7.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/npm-pick-manifest": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-9.1.0.tgz", - "integrity": "sha512-nkc+3pIIhqHVQr085X9d2JzPzLyjzQS96zbruppqC9aZRm/x8xx6xhI98gHtsfELP2bE+loHq8ZaHFHhe+NauA==", + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-10.0.0.tgz", + "integrity": "sha512-r4fFa4FqYY8xaM7fHecQ9Z2nE9hgNfJR+EmoKv0+chvzWkBcORX3r0FpTByP+CbOVJDladMXnPQGVN8PBLGuTQ==", "dev": true, "license": "ISC", "dependencies": { - "npm-install-checks": "^6.0.0", - "npm-normalize-package-bin": "^3.0.0", - "npm-package-arg": "^11.0.0", + "npm-install-checks": "^7.1.0", + "npm-normalize-package-bin": "^4.0.0", + "npm-package-arg": "^12.0.0", "semver": "^7.3.5" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/npm-registry-fetch": { - "version": "17.1.0", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-17.1.0.tgz", - "integrity": "sha512-5+bKQRH0J1xG1uZ1zMNvxW0VEyoNWgJpY9UDuluPFLKDfJ9u2JmmjmTJV1srBGQOROfdBMiVvnH2Zvpbm+xkVA==", + "version": "18.0.2", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-18.0.2.tgz", + "integrity": "sha512-LeVMZBBVy+oQb5R6FDV9OlJCcWDU+al10oKpe+nsvcHnG24Z3uM3SvJYKfGJlfGjVU8v9liejCrUR/M5HO5NEQ==", "dev": true, "license": "ISC", "dependencies": { - "@npmcli/redact": "^2.0.0", + "@npmcli/redact": "^3.0.0", "jsonparse": "^1.3.1", - "make-fetch-happen": "^13.0.0", + "make-fetch-happen": "^14.0.0", "minipass": "^7.0.2", - "minipass-fetch": "^3.0.0", - "minizlib": "^2.1.2", - "npm-package-arg": "^11.0.0", - "proc-log": "^4.0.0" + "minipass-fetch": "^4.0.0", + "minizlib": "^3.0.1", + "npm-package-arg": "^12.0.0", + "proc-log": "^5.0.0" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/npm-run-path": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "devOptional": true, "license": "MIT", "dependencies": { "path-key": "^3.0.0" @@ -27455,16 +26512,16 @@ } }, "node_modules/nwsapi": { - "version": "2.2.13", - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.13.tgz", - "integrity": "sha512-cTGB9ptp9dY9A5VbMSe7fQBcl/tt22Vcqdq8+eN93rblOuE0aCFu4aZ2vMwct/2t+lFnosm8RkQW1I0Omb1UtQ==", + "version": "2.2.16", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.16.tgz", + "integrity": "sha512-F1I/bimDpj3ncaNDhfyMWuFqmQDBwDB0Fogc2qpL3BWvkQteFD/8BzWuIRl83rq0DXfm8SGt/HFhLXZyljTXcQ==", "devOptional": true, "license": "MIT" }, "node_modules/nx": { - "version": "20.1.2", - "resolved": "https://registry.npmjs.org/nx/-/nx-20.1.2.tgz", - "integrity": "sha512-CvjmuQmI0RWLYZxRSIgQZmzsQv6dPp9oI0YZE3L1dagBPfTf5Cun65I0GLt7bdkDnVx2PGYkDbIoJSv2/V+83Q==", + "version": "20.3.0", + "resolved": "https://registry.npmjs.org/nx/-/nx-20.3.0.tgz", + "integrity": "sha512-Nzi4k7tV22zwO2iBLk+pHxorLEWPJpPrVCACtz0SQ63j/LiAgfhoqruJO+VU+V+E9qdyPsvmqIL/Iaf/GRQlqA==", "dev": true, "hasInstallScript": true, "license": "MIT", @@ -27493,12 +26550,14 @@ "npm-run-path": "^4.0.1", "open": "^8.4.0", "ora": "5.3.0", + "resolve.exports": "2.0.3", "semver": "^7.5.3", "string-width": "^4.2.3", "tar-stream": "~2.2.0", "tmp": "~0.2.1", "tsconfig-paths": "^4.1.2", "tslib": "^2.3.0", + "yaml": "^2.6.0", "yargs": "^17.6.2", "yargs-parser": "21.1.1" }, @@ -27507,16 +26566,16 @@ "nx-cloud": "bin/nx-cloud.js" }, "optionalDependencies": { - "@nx/nx-darwin-arm64": "20.1.2", - "@nx/nx-darwin-x64": "20.1.2", - "@nx/nx-freebsd-x64": "20.1.2", - "@nx/nx-linux-arm-gnueabihf": "20.1.2", - "@nx/nx-linux-arm64-gnu": "20.1.2", - "@nx/nx-linux-arm64-musl": "20.1.2", - "@nx/nx-linux-x64-gnu": "20.1.2", - "@nx/nx-linux-x64-musl": "20.1.2", - "@nx/nx-win32-arm64-msvc": "20.1.2", - "@nx/nx-win32-x64-msvc": "20.1.2" + "@nx/nx-darwin-arm64": "20.3.0", + "@nx/nx-darwin-x64": "20.3.0", + "@nx/nx-freebsd-x64": "20.3.0", + "@nx/nx-linux-arm-gnueabihf": "20.3.0", + "@nx/nx-linux-arm64-gnu": "20.3.0", + "@nx/nx-linux-arm64-musl": "20.3.0", + "@nx/nx-linux-x64-gnu": "20.3.0", + "@nx/nx-linux-x64-musl": "20.3.0", + "@nx/nx-win32-arm64-msvc": "20.3.0", + "@nx/nx-win32-x64-msvc": "20.3.0" }, "peerDependencies": { "@swc-node/register": "^1.8.0", @@ -27531,50 +26590,17 @@ } } }, - "node_modules/nx/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/nx/node_modules/cli-spinners": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.6.1.tgz", + "integrity": "sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==", "dev": true, "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, "engines": { - "node": ">=8" + "node": ">=6" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/nx/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/nx/node_modules/cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dev": true, - "license": "MIT", - "dependencies": { - "restore-cursor": "^3.1.0" - }, - "engines": { - "node": ">=8" + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/nx/node_modules/define-lazy-prop": { @@ -27587,19 +26613,6 @@ "node": ">=8" } }, - "node_modules/nx/node_modules/dotenv": { - "version": "16.4.5", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz", - "integrity": "sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://dotenvx.com" - } - }, "node_modules/nx/node_modules/dotenv-expand": { "version": "11.0.7", "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-11.0.7.tgz", @@ -27632,32 +26645,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/nx/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/nx/node_modules/is-docker": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", - "dev": true, - "license": "MIT", - "bin": { - "is-docker": "cli.js" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/nx/node_modules/is-wsl": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", @@ -27671,12 +26658,21 @@ "node": ">=8" } }, - "node_modules/nx/node_modules/jsonc-parser": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", - "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", + "node_modules/nx/node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", "dev": true, - "license": "MIT" + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } }, "node_modules/nx/node_modules/open": { "version": "8.4.2", @@ -27719,38 +26715,37 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/nx/node_modules/restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "node_modules/nx/node_modules/ora/node_modules/cli-spinners": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz", + "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", "dev": true, "license": "MIT", - "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - }, "engines": { - "node": ">=8" + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/nx/node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "node_modules/nx/node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", "dev": true, - "license": "ISC" + "license": "0BSD" }, - "node_modules/nx/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/nx/node_modules/yaml": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.6.1.tgz", + "integrity": "sha512-7r0XPzioN/Q9kXBro/XPnA6kznR73DHq+GXh5ON7ZozRO6aMjbmiBuKste2wslTFkC5d1dw0GooOCepZXJ2SAg==", "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" + "license": "ISC", + "bin": { + "yaml": "bin.mjs" }, "engines": { - "node": ">=8" + "node": ">= 14" } }, "node_modules/oauth": { @@ -27769,9 +26764,9 @@ } }, "node_modules/object-inspect": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz", - "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==", + "version": "1.13.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.3.tgz", + "integrity": "sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==", "license": "MIT", "engines": { "node": ">= 0.4" @@ -27791,15 +26786,17 @@ } }, "node_modules/object.assign": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", - "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz", + "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.5", + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", "define-properties": "^1.2.1", - "has-symbols": "^1.0.3", + "es-object-atoms": "^1.0.0", + "has-symbols": "^1.1.0", "object-keys": "^1.1.1" }, "engines": { @@ -27844,13 +26841,14 @@ } }, "node_modules/object.values": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz", - "integrity": "sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.1.tgz", + "integrity": "sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", "define-properties": "^1.2.1", "es-object-atoms": "^1.0.0" }, @@ -27970,6 +26968,29 @@ "node": ">= 0.8.0" } }, + "node_modules/optionator/node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/optionator/node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, "node_modules/ora": { "version": "5.4.1", "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", @@ -27993,94 +27014,12 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/ora/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/ora/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/ora/node_modules/cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "license": "MIT", - "dependencies": { - "restore-cursor": "^3.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ora/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/ora/node_modules/restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "license": "MIT", - "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ora/node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "license": "ISC" - }, - "node_modules/ora/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/ordered-binary": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/ordered-binary/-/ordered-binary-1.5.2.tgz", - "integrity": "sha512-JTo+4+4Fw7FreyAvlSLjb1BBVaxEQAacmjD3jjuyPZclpbEghTvQZbXBb2qPd2LeIMxiHwXBZUcpmG2Gl/mDEA==", - "license": "MIT" + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/ordered-binary/-/ordered-binary-1.5.3.tgz", + "integrity": "sha512-oGFr3T+pYdTGJ+YFEILMpS3es+GiIbs9h/XQrclBXUtd44ey7XwfsMzM31f64I1SQOawDoDr/D823kNCADI8TA==", + "license": "MIT", + "optional": true }, "node_modules/os-tmpdir": { "version": "1.0.2", @@ -28125,16 +27064,29 @@ } }, "node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "devOptional": true, "license": "MIT", "dependencies": { - "p-limit": "^3.0.2" + "p-limit": "^2.2.0" }, "engines": { - "node": ">=10" + "node": ">=8" + } + }, + "node_modules/p-locate/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -28151,9 +27103,9 @@ } }, "node_modules/p-retry": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-6.2.0.tgz", - "integrity": "sha512-JA6nkq6hKyWLLasXQXUrO4z8BUZGUt/LjlJxx8Gb2+2ntodU/SS63YZ8b0LUTbQ8ZB9iwOfhEPhg4ykKnn2KsA==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-6.2.1.tgz", + "integrity": "sha512-hEt02O4hUct5wtwg4H4KcWgDdm+l1bOaEy/hWzd8xtXB9BqxTWBBhb+2ImAtH4Cv4rPjV76xN3Zumqk3k3AhhQ==", "license": "MIT", "dependencies": { "@types/retry": "0.12.2", @@ -28167,15 +27119,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/p-retry/node_modules/retry": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", - "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, "node_modules/p-try": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", @@ -28190,38 +27133,143 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", + "devOptional": true, "license": "BlueOak-1.0.0" }, "node_modules/pacote": { - "version": "18.0.6", - "resolved": "https://registry.npmjs.org/pacote/-/pacote-18.0.6.tgz", - "integrity": "sha512-+eK3G27SMwsB8kLIuj4h1FUhHtwiEUo21Tw8wNjmvdlpOEr613edv+8FUsTj/4F/VN5ywGE19X18N7CC2EJk6A==", + "version": "20.0.0", + "resolved": "https://registry.npmjs.org/pacote/-/pacote-20.0.0.tgz", + "integrity": "sha512-pRjC5UFwZCgx9kUFDVM9YEahv4guZ1nSLqwmWiLUnDbGsjs+U5w7z6Uc8HNR1a6x8qnu5y9xtGE6D1uAuYz+0A==", "dev": true, "license": "ISC", "dependencies": { - "@npmcli/git": "^5.0.0", - "@npmcli/installed-package-contents": "^2.0.1", - "@npmcli/package-json": "^5.1.0", - "@npmcli/promise-spawn": "^7.0.0", - "@npmcli/run-script": "^8.0.0", - "cacache": "^18.0.0", + "@npmcli/git": "^6.0.0", + "@npmcli/installed-package-contents": "^3.0.0", + "@npmcli/package-json": "^6.0.0", + "@npmcli/promise-spawn": "^8.0.0", + "@npmcli/run-script": "^9.0.0", + "cacache": "^19.0.0", "fs-minipass": "^3.0.0", "minipass": "^7.0.2", - "npm-package-arg": "^11.0.0", - "npm-packlist": "^8.0.0", - "npm-pick-manifest": "^9.0.0", - "npm-registry-fetch": "^17.0.0", - "proc-log": "^4.0.0", + "npm-package-arg": "^12.0.0", + "npm-packlist": "^9.0.0", + "npm-pick-manifest": "^10.0.0", + "npm-registry-fetch": "^18.0.0", + "proc-log": "^5.0.0", "promise-retry": "^2.0.1", - "sigstore": "^2.2.0", - "ssri": "^10.0.0", + "sigstore": "^3.0.0", + "ssri": "^12.0.0", "tar": "^6.1.11" }, "bin": { "pacote": "bin/index.js" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/pacote/node_modules/chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/pacote/node_modules/minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "dev": true, + "license": "MIT", + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/pacote/node_modules/minizlib/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pacote/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "license": "MIT", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/pacote/node_modules/tar": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", + "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==", + "dev": true, + "license": "ISC", + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^5.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/pacote/node_modules/tar/node_modules/fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "dev": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/pacote/node_modules/tar/node_modules/fs-minipass/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pacote/node_modules/tar/node_modules/minipass": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=8" } }, "node_modules/papaparse": { @@ -28241,6 +27289,13 @@ "tslib": "^2.0.3" } }, + "node_modules/param-case/node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "devOptional": true, + "license": "0BSD" + }, "node_modules/parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", @@ -28271,12 +27326,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/parse-json/node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "license": "MIT" - }, "node_modules/parse-json/node_modules/lines-and-columns": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", @@ -28303,9 +27352,9 @@ } }, "node_modules/parse5": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.2.0.tgz", - "integrity": "sha512-ZkDsAOcxsUMZ4Lz5fVciOehNcJ+Gb8gTzcA4yl3wnc273BAybYWrQ+Ks/OjCjSEpjvQkDSeZbybK9qj2VHHdGA==", + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.2.1.tgz", + "integrity": "sha512-BuBYQYlv1ckiPdQi/ohiivi9Sagc9JG+Ozs0r7b/0iK3sKmrb0b9FdWdBbOdx6hBCM/F9Ir82ofnBhtZOjCRPQ==", "license": "MIT", "dependencies": { "entities": "^4.5.0" @@ -28385,6 +27434,13 @@ "tslib": "^2.0.3" } }, + "node_modules/pascal-case/node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "devOptional": true, + "license": "0BSD" + }, "node_modules/passport": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/passport/-/passport-0.7.0.tgz", @@ -28435,6 +27491,34 @@ "passport-strategy": "^1.0.0" } }, + "node_modules/passport-jwt/node_modules/jsonwebtoken": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.2.tgz", + "integrity": "sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==", + "license": "MIT", + "dependencies": { + "jws": "^3.2.2", + "lodash.includes": "^4.3.0", + "lodash.isboolean": "^3.0.3", + "lodash.isinteger": "^4.0.4", + "lodash.isnumber": "^3.0.3", + "lodash.isplainobject": "^4.0.6", + "lodash.isstring": "^4.0.1", + "lodash.once": "^4.0.0", + "ms": "^2.1.1", + "semver": "^7.5.4" + }, + "engines": { + "node": ">=12", + "npm": ">=6" + } + }, + "node_modules/passport-jwt/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, "node_modules/passport-oauth2": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/passport-oauth2/-/passport-oauth2-1.8.0.tgz", @@ -28494,6 +27578,7 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "devOptional": true, "license": "MIT", "engines": { "node": ">=8" @@ -28509,6 +27594,7 @@ "version": "1.11.1", "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "devOptional": true, "license": "BlueOak-1.0.0", "dependencies": { "lru-cache": "^10.2.0", @@ -28521,16 +27607,10 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/path-scurry/node_modules/lru-cache": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", - "license": "ISC" - }, "node_modules/path-to-regexp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-3.2.0.tgz", - "integrity": "sha512-jczvQbCUS7XmS7o+y1aEO9OBVFeZBQ1MDSEqmO7xSoPgOPoowY/SxLpZ6Vh97/8qHZOteiCKb7gkG9gA2ZUxJA==", + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz", + "integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==", "license": "MIT" }, "node_modules/path-type": { @@ -28611,12 +27691,12 @@ } }, "node_modules/piscina": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/piscina/-/piscina-4.6.1.tgz", - "integrity": "sha512-z30AwWGtQE+Apr+2WBZensP2lIvwoaMcOPkQlIEmSGMJNUvaYACylPYrQM6wSdUNJlnDVMSpLv7xTMJqlVshOA==", + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/piscina/-/piscina-4.7.0.tgz", + "integrity": "sha512-b8hvkpp9zS0zsfa939b/jXbe64Z2gZv0Ha7FYPNUiDIB1y2AtxcOZdfP8xN8HFjUaqQiT9gRlfjAsoL8vdJ1Iw==", "license": "MIT", "optionalDependencies": { - "nice-napi": "^1.0.2" + "@napi-rs/nice": "^1.0.1" } }, "node_modules/pkg-dir": { @@ -28632,62 +27712,6 @@ "node": ">=8" } }, - "node_modules/pkg-dir/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pkg-dir/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/pluralize": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", @@ -28776,9 +27800,9 @@ } }, "node_modules/postcss": { - "version": "8.4.41", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.41.tgz", - "integrity": "sha512-TesUflQ0WKZqAvg52PWL6kHgLKP6xB6heTOdoYM0Wt2UHyxNa4K25EZZMgKns3BH1RLVbZCREPpLY0rhnNoHVQ==", + "version": "8.4.49", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.49.tgz", + "integrity": "sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==", "funding": [ { "type": "opencollective", @@ -28796,8 +27820,8 @@ "license": "MIT", "dependencies": { "nanoid": "^3.3.7", - "picocolors": "^1.0.1", - "source-map-js": "^1.2.0" + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" }, "engines": { "node": "^10 || ^12 || >=14" @@ -28927,72 +27951,26 @@ } }, "node_modules/postcss-loader": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-8.1.1.tgz", - "integrity": "sha512-0IeqyAsG6tYiDRCYKQJLAmgQr47DX6N7sFSWvQxt6AcupX8DIdmykuk/o/tx0Lze3ErGHJEp5OSRxrelC6+NdQ==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-6.2.1.tgz", + "integrity": "sha512-WbbYpmAaKcux/P66bZ40bpWsBucjx/TTgVVzRZ9yUO8yQfVBlameJ0ZGVaPfH64hNSBh63a+ICP5nqOpBA0w+Q==", + "dev": true, "license": "MIT", "dependencies": { - "cosmiconfig": "^9.0.0", - "jiti": "^1.20.0", - "semver": "^7.5.4" + "cosmiconfig": "^7.0.0", + "klona": "^2.0.5", + "semver": "^7.3.5" }, "engines": { - "node": ">= 18.12.0" + "node": ">= 12.13.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/webpack" }, "peerDependencies": { - "@rspack/core": "0.x || 1.x", "postcss": "^7.0.0 || ^8.0.1", "webpack": "^5.0.0" - }, - "peerDependenciesMeta": { - "@rspack/core": { - "optional": true - }, - "webpack": { - "optional": true - } - } - }, - "node_modules/postcss-loader/node_modules/cosmiconfig": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz", - "integrity": "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==", - "license": "MIT", - "dependencies": { - "env-paths": "^2.2.1", - "import-fresh": "^3.3.0", - "js-yaml": "^4.1.0", - "parse-json": "^5.2.0" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/d-fischer" - }, - "peerDependencies": { - "typescript": ">=4.9.5" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/postcss-loader/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" } }, "node_modules/postcss-media-query-parser": { @@ -29118,13 +28096,13 @@ } }, "node_modules/postcss-modules-local-by-default": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.5.tgz", - "integrity": "sha512-6MieY7sIfTK0hYfafw1OMEG+2bg8Q1ocHCpoWLqOKj3JXlKu4G7btkmM/B7lFubYkYWmRSPLZi5chid63ZaZYw==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.2.0.tgz", + "integrity": "sha512-5kcJm/zk+GJDSfw+V/42fJ5fhjL5YbFDl8nVdXkJPLLW+Vf9mTD5Xe0wqIaDnLuL2U6cDNpTr+UQ+v2HWIBhzw==", "license": "MIT", "dependencies": { "icss-utils": "^5.0.0", - "postcss-selector-parser": "^6.0.2", + "postcss-selector-parser": "^7.0.0", "postcss-value-parser": "^4.1.0" }, "engines": { @@ -29134,13 +28112,26 @@ "postcss": "^8.1.0" } }, + "node_modules/postcss-modules-local-by-default/node_modules/postcss-selector-parser": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz", + "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/postcss-modules-scope": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.2.0.tgz", - "integrity": "sha512-oq+g1ssrsZOsx9M96c5w8laRmvEu9C3adDSjI8oTcbfkrTE8hx/zfyobUoWIxaKPO8bt6S62kxpw5GqypEw1QQ==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.2.1.tgz", + "integrity": "sha512-m9jZstCVaqGjTAuny8MdgE88scJnCiQSlSrOWcTQgM2t32UBe+MUmFSO5t7VMSfAf/FJKImAxBav8ooCHJXCJA==", "license": "ISC", "dependencies": { - "postcss-selector-parser": "^6.0.4" + "postcss-selector-parser": "^7.0.0" }, "engines": { "node": "^10 || ^12 || >= 14" @@ -29149,6 +28140,19 @@ "postcss": "^8.1.0" } }, + "node_modules/postcss-modules-scope/node_modules/postcss-selector-parser": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz", + "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/postcss-modules-values": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", @@ -29360,6 +28364,7 @@ "version": "6.1.2", "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "dev": true, "license": "MIT", "dependencies": { "cssesc": "^3.0.0", @@ -29409,11 +28414,9 @@ "license": "MIT" }, "node_modules/prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true, - "license": "MIT", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", "engines": { "node": ">= 0.8.0" } @@ -29472,25 +28475,25 @@ } }, "node_modules/pretty-format": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", - "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", - "dev": true, + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "devOptional": true, "license": "MIT", "dependencies": { - "ansi-regex": "^5.0.1", + "@jest/schemas": "^29.6.3", "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" + "react-is": "^18.0.0" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/pretty-format/node_modules/ansi-styles": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, + "devOptional": true, "license": "MIT", "engines": { "node": ">=10" @@ -29530,13 +28533,13 @@ } }, "node_modules/proc-log": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-4.2.0.tgz", - "integrity": "sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-5.0.0.tgz", + "integrity": "sha512-Azwzvl90HaF0aCz1JrDdXQykFakSSNPaPoiZ9fm5qJIMHioDZEi7OAdRwSm6rSoPtY3Qutnm3L7ogmg3dc+wbQ==", "dev": true, "license": "ISC", "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/process": { @@ -29585,6 +28588,16 @@ "node": ">=10" } }, + "node_modules/promise-retry/node_modules/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, "node_modules/prompts": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", @@ -29636,10 +28649,16 @@ "optional": true }, "node_modules/psl": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", - "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", - "license": "MIT" + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.15.0.tgz", + "integrity": "sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==", + "license": "MIT", + "dependencies": { + "punycode": "^2.3.1" + }, + "funding": { + "url": "https://github.com/sponsors/lupomontero" + } }, "node_modules/pump": { "version": "3.0.2", @@ -29678,18 +28697,18 @@ "license": "MIT" }, "node_modules/pvtsutils": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/pvtsutils/-/pvtsutils-1.3.5.tgz", - "integrity": "sha512-ARvb14YB9Nm2Xi6nBq1ZX6dAM0FsJnuk+31aUp4TrcZEdKUlSqOqsxJHUPJDNE3qiIp+iUPEIeR6Je/tgV7zsA==", + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/pvtsutils/-/pvtsutils-1.3.6.tgz", + "integrity": "sha512-PLgQXQ6H2FWCaeRak8vvk1GW462lMxB5s3Jm673N82zI4vqtVUPuZdffdZbPDFRoU8kAhItWFtPCWiPpp4/EDg==", "license": "MIT", "dependencies": { - "tslib": "^2.6.1" + "tslib": "^2.8.1" } }, "node_modules/pvtsutils/node_modules/tslib": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.0.tgz", - "integrity": "sha512-jWVzBLplnCmoaTr13V9dYbiQ99wvZRd0vNWaDRg+aVYRcjDF3nDksxFDE/+fkXnKhpnUUkmx5pK/v8mCtLVqZA==", + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", "license": "0BSD" }, "node_modules/pvutils": { @@ -29755,9 +28774,9 @@ } }, "node_modules/rambda": { - "version": "9.4.0", - "resolved": "https://registry.npmjs.org/rambda/-/rambda-9.4.0.tgz", - "integrity": "sha512-B7y7goUd+g0hNl5ODGUejNNERQL5gD8uANJ5Y5aHly8v0jKesFlwIe7prPfuJxttDpe3otQzHJ4NXMpTmL9ELA==", + "version": "9.4.1", + "resolved": "https://registry.npmjs.org/rambda/-/rambda-9.4.1.tgz", + "integrity": "sha512-awZe9AzmPI8XqizJz+NlaRbAdjhWKvuIaPikqRH6r41/ui9UTUQY5jTVdgQwnVrv1HnSMB6IBAAnNYs8HoVvZg==", "dev": true, "license": "MIT" }, @@ -29801,6 +28820,18 @@ "node": ">= 0.8" } }, + "node_modules/raw-body/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/react": { "version": "18.2.0", "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", @@ -29814,17 +28845,6 @@ "node": ">=0.10.0" } }, - "node_modules/react-colorful": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/react-colorful/-/react-colorful-5.6.1.tgz", - "integrity": "sha512-1exovf0uGTGyq5mXQT0zgQ80uvj2PCwvF8zY1RN9/vbJVSjSo3fsB/4L3ObbF7u70NduSiK4xu4Y6q1MHoUGEw==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "react": ">=16.8.0", - "react-dom": ">=16.8.0" - } - }, "node_modules/react-dom": { "version": "18.2.0", "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", @@ -29840,10 +28860,10 @@ } }, "node_modules/react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true, + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "devOptional": true, "license": "MIT" }, "node_modules/read-cache": { @@ -29871,27 +28891,16 @@ } }, "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "license": "MIT", - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/readdirp/node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.0.2.tgz", + "integrity": "sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==", "license": "MIT", "engines": { - "node": ">=8.6" + "node": ">= 14.16.0" }, "funding": { - "url": "https://github.com/sponsors/jonschlinkert" + "type": "individual", + "url": "https://paulmillr.com/funding/" } }, "node_modules/recast": { @@ -29911,16 +28920,6 @@ "node": ">= 4" } }, - "node_modules/recast/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/rechoir": { "version": "0.6.2", "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", @@ -30001,6 +29000,29 @@ "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==", "license": "Apache-2.0" }, + "node_modules/reflect.getprototypeof": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.9.tgz", + "integrity": "sha512-r0Ay04Snci87djAsI4U+WNRcSw5S4pOH7qFjd/veA5gC7TbqESR3tcj28ia95L/fYUDw11JKP7uqUKUAfVvV5Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "dunder-proto": "^1.0.1", + "es-abstract": "^1.23.6", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "gopd": "^1.2.0", + "which-builtin-type": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/regenerate": { "version": "1.4.2", "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", @@ -30060,15 +29082,15 @@ } }, "node_modules/regexpu-core": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.1.1.tgz", - "integrity": "sha512-k67Nb9jvwJcJmVpw0jPttR1/zVfnKf8Km0IPatrU/zJ5XeG3+Slx0xLXs9HByJSzXzrlz5EDvN6yLNMDc2qdnw==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.2.0.tgz", + "integrity": "sha512-H66BPQMrv+V16t8xtmq+UC0CBpiTBA60V8ibS1QVReIp8T1z8hwFxqcGzm9K6lgsN7sB5edVH8a+ze6Fqm4weA==", "license": "MIT", "dependencies": { "regenerate": "^1.4.2", "regenerate-unicode-properties": "^10.2.0", "regjsgen": "^0.8.0", - "regjsparser": "^0.11.0", + "regjsparser": "^0.12.0", "unicode-match-property-ecmascript": "^2.0.0", "unicode-match-property-value-ecmascript": "^2.1.0" }, @@ -30083,9 +29105,9 @@ "license": "MIT" }, "node_modules/regjsparser": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.11.1.tgz", - "integrity": "sha512-1DHODs4B8p/mQHU9kr+jv8+wIC9mtG4eBHxWxIq5mhjE3D5oORhCc6deRKzTjs9DcfRFmj9BHSDguZklqCGFWQ==", + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.12.0.tgz", + "integrity": "sha512-cnE+y8bz4NhMjISKbgeVJtqNbtf5QpjZP+Bslo+UqkIt9QPnX9q095eiRRASJG1/tz6dlNr6Z5NsBiWYokp6EQ==", "license": "BSD-2-Clause", "dependencies": { "jsesc": "~3.0.2" @@ -30106,43 +29128,6 @@ "node": ">=6" } }, - "node_modules/rehype-external-links": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/rehype-external-links/-/rehype-external-links-3.0.0.tgz", - "integrity": "sha512-yp+e5N9V3C6bwBeAC4n796kc86M4gJCdlVhiMTxIrJG5UHDMh+PJANf9heqORJbt1nrCbDwIlAZKjANIaVBbvw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/hast": "^3.0.0", - "@ungap/structured-clone": "^1.0.0", - "hast-util-is-element": "^3.0.0", - "is-absolute-url": "^4.0.0", - "space-separated-tokens": "^2.0.0", - "unist-util-visit": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/rehype-slug": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/rehype-slug/-/rehype-slug-6.0.0.tgz", - "integrity": "sha512-lWyvf/jwu+oS5+hL5eClVd3hNdmwM1kAC0BUvEGD19pajQMIzcNUd/k9GsfQ+FfECvX+JE+e9/btsKH0EjJT6A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/hast": "^3.0.0", - "github-slugger": "^2.0.0", - "hast-util-heading-rank": "^3.0.0", - "hast-util-to-string": "^3.0.0", - "unist-util-visit": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/relateurl": { "version": "0.2.7", "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", @@ -30288,44 +29273,10 @@ "node": ">=10" } }, - "node_modules/replace-in-file/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/replace-in-file/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, "node_modules/replace-in-file/node_modules/glob": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", - "deprecated": "Glob versions prior to v9 are no longer supported", "dev": true, "license": "ISC", "dependencies": { @@ -30342,16 +29293,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/replace-in-file/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/replace-in-file/node_modules/minimatch": { "version": "5.1.6", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", @@ -30365,19 +29306,6 @@ "node": ">=10" } }, - "node_modules/replace-in-file/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/request-progress": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/request-progress/-/request-progress-3.0.0.tgz", @@ -30423,18 +29351,21 @@ "license": "MIT" }, "node_modules/resolve": { - "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "version": "1.22.10", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", + "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", "license": "MIT", "dependencies": { - "is-core-module": "^2.13.0", + "is-core-module": "^2.16.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, "bin": { "resolve": "bin/resolve" }, + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -30498,43 +29429,17 @@ "node": ">=12" } }, - "node_modules/resolve-url-loader/node_modules/big.js": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", - "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", - "license": "MIT", - "engines": { - "node": "*" - } - }, - "node_modules/resolve-url-loader/node_modules/loader-utils": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", - "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", - "license": "MIT", - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - }, - "engines": { - "node": ">=8.9.0" - } - }, - "node_modules/resolve-url-loader/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } + "node_modules/resolve-url-loader/node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "license": "MIT" }, "node_modules/resolve.exports": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.0.tgz", - "integrity": "sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==", - "dev": true, + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.3.tgz", + "integrity": "sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A==", + "devOptional": true, "license": "MIT", "engines": { "node": ">=10" @@ -30553,34 +29458,22 @@ } }, "node_modules/restore-cursor": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz", - "integrity": "sha512-reSjH4HuiFlxlaBaFCiS6O76ZGG2ygKoSlCsipKdaZuKSPx/+bt9mULkn4l0asVzbEfQQmXRg6Wp6gv6m0wElw==", - "dev": true, + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", "license": "MIT", "dependencies": { - "exit-hook": "^1.0.0", - "onetime": "^1.0.0" + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" }, "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/restore-cursor/node_modules/onetime": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", - "integrity": "sha512-GZ+g4jayMqzCRMgB2sol7GiCLjKfS1PINkjmx8spcKce1LiVqcbQreXwqs2YAFXC6R03VIG28ZS31t8M866v6A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, "node_modules/retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", - "dev": true, + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", + "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", "license": "MIT", "engines": { "node": ">= 4" @@ -30603,17 +29496,53 @@ "license": "MIT" }, "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "deprecated": "Rimraf versions prior to v4 are no longer supported", + "version": "5.0.10", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.10.tgz", + "integrity": "sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ==", "dev": true, "license": "ISC", "dependencies": { - "glob": "^7.1.3" + "glob": "^10.3.7" }, "bin": { - "rimraf": "bin.js" + "rimraf": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "dev": true, + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -30627,12 +29556,12 @@ "optional": true }, "node_modules/rollup": { - "version": "4.22.4", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.22.4.tgz", - "integrity": "sha512-vD8HJ5raRcWOyymsR6Z3o6+RzfEPCnVLMFJ6vRslO1jt4LO6dUo5Qnpg7y4RkZFM2DMe3WUirkI5c16onjrc6A==", + "version": "4.26.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.26.0.tgz", + "integrity": "sha512-ilcl12hnWonG8f+NxU6BlgysVA0gvY2l8N0R84S1HcINbW20bvwuCngJkkInV6LXhwRpucsW5k1ovDwEdBVrNg==", "license": "MIT", "dependencies": { - "@types/estree": "1.0.5" + "@types/estree": "1.0.6" }, "bin": { "rollup": "dist/bin/rollup" @@ -30642,22 +29571,24 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.22.4", - "@rollup/rollup-android-arm64": "4.22.4", - "@rollup/rollup-darwin-arm64": "4.22.4", - "@rollup/rollup-darwin-x64": "4.22.4", - "@rollup/rollup-linux-arm-gnueabihf": "4.22.4", - "@rollup/rollup-linux-arm-musleabihf": "4.22.4", - "@rollup/rollup-linux-arm64-gnu": "4.22.4", - "@rollup/rollup-linux-arm64-musl": "4.22.4", - "@rollup/rollup-linux-powerpc64le-gnu": "4.22.4", - "@rollup/rollup-linux-riscv64-gnu": "4.22.4", - "@rollup/rollup-linux-s390x-gnu": "4.22.4", - "@rollup/rollup-linux-x64-gnu": "4.22.4", - "@rollup/rollup-linux-x64-musl": "4.22.4", - "@rollup/rollup-win32-arm64-msvc": "4.22.4", - "@rollup/rollup-win32-ia32-msvc": "4.22.4", - "@rollup/rollup-win32-x64-msvc": "4.22.4", + "@rollup/rollup-android-arm-eabi": "4.26.0", + "@rollup/rollup-android-arm64": "4.26.0", + "@rollup/rollup-darwin-arm64": "4.26.0", + "@rollup/rollup-darwin-x64": "4.26.0", + "@rollup/rollup-freebsd-arm64": "4.26.0", + "@rollup/rollup-freebsd-x64": "4.26.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.26.0", + "@rollup/rollup-linux-arm-musleabihf": "4.26.0", + "@rollup/rollup-linux-arm64-gnu": "4.26.0", + "@rollup/rollup-linux-arm64-musl": "4.26.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.26.0", + "@rollup/rollup-linux-riscv64-gnu": "4.26.0", + "@rollup/rollup-linux-s390x-gnu": "4.26.0", + "@rollup/rollup-linux-x64-gnu": "4.26.0", + "@rollup/rollup-linux-x64-musl": "4.26.0", + "@rollup/rollup-win32-arm64-msvc": "4.26.0", + "@rollup/rollup-win32-ia32-msvc": "4.26.0", + "@rollup/rollup-win32-x64-msvc": "4.26.0", "fsevents": "~2.3.2" } }, @@ -30712,6 +29643,12 @@ "tslib": "^2.1.0" } }, + "node_modules/rxjs/node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" + }, "node_modules/sade": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz", @@ -30726,15 +29663,16 @@ } }, "node_modules/safe-array-concat": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz", - "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz", + "integrity": "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", - "get-intrinsic": "^1.2.4", - "has-symbols": "^1.0.3", + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "get-intrinsic": "^1.2.6", + "has-symbols": "^1.1.0", "isarray": "^2.0.5" }, "engines": { @@ -30765,15 +29703,15 @@ "license": "MIT" }, "node_modules/safe-regex-test": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", - "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", + "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.6", + "call-bound": "^1.0.2", "es-errors": "^1.3.0", - "is-regex": "^1.1.4" + "is-regex": "^1.2.1" }, "engines": { "node": ">= 0.4" @@ -30789,13 +29727,13 @@ "license": "MIT" }, "node_modules/sass": { - "version": "1.77.6", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.77.6.tgz", - "integrity": "sha512-ByXE1oLD79GVq9Ht1PeHWCPMPB8XHpBuz1r85oByKHjZY6qV6rWnQovQzXJXuQ/XyE1Oj3iPk3lo28uzaRA2/Q==", + "version": "1.80.7", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.80.7.tgz", + "integrity": "sha512-MVWvN0u5meytrSjsU7AWsbhoXi1sc58zADXFllfZzbsBT1GHjjar6JwBINYPRrkx/zqnQ6uqbQuHgE95O+C+eQ==", "license": "MIT", "dependencies": { - "chokidar": ">=3.0.0 <4.0.0", - "immutable": "^4.0.0", + "chokidar": "^4.0.0", + "immutable": "^5.0.2", "source-map-js": ">=0.6.2 <2.0.0" }, "bin": { @@ -30803,46 +29741,9 @@ }, "engines": { "node": ">=14.0.0" - } - }, - "node_modules/sass-loader": { - "version": "16.0.0", - "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-16.0.0.tgz", - "integrity": "sha512-n13Z+3rU9A177dk4888czcVFiC8CL9dii4qpXWUg3YIIgZEvi9TCFKjOQcbK0kJM7DJu9VucrZFddvNfYCPwtw==", - "license": "MIT", - "dependencies": { - "neo-async": "^2.6.2" }, - "engines": { - "node": ">= 18.12.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "@rspack/core": "0.x || 1.x", - "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0", - "sass": "^1.3.0", - "sass-embedded": "*", - "webpack": "^5.0.0" - }, - "peerDependenciesMeta": { - "@rspack/core": { - "optional": true - }, - "node-sass": { - "optional": true - }, - "sass": { - "optional": true - }, - "sass-embedded": { - "optional": true - }, - "webpack": { - "optional": true - } + "optionalDependencies": { + "@parcel/watcher": "^2.4.1" } }, "node_modules/sax": { @@ -30875,9 +29776,9 @@ } }, "node_modules/schema-utils": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", - "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.0.tgz", + "integrity": "sha512-Gf9qqc58SpCA/xdziiHz35F4GNIWYWZrEshUc/G/r5BnLph6xpKuLeoJoQuj5WfBIx/eQLf+hmVPYHaxJu7V2g==", "license": "MIT", "dependencies": { "@types/json-schema": "^7.0.9", @@ -30886,30 +29787,13 @@ "ajv-keywords": "^5.1.0" }, "engines": { - "node": ">= 12.13.0" + "node": ">= 10.13.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/webpack" } }, - "node_modules/schema-utils/node_modules/ajv-formats": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", - "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", - "license": "MIT", - "dependencies": { - "ajv": "^8.0.0" - }, - "peerDependencies": { - "ajv": "^8.0.0" - }, - "peerDependenciesMeta": { - "ajv": { - "optional": true - } - } - }, "node_modules/secure-compare": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/secure-compare/-/secure-compare-3.0.1.tgz", @@ -31108,24 +29992,88 @@ } }, "node_modules/serve-static": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", - "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "version": "1.16.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", + "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", "license": "MIT", "dependencies": { - "encodeurl": "~1.0.2", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "parseurl": "~1.3.3", - "send": "0.18.0" + "send": "0.19.0" }, "engines": { "node": ">= 0.8.0" } }, + "node_modules/serve-static/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/serve-static/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/serve-static/node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/serve-static/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/serve-static/node_modules/send": { + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", + "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", + "license": "MIT", + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/serve-static/node_modules/send/node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/set-function-length": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dev": true, "license": "MIT", "dependencies": { "define-data-property": "^1.1.4", @@ -31177,6 +30125,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "devOptional": true, "license": "MIT", "dependencies": { "shebang-regex": "^3.0.0" @@ -31189,16 +30138,20 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "devOptional": true, "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/shell-quote": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", - "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.2.tgz", + "integrity": "sha512-AzqKpGKjrj7EM6rKVQEPpB288oCfnrEIuyoT9cyF4nmGa7V8Zk6f7RRqYisX8X9m+Q7bd632aZW4ky7EhbQztA==", "license": "MIT", + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -31239,15 +30192,69 @@ } }, "node_modules/side-channel": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", - "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4", - "object-inspect": "^1.13.1" + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", + "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" }, "engines": { "node": ">= 0.4" @@ -31257,33 +30264,27 @@ } }, "node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "license": "ISC", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "license": "ISC" }, "node_modules/sigstore": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-2.3.1.tgz", - "integrity": "sha512-8G+/XDU8wNsJOQS5ysDVO0Etg9/2uA5gR9l4ZwijjlwxBcrU6RPfwi2+jJmbP+Ap1Hlp/nVAaEO4Fj22/SL2gQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-3.0.0.tgz", + "integrity": "sha512-PHMifhh3EN4loMcHCz6l3v/luzgT3za+9f8subGgeMNjbJjzH4Ij/YoX3Gvu+kaouJRIlVdTHHCREADYf+ZteA==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@sigstore/bundle": "^2.3.2", - "@sigstore/core": "^1.0.0", + "@sigstore/bundle": "^3.0.0", + "@sigstore/core": "^2.0.0", "@sigstore/protobuf-specs": "^0.3.2", - "@sigstore/sign": "^2.3.2", - "@sigstore/tuf": "^2.3.4", - "@sigstore/verify": "^1.2.1" + "@sigstore/sign": "^3.0.0", + "@sigstore/tuf": "^3.0.0", + "@sigstore/verify": "^2.0.0" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/simple-cbor": { @@ -31340,13 +30341,43 @@ } }, "node_modules/slice-ansi": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-0.0.4.tgz", - "integrity": "sha512-up04hB2hR92PgjpyU3y/eg91yIBILyjVY26NvvciY3EVVPjybkMszMpXQ9QAkcS3I5rtJBDLoTxxg+qvW8c7rw==", - "dev": true, + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz", + "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.0.0", + "is-fullwidth-code-point": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/slice-ansi/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/slice-ansi/node_modules/is-fullwidth-code-point": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", + "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/smart-buffer": { @@ -31396,13 +30427,13 @@ } }, "node_modules/socks-proxy-agent": { - "version": "8.0.4", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.4.tgz", - "integrity": "sha512-GNAq/eg8Udq2x0eNiFkr9gRg5bA7PXEWagQdeRX4cPSG+X/8V38v637gim9bjFptMk1QWsCTr0ttrJEiXbNnRw==", + "version": "8.0.5", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.5.tgz", + "integrity": "sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==", "dev": true, "license": "MIT", "dependencies": { - "agent-base": "^7.1.1", + "agent-base": "^7.1.2", "debug": "^4.3.4", "socks": "^2.8.3" }, @@ -31418,12 +30449,12 @@ "license": "MIT" }, "node_modules/source-map": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", - "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "license": "BSD-3-Clause", "engines": { - "node": ">= 8" + "node": ">=0.10.0" } }, "node_modules/source-map-js": { @@ -31455,18 +30486,6 @@ "webpack": "^5.72.1" } }, - "node_modules/source-map-loader/node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "license": "MIT", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/source-map-support": { "version": "0.5.21", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", @@ -31477,26 +30496,6 @@ "source-map": "^0.6.0" } }, - "node_modules/source-map-support/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/space-separated-tokens": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz", - "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==", - "dev": true, - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, "node_modules/spdx-correct": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", @@ -31596,31 +30595,17 @@ "node": ">=0.10.0" } }, - "node_modules/sshpk/node_modules/jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==", - "dev": true, - "license": "MIT" - }, - "node_modules/sshpk/node_modules/tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==", - "dev": true, - "license": "Unlicense" - }, "node_modules/ssri": { - "version": "10.0.6", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.6.tgz", - "integrity": "sha512-MGrFH9Z4NP9Iyhqn16sDtBpRRNJ0Y2hNa6D65h736fVSaPCHr4DM4sWUNvVaSuC+0OBGhwsrydQwmgfg5LncqQ==", + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-12.0.0.tgz", + "integrity": "sha512-S7iGNosepx9RadX82oimUkvr0Ct7IjJbEbs4mJcTxst8um95J3sDYU1RBEOvdu6oL1Wek2ODI5i4MAw+dZ6cAQ==", "dev": true, "license": "ISC", "dependencies": { "minipass": "^7.0.3" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/stack-utils": { @@ -31661,97 +30646,6 @@ "escodegen": "^1.8.1" } }, - "node_modules/static-eval/node_modules/escodegen": { - "version": "1.14.3", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz", - "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", - "license": "BSD-2-Clause", - "dependencies": { - "esprima": "^4.0.1", - "estraverse": "^4.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1" - }, - "bin": { - "escodegen": "bin/escodegen.js", - "esgenerate": "bin/esgenerate.js" - }, - "engines": { - "node": ">=4.0" - }, - "optionalDependencies": { - "source-map": "~0.6.1" - } - }, - "node_modules/static-eval/node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/static-eval/node_modules/levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", - "license": "MIT", - "dependencies": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/static-eval/node_modules/optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "license": "MIT", - "dependencies": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/static-eval/node_modules/prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/static-eval/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "license": "BSD-3-Clause", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-eval/node_modules/type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", - "license": "MIT", - "dependencies": { - "prelude-ls": "~1.1.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, "node_modules/statuses": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", @@ -31762,13 +30656,13 @@ } }, "node_modules/storybook": { - "version": "8.3.6", - "resolved": "https://registry.npmjs.org/storybook/-/storybook-8.3.6.tgz", - "integrity": "sha512-9GVbtej6ZzPRUM7KRQ7848506FfHrUiJGqPuIQdoSJd09EmuEoLjmLAgEOmrHBQKgGYMaM7Vh9GsTLim6vwZTQ==", + "version": "8.4.7", + "resolved": "https://registry.npmjs.org/storybook/-/storybook-8.4.7.tgz", + "integrity": "sha512-RP/nMJxiWyFc8EVMH5gp20ID032Wvk+Yr3lmKidoegto5Iy+2dVQnUoElZb2zpbVXNHWakGuAkfI0dY1Hfp/vw==", "dev": true, "license": "MIT", "dependencies": { - "@storybook/core": "8.3.6" + "@storybook/core": "8.4.7" }, "bin": { "getstorybook": "bin/index.cjs", @@ -31778,6 +30672,14 @@ "funding": { "type": "opencollective", "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "prettier": "^2 || ^3" + }, + "peerDependenciesMeta": { + "prettier": { + "optional": true + } } }, "node_modules/streamroller": { @@ -31880,6 +30782,7 @@ "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "devOptional": true, "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", @@ -31891,16 +30794,19 @@ } }, "node_modules/string.prototype.trim": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", - "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==", + "version": "1.2.10", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz", + "integrity": "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "define-data-property": "^1.1.4", "define-properties": "^1.2.1", - "es-abstract": "^1.23.0", - "es-object-atoms": "^1.0.0" + "es-abstract": "^1.23.5", + "es-object-atoms": "^1.0.0", + "has-property-descriptors": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -31910,16 +30816,20 @@ } }, "node_modules/string.prototype.trimend": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz", - "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==", + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz", + "integrity": "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", "define-properties": "^1.2.1", "es-object-atoms": "^1.0.0" }, + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -31959,6 +30869,7 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "devOptional": true, "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" @@ -31968,19 +30879,20 @@ } }, "node_modules/strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", - "devOptional": true, + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, "license": "MIT", "engines": { - "node": ">=8" + "node": ">=4" } }, "node_modules/strip-final-newline": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "devOptional": true, "license": "MIT", "engines": { "node": ">=6" @@ -32025,6 +30937,36 @@ "node": ">=12.*" } }, + "node_modules/stripe/node_modules/@types/node": { + "version": "22.10.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.2.tgz", + "integrity": "sha512-Xxr6BBRCAOQixvonOye19wnzyDiUtTeqldOOmj3CkeblonbccA12PFwlufvRdrpjXxqnmUaeiU5EOA+7s5diUQ==", + "license": "MIT", + "dependencies": { + "undici-types": "~6.20.0" + } + }, + "node_modules/stripe/node_modules/qs": { + "version": "6.13.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.1.tgz", + "integrity": "sha512-EJPeIn0CYrGu+hli1xilKAPXODtJ12T0sP63Ijx2/khC2JtuaN3JyNIpvmnkmaEtha9ocbG4A4cMcr+TvqvwQg==", + "license": "BSD-3-Clause", + "dependencies": { + "side-channel": "^1.0.6" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/stripe/node_modules/undici-types": { + "version": "6.20.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", + "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", + "license": "MIT" + }, "node_modules/style-loader": { "version": "3.3.4", "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-3.3.4.tgz", @@ -32155,16 +31097,26 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/stylus/node_modules/source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "devOptional": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">= 8" + } + }, "node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "license": "MIT", "dependencies": { - "has-flag": "^3.0.0" + "has-flag": "^4.0.0" }, "engines": { - "node": ">=4" + "node": ">=8" } }, "node_modules/supports-preserve-symlinks-flag": { @@ -32257,21 +31209,21 @@ } }, "node_modules/tar": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", - "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==", + "version": "7.4.3", + "resolved": "https://registry.npmjs.org/tar/-/tar-7.4.3.tgz", + "integrity": "sha512-5S7Va8hKfV7W5U6g3aYxXmlPoZVAwUMy9AOKyF2fVuZa2UD3qZjg578OrLRt8PcNN1PleVaL/5/yYATNL0ICUw==", "dev": true, "license": "ISC", "dependencies": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^5.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" + "@isaacs/fs-minipass": "^4.0.0", + "chownr": "^3.0.0", + "minipass": "^7.1.2", + "minizlib": "^3.0.1", + "mkdirp": "^3.0.1", + "yallist": "^5.0.0" }, "engines": { - "node": ">=10" + "node": ">=18" } }, "node_modules/tar-stream": { @@ -32291,53 +31243,30 @@ "node": ">=6" } }, - "node_modules/tar/node_modules/fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", - "dev": true, - "license": "ISC", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/tar/node_modules/fs-minipass/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dev": true, - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/tar/node_modules/minipass": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", - "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=8" - } - }, "node_modules/tar/node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-3.0.1.tgz", + "integrity": "sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==", "dev": true, "license": "MIT", "bin": { - "mkdirp": "bin/cmd.js" + "mkdirp": "dist/cjs/src/bin.js" }, "engines": { "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/tar/node_modules/yallist": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-5.0.0.tgz", + "integrity": "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=18" } }, "node_modules/telejson": { @@ -32351,9 +31280,9 @@ } }, "node_modules/terser": { - "version": "5.31.6", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.31.6.tgz", - "integrity": "sha512-PQ4DAriWzKj+qgehQ7LK5bQqCFNMmlhjR2PFFLuqGCpuCAauxemVBWwWOxo3UIwWQx8+Pr61Df++r76wDmkQBg==", + "version": "5.36.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.36.0.tgz", + "integrity": "sha512-IYV9eNMuFAV4THUspIRXkLakHnV6XO7FEdtKjf/mDyrnqUg9LnlOn6/RwRvM9SZjR4GUq8Nk8zj67FzVARr74w==", "license": "BSD-2-Clause", "dependencies": { "@jridgewell/source-map": "^0.3.3", @@ -32369,16 +31298,16 @@ } }, "node_modules/terser-webpack-plugin": { - "version": "5.3.10", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz", - "integrity": "sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==", + "version": "5.3.11", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.11.tgz", + "integrity": "sha512-RVCsMfuD0+cTt3EwX8hSl2Ks56EbFHWmhluwcqoPKtBnfjiT6olaq7PRIRfhyU8nnC2MrnDrBLfrD/RGE+cVXQ==", "license": "MIT", "dependencies": { - "@jridgewell/trace-mapping": "^0.3.20", + "@jridgewell/trace-mapping": "^0.3.25", "jest-worker": "^27.4.5", - "schema-utils": "^3.1.1", - "serialize-javascript": "^6.0.1", - "terser": "^5.26.0" + "schema-utils": "^4.3.0", + "serialize-javascript": "^6.0.2", + "terser": "^5.31.1" }, "engines": { "node": ">= 10.13.0" @@ -32402,38 +31331,13 @@ } } }, - "node_modules/terser-webpack-plugin/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "node_modules/terser-webpack-plugin/node_modules/@types/node": { + "version": "22.10.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.2.tgz", + "integrity": "sha512-Xxr6BBRCAOQixvonOye19wnzyDiUtTeqldOOmj3CkeblonbccA12PFwlufvRdrpjXxqnmUaeiU5EOA+7s5diUQ==", "license": "MIT", "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/terser-webpack-plugin/node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "license": "MIT", - "peerDependencies": { - "ajv": "^6.9.1" - } - }, - "node_modules/terser-webpack-plugin/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "license": "MIT", - "engines": { - "node": ">=8" + "undici-types": "~6.20.0" } }, "node_modules/terser-webpack-plugin/node_modules/jest-worker": { @@ -32450,30 +31354,6 @@ "node": ">= 10.13.0" } }, - "node_modules/terser-webpack-plugin/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "license": "MIT" - }, - "node_modules/terser-webpack-plugin/node_modules/schema-utils": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", - "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", - "license": "MIT", - "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, "node_modules/terser-webpack-plugin/node_modules/supports-color": { "version": "8.1.1", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", @@ -32489,6 +31369,30 @@ "url": "https://github.com/chalk/supports-color?sponsor=1" } }, + "node_modules/terser-webpack-plugin/node_modules/terser": { + "version": "5.37.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.37.0.tgz", + "integrity": "sha512-B8wRRkmre4ERucLM/uXx4MOV5cbnOlVAqUst+1+iLKPI0dOgFO28f84ptoQt9HEI537PMzfYa/d+GEPKTRXmYA==", + "license": "BSD-2-Clause", + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser-webpack-plugin/node_modules/undici-types": { + "version": "6.20.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", + "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", + "license": "MIT" + }, "node_modules/test-exclude": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", @@ -32504,30 +31408,6 @@ "node": ">=8" } }, - "node_modules/test-exclude/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/test-exclude/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "devOptional": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, "node_modules/text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", @@ -32535,18 +31415,6 @@ "dev": true, "license": "MIT" }, - "node_modules/thingies": { - "version": "1.21.0", - "resolved": "https://registry.npmjs.org/thingies/-/thingies-1.21.0.tgz", - "integrity": "sha512-hsqsJsFMsV+aD4s3CWKk85ep/3I9XzYV/IXaSouJMYIoDlgyi11cBhsqYe9/geRfB0YIikBQg6raRaM+nIMP9g==", - "license": "Unlicense", - "engines": { - "node": ">=10.18" - }, - "peerDependencies": { - "tslib": "^2" - } - }, "node_modules/throttleit": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-1.0.1.tgz", @@ -32584,6 +31452,20 @@ "dev": true, "license": "MIT" }, + "node_modules/tinyglobby": { + "version": "0.2.10", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.10.tgz", + "integrity": "sha512-Zc+8eJlFMvgatPZTl6A9L/yht8QqdmUNtURHaKZLmKBE12hNPSrqNkUp2cs3M/UKmNVVAMFQYSjYIVHDjW5zew==", + "dev": true, + "license": "MIT", + "dependencies": { + "fdir": "^6.4.2", + "picomatch": "^4.0.2" + }, + "engines": { + "node": ">=12.0.0" + } + }, "node_modules/tinyrainbow": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-1.2.0.tgz", @@ -32625,6 +31507,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true, "license": "MIT", "engines": { "node": ">=4" @@ -32710,22 +31593,6 @@ "node": ">=12" } }, - "node_modules/tree-dump": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/tree-dump/-/tree-dump-1.0.2.tgz", - "integrity": "sha512-dpev9ABuLWdEubk+cIaI9cHwRNNDjkBBLXTwI4UCUFdQ5xXKqNXoK4FEciw/vxf+NQ7Cb7sGUyeUtORvHIdRXQ==", - "license": "Apache-2.0", - "engines": { - "node": ">=10.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" - }, - "peerDependencies": { - "tslib": "2" - } - }, "node_modules/tree-kill": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", @@ -32736,9 +31603,9 @@ } }, "node_modules/ts-api-utils": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz", - "integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==", + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.4.3.tgz", + "integrity": "sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw==", "dev": true, "license": "MIT", "engines": { @@ -32823,60 +31690,14 @@ "webpack": "^5.0.0" } }, - "node_modules/ts-loader/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/ts-loader/node_modules/source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, + "license": "BSD-3-Clause", "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/ts-loader/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/ts-loader/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/ts-loader/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" + "node": ">= 8" } }, "node_modules/ts-node": { @@ -32938,86 +31759,21 @@ } }, "node_modules/tsconfig-paths-webpack-plugin": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/tsconfig-paths-webpack-plugin/-/tsconfig-paths-webpack-plugin-4.0.0.tgz", - "integrity": "sha512-fw/7265mIWukrSHd0i+wSwx64kYUSAKPfxRDksjKIYTxSAp9W9/xcZVBF4Kl0eqQd5eBpAQ/oQrc5RyM/0c1GQ==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths-webpack-plugin/-/tsconfig-paths-webpack-plugin-4.2.0.tgz", + "integrity": "sha512-zbem3rfRS8BgeNK50Zz5SIQgXzLafiHjOwUAvk/38/o1jHn/V5QAgVUcz884or7WYcPaH3N2CIfUc2u0ul7UcA==", "dev": true, "license": "MIT", "dependencies": { "chalk": "^4.1.0", "enhanced-resolve": "^5.7.0", - "tsconfig-paths": "^4.0.0" + "tapable": "^2.2.1", + "tsconfig-paths": "^4.1.2" }, "engines": { "node": ">=10.13.0" } }, - "node_modules/tsconfig-paths-webpack-plugin/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/tsconfig-paths-webpack-plugin/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/tsconfig-paths-webpack-plugin/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/tsconfig-paths-webpack-plugin/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/tsconfig-paths/node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, "node_modules/tslib": { "version": "2.6.0", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.0.tgz", @@ -33025,9 +31781,10 @@ "license": "0BSD" }, "node_modules/tslint": { - "version": "5.20.1", - "resolved": "https://registry.npmjs.org/tslint/-/tslint-5.20.1.tgz", - "integrity": "sha512-EcMxhzCFt8k+/UP5r8waCf/lzmeSyVlqxqMEDQE7rWYiQky8KpIBz1JAoYXfROHrPZ1XXd43q8yQnULOLiBRQg==", + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/tslint/-/tslint-6.1.3.tgz", + "integrity": "sha512-IbR4nkT96EQOvKE2PW/djGz8iGNeJ4rF2mBfiYaR/nvUWYKJhLwimoJKgjIFEIDibBtOevj7BqCRL4oHeWWUCg==", + "deprecated": "TSLint has been deprecated in favor of ESLint. Please see https://github.com/palantir/tslint/issues/4534 for more information.", "dev": true, "license": "Apache-2.0", "peer": true, @@ -33040,10 +31797,10 @@ "glob": "^7.1.1", "js-yaml": "^3.13.1", "minimatch": "^3.0.4", - "mkdirp": "^0.5.1", + "mkdirp": "^0.5.3", "resolve": "^1.3.2", "semver": "^5.3.0", - "tslib": "^1.8.0", + "tslib": "^1.13.0", "tsutils": "^2.29.0" }, "bin": { @@ -33053,33 +31810,67 @@ "node": ">=4.8.0" }, "peerDependencies": { - "typescript": ">=2.3.0-dev || >=2.4.0-dev || >=2.5.0-dev || >=2.6.0-dev || >=2.7.0-dev || >=2.8.0-dev || >=2.9.0-dev || >=3.0.0-dev || >= 3.1.0-dev || >= 3.2.0-dev" + "typescript": ">=2.3.0-dev || >=2.4.0-dev || >=2.5.0-dev || >=2.6.0-dev || >=2.7.0-dev || >=2.8.0-dev || >=2.9.0-dev || >=3.0.0-dev || >= 3.1.0-dev || >= 3.2.0-dev || >= 4.0.0-dev" } }, - "node_modules/tslint/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "node_modules/tslint/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/tslint/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "license": "ISC", - "peer": true, - "dependencies": { - "brace-expansion": "^1.1.7" + "color-convert": "^1.9.0" }, "engines": { - "node": "*" + "node": ">=4" + } + }, + "node_modules/tslint/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/tslint/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/tslint/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/tslint/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=4" } }, "node_modules/tslint/node_modules/semver": { @@ -33093,6 +31884,20 @@ "semver": "bin/semver" } }, + "node_modules/tslint/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/tslint/node_modules/tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", @@ -33101,17 +31906,7 @@ "license": "0BSD", "peer": true }, - "node_modules/tsscmp": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/tsscmp/-/tsscmp-1.0.6.tgz", - "integrity": "sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.6.x" - } - }, - "node_modules/tsutils": { + "node_modules/tslint/node_modules/tsutils": { "version": "2.29.0", "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz", "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==", @@ -33125,27 +31920,52 @@ "typescript": ">=2.1.0 || >=2.1.0-dev || >=2.2.0-dev || >=2.3.0-dev || >=2.4.0-dev || >=2.5.0-dev || >=2.6.0-dev || >=2.7.0-dev || >=2.8.0-dev || >=2.9.0-dev || >= 3.0.0-dev || >= 3.1.0-dev" } }, + "node_modules/tsscmp": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/tsscmp/-/tsscmp-1.0.6.tgz", + "integrity": "sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.6.x" + } + }, + "node_modules/tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^1.8.1" + }, + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + } + }, "node_modules/tsutils/node_modules/tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "dev": true, - "license": "0BSD", - "peer": true + "license": "0BSD" }, "node_modules/tuf-js": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tuf-js/-/tuf-js-2.2.1.tgz", - "integrity": "sha512-GwIJau9XaA8nLVbUXsN3IlFi7WmQ48gBUrl3FTkkL/XLu/POhBzfmX9hd33FNMX1qAsfl6ozO1iMmW9NC8YniA==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/tuf-js/-/tuf-js-3.0.1.tgz", + "integrity": "sha512-+68OP1ZzSF84rTckf3FA95vJ1Zlx/uaXyiiKyPd1pA4rZNkpEvDAKmsu1xUSmbF/chCRYgZ6UZkDwC7PmzmAyA==", "dev": true, "license": "MIT", "dependencies": { - "@tufjs/models": "2.0.1", - "debug": "^4.3.4", - "make-fetch-happen": "^13.0.1" + "@tufjs/models": "3.0.1", + "debug": "^4.3.6", + "make-fetch-happen": "^14.0.1" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/tunnel-agent": { @@ -33162,9 +31982,10 @@ } }, "node_modules/tweetnacl": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", - "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==", + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==", + "dev": true, "license": "Unlicense" }, "node_modules/twitter-api-v2": { @@ -33174,13 +31995,12 @@ "license": "Apache-2.0" }, "node_modules/type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", "license": "MIT", "dependencies": { - "prelude-ls": "^1.2.1" + "prelude-ls": "~1.1.2" }, "engines": { "node": ">= 0.8.0" @@ -33197,13 +32017,12 @@ } }, "node_modules/type-fest": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", - "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", - "dev": true, + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", "license": "(MIT OR CC0-1.0)", "engines": { - "node": ">=12.20" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -33223,32 +32042,32 @@ } }, "node_modules/typed-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", - "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", + "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", + "call-bound": "^1.0.3", "es-errors": "^1.3.0", - "is-typed-array": "^1.1.13" + "is-typed-array": "^1.1.14" }, "engines": { "node": ">= 0.4" } }, "node_modules/typed-array-byte-length": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", - "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz", + "integrity": "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", + "call-bind": "^1.0.8", "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-proto": "^1.0.3", - "is-typed-array": "^1.1.13" + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.14" }, "engines": { "node": ">= 0.4" @@ -33258,18 +32077,19 @@ } }, "node_modules/typed-array-byte-offset": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz", - "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz", + "integrity": "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==", "dev": true, "license": "MIT", "dependencies": { "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.7", + "call-bind": "^1.0.8", "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-proto": "^1.0.3", - "is-typed-array": "^1.1.13" + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.15", + "reflect.getprototypeof": "^1.0.9" }, "engines": { "node": ">= 0.4" @@ -33279,18 +32099,18 @@ } }, "node_modules/typed-array-length": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz", - "integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.7.tgz", + "integrity": "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==", "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.7", "for-each": "^0.3.3", "gopd": "^1.0.1", - "has-proto": "^1.0.3", "is-typed-array": "^1.1.13", - "possible-typed-array-names": "^1.0.0" + "possible-typed-array-names": "^1.0.0", + "reflect.getprototypeof": "^1.0.6" }, "engines": { "node": ">= 0.4" @@ -33312,9 +32132,9 @@ "license": "MIT" }, "node_modules/typescript": { - "version": "5.5.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.5.3.tgz", - "integrity": "sha512-/hreyEujaB0w76zKo6717l3L0o/qEUtRgdvUBvlkhoWeOVMjMuHNHk0BRBzikzuGDqNmPQbg5ifMEqsHLiIUcQ==", + "version": "5.6.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz", + "integrity": "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==", "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", @@ -33343,16 +32163,19 @@ "license": "MIT" }, "node_modules/unbox-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", - "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz", + "integrity": "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", + "call-bound": "^1.0.3", "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" + "has-symbols": "^1.1.0", + "which-boxed-primitive": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -33443,53 +32266,48 @@ "node": ">= 0.8.0" } }, + "node_modules/union/node_modules/qs": { + "version": "6.13.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.1.tgz", + "integrity": "sha512-EJPeIn0CYrGu+hli1xilKAPXODtJ12T0sP63Ijx2/khC2JtuaN3JyNIpvmnkmaEtha9ocbG4A4cMcr+TvqvwQg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "side-channel": "^1.0.6" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/unique-filename": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-3.0.0.tgz", - "integrity": "sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-4.0.0.tgz", + "integrity": "sha512-XSnEewXmQ+veP7xX2dS5Q4yZAvO40cBN2MWkJ7D/6sW4Dg6wYBNwM1Vrnz1FhH5AdeLIlUXRI9e28z1YZi71NQ==", "dev": true, "license": "ISC", "dependencies": { - "unique-slug": "^4.0.0" + "unique-slug": "^5.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/unique-slug": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-4.0.0.tgz", - "integrity": "sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-5.0.0.tgz", + "integrity": "sha512-9OdaqO5kwqR+1kVgHAhsp5vPNU0hnxRa26rBFNfNgM7M6pNtgzeBn3s/xbyCQL3dcjzOatcef6UUHpB/6MaETg==", "dev": true, "license": "ISC", "dependencies": { "imurmurhash": "^0.1.4" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, - "node_modules/unist-util-is": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz", - "integrity": "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-is/node_modules/@types/unist": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", - "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", - "dev": true, - "license": "MIT" - }, "node_modules/unist-util-stringify-position": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.3.tgz", @@ -33504,51 +32322,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/unist-util-visit": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz", - "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-is": "^6.0.0", - "unist-util-visit-parents": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-visit-parents": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz", - "integrity": "sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-is": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-visit-parents/node_modules/@types/unist": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", - "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", - "dev": true, - "license": "MIT" - }, - "node_modules/unist-util-visit/node_modules/@types/unist": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", - "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", - "dev": true, - "license": "MIT" - }, "node_modules/universalify": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", @@ -33569,25 +32342,17 @@ } }, "node_modules/unplugin": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/unplugin/-/unplugin-1.14.1.tgz", - "integrity": "sha512-lBlHbfSFPToDYp9pjXlUEFVxYLaue9f9T1HC+4OHlmj+HnMDdz9oZY+erXfoCe/5V/7gKUSY2jpXPb9S7f0f/w==", + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/unplugin/-/unplugin-1.16.0.tgz", + "integrity": "sha512-5liCNPuJW8dqh3+DM6uNM2EI3MLLpCKp/KY+9pB5M2S2SR2qvvDHhKgBOaTWEbZTAws3CXfB0rKTIolWKL05VQ==", "dev": true, "license": "MIT", "dependencies": { - "acorn": "^8.12.1", + "acorn": "^8.14.0", "webpack-virtual-modules": "^0.6.2" }, "engines": { "node": ">=14.0.0" - }, - "peerDependencies": { - "webpack-sources": "^3" - }, - "peerDependenciesMeta": { - "webpack-sources": { - "optional": true - } } }, "node_modules/untildify": { @@ -33689,9 +32454,9 @@ "license": "MIT" }, "node_modules/url/node_modules/qs": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", - "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", + "version": "6.13.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.1.tgz", + "integrity": "sha512-EJPeIn0CYrGu+hli1xilKAPXODtJ12T0sP63Ijx2/khC2JtuaN3JyNIpvmnkmaEtha9ocbG4A4cMcr+TvqvwQg==", "dev": true, "license": "BSD-3-Clause", "dependencies": { @@ -33813,13 +32578,6 @@ "node": ">=10.12.0" } }, - "node_modules/v8-to-istanbul/node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "devOptional": true, - "license": "MIT" - }, "node_modules/validate-npm-package-license": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", @@ -33832,13 +32590,13 @@ } }, "node_modules/validate-npm-package-name": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-5.0.1.tgz", - "integrity": "sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-6.0.0.tgz", + "integrity": "sha512-d7KLgL1LD3U3fgnvWEY1cQXoO/q6EQ1BSz48Sa149V/5zVTAbgmZIpyI8TRi6U9/JNyeYLlTKsEMPtLC27RFUg==", "dev": true, "license": "ISC", "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/validator": { @@ -33881,10 +32639,20 @@ "dev": true, "license": "MIT" }, + "node_modules/verror/node_modules/extsprintf": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.4.1.tgz", + "integrity": "sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA==", + "dev": true, + "engines": [ + "node >=0.6.0" + ], + "license": "MIT" + }, "node_modules/vite": { - "version": "5.4.6", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.6.tgz", - "integrity": "sha512-IeL5f8OO5nylsgzd9tq4qD2QqI0k2CQLGrWD0rCN0EQJZpBK5vJAx0I+GDkMOXxQX/OfFHMuLIx6ddAxGX/k+Q==", + "version": "5.4.11", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.11.tgz", + "integrity": "sha512-c7jFQRklXua0mTzneGW9QVyxFjUgwcihC4bXEtujIo2ouWCe1Ajt/amn2PCxYnhYfd5k09JX3SB7OYWFKYqj8Q==", "license": "MIT", "dependencies": { "esbuild": "^0.21.3", @@ -34308,6 +33076,19 @@ "node": ">=12" } }, + "node_modules/vite/node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.29.1.tgz", + "integrity": "sha512-2ORr7T31Y0Mnk6qNuwtyNmy14MunTAMx06VAPI6/Ju52W10zk1i7i5U3vlDRWjhOI5quBcrvhkCHyF76bI7kEw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, "node_modules/vite/node_modules/esbuild": { "version": "0.21.5", "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", @@ -34346,32 +33127,42 @@ "@esbuild/win32-x64": "0.21.5" } }, - "node_modules/vite/node_modules/postcss": { - "version": "8.4.47", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.47.tgz", - "integrity": "sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], + "node_modules/vite/node_modules/rollup": { + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.29.1.tgz", + "integrity": "sha512-RaJ45M/kmJUzSWDs1Nnd5DdV4eerC98idtUOVr6FfKcgxqvjwHmxc5upLF9qZU9EpsVzzhleFahrT3shLuJzIw==", "license": "MIT", "dependencies": { - "nanoid": "^3.3.7", - "picocolors": "^1.1.0", - "source-map-js": "^1.2.1" + "@types/estree": "1.0.6" + }, + "bin": { + "rollup": "dist/bin/rollup" }, "engines": { - "node": "^10 || ^12 || >=14" + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.29.1", + "@rollup/rollup-android-arm64": "4.29.1", + "@rollup/rollup-darwin-arm64": "4.29.1", + "@rollup/rollup-darwin-x64": "4.29.1", + "@rollup/rollup-freebsd-arm64": "4.29.1", + "@rollup/rollup-freebsd-x64": "4.29.1", + "@rollup/rollup-linux-arm-gnueabihf": "4.29.1", + "@rollup/rollup-linux-arm-musleabihf": "4.29.1", + "@rollup/rollup-linux-arm64-gnu": "4.29.1", + "@rollup/rollup-linux-arm64-musl": "4.29.1", + "@rollup/rollup-linux-loongarch64-gnu": "4.29.1", + "@rollup/rollup-linux-powerpc64le-gnu": "4.29.1", + "@rollup/rollup-linux-riscv64-gnu": "4.29.1", + "@rollup/rollup-linux-s390x-gnu": "4.29.1", + "@rollup/rollup-linux-x64-gnu": "4.29.1", + "@rollup/rollup-linux-x64-musl": "4.29.1", + "@rollup/rollup-win32-arm64-msvc": "4.29.1", + "@rollup/rollup-win32-ia32-msvc": "4.29.1", + "@rollup/rollup-win32-x64-msvc": "4.29.1", + "fsevents": "~2.3.2" } }, "node_modules/w3c-xmlserializer": { @@ -34405,9 +33196,9 @@ } }, "node_modules/watchpack": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.1.tgz", - "integrity": "sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg==", + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.2.tgz", + "integrity": "sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==", "license": "MIT", "dependencies": { "glob-to-regexp": "^0.4.1", @@ -34439,7 +33230,8 @@ "version": "1.2.2", "resolved": "https://registry.npmjs.org/weak-lru-cache/-/weak-lru-cache-1.2.2.tgz", "integrity": "sha512-DEAoo25RfSYMuTGc9vPJzZcZullwIqRDSI9LOy+fkCJPi6hykCnfKaXTuPBDuXAUcqHXyOgFtHNp/kB2FjYHbw==", - "license": "MIT" + "license": "MIT", + "optional": true }, "node_modules/web-worker": { "version": "1.3.0", @@ -34463,9 +33255,9 @@ } }, "node_modules/webcrypto-core/node_modules/tslib": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.0.tgz", - "integrity": "sha512-jWVzBLplnCmoaTr13V9dYbiQ99wvZRd0vNWaDRg+aVYRcjDF3nDksxFDE/+fkXnKhpnUUkmx5pK/v8mCtLVqZA==", + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", "license": "0BSD", "peer": true }, @@ -34480,18 +33272,18 @@ } }, "node_modules/webpack": { - "version": "5.94.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.94.0.tgz", - "integrity": "sha512-KcsGn50VT+06JH/iunZJedYGUJS5FGjow8wb9c0v5n1Om8O1g4L6LjtfxwlXIATopoQu+vOXXa7gYisWxCoPyg==", + "version": "5.97.1", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.97.1.tgz", + "integrity": "sha512-EksG6gFY3L1eFMROS/7Wzgrii5mBAFe4rIr3r2BTfo7bcc+DWwFZ4OJ/miOuHJO/A85HwyI4eQ0F6IKXesO7Fg==", "license": "MIT", "dependencies": { - "@types/estree": "^1.0.5", - "@webassemblyjs/ast": "^1.12.1", - "@webassemblyjs/wasm-edit": "^1.12.1", - "@webassemblyjs/wasm-parser": "^1.12.1", - "acorn": "^8.7.1", - "acorn-import-attributes": "^1.9.5", - "browserslist": "^4.21.10", + "@types/eslint-scope": "^3.7.7", + "@types/estree": "^1.0.6", + "@webassemblyjs/ast": "^1.14.1", + "@webassemblyjs/wasm-edit": "^1.14.1", + "@webassemblyjs/wasm-parser": "^1.14.1", + "acorn": "^8.14.0", + "browserslist": "^4.24.0", "chrome-trace-event": "^1.0.2", "enhanced-resolve": "^5.17.1", "es-module-lexer": "^1.2.1", @@ -34552,16 +33344,6 @@ "node": ">= 10.13.0" } }, - "node_modules/webpack-bundle-analyzer/node_modules/@discoveryjs/json-ext": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", - "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10.0.0" - } - }, "node_modules/webpack-bundle-analyzer/node_modules/commander": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", @@ -34636,10 +33418,64 @@ } } }, + "node_modules/webpack-dev-middleware/node_modules/@jsonjoy.com/base64": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/base64/-/base64-1.1.2.tgz", + "integrity": "sha512-q6XAnWQDIMA3+FTiOYajoYqySkO+JSat0ytXGSuRdq9uXE7o92gzuQwQM14xaCRlBLGq3v5miDGC4vkVTn54xA==", + "license": "Apache-2.0", + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/webpack-dev-middleware/node_modules/@jsonjoy.com/json-pack": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/json-pack/-/json-pack-1.1.1.tgz", + "integrity": "sha512-osjeBqMJ2lb/j/M8NCPjs1ylqWIcTRTycIhVB5pt6LgzgeRSb0YRZ7j9RfA8wIUrsr/medIuhVyonXRZWLyfdw==", + "license": "Apache-2.0", + "dependencies": { + "@jsonjoy.com/base64": "^1.1.1", + "@jsonjoy.com/util": "^1.1.2", + "hyperdyperid": "^1.2.0", + "thingies": "^1.20.0" + }, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/webpack-dev-middleware/node_modules/@jsonjoy.com/util": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/util/-/util-1.5.0.tgz", + "integrity": "sha512-ojoNsrIuPI9g6o8UxhraZQSyF2ByJanAY4cTFbc8Mf2AXEF4aQRGY1dJxyJpuyav8r9FGflEt/Ff3u5Nt6YMPA==", + "license": "Apache-2.0", + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, "node_modules/webpack-dev-middleware/node_modules/memfs": { - "version": "4.14.0", - "resolved": "https://registry.npmjs.org/memfs/-/memfs-4.14.0.tgz", - "integrity": "sha512-JUeY0F/fQZgIod31Ja1eJgiSxLn7BfQlCnqhwXFBzFHEw63OdLK7VJUJ7bnzNsWgCyoUP5tEp1VRY8rDaYzqOA==", + "version": "4.15.1", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-4.15.1.tgz", + "integrity": "sha512-ufCzgFwiVnR6R9cCYuvwznJdhdYXEvFl0hpnM4cCtVaVkHuqBR+6fo2sqt1SSMdp+uiHw9GyPZr3OMM5tqjSmQ==", "license": "Apache-2.0", "dependencies": { "@jsonjoy.com/json-pack": "^1.0.3", @@ -34655,10 +33491,44 @@ "url": "https://github.com/sponsors/streamich" } }, + "node_modules/webpack-dev-middleware/node_modules/thingies": { + "version": "1.21.0", + "resolved": "https://registry.npmjs.org/thingies/-/thingies-1.21.0.tgz", + "integrity": "sha512-hsqsJsFMsV+aD4s3CWKk85ep/3I9XzYV/IXaSouJMYIoDlgyi11cBhsqYe9/geRfB0YIikBQg6raRaM+nIMP9g==", + "license": "Unlicense", + "engines": { + "node": ">=10.18" + }, + "peerDependencies": { + "tslib": "^2" + } + }, + "node_modules/webpack-dev-middleware/node_modules/tree-dump": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/tree-dump/-/tree-dump-1.0.2.tgz", + "integrity": "sha512-dpev9ABuLWdEubk+cIaI9cHwRNNDjkBBLXTwI4UCUFdQ5xXKqNXoK4FEciw/vxf+NQ7Cb7sGUyeUtORvHIdRXQ==", + "license": "Apache-2.0", + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/webpack-dev-middleware/node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" + }, "node_modules/webpack-dev-server": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-5.0.4.tgz", - "integrity": "sha512-dljXhUgx3HqKP2d8J/fUMvhxGhzjeNVarDLcbO/EWMSgRizDkxHQDZQaLFL5VJY9tRBj2Gz+rvCEYYvhbqPHNA==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-5.1.0.tgz", + "integrity": "sha512-aQpaN81X6tXie1FoOB7xlMfCsN19pSvRAeYUHOdFWOlhpQ/LlbfTqYwwmEDFV0h8GGuqmCmKmT+pxcUV/Nt2gQ==", "license": "MIT", "dependencies": { "@types/bonjour": "^3.5.13", @@ -34674,8 +33544,7 @@ "colorette": "^2.0.10", "compression": "^1.7.4", "connect-history-api-fallback": "^2.0.0", - "default-gateway": "^6.0.3", - "express": "^4.17.3", + "express": "^4.19.2", "graceful-fs": "^4.2.6", "html-entities": "^2.4.0", "http-proxy-middleware": "^2.0.3", @@ -34683,14 +33552,13 @@ "launch-editor": "^2.6.1", "open": "^10.0.3", "p-retry": "^6.2.0", - "rimraf": "^5.0.5", "schema-utils": "^4.2.0", "selfsigned": "^2.4.1", "serve-index": "^1.9.1", "sockjs": "^0.3.24", "spdy": "^4.0.2", - "webpack-dev-middleware": "^7.1.0", - "ws": "^8.16.0" + "webpack-dev-middleware": "^7.4.2", + "ws": "^8.18.0" }, "bin": { "webpack-dev-server": "bin/webpack-dev-server.js" @@ -34714,102 +33582,64 @@ } } }, - "node_modules/webpack-dev-server/node_modules/@types/express": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz", - "integrity": "sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==", + "node_modules/webpack-dev-server/node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", "license": "MIT", "dependencies": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.33", - "@types/qs": "*", - "@types/serve-static": "*" - } - }, - "node_modules/webpack-dev-server/node_modules/@types/express-serve-static-core": { - "version": "4.19.6", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.6.tgz", - "integrity": "sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A==", - "license": "MIT", - "dependencies": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*", - "@types/send": "*" - } - }, - "node_modules/webpack-dev-server/node_modules/glob": { - "version": "10.4.5", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", - "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", - "license": "ISC", - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^1.11.1" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/webpack-dev-server/node_modules/http-proxy-middleware": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.7.tgz", - "integrity": "sha512-fgVY8AV7qU7z/MmXJ/rxwbrtQH4jBQ9m7kp3llF0liB7glmFeVZFBepQb32T3y8n8k2+AEYuMPCpinYW+/CuRA==", - "license": "MIT", - "dependencies": { - "@types/http-proxy": "^1.17.8", - "http-proxy": "^1.18.1", - "is-glob": "^4.0.1", - "is-plain-obj": "^3.0.0", - "micromatch": "^4.0.2" + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" }, "engines": { - "node": ">=12.0.0" + "node": ">= 8.10.0" }, - "peerDependencies": { - "@types/express": "^4.17.13" + "funding": { + "url": "https://paulmillr.com/funding/" }, - "peerDependenciesMeta": { - "@types/express": { - "optional": true - } + "optionalDependencies": { + "fsevents": "~2.3.2" } }, - "node_modules/webpack-dev-server/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "node_modules/webpack-dev-server/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "license": "ISC", "dependencies": { - "brace-expansion": "^2.0.1" + "is-glob": "^4.0.1" }, "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": ">= 6" } }, - "node_modules/webpack-dev-server/node_modules/rimraf": { - "version": "5.0.10", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.10.tgz", - "integrity": "sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ==", - "license": "ISC", - "dependencies": { - "glob": "^10.3.7" - }, - "bin": { - "rimraf": "dist/esm/bin.mjs" + "node_modules/webpack-dev-server/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "license": "MIT", + "engines": { + "node": ">=8.6" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/webpack-dev-server/node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" } }, "node_modules/webpack-hot-middleware": { @@ -34910,34 +33740,6 @@ "ajv": "^6.9.1" } }, - "node_modules/webpack/node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "license": "BSD-2-Clause", - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/webpack/node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/webpack/node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "license": "MIT" - }, "node_modules/webpack/node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", @@ -34998,19 +33800,6 @@ "node": ">=12" } }, - "node_modules/whatwg-encoding/node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/whatwg-mimetype": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz", @@ -35036,48 +33825,100 @@ } }, "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-5.0.0.tgz", + "integrity": "sha512-JEdGzHwwkrbWoGOlIHqQ5gtprKGOenpDHpxE9zVR1bWbOtYRyPPHMe9FaP6x61CmNaTThSkb0DAJte5jD+DmzQ==", + "dev": true, "license": "ISC", "dependencies": { - "isexe": "^2.0.0" + "isexe": "^3.1.1" }, "bin": { - "node-which": "bin/node-which" + "node-which": "bin/which.js" }, "engines": { - "node": ">= 8" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz", + "integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==", "dev": true, "license": "MIT", "dependencies": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" + "is-bigint": "^1.1.0", + "is-boolean-object": "^1.2.1", + "is-number-object": "^1.1.1", + "is-string": "^1.1.1", + "is-symbol": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-builtin-type": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.1.tgz", + "integrity": "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "function.prototype.name": "^1.1.6", + "has-tostringtag": "^1.0.2", + "is-async-function": "^2.0.0", + "is-date-object": "^1.1.0", + "is-finalizationregistry": "^1.1.0", + "is-generator-function": "^1.0.10", + "is-regex": "^1.2.1", + "is-weakref": "^1.0.2", + "isarray": "^2.0.5", + "which-boxed-primitive": "^1.1.0", + "which-collection": "^1.0.2", + "which-typed-array": "^1.1.16" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-collection": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", + "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-map": "^2.0.3", + "is-set": "^2.0.3", + "is-weakmap": "^2.0.2", + "is-weakset": "^2.0.3" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/which-typed-array": { - "version": "1.1.15", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", - "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", + "version": "1.1.18", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.18.tgz", + "integrity": "sha512-qEcY+KJYlWyLH9vNbsr6/5j59AXk5ni5aakf8ldzBvGde6Iz4sxZGkJyWSAueTG7QhOvNRYb1lDdFmL5Td0QKA==", "dev": true, "license": "MIT", "dependencies": { "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", "for-each": "^0.3.3", - "gopd": "^1.0.1", + "gopd": "^1.2.0", "has-tostringtag": "^1.0.2" }, "engines": { @@ -35087,6 +33928,16 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/which/node_modules/isexe": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", + "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=16" + } + }, "node_modules/wildcard": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz", @@ -35103,17 +33954,20 @@ } }, "node_modules/wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.0.tgz", + "integrity": "sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==", "license": "MIT", "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" + "ansi-styles": "^6.2.1", + "string-width": "^7.0.0", + "strip-ansi": "^7.1.0" }, "engines": { - "node": ">=8" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, "node_modules/wrap-ansi-cjs": { @@ -35121,6 +33975,7 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "devOptional": true, "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", @@ -35134,34 +33989,66 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "license": "MIT", + "engines": { + "node": ">=12" }, "funding": { "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/wrap-ansi/node_modules/emoji-regex": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.4.0.tgz", + "integrity": "sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==", + "license": "MIT" + }, + "node_modules/wrap-ansi/node_modules/string-width": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", "license": "MIT", "dependencies": { - "color-convert": "^2.0.1" + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" }, "engines": { - "node": ">=8" + "node": ">=18" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, "node_modules/wrappy": { @@ -35184,17 +34071,10 @@ "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, - "node_modules/write-file-atomic/node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "devOptional": true, - "license": "ISC" - }, "node_modules/ws": { - "version": "8.17.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz", - "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==", + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", + "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", "license": "MIT", "engines": { "node": ">=10.0.0" @@ -35292,23 +34172,6 @@ "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/yahoo-finance2/node_modules/ajv-formats": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", - "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", - "license": "MIT", - "dependencies": { - "ajv": "^8.0.0" - }, - "peerDependencies": { - "ajv": "^8.0.0" - }, - "peerDependenciesMeta": { - "ajv": { - "optional": true - } - } - }, "node_modules/yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", @@ -35408,9 +34271,9 @@ } }, "node_modules/zone.js": { - "version": "0.14.10", - "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.14.10.tgz", - "integrity": "sha512-YGAhaO7J5ywOXW6InXNlLmfU194F8lVgu7bRntUF3TiG8Y3nBK0x1UJJuHUP/e8IyihkjCYqhCScpSwnlaSRkQ==", + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.15.0.tgz", + "integrity": "sha512-9oxn0IIjbCZkJ67L+LkhYWRyAy7axphb3VgE2MBDlOqnmHMPWGYMxJxBYFueFq/JGY2GMwS0rU+UCLunEmy5UA==", "license": "MIT" } } diff --git a/package.json b/package.json index 007330d5..93d6f3c1 100644 --- a/package.json +++ b/package.json @@ -56,17 +56,17 @@ "workspace-generator": "nx workspace-generator" }, "dependencies": { - "@angular/animations": "18.2.8", - "@angular/cdk": "18.2.9", - "@angular/common": "18.2.8", - "@angular/compiler": "18.2.8", - "@angular/core": "18.2.8", - "@angular/forms": "18.2.8", - "@angular/material": "18.2.9", - "@angular/platform-browser": "18.2.8", - "@angular/platform-browser-dynamic": "18.2.8", - "@angular/router": "18.2.8", - "@angular/service-worker": "18.2.8", + "@angular/animations": "19.0.5", + "@angular/cdk": "19.0.4", + "@angular/common": "19.0.5", + "@angular/compiler": "19.0.5", + "@angular/core": "19.0.5", + "@angular/forms": "19.0.5", + "@angular/material": "19.0.4", + "@angular/platform-browser": "19.0.5", + "@angular/platform-browser-dynamic": "19.0.5", + "@angular/router": "19.0.5", + "@angular/service-worker": "19.0.5", "@codewithdan/observable-store": "2.2.15", "@dfinity/agent": "0.15.7", "@dfinity/auth-client": "0.15.7", @@ -89,7 +89,7 @@ "@prisma/client": "6.0.1", "@simplewebauthn/browser": "9.0.1", "@simplewebauthn/server": "9.0.3", - "@stripe/stripe-js": "4.9.0", + "@stripe/stripe-js": "5.4.0", "alphavantage": "2.2.0", "big.js": "6.2.2", "body-parser": "1.20.2", @@ -118,13 +118,13 @@ "ionicons": "7.4.0", "jsonpath": "1.1.1", "lodash": "4.17.21", - "marked": "12.0.2", + "marked": "15.0.4", "ms": "3.0.0-canary.1", - "ng-extract-i18n-merge": "2.12.0", - "ngx-device-detector": "8.0.0", - "ngx-markdown": "18.0.0", + "ng-extract-i18n-merge": "2.13.1", + "ngx-device-detector": "9.0.0", + "ngx-markdown": "19.0.0", "ngx-skeleton-loader": "9.0.0", - "ngx-stripe": "18.1.0", + "ngx-stripe": "19.0.0", "open-color": "1.9.1", "papaparse": "5.3.1", "passport": "0.7.0", @@ -138,38 +138,39 @@ "twitter-api-v2": "1.14.2", "uuid": "11.0.2", "yahoo-finance2": "2.11.3", - "zone.js": "0.14.10" + "zone.js": "0.15.0" }, "devDependencies": { - "@angular-devkit/build-angular": "18.2.9", - "@angular-devkit/core": "18.2.9", - "@angular-devkit/schematics": "18.2.9", - "@angular-eslint/eslint-plugin": "18.1.0", - "@angular-eslint/eslint-plugin-template": "18.1.0", - "@angular-eslint/template-parser": "18.1.0", - "@angular/cli": "18.2.9", - "@angular/compiler-cli": "18.2.8", - "@angular/language-service": "18.2.8", - "@angular/localize": "18.2.8", - "@angular/pwa": "18.2.9", + "@angular-devkit/build-angular": "19.0.6", + "@angular-devkit/core": "19.0.6", + "@angular-devkit/schematics": "19.0.6", + "@angular-eslint/eslint-plugin": "19.0.2", + "@angular-eslint/eslint-plugin-template": "19.0.2", + "@angular-eslint/template-parser": "19.0.2", + "@angular/cli": "19.0.6", + "@angular/compiler-cli": "19.0.5", + "@angular/language-service": "19.0.5", + "@angular/localize": "19.0.5", + "@angular/pwa": "19.0.6", "@nestjs/schematics": "10.0.1", "@nestjs/testing": "10.1.3", - "@nx/angular": "20.1.2", - "@nx/cypress": "20.1.2", - "@nx/eslint-plugin": "20.1.2", - "@nx/jest": "20.1.2", - "@nx/js": "20.1.2", - "@nx/nest": "20.1.2", - "@nx/node": "20.1.2", - "@nx/storybook": "20.1.2", - "@nx/web": "20.1.2", - "@nx/workspace": "20.1.2", - "@schematics/angular": "18.2.9", + "@nx/angular": "20.3.0", + "@nx/cypress": "20.3.0", + "@nx/eslint-plugin": "20.3.0", + "@nx/jest": "20.3.0", + "@nx/js": "20.3.0", + "@nx/module-federation": "20.3.0", + "@nx/nest": "20.3.0", + "@nx/node": "20.3.0", + "@nx/storybook": "20.3.0", + "@nx/web": "20.3.0", + "@nx/workspace": "20.3.0", + "@schematics/angular": "19.0.6", "@simplewebauthn/types": "9.0.1", - "@storybook/addon-essentials": "8.3.6", - "@storybook/addon-interactions": "8.3.6", - "@storybook/angular": "8.3.6", - "@storybook/core-server": "8.3.6", + "@storybook/addon-essentials": "8.4.7", + "@storybook/addon-interactions": "8.4.7", + "@storybook/angular": "8.4.7", + "@storybook/core-server": "8.4.7", "@trivago/prettier-plugin-sort-imports": "4.3.0", "@types/big.js": "6.2.2", "@types/body-parser": "1.19.5", @@ -193,8 +194,8 @@ "husky": "9.1.7", "jest": "29.7.0", "jest-environment-jsdom": "29.7.0", - "jest-preset-angular": "14.1.0", - "nx": "20.1.2", + "jest-preset-angular": "14.4.2", + "nx": "20.3.0", "prettier": "3.4.2", "prettier-plugin-organize-attributes": "1.0.0", "prisma": "6.0.1", @@ -202,11 +203,11 @@ "react-dom": "18.2.0", "replace-in-file": "7.0.1", "shx": "0.3.4", - "storybook": "8.3.6", + "storybook": "8.4.7", "ts-jest": "29.1.0", "ts-node": "10.9.2", "tslib": "2.6.0", - "typescript": "5.5.3", + "typescript": "5.6.3", "webpack-bundle-analyzer": "4.10.2" }, "engines": { From 28f7781fa2e1bee284a5d430e302c84c29115196 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Szymon=20=C5=81=C4=85giewka?= Date: Mon, 30 Dec 2024 09:36:04 +0100 Subject: [PATCH 43/63] Feature/eliminate body-parser (#4155) * Eliminate body-parser in favor of using @nestjs/platform-express * Update changelog --- CHANGELOG.md | 1 + apps/api/src/main.ts | 3 +-- package-lock.json | 2 -- package.json | 2 -- 4 files changed, 2 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 86f476ee..1a1111aa 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Improved support for automatic deletion of unused asset profiles when deleting activities - Improved the language localization for German (`de`) +- Eliminated `body-parser` in favor of using `@nestjs/platform-express` - Upgraded the _Stripe_ dependencies - Upgraded `angular` from version `18.2.8` to `19.0.5` - Upgraded `husky` from version `9.1.6` to `9.1.7` diff --git a/apps/api/src/main.ts b/apps/api/src/main.ts index 9335e8d1..fdd6c1d9 100644 --- a/apps/api/src/main.ts +++ b/apps/api/src/main.ts @@ -7,7 +7,6 @@ import { import { ConfigService } from '@nestjs/config'; import { NestFactory } from '@nestjs/core'; import type { NestExpressApplication } from '@nestjs/platform-express'; -import { json } from 'body-parser'; import helmet from 'helmet'; import { AppModule } from './app/app.module'; @@ -48,7 +47,7 @@ async function bootstrap() { ); // Support 10mb csv/json files for importing activities - app.use(json({ limit: '10mb' })); + app.useBodyParser('json', { limit: '10mb' }); if (configService.get('ENABLE_FEATURE_SUBSCRIPTION') === 'true') { app.use( diff --git a/package-lock.json b/package-lock.json index b1a02ba7..d44d3be6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -46,7 +46,6 @@ "@stripe/stripe-js": "5.4.0", "alphavantage": "2.2.0", "big.js": "6.2.2", - "body-parser": "1.20.2", "bootstrap": "4.6.0", "bull": "4.16.2", "cache-manager": "5.7.6", @@ -127,7 +126,6 @@ "@storybook/core-server": "8.4.7", "@trivago/prettier-plugin-sort-imports": "4.3.0", "@types/big.js": "6.2.2", - "@types/body-parser": "1.19.5", "@types/cache-manager": "4.0.6", "@types/color": "3.0.6", "@types/google-spreadsheet": "3.1.5", diff --git a/package.json b/package.json index 93d6f3c1..27b7e4ad 100644 --- a/package.json +++ b/package.json @@ -92,7 +92,6 @@ "@stripe/stripe-js": "5.4.0", "alphavantage": "2.2.0", "big.js": "6.2.2", - "body-parser": "1.20.2", "bootstrap": "4.6.0", "bull": "4.16.2", "cache-manager": "5.7.6", @@ -173,7 +172,6 @@ "@storybook/core-server": "8.4.7", "@trivago/prettier-plugin-sort-imports": "4.3.0", "@types/big.js": "6.2.2", - "@types/body-parser": "1.19.5", "@types/cache-manager": "4.0.6", "@types/color": "3.0.6", "@types/google-spreadsheet": "3.1.5", From ff7caf9c5c6368725891adc6d7363c20a0235f7e Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Mon, 30 Dec 2024 10:21:11 +0100 Subject: [PATCH 44/63] Feature/migrate coupon redemption prompt dialog (#4150) * Migrate coupon redemption prompt dialog * Update changelog --- CHANGELOG.md | 1 + .../user-account-membership.component.ts | 82 ++++++++++--------- 2 files changed, 44 insertions(+), 39 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1a1111aa..f0cfcbad 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,6 +14,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed - Improved support for automatic deletion of unused asset profiles when deleting activities +- Migrated the coupon redemption to the notification service for prompt dialogs - Improved the language localization for German (`de`) - Eliminated `body-parser` in favor of using `@nestjs/platform-express` - Upgraded the _Stripe_ dependencies diff --git a/apps/client/src/app/components/user-account-membership/user-account-membership.component.ts b/apps/client/src/app/components/user-account-membership/user-account-membership.component.ts index d6f85f05..6139d173 100644 --- a/apps/client/src/app/components/user-account-membership/user-account-membership.component.ts +++ b/apps/client/src/app/components/user-account-membership/user-account-membership.component.ts @@ -164,50 +164,54 @@ export class UserAccountMembershipComponent implements OnDestroy { } public onRedeemCoupon() { - let couponCode = prompt($localize`Please enter your coupon code:`); - couponCode = couponCode?.trim(); + this.notificationService.prompt({ + confirmFn: (value) => { + const couponCode = value?.trim(); - if (couponCode) { - this.dataService - .redeemCoupon(couponCode) - .pipe( - catchError(() => { - this.snackBar.open( - '😞 ' + $localize`Could not redeem coupon code`, - undefined, - { - duration: ms('3 seconds') - } - ); + if (couponCode) { + this.dataService + .redeemCoupon(couponCode) + .pipe( + catchError(() => { + this.snackBar.open( + '😞 ' + $localize`Could not redeem coupon code`, + undefined, + { + duration: ms('3 seconds') + } + ); - return EMPTY; - }), - takeUntil(this.unsubscribeSubject) - ) - .subscribe(() => { - this.snackBarRef = this.snackBar.open( - '✅ ' + $localize`Coupon code has been redeemed`, - $localize`Reload`, - { - duration: 3000 - } - ); - - this.snackBarRef - .afterDismissed() - .pipe(takeUntil(this.unsubscribeSubject)) + return EMPTY; + }), + takeUntil(this.unsubscribeSubject) + ) .subscribe(() => { - window.location.reload(); - }); + this.snackBarRef = this.snackBar.open( + '✅ ' + $localize`Coupon code has been redeemed`, + $localize`Reload`, + { + duration: 3000 + } + ); - this.snackBarRef - .onAction() - .pipe(takeUntil(this.unsubscribeSubject)) - .subscribe(() => { - window.location.reload(); + this.snackBarRef + .afterDismissed() + .pipe(takeUntil(this.unsubscribeSubject)) + .subscribe(() => { + window.location.reload(); + }); + + this.snackBarRef + .onAction() + .pipe(takeUntil(this.unsubscribeSubject)) + .subscribe(() => { + window.location.reload(); + }); }); - }); - } + } + }, + title: $localize`Please enter your coupon code.` + }); } public ngOnDestroy() { From 74bc8222d62b06936e33ebf5e80e10958796db72 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Szymon=20=C5=81=C4=85giewka?= Date: Mon, 30 Dec 2024 10:46:53 +0100 Subject: [PATCH 45/63] Feature/Refactored `got` calls to use `AbortSignal.timeout()` without `AbortController()` (#4153) * Feature/refactor got calls to use AbortSignal.timeout Instead of manually creating AbortController and controlling the abort with setTimeout. Feature available since node v16.14.0 and v17.3.0[^1] and is built to replace the exact scenario that all these requests have. [^1]:https://nodejs.org/docs/latest-v22.x/api/globals.html#static-method-abortsignaltimeoutdelay * Update changelog --------- Co-authored-by: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> --- CHANGELOG.md | 1 + apps/api/src/app/info/info.service.ts | 40 ++++++------------- apps/api/src/app/logo/logo.service.ts | 10 ++--- .../coingecko/coingecko.service.ts | 36 ++++------------- .../openfigi/openfigi.service.ts | 8 +--- .../trackinsight/trackinsight.service.ts | 38 +++++------------- .../eod-historical-data.service.ts | 34 +++------------- .../financial-modeling-prep.service.ts | 26 +++--------- .../ghostfolio/ghostfolio.service.ts | 34 +++------------- .../data-provider/manual/manual.service.ts | 10 ++--- .../rapid-api/rapid-api.service.ts | 10 ++--- 11 files changed, 58 insertions(+), 189 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f0cfcbad..0fe75a2f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Improved support for automatic deletion of unused asset profiles when deleting activities - Migrated the coupon redemption to the notification service for prompt dialogs +- Refactored `got` calls to use `AbortSignal.timeout()` without `AbortController()` - Improved the language localization for German (`de`) - Eliminated `body-parser` in favor of using `@nestjs/platform-express` - Upgraded the _Stripe_ dependencies diff --git a/apps/api/src/app/info/info.service.ts b/apps/api/src/app/info/info.service.ts index 904a9709..cd403516 100644 --- a/apps/api/src/app/info/info.service.ts +++ b/apps/api/src/app/info/info.service.ts @@ -155,18 +155,14 @@ export class InfoService { private async countDockerHubPulls(): Promise { try { - const abortController = new AbortController(); - - setTimeout(() => { - abortController.abort(); - }, this.configurationService.get('REQUEST_TIMEOUT')); - const { pull_count } = await got( `https://hub.docker.com/v2/repositories/ghostfolio/ghostfolio`, { headers: { 'User-Agent': 'request' }, // @ts-ignore - signal: abortController.signal + signal: AbortSignal.timeout( + this.configurationService.get('REQUEST_TIMEOUT') + ) } ).json(); @@ -180,15 +176,11 @@ export class InfoService { private async countGitHubContributors(): Promise { try { - const abortController = new AbortController(); - - setTimeout(() => { - abortController.abort(); - }, this.configurationService.get('REQUEST_TIMEOUT')); - const { body } = await got('https://github.com/ghostfolio/ghostfolio', { // @ts-ignore - signal: abortController.signal + signal: AbortSignal.timeout( + this.configurationService.get('REQUEST_TIMEOUT') + ) }); const $ = cheerio.load(body); @@ -207,18 +199,14 @@ export class InfoService { private async countGitHubStargazers(): Promise { try { - const abortController = new AbortController(); - - setTimeout(() => { - abortController.abort(); - }, this.configurationService.get('REQUEST_TIMEOUT')); - const { stargazers_count } = await got( `https://api.github.com/repos/ghostfolio/ghostfolio`, { headers: { 'User-Agent': 'request' }, // @ts-ignore - signal: abortController.signal + signal: AbortSignal.timeout( + this.configurationService.get('REQUEST_TIMEOUT') + ) } ).json(); @@ -335,12 +323,6 @@ export class InfoService { PROPERTY_BETTER_UPTIME_MONITOR_ID )) as string; - const abortController = new AbortController(); - - setTimeout(() => { - abortController.abort(); - }, this.configurationService.get('REQUEST_TIMEOUT')); - const { data } = await got( `https://uptime.betterstack.com/api/v2/monitors/${monitorId}/sla?from=${format( subDays(new Date(), 90), @@ -353,7 +335,9 @@ export class InfoService { )}` }, // @ts-ignore - signal: abortController.signal + signal: AbortSignal.timeout( + this.configurationService.get('REQUEST_TIMEOUT') + ) } ).json(); diff --git a/apps/api/src/app/logo/logo.service.ts b/apps/api/src/app/logo/logo.service.ts index 908921a1..759db2af 100644 --- a/apps/api/src/app/logo/logo.service.ts +++ b/apps/api/src/app/logo/logo.service.ts @@ -44,18 +44,14 @@ export class LogoService { } private getBuffer(aUrl: string) { - const abortController = new AbortController(); - - setTimeout(() => { - abortController.abort(); - }, this.configurationService.get('REQUEST_TIMEOUT')); - return got( `https://t0.gstatic.com/faviconV2?client=SOCIAL&type=FAVICON&fallback_opts=TYPE,SIZE,URL&url=${aUrl}&size=64`, { headers: { 'User-Agent': 'request' }, // @ts-ignore - signal: abortController.signal + signal: AbortSignal.timeout( + this.configurationService.get('REQUEST_TIMEOUT') + ) } ).buffer(); } diff --git a/apps/api/src/services/data-provider/coingecko/coingecko.service.ts b/apps/api/src/services/data-provider/coingecko/coingecko.service.ts index 99198016..ddc04ffc 100644 --- a/apps/api/src/services/data-provider/coingecko/coingecko.service.ts +++ b/apps/api/src/services/data-provider/coingecko/coingecko.service.ts @@ -69,16 +69,12 @@ export class CoinGeckoService implements DataProviderInterface { }; try { - const abortController = new AbortController(); - - setTimeout(() => { - abortController.abort(); - }, this.configurationService.get('REQUEST_TIMEOUT')); - const { name } = await got(`${this.apiUrl}/coins/${symbol}`, { headers: this.headers, // @ts-ignore - signal: abortController.signal + signal: AbortSignal.timeout( + this.configurationService.get('REQUEST_TIMEOUT') + ) }).json(); response.name = name; @@ -118,12 +114,6 @@ export class CoinGeckoService implements DataProviderInterface { [symbol: string]: { [date: string]: IDataProviderHistoricalResponse }; }> { try { - const abortController = new AbortController(); - - setTimeout(() => { - abortController.abort(); - }, requestTimeout); - const { prices } = await got( `${ this.apiUrl @@ -133,7 +123,7 @@ export class CoinGeckoService implements DataProviderInterface { { headers: this.headers, // @ts-ignore - signal: abortController.signal + signal: AbortSignal.timeout(requestTimeout) } ).json(); @@ -179,12 +169,6 @@ export class CoinGeckoService implements DataProviderInterface { } try { - const abortController = new AbortController(); - - setTimeout(() => { - abortController.abort(); - }, requestTimeout); - const quotes = await got( `${this.apiUrl}/simple/price?ids=${symbols.join( ',' @@ -192,7 +176,7 @@ export class CoinGeckoService implements DataProviderInterface { { headers: this.headers, // @ts-ignore - signal: abortController.signal + signal: AbortSignal.timeout(requestTimeout) } ).json(); @@ -228,16 +212,12 @@ export class CoinGeckoService implements DataProviderInterface { let items: LookupItem[] = []; try { - const abortController = new AbortController(); - - setTimeout(() => { - abortController.abort(); - }, this.configurationService.get('REQUEST_TIMEOUT')); - const { coins } = await got(`${this.apiUrl}/search?query=${query}`, { headers: this.headers, // @ts-ignore - signal: abortController.signal + signal: AbortSignal.timeout( + this.configurationService.get('REQUEST_TIMEOUT') + ) }).json(); items = coins.map(({ id: symbol, name }) => { diff --git a/apps/api/src/services/data-provider/data-enhancer/openfigi/openfigi.service.ts b/apps/api/src/services/data-provider/data-enhancer/openfigi/openfigi.service.ts index 8d2d180e..3efe7e40 100644 --- a/apps/api/src/services/data-provider/data-enhancer/openfigi/openfigi.service.ts +++ b/apps/api/src/services/data-provider/data-enhancer/openfigi/openfigi.service.ts @@ -43,18 +43,12 @@ export class OpenFigiDataEnhancerService implements DataEnhancerInterface { this.configurationService.get('API_KEY_OPEN_FIGI'); } - const abortController = new AbortController(); - - setTimeout(() => { - abortController.abort(); - }, requestTimeout); - const mappings = await got .post(`${OpenFigiDataEnhancerService.baseUrl}/v3/mapping`, { headers, json: [{ exchCode: exchange, idType: 'TICKER', idValue: ticker }], // @ts-ignore - signal: abortController.signal + signal: AbortSignal.timeout(requestTimeout) }) .json(); diff --git a/apps/api/src/services/data-provider/data-enhancer/trackinsight/trackinsight.service.ts b/apps/api/src/services/data-provider/data-enhancer/trackinsight/trackinsight.service.ts index 437ef4eb..a4e69528 100644 --- a/apps/api/src/services/data-provider/data-enhancer/trackinsight/trackinsight.service.ts +++ b/apps/api/src/services/data-provider/data-enhancer/trackinsight/trackinsight.service.ts @@ -45,34 +45,24 @@ export class TrackinsightDataEnhancerService implements DataEnhancerInterface { return response; } - let abortController = new AbortController(); - - setTimeout(() => { - abortController.abort(); - }, requestTimeout); - const profile = await got( `${TrackinsightDataEnhancerService.baseUrl}/funds/${symbol}.json`, { // @ts-ignore - signal: abortController.signal + signal: AbortSignal.timeout(requestTimeout) } ) .json() .catch(() => { - const abortController = new AbortController(); - - setTimeout(() => { - abortController.abort(); - }, this.configurationService.get('REQUEST_TIMEOUT')); - return got( `${TrackinsightDataEnhancerService.baseUrl}/funds/${ symbol.split('.')?.[0] }.json`, { // @ts-ignore - signal: abortController.signal + signal: AbortSignal.timeout( + this.configurationService.get('REQUEST_TIMEOUT') + ) } ) .json() @@ -87,34 +77,26 @@ export class TrackinsightDataEnhancerService implements DataEnhancerInterface { response.isin = isin; } - abortController = new AbortController(); - - setTimeout(() => { - abortController.abort(); - }, this.configurationService.get('REQUEST_TIMEOUT')); - const holdings = await got( `${TrackinsightDataEnhancerService.baseUrl}/holdings/${symbol}.json`, { // @ts-ignore - signal: abortController.signal + signal: AbortSignal.timeout( + this.configurationService.get('REQUEST_TIMEOUT') + ) } ) .json() .catch(() => { - const abortController = new AbortController(); - - setTimeout(() => { - abortController.abort(); - }, this.configurationService.get('REQUEST_TIMEOUT')); - return got( `${TrackinsightDataEnhancerService.baseUrl}/holdings/${ symbol.split('.')?.[0] }.json`, { // @ts-ignore - signal: abortController.signal + signal: AbortSignal.timeout( + this.configurationService.get('REQUEST_TIMEOUT') + ) } ) .json() diff --git a/apps/api/src/services/data-provider/eod-historical-data/eod-historical-data.service.ts b/apps/api/src/services/data-provider/eod-historical-data/eod-historical-data.service.ts index 1c5696da..3ba8eb04 100644 --- a/apps/api/src/services/data-provider/eod-historical-data/eod-historical-data.service.ts +++ b/apps/api/src/services/data-provider/eod-historical-data/eod-historical-data.service.ts @@ -91,16 +91,10 @@ export class EodHistoricalDataService implements DataProviderInterface { } try { - const abortController = new AbortController(); - const response: { [date: string]: IDataProviderHistoricalResponse; } = {}; - setTimeout(() => { - abortController.abort(); - }, requestTimeout); - const historicalResult = await got( `${this.URL}/div/${symbol}?api_token=${ this.apiKey @@ -110,7 +104,7 @@ export class EodHistoricalDataService implements DataProviderInterface { )}`, { // @ts-ignore - signal: abortController.signal + signal: AbortSignal.timeout(requestTimeout) } ).json(); @@ -146,12 +140,6 @@ export class EodHistoricalDataService implements DataProviderInterface { symbol = this.convertToEodSymbol(symbol); try { - const abortController = new AbortController(); - - setTimeout(() => { - abortController.abort(); - }, requestTimeout); - const response = await got( `${this.URL}/eod/${symbol}?api_token=${ this.apiKey @@ -161,7 +149,7 @@ export class EodHistoricalDataService implements DataProviderInterface { )}&period=${granularity}`, { // @ts-ignore - signal: abortController.signal + signal: AbortSignal.timeout(requestTimeout) } ).json(); @@ -217,19 +205,13 @@ export class EodHistoricalDataService implements DataProviderInterface { }); try { - const abortController = new AbortController(); - - setTimeout(() => { - abortController.abort(); - }, requestTimeout); - const realTimeResponse = await got( `${this.URL}/real-time/${eodHistoricalDataSymbols[0]}?api_token=${ this.apiKey }&fmt=json&s=${eodHistoricalDataSymbols.join(',')}`, { // @ts-ignore - signal: abortController.signal + signal: AbortSignal.timeout(requestTimeout) } ).json(); @@ -418,17 +400,13 @@ export class EodHistoricalDataService implements DataProviderInterface { })[] = []; try { - const abortController = new AbortController(); - - setTimeout(() => { - abortController.abort(); - }, this.configurationService.get('REQUEST_TIMEOUT')); - const response = await got( `${this.URL}/search/${aQuery}?api_token=${this.apiKey}`, { // @ts-ignore - signal: abortController.signal + signal: AbortSignal.timeout( + this.configurationService.get('REQUEST_TIMEOUT') + ) } ).json(); diff --git a/apps/api/src/services/data-provider/financial-modeling-prep/financial-modeling-prep.service.ts b/apps/api/src/services/data-provider/financial-modeling-prep/financial-modeling-prep.service.ts index a1774fc0..933af480 100644 --- a/apps/api/src/services/data-provider/financial-modeling-prep/financial-modeling-prep.service.ts +++ b/apps/api/src/services/data-provider/financial-modeling-prep/financial-modeling-prep.service.ts @@ -72,17 +72,11 @@ export class FinancialModelingPrepService implements DataProviderInterface { [symbol: string]: { [date: string]: IDataProviderHistoricalResponse }; }> { try { - const abortController = new AbortController(); - - setTimeout(() => { - abortController.abort(); - }, requestTimeout); - const { historical } = await got( `${this.URL}/historical-price-full/${symbol}?apikey=${this.apiKey}`, { // @ts-ignore - signal: abortController.signal + signal: AbortSignal.timeout(requestTimeout) } ).json(); @@ -130,17 +124,11 @@ export class FinancialModelingPrepService implements DataProviderInterface { } try { - const abortController = new AbortController(); - - setTimeout(() => { - abortController.abort(); - }, requestTimeout); - const quotes = await got( `${this.URL}/quote/${symbols.join(',')}?apikey=${this.apiKey}`, { // @ts-ignore - signal: abortController.signal + signal: AbortSignal.timeout(requestTimeout) } ).json(); @@ -176,17 +164,13 @@ export class FinancialModelingPrepService implements DataProviderInterface { let items: LookupItem[] = []; try { - const abortController = new AbortController(); - - setTimeout(() => { - abortController.abort(); - }, this.configurationService.get('REQUEST_TIMEOUT')); - const result = await got( `${this.URL}/search?query=${query}&apikey=${this.apiKey}`, { // @ts-ignore - signal: abortController.signal + signal: AbortSignal.timeout( + this.configurationService.get('REQUEST_TIMEOUT') + ) } ).json(); diff --git a/apps/api/src/services/data-provider/ghostfolio/ghostfolio.service.ts b/apps/api/src/services/data-provider/ghostfolio/ghostfolio.service.ts index 7102176a..b6e86949 100644 --- a/apps/api/src/services/data-provider/ghostfolio/ghostfolio.service.ts +++ b/apps/api/src/services/data-provider/ghostfolio/ghostfolio.service.ts @@ -86,12 +86,6 @@ export class GhostfolioService implements DataProviderInterface { } = {}; try { - const abortController = new AbortController(); - - setTimeout(() => { - abortController.abort(); - }, requestTimeout); - const { dividends } = await got( `${this.URL}/v2/data-providers/ghostfolio/dividends/${symbol}?from=${format(from, DATE_FORMAT)}&granularity=${granularity}&to=${format( to, @@ -100,7 +94,7 @@ export class GhostfolioService implements DataProviderInterface { { headers: await this.getRequestHeaders(), // @ts-ignore - signal: abortController.signal + signal: AbortSignal.timeout(requestTimeout) } ).json(); @@ -136,12 +130,6 @@ export class GhostfolioService implements DataProviderInterface { [symbol: string]: { [date: string]: IDataProviderHistoricalResponse }; }> { try { - const abortController = new AbortController(); - - setTimeout(() => { - abortController.abort(); - }, requestTimeout); - const { historicalData } = await got( `${this.URL}/v2/data-providers/ghostfolio/historical/${symbol}?from=${format(from, DATE_FORMAT)}&granularity=${granularity}&to=${format( to, @@ -150,7 +138,7 @@ export class GhostfolioService implements DataProviderInterface { { headers: await this.getRequestHeaders(), // @ts-ignore - signal: abortController.signal + signal: AbortSignal.timeout(requestTimeout) } ).json(); @@ -204,18 +192,12 @@ export class GhostfolioService implements DataProviderInterface { } try { - const abortController = new AbortController(); - - setTimeout(() => { - abortController.abort(); - }, requestTimeout); - const { quotes } = await got( `${this.URL}/v2/data-providers/ghostfolio/quotes?symbols=${symbols.join(',')}`, { headers: await this.getRequestHeaders(), // @ts-ignore - signal: abortController.signal + signal: AbortSignal.timeout(requestTimeout) } ).json(); @@ -253,18 +235,14 @@ export class GhostfolioService implements DataProviderInterface { let searchResult: LookupResponse = { items: [] }; try { - const abortController = new AbortController(); - - setTimeout(() => { - abortController.abort(); - }, this.configurationService.get('REQUEST_TIMEOUT')); - searchResult = await got( `${this.URL}/v2/data-providers/ghostfolio/lookup?query=${query}`, { headers: await this.getRequestHeaders(), // @ts-ignore - signal: abortController.signal + signal: AbortSignal.timeout( + this.configurationService.get('REQUEST_TIMEOUT') + ) } ).json(); } catch (error) { 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 6f1c56f1..3e98a9d7 100644 --- a/apps/api/src/services/data-provider/manual/manual.service.ts +++ b/apps/api/src/services/data-provider/manual/manual.service.ts @@ -275,17 +275,13 @@ export class ManualService implements DataProviderInterface { scraperConfiguration: ScraperConfiguration ): Promise { try { - const abortController = new AbortController(); - - setTimeout(() => { - abortController.abort(); - }, this.configurationService.get('REQUEST_TIMEOUT')); - let locale = scraperConfiguration.locale; const { body, headers } = await got(scraperConfiguration.url, { headers: scraperConfiguration.headers as Headers, // @ts-ignore - signal: abortController.signal + signal: AbortSignal.timeout( + this.configurationService.get('REQUEST_TIMEOUT') + ) }); if (headers['content-type'].includes('application/json')) { diff --git a/apps/api/src/services/data-provider/rapid-api/rapid-api.service.ts b/apps/api/src/services/data-provider/rapid-api/rapid-api.service.ts index e7abc0ff..08cc2ef0 100644 --- a/apps/api/src/services/data-provider/rapid-api/rapid-api.service.ts +++ b/apps/api/src/services/data-provider/rapid-api/rapid-api.service.ts @@ -135,12 +135,6 @@ export class RapidApiService implements DataProviderInterface { oneYearAgo: { value: number; valueText: string }; }> { try { - const abortController = new AbortController(); - - setTimeout(() => { - abortController.abort(); - }, this.configurationService.get('REQUEST_TIMEOUT')); - const { fgi } = await got( `https://fear-and-greed-index.p.rapidapi.com/v1/fgi`, { @@ -150,7 +144,9 @@ export class RapidApiService implements DataProviderInterface { 'x-rapidapi-key': this.configurationService.get('API_KEY_RAPID_API') }, // @ts-ignore - signal: abortController.signal + signal: AbortSignal.timeout( + this.configurationService.get('REQUEST_TIMEOUT') + ) } ).json(); From 3f84caa9f653fa578398fee368356443d7fb65cb Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Mon, 30 Dec 2024 10:48:28 +0100 Subject: [PATCH 46/63] Feature/migrate setting Ghostfolio API key prompt dialog (#4151) * Migrate setting Ghostfolio API key prompt dialog --- ...ghostfolio-premium-api-dialog.component.ts | 32 +++++++++++-------- 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/ghostfolio-premium-api-dialog.component.ts b/apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/ghostfolio-premium-api-dialog.component.ts index a8bb2957..8c290706 100644 --- a/apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/ghostfolio-premium-api-dialog.component.ts +++ b/apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/ghostfolio-premium-api-dialog.component.ts @@ -1,3 +1,4 @@ +import { NotificationService } from '@ghostfolio/client/core/notification/notification.service'; import { DataService } from '@ghostfolio/client/services/data.service'; import { PROPERTY_API_KEY_GHOSTFOLIO } from '@ghostfolio/common/config'; import { GfPremiumIndicatorComponent } from '@ghostfolio/ui/premium-indicator'; @@ -32,7 +33,8 @@ export class GfGhostfolioPremiumApiDialogComponent { public constructor( @Inject(MAT_DIALOG_DATA) public data: GhostfolioPremiumApiDialogParams, private dataService: DataService, - public dialogRef: MatDialogRef + public dialogRef: MatDialogRef, + private notificationService: NotificationService ) {} public onCancel() { @@ -40,19 +42,21 @@ export class GfGhostfolioPremiumApiDialogComponent { } public onSetGhostfolioApiKey() { - let ghostfolioApiKey = prompt( - $localize`Please enter your Ghostfolio API key:` - ); - ghostfolioApiKey = ghostfolioApiKey?.trim(); + this.notificationService.prompt({ + confirmFn: (value) => { + const ghostfolioApiKey = value?.trim(); - if (ghostfolioApiKey) { - this.dataService - .putAdminSetting(PROPERTY_API_KEY_GHOSTFOLIO, { - value: ghostfolioApiKey - }) - .subscribe(() => { - this.dialogRef.close(); - }); - } + if (ghostfolioApiKey) { + this.dataService + .putAdminSetting(PROPERTY_API_KEY_GHOSTFOLIO, { + value: ghostfolioApiKey + }) + .subscribe(() => { + this.dialogRef.close(); + }); + } + }, + title: $localize`Please enter your Ghostfolio API key.` + }); } } From 8fc9d1c75ccc03ca7c448e602c3bb46809e369a6 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Mon, 30 Dec 2024 11:23:26 +0100 Subject: [PATCH 47/63] Feature/clean up imports of holdings table component (#4159) * Clean up imports --- libs/ui/src/lib/holdings-table/holdings-table.component.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/libs/ui/src/lib/holdings-table/holdings-table.component.ts b/libs/ui/src/lib/holdings-table/holdings-table.component.ts index 29cb49c0..14382f42 100644 --- a/libs/ui/src/lib/holdings-table/holdings-table.component.ts +++ b/libs/ui/src/lib/holdings-table/holdings-table.component.ts @@ -1,5 +1,4 @@ import { GfAssetProfileIconComponent } from '@ghostfolio/client/components/asset-profile-icon/asset-profile-icon.component'; -import { GfHoldingDetailDialogComponent } from '@ghostfolio/client/components/holding-detail-dialog/holding-detail-dialog.component'; import { GfSymbolModule } from '@ghostfolio/client/pipes/symbol/symbol.module'; import { getLocale } from '@ghostfolio/common/helper'; import { @@ -35,7 +34,6 @@ import { Subject, Subscription } from 'rxjs'; imports: [ CommonModule, GfAssetProfileIconComponent, - GfHoldingDetailDialogComponent, GfNoTransactionsInfoComponent, GfSymbolModule, GfValueComponent, From 167abe41074bfc6ac3c3ea0b061067b6c6e46e4a Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Mon, 30 Dec 2024 11:23:55 +0100 Subject: [PATCH 48/63] Bugfix/fix algebraic sign in twitter bot service (#4158) * Fix -0.0 to 0.0 * Update changelog --- CHANGELOG.md | 4 ++++ .../src/services/twitter-bot/twitter-bot.service.ts | 10 ++++++++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0fe75a2f..a483c5bd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -28,6 +28,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Upgraded `Nx` from version `20.1.2` to `20.3.0` - Upgraded `zone.js` from version `0.14.10` to `0.15.0` +### Fixed + +- Fixed an issue with the algebraic sign in the twitter bot service + ## 2.131.0 - 2024-12-25 ### Changed diff --git a/apps/api/src/services/twitter-bot/twitter-bot.service.ts b/apps/api/src/services/twitter-bot/twitter-bot.service.ts index 163b8e9c..a32882ae 100644 --- a/apps/api/src/services/twitter-bot/twitter-bot.service.ts +++ b/apps/api/src/services/twitter-bot/twitter-bot.service.ts @@ -87,9 +87,15 @@ export class TwitterBotService { return benchmarks .map(({ marketCondition, name, performances }) => { - return `${name} ${( + let changeFormAllTimeHigh = ( performances.allTimeHigh.performancePercent * 100 - ).toFixed(1)}%${ + ).toFixed(1); + + if (Math.abs(parseFloat(changeFormAllTimeHigh)) === 0) { + changeFormAllTimeHigh = '0.0'; + } + + return `${name} ${changeFormAllTimeHigh}%${ marketCondition !== 'NEUTRAL_MARKET' ? ' ' + resolveMarketCondition(marketCondition).emoji : '' From 96112955ff6a286e2ae7154a1b899138f6026b2c Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Mon, 30 Dec 2024 11:24:40 +0100 Subject: [PATCH 49/63] Feature/upgrade prisma to version 6.1.0 (#4135) * Upgrade prisma to version 6.1.0 * Update changelog --- CHANGELOG.md | 1 + package-lock.json | 64 +++++++++++++++++++++++------------------------ package.json | 4 +-- 3 files changed, 35 insertions(+), 34 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a483c5bd..581a83af 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -26,6 +26,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Upgraded `ngx-device-detector` from version `8.0.0` to `9.0.0` - Upgraded `ngx-markdown` from version `18.0.0` to `19.0.0` - Upgraded `Nx` from version `20.1.2` to `20.3.0` +- Upgraded `prisma` from version `6.0.1` to `6.1.0` - Upgraded `zone.js` from version `0.14.10` to `0.15.0` ### Fixed diff --git a/package-lock.json b/package-lock.json index d44d3be6..6a7b855f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -40,7 +40,7 @@ "@nestjs/platform-express": "10.1.3", "@nestjs/schedule": "3.0.2", "@nestjs/serve-static": "4.0.0", - "@prisma/client": "6.0.1", + "@prisma/client": "6.1.0", "@simplewebauthn/browser": "9.0.1", "@simplewebauthn/server": "9.0.3", "@stripe/stripe-js": "5.4.0", @@ -150,7 +150,7 @@ "nx": "20.3.0", "prettier": "3.4.2", "prettier-plugin-organize-attributes": "1.0.0", - "prisma": "6.0.1", + "prisma": "6.1.0", "react": "18.2.0", "react-dom": "18.2.0", "replace-in-file": "7.0.1", @@ -9143,9 +9143,9 @@ "license": "MIT" }, "node_modules/@prisma/client": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@prisma/client/-/client-6.0.1.tgz", - "integrity": "sha512-60w7kL6bUxz7M6Gs/V+OWMhwy94FshpngVmOY05TmGD0Lhk+Ac0ZgtjlL6Wll9TD4G03t4Sq1wZekNVy+Xdlbg==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@prisma/client/-/client-6.1.0.tgz", + "integrity": "sha512-AbQYc5+EJKm1Ydfq3KxwcGiy7wIbm4/QbjCKWWoNROtvy7d6a3gmAGkKjK0iUCzh+rHV8xDhD5Cge8ke/kiy5Q==", "hasInstallScript": true, "license": "Apache-2.0", "engines": { @@ -9161,53 +9161,53 @@ } }, "node_modules/@prisma/debug": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@prisma/debug/-/debug-6.0.1.tgz", - "integrity": "sha512-jQylgSOf7ibTVxqBacnAlVGvek6fQxJIYCQOeX2KexsfypNzXjJQSS2o5s+Mjj2Np93iSOQUaw6TvPj8syhG4w==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@prisma/debug/-/debug-6.1.0.tgz", + "integrity": "sha512-0himsvcM4DGBTtvXkd2Tggv6sl2JyUYLzEGXXleFY+7Kp6rZeSS3hiTW9mwtUlXrwYbJP6pwlVNB7jYElrjWUg==", "devOptional": true, "license": "Apache-2.0" }, "node_modules/@prisma/engines": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@prisma/engines/-/engines-6.0.1.tgz", - "integrity": "sha512-4hxzI+YQIR2uuDyVsDooFZGu5AtixbvM2psp+iayDZ4hRrAHo/YwgA17N23UWq7G6gRu18NvuNMb48qjP3DPQw==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@prisma/engines/-/engines-6.1.0.tgz", + "integrity": "sha512-GnYJbCiep3Vyr1P/415ReYrgJUjP79fBNc1wCo7NP6Eia0CzL2Ot9vK7Infczv3oK7JLrCcawOSAxFxNFsAERQ==", "devOptional": true, "hasInstallScript": true, "license": "Apache-2.0", "dependencies": { - "@prisma/debug": "6.0.1", - "@prisma/engines-version": "5.23.0-27.5dbef10bdbfb579e07d35cc85fb1518d357cb99e", - "@prisma/fetch-engine": "6.0.1", - "@prisma/get-platform": "6.0.1" + "@prisma/debug": "6.1.0", + "@prisma/engines-version": "6.1.0-21.11f085a2012c0f4778414c8db2651556ee0ef959", + "@prisma/fetch-engine": "6.1.0", + "@prisma/get-platform": "6.1.0" } }, "node_modules/@prisma/engines-version": { - "version": "5.23.0-27.5dbef10bdbfb579e07d35cc85fb1518d357cb99e", - "resolved": "https://registry.npmjs.org/@prisma/engines-version/-/engines-version-5.23.0-27.5dbef10bdbfb579e07d35cc85fb1518d357cb99e.tgz", - "integrity": "sha512-JmIds0Q2/vsOmnuTJYxY4LE+sajqjYKhLtdOT6y4imojqv5d/aeVEfbBGC74t8Be1uSp0OP8lxIj2OqoKbLsfQ==", + "version": "6.1.0-21.11f085a2012c0f4778414c8db2651556ee0ef959", + "resolved": "https://registry.npmjs.org/@prisma/engines-version/-/engines-version-6.1.0-21.11f085a2012c0f4778414c8db2651556ee0ef959.tgz", + "integrity": "sha512-PdJqmYM2Fd8K0weOOtQThWylwjsDlTig+8Pcg47/jszMuLL9iLIaygC3cjWJLda69siRW4STlCTMSgOjZzvKPQ==", "devOptional": true, "license": "Apache-2.0" }, "node_modules/@prisma/fetch-engine": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@prisma/fetch-engine/-/fetch-engine-6.0.1.tgz", - "integrity": "sha512-T36bWFVGeGYYSyYOj9d+O9G3sBC+pAyMC+jc45iSL63/Haq1GrYjQPgPMxrEj9m739taXrupoysRedQ+VyvM/Q==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@prisma/fetch-engine/-/fetch-engine-6.1.0.tgz", + "integrity": "sha512-asdFi7TvPlEZ8CzSZ/+Du5wZ27q6OJbRSXh+S8ISZguu+S9KtS/gP7NeXceZyb1Jv1SM1S5YfiCv+STDsG6rrg==", "devOptional": true, "license": "Apache-2.0", "dependencies": { - "@prisma/debug": "6.0.1", - "@prisma/engines-version": "5.23.0-27.5dbef10bdbfb579e07d35cc85fb1518d357cb99e", - "@prisma/get-platform": "6.0.1" + "@prisma/debug": "6.1.0", + "@prisma/engines-version": "6.1.0-21.11f085a2012c0f4778414c8db2651556ee0ef959", + "@prisma/get-platform": "6.1.0" } }, "node_modules/@prisma/get-platform": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@prisma/get-platform/-/get-platform-6.0.1.tgz", - "integrity": "sha512-zspC9vlxAqx4E6epMPMLLBMED2VD8axDe8sPnquZ8GOsn6tiacWK0oxrGK4UAHYzYUVuMVUApJbdXB2dFpLhvg==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@prisma/get-platform/-/get-platform-6.1.0.tgz", + "integrity": "sha512-ia8bNjboBoHkmKGGaWtqtlgQOhCi7+f85aOkPJKgNwWvYrT6l78KgojLekE8zMhVk0R9lWcifV0Pf8l3/15V0Q==", "devOptional": true, "license": "Apache-2.0", "dependencies": { - "@prisma/debug": "6.0.1" + "@prisma/debug": "6.1.0" } }, "node_modules/@redis/bloom": { @@ -28501,14 +28501,14 @@ } }, "node_modules/prisma": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/prisma/-/prisma-6.0.1.tgz", - "integrity": "sha512-CaMNFHkf+DDq8zq3X/JJsQ4Koy7dyWwwtOKibkT/Am9j/tDxcfbg7+lB1Dzhx18G/+RQCMgjPYB61bhRqteNBQ==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/prisma/-/prisma-6.1.0.tgz", + "integrity": "sha512-aFI3Yi+ApUxkwCJJwyQSwpyzUX7YX3ihzuHNHOyv4GJg3X5tQsmRaJEnZ+ZyfHpMtnyahhmXVfbTZ+lS8ZtfKw==", "devOptional": true, "hasInstallScript": true, "license": "Apache-2.0", "dependencies": { - "@prisma/engines": "6.0.1" + "@prisma/engines": "6.1.0" }, "bin": { "prisma": "build/index.js" diff --git a/package.json b/package.json index 27b7e4ad..5f902c2f 100644 --- a/package.json +++ b/package.json @@ -86,7 +86,7 @@ "@nestjs/platform-express": "10.1.3", "@nestjs/schedule": "3.0.2", "@nestjs/serve-static": "4.0.0", - "@prisma/client": "6.0.1", + "@prisma/client": "6.1.0", "@simplewebauthn/browser": "9.0.1", "@simplewebauthn/server": "9.0.3", "@stripe/stripe-js": "5.4.0", @@ -196,7 +196,7 @@ "nx": "20.3.0", "prettier": "3.4.2", "prettier-plugin-organize-attributes": "1.0.0", - "prisma": "6.0.1", + "prisma": "6.1.0", "react": "18.2.0", "react-dom": "18.2.0", "replace-in-file": "7.0.1", From 189808f9bfb393db5e1ccb053a95705297551668 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Mon, 30 Dec 2024 11:28:35 +0100 Subject: [PATCH 50/63] Release 2.132.0 (#4160) --- CHANGELOG.md | 2 +- package-lock.json | 4 ++-- package.json | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 581a83af..f6451e25 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,7 +5,7 @@ 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 +## 2.132.0 - 2024-12-30 ### Added diff --git a/package-lock.json b/package-lock.json index 6a7b855f..305bcb27 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "ghostfolio", - "version": "2.131.0", + "version": "2.132.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "ghostfolio", - "version": "2.131.0", + "version": "2.132.0", "hasInstallScript": true, "license": "AGPL-3.0", "dependencies": { diff --git a/package.json b/package.json index 5f902c2f..650918ef 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ghostfolio", - "version": "2.131.0", + "version": "2.132.0", "homepage": "https://ghostfol.io", "license": "AGPL-3.0", "repository": "https://github.com/ghostfolio/ghostfolio", From f410ca775d2e45ef6278b0d0d112ff78b86257d6 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Mon, 30 Dec 2024 17:18:33 +0100 Subject: [PATCH 51/63] Feature/improve language localization for de 20241230 (#4162) * Update translations * Update changelog --- CHANGELOG.md | 6 + apps/client/src/locales/messages.ca.xlf | 802 +++++++++++------------ apps/client/src/locales/messages.de.xlf | 818 ++++++++++++------------ apps/client/src/locales/messages.es.xlf | 818 ++++++++++++------------ apps/client/src/locales/messages.fr.xlf | 818 ++++++++++++------------ apps/client/src/locales/messages.it.xlf | 818 ++++++++++++------------ apps/client/src/locales/messages.nl.xlf | 818 ++++++++++++------------ apps/client/src/locales/messages.pl.xlf | 776 +++++++++++----------- apps/client/src/locales/messages.pt.xlf | 818 ++++++++++++------------ apps/client/src/locales/messages.tr.xlf | 776 +++++++++++----------- apps/client/src/locales/messages.xlf | 765 +++++++++++----------- apps/client/src/locales/messages.zh.xlf | 776 +++++++++++----------- 12 files changed, 4429 insertions(+), 4380 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f6451e25..aded12c4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,12 @@ 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 German (`de`) + ## 2.132.0 - 2024-12-30 ### Added diff --git a/apps/client/src/locales/messages.ca.xlf b/apps/client/src/locales/messages.ca.xlf index 357e2744..9981f2a6 100644 --- a/apps/client/src/locales/messages.ca.xlf +++ b/apps/client/src/locales/messages.ca.xlf @@ -26,7 +26,7 @@ apps/client/src/app/components/header/header.component.ts - 230 + 231 @@ -363,164 +363,20 @@ snake-case apps/client/src/app/app.component.ts - 64 + 65 apps/client/src/app/app.component.ts - 66 + 67 - - apps/client/src/app/app.component.ts - 70 - - - apps/client/src/app/app.component.ts - 74 - - - apps/client/src/app/components/header/header.component.ts - 81 - - - apps/client/src/app/components/header/header.component.ts - 86 - - - apps/client/src/app/core/paths.ts - 2 - - - apps/client/src/app/pages/about/about-page.component.ts - 45 - - - apps/client/src/app/pages/about/about-page.component.ts - 50 - - - apps/client/src/app/pages/about/about-page.component.ts - 55 - - - apps/client/src/app/pages/about/about-page.component.ts - 63 - - - apps/client/src/app/pages/about/about-page.component.ts - 74 - - - apps/client/src/app/pages/blog/2023/08/ghostfolio-joins-oss-friends/ghostfolio-joins-oss-friends-page.component.ts - 14 - - - apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts - 13 - - - apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts - 15 - - - apps/client/src/app/pages/blog/2023/09/hacktoberfest-2023/hacktoberfest-2023-page.component.ts - 13 - - - apps/client/src/app/pages/blog/2023/11/hacktoberfest-2023-debriefing/hacktoberfest-2023-debriefing-page.component.ts - 13 - - - apps/client/src/app/pages/blog/2024/09/hacktoberfest-2024/hacktoberfest-2024-page.component.ts - 13 - - - apps/client/src/app/pages/landing/landing-page.component.ts - 26 - - - apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts - 18 - - - apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 24 - - - - license - llicències - snake-case apps/client/src/app/app.component.ts 71 - - apps/client/src/app/core/paths.ts - 5 - - - apps/client/src/app/pages/about/about-page.component.ts - 55 - - - - privacy-policy - política de privacitat - snake-case apps/client/src/app/app.component.ts 75 - - apps/client/src/app/core/paths.ts - 8 - - - apps/client/src/app/pages/about/about-page.component.ts - 63 - - - - faq - faq - snake-case - - apps/client/src/app/app.component.ts - 77 - - - apps/client/src/app/core/paths.ts - 3 - - - apps/client/src/app/pages/about/overview/about-overview-page.component.ts - 19 - - - apps/client/src/app/pages/faq/faq-page.component.ts - 37 - - - apps/client/src/app/pages/faq/faq-page.component.ts - 42 - - - apps/client/src/app/pages/faq/faq-page.component.ts - 48 - - - apps/client/src/app/pages/resources/overview/resources-overview.component.ts - 14 - - - - features - característiques - snake-case - - apps/client/src/app/app.component.ts - 78 - apps/client/src/app/components/header/header.component.ts 82 @@ -531,60 +387,135 @@ apps/client/src/app/core/paths.ts - 4 + 2 + + + apps/client/src/app/pages/about/about-page.component.ts + 46 + + + apps/client/src/app/pages/about/about-page.component.ts + 51 + + + apps/client/src/app/pages/about/about-page.component.ts + 56 + + + apps/client/src/app/pages/about/about-page.component.ts + 64 + + + apps/client/src/app/pages/about/about-page.component.ts + 75 + + + apps/client/src/app/pages/blog/2023/08/ghostfolio-joins-oss-friends/ghostfolio-joins-oss-friends-page.component.ts + 13 + + + apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts + 12 + + + apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts + 14 + + + apps/client/src/app/pages/blog/2023/09/hacktoberfest-2023/hacktoberfest-2023-page.component.ts + 12 + + + apps/client/src/app/pages/blog/2023/11/hacktoberfest-2023-debriefing/hacktoberfest-2023-debriefing-page.component.ts + 12 + + + apps/client/src/app/pages/blog/2024/09/hacktoberfest-2024/hacktoberfest-2024-page.component.ts + 12 + + + apps/client/src/app/pages/landing/landing-page.component.ts + 27 + + + apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts + 19 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 23 + + + + license + llicències + snake-case + + apps/client/src/app/app.component.ts + 72 + + + apps/client/src/app/core/paths.ts + 5 + + + apps/client/src/app/pages/about/about-page.component.ts + 56 + + + + privacy-policy + política de privacitat + snake-case + + apps/client/src/app/app.component.ts + 76 + + + apps/client/src/app/core/paths.ts + 8 + + + apps/client/src/app/pages/about/about-page.component.ts + 64 + + + + faq + faq + snake-case + + apps/client/src/app/app.component.ts + 78 + + + apps/client/src/app/core/paths.ts + 3 apps/client/src/app/pages/about/overview/about-overview-page.component.ts 20 - apps/client/src/app/pages/blog/2022/11/black-friday-2022/black-friday-2022-page.component.ts + apps/client/src/app/pages/faq/faq-page.component.ts + 38 + + + apps/client/src/app/pages/faq/faq-page.component.ts + 43 + + + apps/client/src/app/pages/faq/faq-page.component.ts + 49 + + + apps/client/src/app/pages/resources/overview/resources-overview.component.ts 15 - - apps/client/src/app/pages/blog/2023/03/1000-stars-on-github/1000-stars-on-github-page.component.ts - 13 - - - apps/client/src/app/pages/blog/2023/05/unlock-your-financial-potential-with-ghostfolio/unlock-your-financial-potential-with-ghostfolio-page.component.ts - 13 - - - apps/client/src/app/pages/blog/2023/07/exploring-the-path-to-fire/exploring-the-path-to-fire-page.component.ts - 13 - - - apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts - 18 - - - apps/client/src/app/pages/blog/2023/11/black-week-2023/black-week-2023-page.component.ts - 15 - - - apps/client/src/app/pages/blog/2023/11/hacktoberfest-2023-debriefing/hacktoberfest-2023-debriefing-page.component.ts - 14 - - - apps/client/src/app/pages/blog/2024/11/black-weeks-2024/black-weeks-2024-page.component.ts - 15 - - - apps/client/src/app/pages/faq/overview/faq-overview-page.component.ts - 14 - - - apps/client/src/app/pages/pricing/pricing-page.component.ts - 41 - - - apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 25 - - - markets - mercats + + features + característiques snake-case apps/client/src/app/app.component.ts @@ -598,25 +529,94 @@ apps/client/src/app/components/header/header.component.ts 88 + + apps/client/src/app/core/paths.ts + 4 + + + apps/client/src/app/pages/about/overview/about-overview-page.component.ts + 21 + + + apps/client/src/app/pages/blog/2022/11/black-friday-2022/black-friday-2022-page.component.ts + 14 + + + apps/client/src/app/pages/blog/2023/03/1000-stars-on-github/1000-stars-on-github-page.component.ts + 12 + + + apps/client/src/app/pages/blog/2023/05/unlock-your-financial-potential-with-ghostfolio/unlock-your-financial-potential-with-ghostfolio-page.component.ts + 12 + + + apps/client/src/app/pages/blog/2023/07/exploring-the-path-to-fire/exploring-the-path-to-fire-page.component.ts + 12 + + + apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts + 17 + + + apps/client/src/app/pages/blog/2023/11/black-week-2023/black-week-2023-page.component.ts + 14 + + + apps/client/src/app/pages/blog/2023/11/hacktoberfest-2023-debriefing/hacktoberfest-2023-debriefing-page.component.ts + 13 + + + apps/client/src/app/pages/blog/2024/11/black-weeks-2024/black-weeks-2024-page.component.ts + 14 + + + apps/client/src/app/pages/faq/overview/faq-overview-page.component.ts + 15 + + + apps/client/src/app/pages/pricing/pricing-page.component.ts + 42 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 24 + + + + markets + mercats + snake-case + + apps/client/src/app/app.component.ts + 80 + + + apps/client/src/app/components/header/header.component.ts + 84 + + + apps/client/src/app/components/header/header.component.ts + 89 + apps/client/src/app/core/paths.ts 6 apps/client/src/app/pages/blog/2022/08/500-stars-on-github/500-stars-on-github-page.component.ts - 13 + 12 apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts - 19 + 18 apps/client/src/app/pages/faq/saas/saas-page.component.ts - 14 + 15 apps/client/src/app/pages/resources/overview/resources-overview.component.ts - 31 + 32 apps/client/src/app/pages/resources/resources-page-routing.module.ts @@ -629,27 +629,27 @@ snake-case apps/client/src/app/app.component.ts - 80 + 81 apps/client/src/app/components/admin-settings/admin-settings.component.ts - 73 + 74 apps/client/src/app/components/header/header.component.ts - 84 + 85 apps/client/src/app/components/header/header.component.ts - 89 + 90 apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.component.ts - 16 + 17 apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 42 + 43 apps/client/src/app/core/http-response.interceptor.ts @@ -661,43 +661,43 @@ apps/client/src/app/pages/blog/2021/07/hallo-ghostfolio/hallo-ghostfolio-page.component.ts - 13 + 12 apps/client/src/app/pages/blog/2021/07/hello-ghostfolio/hello-ghostfolio-page.component.ts - 13 + 12 apps/client/src/app/pages/blog/2022/01/first-months-in-open-source/first-months-in-open-source-page.component.ts - 13 + 12 apps/client/src/app/pages/blog/2022/08/500-stars-on-github/500-stars-on-github-page.component.ts - 14 + 13 apps/client/src/app/pages/blog/2022/11/black-friday-2022/black-friday-2022-page.component.ts - 16 - - - apps/client/src/app/pages/blog/2023/03/1000-stars-on-github/1000-stars-on-github-page.component.ts - 14 - - - apps/client/src/app/pages/blog/2023/11/black-week-2023/black-week-2023-page.component.ts - 16 - - - apps/client/src/app/pages/blog/2024/11/black-weeks-2024/black-weeks-2024-page.component.ts - 16 - - - apps/client/src/app/pages/faq/saas/saas-page.component.ts 15 + + apps/client/src/app/pages/blog/2023/03/1000-stars-on-github/1000-stars-on-github-page.component.ts + 13 + + + apps/client/src/app/pages/blog/2023/11/black-week-2023/black-week-2023-page.component.ts + 15 + + + apps/client/src/app/pages/blog/2024/11/black-weeks-2024/black-weeks-2024-page.component.ts + 15 + + + apps/client/src/app/pages/faq/saas/saas-page.component.ts + 16 + libs/ui/src/lib/membership-card/membership-card.component.ts - 31 + 30 @@ -706,11 +706,11 @@ snake-case apps/client/src/app/app.component.ts - 81 + 82 apps/client/src/app/components/header/header.component.ts - 90 + 91 apps/client/src/app/core/auth.guard.ts @@ -722,19 +722,19 @@ apps/client/src/app/pages/faq/saas/saas-page.component.ts - 16 + 17 apps/client/src/app/pages/features/features-page.component.ts - 29 + 28 apps/client/src/app/pages/landing/landing-page.component.ts - 27 + 28 apps/client/src/app/pages/pricing/pricing-page.component.ts - 42 + 43 @@ -743,15 +743,15 @@ snake-case apps/client/src/app/app.component.ts - 82 + 83 apps/client/src/app/components/header/header.component.ts - 85 + 86 apps/client/src/app/components/header/header.component.ts - 91 + 92 apps/client/src/app/core/paths.ts @@ -759,47 +759,47 @@ apps/client/src/app/pages/blog/2021/07/hallo-ghostfolio/hallo-ghostfolio-page.component.ts - 14 - - - apps/client/src/app/pages/blog/2021/07/hello-ghostfolio/hello-ghostfolio-page.component.ts - 14 - - - apps/client/src/app/pages/blog/2022/07/how-do-i-get-my-finances-in-order/how-do-i-get-my-finances-in-order-page.component.ts 13 + + apps/client/src/app/pages/blog/2021/07/hello-ghostfolio/hello-ghostfolio-page.component.ts + 13 + + + apps/client/src/app/pages/blog/2022/07/how-do-i-get-my-finances-in-order/how-do-i-get-my-finances-in-order-page.component.ts + 12 + apps/client/src/app/pages/blog/2023/05/unlock-your-financial-potential-with-ghostfolio/unlock-your-financial-potential-with-ghostfolio-page.component.ts - 14 + 13 apps/client/src/app/pages/features/features-page.component.ts - 30 + 29 apps/client/src/app/pages/resources/glossary/resources-glossary.component.ts - 16 + 17 apps/client/src/app/pages/resources/overview/resources-overview.component.ts - 21 + 22 apps/client/src/app/pages/resources/overview/resources-overview.component.ts - 30 + 31 apps/client/src/app/pages/resources/overview/resources-overview.component.ts - 39 + 40 apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts - 14 + 15 apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 27 + 26 @@ -879,7 +879,7 @@ Realment vol revocar aquest accés? apps/client/src/app/components/access-table/access-table.component.ts - 67 + 68 @@ -1239,7 +1239,7 @@ Realment vol suprimir aquest compte? apps/client/src/app/components/accounts-table/accounts-table.component.ts - 106 + 107 @@ -1535,7 +1535,7 @@ Punts de referència apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 80 + 81 @@ -1543,7 +1543,7 @@ Divises apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 85 + 86 @@ -1551,7 +1551,7 @@ ETFs sense País apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 90 + 91 @@ -1559,7 +1559,7 @@ ETFs sense Sector apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 95 + 96 @@ -1567,7 +1567,7 @@ Filtra per... apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 328 + 329 @@ -1743,7 +1743,7 @@ Oooh! No s’han pogut recopilar les dades históriques. libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.ts - 263 + 262 @@ -1751,7 +1751,7 @@ El preu de mercat actual és apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 325 + 326 @@ -1955,7 +1955,7 @@ Si us plau, afegiu una divisa: apps/client/src/app/components/admin-overview/admin-overview.component.ts - 125 + 126 @@ -1963,7 +1963,7 @@ no és una divisa vàlida! apps/client/src/app/components/admin-overview/admin-overview.component.ts - 136 + 137 @@ -1971,7 +1971,7 @@ Està segur qeu vol eliminar aquest cupó? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 155 + 156 @@ -1979,7 +1979,7 @@ Està segur que vol eliminar aquesta divisa? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 168 + 169 @@ -1987,7 +1987,7 @@ Està segur que vol eliminar aquest missatge del sistema? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 181 + 182 @@ -1995,7 +1995,7 @@ Està segur que vol depurar el cache? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 205 + 206 @@ -2003,7 +2003,7 @@ Si us plau, afegeixi el seu missatge del sistema: apps/client/src/app/components/admin-overview/admin-overview.component.ts - 225 + 226 @@ -2175,7 +2175,7 @@ Està segur que vol eliminar aquesta plataforma? apps/client/src/app/components/admin-platform/admin-platform.component.ts - 86 + 87 @@ -2235,7 +2235,7 @@ Està segur que vol eliminar aquesta etiqueta? apps/client/src/app/components/admin-tag/admin-tag.component.ts - 86 + 87 @@ -2259,7 +2259,7 @@ Està segur que vol eliminar aquest usuari? apps/client/src/app/components/admin-users/admin-users.component.ts - 138 + 139 @@ -2343,7 +2343,7 @@ Portfolio apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.ts - 116 + 117 apps/client/src/app/pages/portfolio/portfolio-page-routing.module.ts @@ -2351,7 +2351,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 95 + 94 @@ -2359,7 +2359,7 @@ Punt de Referència apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.ts - 128 + 129 @@ -2507,11 +2507,11 @@ Oooh! El testimoni de seguretat és incorrecte. apps/client/src/app/components/header/header.component.ts - 245 + 246 apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 157 + 158 @@ -2643,7 +2643,7 @@ en Actiiu apps/client/src/app/components/home-holdings/home-holdings.component.ts - 35 + 36 @@ -2651,7 +2651,7 @@ Finalitzat apps/client/src/app/components/home-holdings/home-holdings.component.ts - 36 + 37 @@ -2683,7 +2683,7 @@ Por apps/client/src/app/components/home-market/home-market.component.ts - 27 + 28 libs/ui/src/lib/i18n.ts @@ -2695,7 +2695,7 @@ Cobdícia apps/client/src/app/components/home-market/home-market.component.ts - 28 + 29 libs/ui/src/lib/i18n.ts @@ -2807,7 +2807,7 @@ Total Amount apps/client/src/app/components/investment-chart/investment-chart.component.ts - 140 + 141 @@ -2815,7 +2815,7 @@ Savings Rate apps/client/src/app/components/investment-chart/investment-chart.component.ts - 199 + 200 @@ -2839,7 +2839,7 @@ or apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/ghostfolio-premium-api-dialog.html - 35 + 36 apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html @@ -2903,7 +2903,7 @@ Market data is delayed for apps/client/src/app/components/portfolio-performance/portfolio-performance.component.ts - 86 + 87 @@ -3067,7 +3067,7 @@ Please set the amount of your emergency fund. apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts - 63 + 64 @@ -3203,11 +3203,11 @@ Today apps/client/src/app/components/toggle/toggle.component.ts - 21 + 22 libs/ui/src/lib/assistant/assistant.component.ts - 221 + 220 @@ -3215,11 +3215,11 @@ YTD apps/client/src/app/components/toggle/toggle.component.ts - 22 + 23 libs/ui/src/lib/assistant/assistant.component.ts - 231 + 230 @@ -3227,11 +3227,11 @@ 1Y apps/client/src/app/components/toggle/toggle.component.ts - 23 + 24 libs/ui/src/lib/assistant/assistant.component.ts - 235 + 234 @@ -3239,11 +3239,11 @@ 5Y apps/client/src/app/components/toggle/toggle.component.ts - 24 + 25 libs/ui/src/lib/assistant/assistant.component.ts - 257 + 256 @@ -3251,11 +3251,11 @@ Max apps/client/src/app/components/toggle/toggle.component.ts - 25 + 26 libs/ui/src/lib/assistant/assistant.component.ts - 260 + 259 @@ -3263,7 +3263,7 @@ Oops! Could not grant access. apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.component.ts - 90 + 91 @@ -3310,12 +3310,12 @@ 7 - - Please enter your coupon code: - Please enter your coupon code: + + Please enter your coupon code. + Please enter your coupon code. apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 166 + 213 @@ -3323,7 +3323,7 @@ Could not redeem coupon code apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 175 + 177 @@ -3331,7 +3331,7 @@ Coupon code has been redeemed apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 188 + 190 @@ -3339,7 +3339,7 @@ Reload apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 189 + 191 @@ -3375,7 +3375,7 @@ Auto apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 38 + 39 @@ -3383,7 +3383,7 @@ Do you really want to close your Ghostfolio account? apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 172 + 173 @@ -3391,7 +3391,7 @@ Do you really want to remove this sign in method? apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 246 + 247 @@ -3399,7 +3399,7 @@ Oops! There was an error setting up biometric authentication. apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 300 + 301 @@ -3595,7 +3595,7 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 142 + 143 @@ -3615,7 +3615,7 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 140 + 141 @@ -3623,7 +3623,7 @@ Okay apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 151 + 152 apps/client/src/app/core/http-response.interceptor.ts @@ -3631,7 +3631,7 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 143 + 144 @@ -3651,7 +3651,7 @@ apps/client/src/app/pages/about/about-page.component.ts - 44 + 45 apps/client/src/app/pages/about/overview/about-overview-page-routing.module.ts @@ -3663,7 +3663,7 @@ Changelog apps/client/src/app/pages/about/about-page.component.ts - 49 + 50 apps/client/src/app/pages/about/changelog/changelog-page-routing.module.ts @@ -3675,7 +3675,7 @@ License apps/client/src/app/pages/about/about-page.component.ts - 54 + 55 apps/client/src/app/pages/about/license/license-page-routing.module.ts @@ -3687,7 +3687,7 @@ Privacy Policy apps/client/src/app/pages/about/about-page.component.ts - 62 + 63 apps/client/src/app/pages/about/privacy-policy/privacy-policy-page-routing.module.ts @@ -3731,7 +3731,7 @@ Oops, cash balance transfer has failed. apps/client/src/app/pages/accounts/accounts-page.component.ts - 317 + 318 @@ -3799,7 +3799,7 @@ apps/client/src/app/pages/admin/admin-page.component.ts - 42 + 43 @@ -3811,7 +3811,7 @@ apps/client/src/app/pages/admin/admin-page.component.ts - 37 + 38 @@ -3823,7 +3823,7 @@ apps/client/src/app/pages/admin/admin-page.component.ts - 32 + 33 apps/client/src/app/pages/user-account/user-account-page-routing.module.ts @@ -3831,7 +3831,7 @@ apps/client/src/app/pages/user-account/user-account-page.component.ts - 35 + 36 @@ -3843,7 +3843,7 @@ apps/client/src/app/pages/admin/admin-page.component.ts - 47 + 48 @@ -3851,15 +3851,15 @@ Overview apps/client/src/app/pages/admin/admin-page.component.ts - 27 + 28 apps/client/src/app/pages/home/home-page.component.ts - 37 + 38 apps/client/src/app/pages/resources/resources-page.component.ts - 16 + 17 apps/client/src/app/pages/zen/zen-page-routing.module.ts @@ -3867,7 +3867,7 @@ apps/client/src/app/pages/zen/zen-page.component.ts - 34 + 35 @@ -3911,7 +3911,7 @@ General apps/client/src/app/pages/faq/faq-page.component.ts - 36 + 37 @@ -3919,7 +3919,7 @@ Cloud apps/client/src/app/pages/faq/faq-page.component.ts - 41 + 42 apps/client/src/app/pages/faq/saas/saas-page-routing.module.ts @@ -3931,7 +3931,7 @@ Self-Hosting apps/client/src/app/pages/faq/faq-page.component.ts - 47 + 48 apps/client/src/app/pages/faq/self-hosting/self-hosting-page-routing.module.ts @@ -3943,7 +3943,7 @@ self-hosting apps/client/src/app/pages/faq/faq-page.component.ts - 48 + 49 @@ -4111,11 +4111,11 @@ apps/client/src/app/pages/home/home-page.component.ts - 42 + 43 apps/client/src/app/pages/zen/zen-page.component.ts - 39 + 40 @@ -4127,7 +4127,7 @@ apps/client/src/app/pages/home/home-page.component.ts - 47 + 48 @@ -4139,7 +4139,7 @@ apps/client/src/app/pages/home/home-page.component.ts - 52 + 53 apps/client/src/app/pages/markets/markets-page-routing.module.ts @@ -4151,7 +4151,7 @@ apps/client/src/app/pages/resources/resources-page.component.ts - 26 + 27 @@ -4603,7 +4603,7 @@ apps/client/src/app/pages/portfolio/portfolio-page.component.ts - 39 + 40 @@ -4743,7 +4743,7 @@ Import Activities apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 45 + 46 @@ -4751,7 +4751,7 @@ Import Dividends apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 86 + 87 @@ -4759,7 +4759,7 @@ Importing data... apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 124 + 125 @@ -4767,7 +4767,7 @@ Import has been completed apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 132 + 133 @@ -4775,7 +4775,7 @@ Validating data... apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 238 + 239 @@ -4867,7 +4867,7 @@ apps/client/src/app/pages/portfolio/portfolio-page.component.ts - 44 + 45 @@ -5059,7 +5059,7 @@ apps/client/src/app/pages/portfolio/portfolio-page.component.ts - 34 + 35 @@ -5067,7 +5067,7 @@ Dividend apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 37 + 38 libs/ui/src/lib/i18n.ts @@ -5079,15 +5079,15 @@ Investment apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 41 + 42 apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 55 + 56 apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 89 + 88 @@ -5095,7 +5095,7 @@ Monthly apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 49 + 50 @@ -5103,7 +5103,7 @@ Yearly apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 50 + 51 @@ -5555,7 +5555,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts - 13 + 14 @@ -5603,7 +5603,7 @@ Switzerland apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 60 + 59 libs/ui/src/lib/i18n.ts @@ -5615,7 +5615,7 @@ Global apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 61 + 60 libs/ui/src/lib/i18n.ts @@ -5895,7 +5895,7 @@ apps/client/src/app/pages/user-account/user-account-page.component.ts - 40 + 41 @@ -5907,7 +5907,7 @@ apps/client/src/app/pages/user-account/user-account-page.component.ts - 46 + 47 @@ -5947,7 +5947,7 @@ Do you really want to delete this account balance? libs/ui/src/lib/account-balances/account-balances.component.ts - 110 + 109 @@ -6035,7 +6035,7 @@ Do you really want to delete these activities? libs/ui/src/lib/activities-table/activities-table.component.ts - 219 + 218 @@ -6043,7 +6043,7 @@ Do you really want to delete this activity? libs/ui/src/lib/activities-table/activities-table.component.ts - 229 + 228 @@ -6051,7 +6051,7 @@ Find holding... libs/ui/src/lib/assistant/assistant.component.ts - 144 + 143 @@ -6059,7 +6059,7 @@ Week to date libs/ui/src/lib/assistant/assistant.component.ts - 223 + 222 @@ -6067,7 +6067,7 @@ WTD libs/ui/src/lib/assistant/assistant.component.ts - 223 + 222 @@ -6075,7 +6075,7 @@ Month to date libs/ui/src/lib/assistant/assistant.component.ts - 227 + 226 @@ -6083,7 +6083,7 @@ MTD libs/ui/src/lib/assistant/assistant.component.ts - 227 + 226 @@ -6091,7 +6091,7 @@ Year to date libs/ui/src/lib/assistant/assistant.component.ts - 231 + 230 @@ -6099,7 +6099,7 @@ year libs/ui/src/lib/assistant/assistant.component.ts - 235 + 234 @@ -6107,7 +6107,7 @@ years libs/ui/src/lib/assistant/assistant.component.ts - 257 + 256 @@ -6247,7 +6247,7 @@ Deposit libs/ui/src/lib/fire-calculator/fire-calculator.component.ts - 361 + 360 @@ -6255,7 +6255,7 @@ Interest libs/ui/src/lib/fire-calculator/fire-calculator.component.ts - 371 + 370 libs/ui/src/lib/i18n.ts @@ -6267,7 +6267,7 @@ Savings libs/ui/src/lib/fire-calculator/fire-calculator.component.ts - 381 + 380 @@ -6439,7 +6439,7 @@ libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 403 + 402 @@ -6747,11 +6747,11 @@ No data available libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 405 + 404 libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 418 + 417 @@ -6767,7 +6767,7 @@ Alternative apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 83 + 82 @@ -6775,7 +6775,7 @@ App apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 84 + 83 @@ -6783,7 +6783,7 @@ Budgeting apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 85 + 84 @@ -6791,7 +6791,7 @@ Community apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 86 + 85 @@ -6799,7 +6799,7 @@ Family Office apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 87 + 86 @@ -6807,7 +6807,7 @@ Investor apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 90 + 89 @@ -6815,7 +6815,7 @@ Open Source apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 91 + 90 @@ -6823,7 +6823,7 @@ Personal Finance apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 93 + 92 @@ -6831,7 +6831,7 @@ Privacy apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 94 + 93 @@ -6839,7 +6839,7 @@ Software apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 96 + 95 @@ -6847,7 +6847,7 @@ Tool apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 97 + 96 @@ -6855,7 +6855,7 @@ User Experience apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 98 + 97 @@ -6863,7 +6863,7 @@ Wealth apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 99 + 98 @@ -6871,7 +6871,7 @@ Wealth Management apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 100 + 99 @@ -7023,7 +7023,7 @@ Error apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 316 + 317 @@ -7395,7 +7395,7 @@ apps/client/src/app/pages/resources/resources-page.component.ts - 31 + 32 @@ -7407,7 +7407,7 @@ apps/client/src/app/pages/resources/resources-page.component.ts - 21 + 22 @@ -7416,7 +7416,7 @@ snake-case apps/client/src/app/pages/resources/overview/resources-overview.component.ts - 22 + 23 apps/client/src/app/pages/resources/resources-page-routing.module.ts @@ -7429,7 +7429,7 @@ snake-case apps/client/src/app/pages/resources/overview/resources-overview.component.ts - 40 + 41 apps/client/src/app/pages/resources/resources-page-routing.module.ts @@ -7489,19 +7489,15 @@ Do you really want to delete the API key? apps/client/src/app/components/admin-settings/admin-settings.component.ts - 92 + 93 Please enter your Ghostfolio API key: Please enter your Ghostfolio API key: - - apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/ghostfolio-premium-api-dialog.component.ts - 45 - apps/client/src/app/pages/api/api-page.component.ts - 41 + 40 @@ -7512,12 +7508,12 @@ 32 - + I have an API key I have an API key apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/ghostfolio-premium-api-dialog.html - 42 + 43 @@ -7533,7 +7529,7 @@ Could not generate an API key apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 138 + 139 @@ -7541,7 +7537,7 @@ Set this API key in your self-hosted environment: apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 153 + 154 @@ -7549,7 +7545,7 @@ Ghostfolio Premium Data Provider API Key apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 156 + 157 @@ -7557,7 +7553,7 @@ Do you really want to generate a new API key? apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 161 + 162 @@ -7605,7 +7601,7 @@ Save apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts - 61 + 62 @@ -7621,7 +7617,7 @@ Me apps/client/src/app/components/user-account-access/user-account-access.component.ts - 134 + 135 @@ -7632,6 +7628,14 @@ 3 + + Please enter your Ghostfolio API key. + Please enter your Ghostfolio API key. + + apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/ghostfolio-premium-api-dialog.component.ts + 59 + + diff --git a/apps/client/src/locales/messages.de.xlf b/apps/client/src/locales/messages.de.xlf index 2a49abfb..fe4be371 100644 --- a/apps/client/src/locales/messages.de.xlf +++ b/apps/client/src/locales/messages.de.xlf @@ -74,7 +74,7 @@ Möchtest du diese Zugangsberechtigung wirklich widerrufen? apps/client/src/app/components/access-table/access-table.component.ts - 67 + 68 @@ -322,7 +322,7 @@ Möchtest du dieses Konto wirklich löschen? apps/client/src/app/components/accounts-table/accounts-table.component.ts - 106 + 107 @@ -622,7 +622,7 @@ Bitte Währung hinzufügen: apps/client/src/app/components/admin-overview/admin-overview.component.ts - 125 + 126 @@ -630,7 +630,7 @@ Möchtest du diesen Gutscheincode wirklich löschen? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 155 + 156 @@ -638,7 +638,7 @@ Möchtest du diese Währung wirklich löschen? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 168 + 169 @@ -646,7 +646,7 @@ Möchtest du den Cache wirklich leeren? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 205 + 206 @@ -654,7 +654,7 @@ Bitte gebe deine Systemmeldung ein: apps/client/src/app/components/admin-overview/admin-overview.component.ts - 225 + 226 @@ -786,7 +786,7 @@ Möchtest du diesen Benutzer wirklich löschen? apps/client/src/app/components/admin-users/admin-users.component.ts - 138 + 139 @@ -1042,7 +1042,7 @@ apps/client/src/app/components/header/header.component.ts - 230 + 231 @@ -1050,11 +1050,11 @@ Ups! Falsches Sicherheits-Token. apps/client/src/app/components/header/header.component.ts - 245 + 246 apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 157 + 158 @@ -1102,7 +1102,7 @@ oder apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/ghostfolio-premium-api-dialog.html - 35 + 36 apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html @@ -1310,7 +1310,7 @@ Bitte setze den Betrag deines Notfallfonds. apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts - 63 + 64 @@ -1418,11 +1418,11 @@ Heute apps/client/src/app/components/toggle/toggle.component.ts - 21 + 22 libs/ui/src/lib/assistant/assistant.component.ts - 221 + 220 @@ -1430,11 +1430,11 @@ YTD apps/client/src/app/components/toggle/toggle.component.ts - 22 + 23 libs/ui/src/lib/assistant/assistant.component.ts - 231 + 230 @@ -1442,11 +1442,11 @@ 1J apps/client/src/app/components/toggle/toggle.component.ts - 23 + 24 libs/ui/src/lib/assistant/assistant.component.ts - 235 + 234 @@ -1454,11 +1454,11 @@ 5J apps/client/src/app/components/toggle/toggle.component.ts - 24 + 25 libs/ui/src/lib/assistant/assistant.component.ts - 257 + 256 @@ -1466,11 +1466,11 @@ Max apps/client/src/app/components/toggle/toggle.component.ts - 25 + 26 libs/ui/src/lib/assistant/assistant.component.ts - 260 + 259 @@ -1478,7 +1478,7 @@ Okay apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 151 + 152 apps/client/src/app/core/http-response.interceptor.ts @@ -1486,7 +1486,7 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 143 + 144 @@ -1498,7 +1498,7 @@ apps/client/src/app/pages/about/about-page.component.ts - 44 + 45 apps/client/src/app/pages/about/overview/about-overview-page-routing.module.ts @@ -1642,7 +1642,7 @@ Datenschutzbestimmungen apps/client/src/app/pages/about/about-page.component.ts - 62 + 63 apps/client/src/app/pages/about/privacy-policy/privacy-policy-page-routing.module.ts @@ -1657,12 +1657,12 @@ 33 - - Please enter your coupon code: - Bitte gebe deinen Gutscheincode ein: + + Please enter your coupon code. + Bitte gebe deinen Gutscheincode ein. apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 166 + 213 @@ -1670,7 +1670,7 @@ Gutscheincode konnte nicht eingelöst werden apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 175 + 177 @@ -1678,7 +1678,7 @@ Gutscheincode wurde eingelöst apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 188 + 190 @@ -1686,7 +1686,7 @@ Neu laden apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 189 + 191 @@ -1694,7 +1694,7 @@ Möchtest du diese Anmeldemethode wirklich löschen? apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 246 + 247 @@ -1990,15 +1990,15 @@ Übersicht apps/client/src/app/pages/admin/admin-page.component.ts - 27 + 28 apps/client/src/app/pages/home/home-page.component.ts - 37 + 38 apps/client/src/app/pages/resources/resources-page.component.ts - 16 + 17 apps/client/src/app/pages/zen/zen-page-routing.module.ts @@ -2006,7 +2006,7 @@ apps/client/src/app/pages/zen/zen-page.component.ts - 34 + 35 @@ -2018,7 +2018,7 @@ apps/client/src/app/pages/home/home-page.component.ts - 52 + 53 apps/client/src/app/pages/markets/markets-page-routing.module.ts @@ -2030,7 +2030,7 @@ apps/client/src/app/pages/resources/resources-page.component.ts - 26 + 27 @@ -2042,7 +2042,7 @@ apps/client/src/app/pages/portfolio/portfolio-page.component.ts - 44 + 45 @@ -2130,7 +2130,7 @@ apps/client/src/app/pages/portfolio/portfolio-page.component.ts - 34 + 35 @@ -2202,11 +2202,11 @@ apps/client/src/app/pages/home/home-page.component.ts - 42 + 43 apps/client/src/app/pages/zen/zen-page.component.ts - 39 + 40 @@ -2370,7 +2370,7 @@ apps/client/src/app/pages/portfolio/portfolio-page.component.ts - 39 + 40 @@ -2378,7 +2378,7 @@ Daten importieren... apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 124 + 125 @@ -2386,7 +2386,7 @@ Der Import wurde abgeschlossen apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 132 + 133 @@ -2402,7 +2402,7 @@ Portfolio apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.ts - 116 + 117 apps/client/src/app/pages/portfolio/portfolio-page-routing.module.ts @@ -2410,7 +2410,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 95 + 94 @@ -2530,7 +2530,7 @@ Aktivitäten importieren apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 45 + 46 @@ -2578,7 +2578,7 @@ Möchtest du diese Aktivität wirklich löschen? libs/ui/src/lib/activities-table/activities-table.component.ts - 229 + 228 @@ -2658,7 +2658,7 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 142 + 143 @@ -2670,7 +2670,7 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 140 + 141 @@ -2806,7 +2806,7 @@ Monatlich apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 49 + 50 @@ -2814,7 +2814,7 @@ Einlage libs/ui/src/lib/fire-calculator/fire-calculator.component.ts - 361 + 360 @@ -2822,7 +2822,7 @@ Verzinsung libs/ui/src/lib/fire-calculator/fire-calculator.component.ts - 371 + 370 libs/ui/src/lib/i18n.ts @@ -2834,7 +2834,7 @@ Ersparnisse libs/ui/src/lib/fire-calculator/fire-calculator.component.ts - 381 + 380 @@ -2858,7 +2858,7 @@ Angst apps/client/src/app/components/home-market/home-market.component.ts - 27 + 28 libs/ui/src/lib/i18n.ts @@ -2870,7 +2870,7 @@ Gier apps/client/src/app/components/home-market/home-market.component.ts - 28 + 29 libs/ui/src/lib/i18n.ts @@ -2882,7 +2882,7 @@ Filtern nach... apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 328 + 329 @@ -2926,7 +2926,7 @@ Benchmark apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.ts - 128 + 129 @@ -2950,7 +2950,7 @@ Automatisch apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 38 + 39 @@ -2990,7 +2990,7 @@ Gesamtbetrag apps/client/src/app/components/investment-chart/investment-chart.component.ts - 140 + 141 @@ -3006,7 +3006,7 @@ Sparrate apps/client/src/app/components/investment-chart/investment-chart.component.ts - 199 + 200 @@ -3154,7 +3154,7 @@ libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 403 + 402 @@ -3162,11 +3162,11 @@ Keine Daten verfügbar libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 405 + 404 libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 418 + 417 @@ -3322,7 +3322,7 @@ Dividenden apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 37 + 38 libs/ui/src/lib/i18n.ts @@ -3350,7 +3350,7 @@ Daten validieren... apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 238 + 239 @@ -3378,7 +3378,7 @@ apps/client/src/app/pages/admin/admin-page.component.ts - 37 + 38 @@ -3390,7 +3390,7 @@ apps/client/src/app/pages/admin/admin-page.component.ts - 47 + 48 @@ -3402,7 +3402,7 @@ apps/client/src/app/pages/home/home-page.component.ts - 47 + 48 @@ -3430,7 +3430,7 @@ Jährlich apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 50 + 51 @@ -3438,7 +3438,7 @@ Dividenden importieren apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 86 + 87 @@ -3950,7 +3950,7 @@ Möchtest du diese Aktivitäten wirklich löschen? libs/ui/src/lib/activities-table/activities-table.component.ts - 219 + 218 @@ -3998,7 +3998,7 @@ Möchtest du diese Plattform wirklich löschen? apps/client/src/app/components/admin-platform/admin-platform.component.ts - 86 + 87 @@ -4058,7 +4058,7 @@ apps/client/src/app/pages/admin/admin-page.component.ts - 32 + 33 apps/client/src/app/pages/user-account/user-account-page-routing.module.ts @@ -4066,7 +4066,7 @@ apps/client/src/app/pages/user-account/user-account-page.component.ts - 35 + 36 @@ -4234,7 +4234,7 @@ Changelog apps/client/src/app/pages/about/about-page.component.ts - 49 + 50 apps/client/src/app/pages/about/changelog/changelog-page-routing.module.ts @@ -4246,7 +4246,7 @@ Lizenz apps/client/src/app/pages/about/about-page.component.ts - 54 + 55 apps/client/src/app/pages/about/license/license-page-routing.module.ts @@ -4614,7 +4614,7 @@ ETFs ohne Länder apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 90 + 91 @@ -4622,7 +4622,7 @@ ETFs ohne Sektoren apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 95 + 96 @@ -4854,7 +4854,7 @@ Währungen apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 85 + 86 @@ -5215,7 +5215,7 @@ snake-case apps/client/src/app/app.component.ts - 77 + 78 apps/client/src/app/core/paths.ts @@ -5223,221 +5223,29 @@ apps/client/src/app/pages/about/overview/about-overview-page.component.ts - 19 + 20 apps/client/src/app/pages/faq/faq-page.component.ts - 37 + 38 apps/client/src/app/pages/faq/faq-page.component.ts - 42 + 43 apps/client/src/app/pages/faq/faq-page.component.ts - 48 + 49 apps/client/src/app/pages/resources/overview/resources-overview.component.ts - 14 + 15 features features snake-case - - apps/client/src/app/app.component.ts - 78 - - - apps/client/src/app/components/header/header.component.ts - 82 - - - apps/client/src/app/components/header/header.component.ts - 87 - - - apps/client/src/app/core/paths.ts - 4 - - - apps/client/src/app/pages/about/overview/about-overview-page.component.ts - 20 - - - apps/client/src/app/pages/blog/2022/11/black-friday-2022/black-friday-2022-page.component.ts - 15 - - - apps/client/src/app/pages/blog/2023/03/1000-stars-on-github/1000-stars-on-github-page.component.ts - 13 - - - apps/client/src/app/pages/blog/2023/05/unlock-your-financial-potential-with-ghostfolio/unlock-your-financial-potential-with-ghostfolio-page.component.ts - 13 - - - apps/client/src/app/pages/blog/2023/07/exploring-the-path-to-fire/exploring-the-path-to-fire-page.component.ts - 13 - - - apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts - 18 - - - apps/client/src/app/pages/blog/2023/11/black-week-2023/black-week-2023-page.component.ts - 15 - - - apps/client/src/app/pages/blog/2023/11/hacktoberfest-2023-debriefing/hacktoberfest-2023-debriefing-page.component.ts - 14 - - - apps/client/src/app/pages/blog/2024/11/black-weeks-2024/black-weeks-2024-page.component.ts - 15 - - - apps/client/src/app/pages/faq/overview/faq-overview-page.component.ts - 14 - - - apps/client/src/app/pages/pricing/pricing-page.component.ts - 41 - - - apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 25 - - - - about - ueber-uns - snake-case - - apps/client/src/app/app.component.ts - 64 - - - apps/client/src/app/app.component.ts - 66 - - - apps/client/src/app/app.component.ts - 70 - - - apps/client/src/app/app.component.ts - 74 - - - apps/client/src/app/components/header/header.component.ts - 81 - - - apps/client/src/app/components/header/header.component.ts - 86 - - - apps/client/src/app/core/paths.ts - 2 - - - apps/client/src/app/pages/about/about-page.component.ts - 45 - - - apps/client/src/app/pages/about/about-page.component.ts - 50 - - - apps/client/src/app/pages/about/about-page.component.ts - 55 - - - apps/client/src/app/pages/about/about-page.component.ts - 63 - - - apps/client/src/app/pages/about/about-page.component.ts - 74 - - - apps/client/src/app/pages/blog/2023/08/ghostfolio-joins-oss-friends/ghostfolio-joins-oss-friends-page.component.ts - 14 - - - apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts - 13 - - - apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts - 15 - - - apps/client/src/app/pages/blog/2023/09/hacktoberfest-2023/hacktoberfest-2023-page.component.ts - 13 - - - apps/client/src/app/pages/blog/2023/11/hacktoberfest-2023-debriefing/hacktoberfest-2023-debriefing-page.component.ts - 13 - - - apps/client/src/app/pages/blog/2024/09/hacktoberfest-2024/hacktoberfest-2024-page.component.ts - 13 - - - apps/client/src/app/pages/landing/landing-page.component.ts - 26 - - - apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts - 18 - - - apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 24 - - - - privacy-policy - datenschutzbestimmungen - snake-case - - apps/client/src/app/app.component.ts - 75 - - - apps/client/src/app/core/paths.ts - 8 - - - apps/client/src/app/pages/about/about-page.component.ts - 63 - - - - license - lizenz - snake-case - - apps/client/src/app/app.component.ts - 71 - - - apps/client/src/app/core/paths.ts - 5 - - - apps/client/src/app/pages/about/about-page.component.ts - 55 - - - - markets - maerkte - snake-case apps/client/src/app/app.component.ts 79 @@ -5452,23 +5260,215 @@ apps/client/src/app/core/paths.ts - 6 + 4 - apps/client/src/app/pages/blog/2022/08/500-stars-on-github/500-stars-on-github-page.component.ts + apps/client/src/app/pages/about/overview/about-overview-page.component.ts + 21 + + + apps/client/src/app/pages/blog/2022/11/black-friday-2022/black-friday-2022-page.component.ts + 14 + + + apps/client/src/app/pages/blog/2023/03/1000-stars-on-github/1000-stars-on-github-page.component.ts + 12 + + + apps/client/src/app/pages/blog/2023/05/unlock-your-financial-potential-with-ghostfolio/unlock-your-financial-potential-with-ghostfolio-page.component.ts + 12 + + + apps/client/src/app/pages/blog/2023/07/exploring-the-path-to-fire/exploring-the-path-to-fire-page.component.ts + 12 + + + apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts + 17 + + + apps/client/src/app/pages/blog/2023/11/black-week-2023/black-week-2023-page.component.ts + 14 + + + apps/client/src/app/pages/blog/2023/11/hacktoberfest-2023-debriefing/hacktoberfest-2023-debriefing-page.component.ts + 13 + + + apps/client/src/app/pages/blog/2024/11/black-weeks-2024/black-weeks-2024-page.component.ts + 14 + + + apps/client/src/app/pages/faq/overview/faq-overview-page.component.ts + 15 + + + apps/client/src/app/pages/pricing/pricing-page.component.ts + 42 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 24 + + + + about + ueber-uns + snake-case + + apps/client/src/app/app.component.ts + 65 + + + apps/client/src/app/app.component.ts + 67 + + + apps/client/src/app/app.component.ts + 71 + + + apps/client/src/app/app.component.ts + 75 + + + apps/client/src/app/components/header/header.component.ts + 82 + + + apps/client/src/app/components/header/header.component.ts + 87 + + + apps/client/src/app/core/paths.ts + 2 + + + apps/client/src/app/pages/about/about-page.component.ts + 46 + + + apps/client/src/app/pages/about/about-page.component.ts + 51 + + + apps/client/src/app/pages/about/about-page.component.ts + 56 + + + apps/client/src/app/pages/about/about-page.component.ts + 64 + + + apps/client/src/app/pages/about/about-page.component.ts + 75 + + + apps/client/src/app/pages/blog/2023/08/ghostfolio-joins-oss-friends/ghostfolio-joins-oss-friends-page.component.ts 13 apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts - 19 + 12 - apps/client/src/app/pages/faq/saas/saas-page.component.ts + apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts 14 + + apps/client/src/app/pages/blog/2023/09/hacktoberfest-2023/hacktoberfest-2023-page.component.ts + 12 + + + apps/client/src/app/pages/blog/2023/11/hacktoberfest-2023-debriefing/hacktoberfest-2023-debriefing-page.component.ts + 12 + + + apps/client/src/app/pages/blog/2024/09/hacktoberfest-2024/hacktoberfest-2024-page.component.ts + 12 + + + apps/client/src/app/pages/landing/landing-page.component.ts + 27 + + + apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts + 19 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 23 + + + + privacy-policy + datenschutzbestimmungen + snake-case + + apps/client/src/app/app.component.ts + 76 + + + apps/client/src/app/core/paths.ts + 8 + + + apps/client/src/app/pages/about/about-page.component.ts + 64 + + + + license + lizenz + snake-case + + apps/client/src/app/app.component.ts + 72 + + + apps/client/src/app/core/paths.ts + 5 + + + apps/client/src/app/pages/about/about-page.component.ts + 56 + + + + markets + maerkte + snake-case + + apps/client/src/app/app.component.ts + 80 + + + apps/client/src/app/components/header/header.component.ts + 84 + + + apps/client/src/app/components/header/header.component.ts + 89 + + + apps/client/src/app/core/paths.ts + 6 + + + apps/client/src/app/pages/blog/2022/08/500-stars-on-github/500-stars-on-github-page.component.ts + 12 + + + apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts + 18 + + + apps/client/src/app/pages/faq/saas/saas-page.component.ts + 15 + apps/client/src/app/pages/resources/overview/resources-overview.component.ts - 31 + 32 apps/client/src/app/pages/resources/resources-page-routing.module.ts @@ -5481,27 +5481,27 @@ snake-case apps/client/src/app/app.component.ts - 80 + 81 apps/client/src/app/components/admin-settings/admin-settings.component.ts - 73 + 74 apps/client/src/app/components/header/header.component.ts - 84 + 85 apps/client/src/app/components/header/header.component.ts - 89 + 90 apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.component.ts - 16 + 17 apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 42 + 43 apps/client/src/app/core/http-response.interceptor.ts @@ -5513,43 +5513,43 @@ apps/client/src/app/pages/blog/2021/07/hallo-ghostfolio/hallo-ghostfolio-page.component.ts - 13 + 12 apps/client/src/app/pages/blog/2021/07/hello-ghostfolio/hello-ghostfolio-page.component.ts - 13 + 12 apps/client/src/app/pages/blog/2022/01/first-months-in-open-source/first-months-in-open-source-page.component.ts - 13 + 12 apps/client/src/app/pages/blog/2022/08/500-stars-on-github/500-stars-on-github-page.component.ts - 14 + 13 apps/client/src/app/pages/blog/2022/11/black-friday-2022/black-friday-2022-page.component.ts - 16 - - - apps/client/src/app/pages/blog/2023/03/1000-stars-on-github/1000-stars-on-github-page.component.ts - 14 - - - apps/client/src/app/pages/blog/2023/11/black-week-2023/black-week-2023-page.component.ts - 16 - - - apps/client/src/app/pages/blog/2024/11/black-weeks-2024/black-weeks-2024-page.component.ts - 16 - - - apps/client/src/app/pages/faq/saas/saas-page.component.ts 15 + + apps/client/src/app/pages/blog/2023/03/1000-stars-on-github/1000-stars-on-github-page.component.ts + 13 + + + apps/client/src/app/pages/blog/2023/11/black-week-2023/black-week-2023-page.component.ts + 15 + + + apps/client/src/app/pages/blog/2024/11/black-weeks-2024/black-weeks-2024-page.component.ts + 15 + + + apps/client/src/app/pages/faq/saas/saas-page.component.ts + 16 + libs/ui/src/lib/membership-card/membership-card.component.ts - 31 + 30 @@ -5558,11 +5558,11 @@ snake-case apps/client/src/app/app.component.ts - 81 + 82 apps/client/src/app/components/header/header.component.ts - 90 + 91 apps/client/src/app/core/auth.guard.ts @@ -5574,19 +5574,19 @@ apps/client/src/app/pages/faq/saas/saas-page.component.ts - 16 + 17 apps/client/src/app/pages/features/features-page.component.ts - 29 + 28 apps/client/src/app/pages/landing/landing-page.component.ts - 27 + 28 apps/client/src/app/pages/pricing/pricing-page.component.ts - 42 + 43 @@ -5595,15 +5595,15 @@ snake-case apps/client/src/app/app.component.ts - 82 + 83 apps/client/src/app/components/header/header.component.ts - 85 + 86 apps/client/src/app/components/header/header.component.ts - 91 + 92 apps/client/src/app/core/paths.ts @@ -5611,47 +5611,47 @@ apps/client/src/app/pages/blog/2021/07/hallo-ghostfolio/hallo-ghostfolio-page.component.ts - 14 - - - apps/client/src/app/pages/blog/2021/07/hello-ghostfolio/hello-ghostfolio-page.component.ts - 14 - - - apps/client/src/app/pages/blog/2022/07/how-do-i-get-my-finances-in-order/how-do-i-get-my-finances-in-order-page.component.ts 13 + + apps/client/src/app/pages/blog/2021/07/hello-ghostfolio/hello-ghostfolio-page.component.ts + 13 + + + apps/client/src/app/pages/blog/2022/07/how-do-i-get-my-finances-in-order/how-do-i-get-my-finances-in-order-page.component.ts + 12 + apps/client/src/app/pages/blog/2023/05/unlock-your-financial-potential-with-ghostfolio/unlock-your-financial-potential-with-ghostfolio-page.component.ts - 14 + 13 apps/client/src/app/pages/features/features-page.component.ts - 30 + 29 apps/client/src/app/pages/resources/glossary/resources-glossary.component.ts - 16 + 17 apps/client/src/app/pages/resources/overview/resources-overview.component.ts - 21 + 22 apps/client/src/app/pages/resources/overview/resources-overview.component.ts - 30 + 31 apps/client/src/app/pages/resources/overview/resources-overview.component.ts - 39 + 40 apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts - 14 + 15 apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 27 + 26 @@ -5727,7 +5727,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts - 13 + 14 @@ -5759,7 +5759,7 @@ Schweiz apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 60 + 59 libs/ui/src/lib/i18n.ts @@ -5771,7 +5771,7 @@ Weltweit apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 61 + 60 libs/ui/src/lib/i18n.ts @@ -5883,7 +5883,7 @@ Möchtest du diesen Tag wirklich löschen? apps/client/src/app/components/admin-tag/admin-tag.component.ts - 86 + 87 @@ -5987,7 +5987,7 @@ apps/client/src/app/pages/user-account/user-account-page.component.ts - 40 + 41 @@ -5999,7 +5999,7 @@ apps/client/src/app/pages/user-account/user-account-page.component.ts - 46 + 47 @@ -6007,7 +6007,7 @@ Finde Position... libs/ui/src/lib/assistant/assistant.component.ts - 144 + 143 @@ -6107,7 +6107,7 @@ Ups, der Cash-Bestand Transfer ist fehlgeschlagen. apps/client/src/app/pages/accounts/accounts-page.component.ts - 317 + 318 @@ -6139,7 +6139,7 @@ Ups! Die historischen Daten konnten nicht geparsed werden. libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.ts - 263 + 262 @@ -6147,7 +6147,7 @@ Möchtest du diese Systemmeldung wirklich löschen? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 181 + 182 @@ -6203,7 +6203,7 @@ Möchtest du diesen Cash-Bestand wirklich löschen? libs/ui/src/lib/account-balances/account-balances.component.ts - 110 + 109 @@ -6211,7 +6211,7 @@ ist eine ungültige Währung! apps/client/src/app/components/admin-overview/admin-overview.component.ts - 136 + 137 @@ -6227,7 +6227,7 @@ Der aktuelle Marktpreis ist apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 325 + 326 @@ -6275,7 +6275,7 @@ Ups! Der Zugang konnte nicht gewährt werden. apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.component.ts - 90 + 91 @@ -6295,7 +6295,7 @@ apps/client/src/app/pages/admin/admin-page.component.ts - 42 + 43 @@ -6303,7 +6303,7 @@ Die Marktdaten sind verzögert für apps/client/src/app/components/portfolio-performance/portfolio-performance.component.ts - 86 + 87 @@ -6311,15 +6311,15 @@ Einlage apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 41 + 42 apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 55 + 56 apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 89 + 88 @@ -6375,7 +6375,7 @@ Seit Wochenbeginn libs/ui/src/lib/assistant/assistant.component.ts - 223 + 222 @@ -6383,7 +6383,7 @@ WTD libs/ui/src/lib/assistant/assistant.component.ts - 223 + 222 @@ -6391,7 +6391,7 @@ Seit Monatsbeginn libs/ui/src/lib/assistant/assistant.component.ts - 227 + 226 @@ -6399,7 +6399,7 @@ MTD libs/ui/src/lib/assistant/assistant.component.ts - 227 + 226 @@ -6407,7 +6407,7 @@ Seit Jahresbeginn libs/ui/src/lib/assistant/assistant.component.ts - 231 + 230 @@ -6451,7 +6451,7 @@ Jahr libs/ui/src/lib/assistant/assistant.component.ts - 235 + 234 @@ -6459,7 +6459,7 @@ Jahre libs/ui/src/lib/assistant/assistant.component.ts - 257 + 256 @@ -6483,7 +6483,7 @@ Allgemein apps/client/src/app/pages/faq/faq-page.component.ts - 36 + 37 @@ -6491,7 +6491,7 @@ Cloud apps/client/src/app/pages/faq/faq-page.component.ts - 41 + 42 apps/client/src/app/pages/faq/saas/saas-page-routing.module.ts @@ -6503,7 +6503,7 @@ Self-Hosting apps/client/src/app/pages/faq/faq-page.component.ts - 47 + 48 apps/client/src/app/pages/faq/self-hosting/self-hosting-page-routing.module.ts @@ -6515,7 +6515,7 @@ self-hosting apps/client/src/app/pages/faq/faq-page.component.ts - 48 + 49 @@ -6551,7 +6551,7 @@ Aktiv apps/client/src/app/components/home-holdings/home-holdings.component.ts - 35 + 36 @@ -6559,7 +6559,7 @@ Abgeschlossen apps/client/src/app/components/home-holdings/home-holdings.component.ts - 36 + 37 @@ -6647,7 +6647,7 @@ Möchtest du dieses Ghostfolio Konto wirklich schliessen? apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 172 + 173 @@ -6695,7 +6695,7 @@ Ups! Beim Einrichten der biometrischen Authentifizierung ist ein Fehler aufgetreten. apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 300 + 301 @@ -6711,7 +6711,7 @@ Benchmarks apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 80 + 81 @@ -6767,7 +6767,7 @@ Alternative apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 83 + 82 @@ -6775,7 +6775,7 @@ App apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 84 + 83 @@ -6783,7 +6783,7 @@ Budgetierung apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 85 + 84 @@ -6791,7 +6791,7 @@ Community apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 86 + 85 @@ -6799,7 +6799,7 @@ Family Office apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 87 + 86 @@ -6807,7 +6807,7 @@ Investor apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 90 + 89 @@ -6815,7 +6815,7 @@ Open Source apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 91 + 90 @@ -6823,7 +6823,7 @@ Persönliche Finanzen apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 93 + 92 @@ -6831,7 +6831,7 @@ Datenschutz apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 94 + 93 @@ -6839,7 +6839,7 @@ Software apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 96 + 95 @@ -6847,7 +6847,7 @@ Tool apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 97 + 96 @@ -6855,7 +6855,7 @@ User Experience apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 98 + 97 @@ -6863,7 +6863,7 @@ Vermögen apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 99 + 98 @@ -6871,7 +6871,7 @@ Vermögensverwaltung apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 100 + 99 @@ -7023,7 +7023,7 @@ Fehler apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 316 + 317 @@ -7395,7 +7395,7 @@ apps/client/src/app/pages/resources/resources-page.component.ts - 31 + 32 @@ -7407,7 +7407,7 @@ apps/client/src/app/pages/resources/resources-page.component.ts - 21 + 22 @@ -7416,7 +7416,7 @@ snake-case apps/client/src/app/pages/resources/overview/resources-overview.component.ts - 22 + 23 apps/client/src/app/pages/resources/resources-page-routing.module.ts @@ -7429,7 +7429,7 @@ snake-case apps/client/src/app/pages/resources/overview/resources-overview.component.ts - 40 + 41 apps/client/src/app/pages/resources/resources-page-routing.module.ts @@ -7489,19 +7489,15 @@ Möchtest du den API-Schlüssel wirklich löschen? apps/client/src/app/components/admin-settings/admin-settings.component.ts - 92 + 93 Please enter your Ghostfolio API key: Bitte gib den API-Schlüssel ein: - - apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/ghostfolio-premium-api-dialog.component.ts - 45 - apps/client/src/app/pages/api/api-page.component.ts - 41 + 40 @@ -7512,12 +7508,12 @@ 32 - + I have an API key Ich habe einen API-Schlüssel apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/ghostfolio-premium-api-dialog.html - 42 + 43 @@ -7533,7 +7529,7 @@ API-Schlüssel konnte nicht erstellt werden apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 138 + 139 @@ -7541,7 +7537,7 @@ Setze diesen API-Schlüssel in deiner selbst gehosteten Umgebung: apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 153 + 154 @@ -7549,7 +7545,7 @@ API-Schlüssel für den Ghostfolio Premium Datenanbieter apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 156 + 157 @@ -7557,7 +7553,7 @@ Möchtest du wirklich einen neuen API-Schlüssel erstellen? apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 161 + 162 @@ -7605,7 +7601,7 @@ Speichern apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts - 61 + 62 @@ -7621,7 +7617,7 @@ Ich apps/client/src/app/components/user-account-access/user-account-access.component.ts - 134 + 135 @@ -7632,6 +7628,14 @@ 3 + + Please enter your Ghostfolio API key. + Bitte gebe deinen Ghostfolio API-Schlüssel ein. + + apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/ghostfolio-premium-api-dialog.component.ts + 59 + + diff --git a/apps/client/src/locales/messages.es.xlf b/apps/client/src/locales/messages.es.xlf index 4eb127cc..56bf700b 100644 --- a/apps/client/src/locales/messages.es.xlf +++ b/apps/client/src/locales/messages.es.xlf @@ -75,7 +75,7 @@ ¿Quieres revocar el acceso concedido? apps/client/src/app/components/access-table/access-table.component.ts - 67 + 68 @@ -323,7 +323,7 @@ ¿Estás seguro de eliminar esta cuenta? apps/client/src/app/components/accounts-table/accounts-table.component.ts - 106 + 107 @@ -623,7 +623,7 @@ Por favor, añade una divisa: apps/client/src/app/components/admin-overview/admin-overview.component.ts - 125 + 126 @@ -631,7 +631,7 @@ ¿Estás seguro de eliminar este cupón? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 155 + 156 @@ -639,7 +639,7 @@ ¿Estás seguro de eliminar esta divisa? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 168 + 169 @@ -647,7 +647,7 @@ ¿Estás seguro de limpiar la caché? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 205 + 206 @@ -655,7 +655,7 @@ Por favor, establece tu mensaje del sistema: apps/client/src/app/components/admin-overview/admin-overview.component.ts - 225 + 226 @@ -787,7 +787,7 @@ ¿Estás seguro de eliminar este usuario? apps/client/src/app/components/admin-users/admin-users.component.ts - 138 + 139 @@ -1043,7 +1043,7 @@ apps/client/src/app/components/header/header.component.ts - 230 + 231 @@ -1051,11 +1051,11 @@ Vaya! Token de seguridad incorrecto. apps/client/src/app/components/header/header.component.ts - 245 + 246 apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 157 + 158 @@ -1103,7 +1103,7 @@ o apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/ghostfolio-premium-api-dialog.html - 35 + 36 apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html @@ -1311,7 +1311,7 @@ Por favor, ingresa la cantidad de tu fondo de emergencia: apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts - 63 + 64 @@ -1419,11 +1419,11 @@ Hoy apps/client/src/app/components/toggle/toggle.component.ts - 21 + 22 libs/ui/src/lib/assistant/assistant.component.ts - 221 + 220 @@ -1431,11 +1431,11 @@ Desde principio de año apps/client/src/app/components/toggle/toggle.component.ts - 22 + 23 libs/ui/src/lib/assistant/assistant.component.ts - 231 + 230 @@ -1443,11 +1443,11 @@ 1 año apps/client/src/app/components/toggle/toggle.component.ts - 23 + 24 libs/ui/src/lib/assistant/assistant.component.ts - 235 + 234 @@ -1455,11 +1455,11 @@ 5 años apps/client/src/app/components/toggle/toggle.component.ts - 24 + 25 libs/ui/src/lib/assistant/assistant.component.ts - 257 + 256 @@ -1467,11 +1467,11 @@ Máximo apps/client/src/app/components/toggle/toggle.component.ts - 25 + 26 libs/ui/src/lib/assistant/assistant.component.ts - 260 + 259 @@ -1479,7 +1479,7 @@ De acuerdo apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 151 + 152 apps/client/src/app/core/http-response.interceptor.ts @@ -1487,7 +1487,7 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 143 + 144 @@ -1499,7 +1499,7 @@ apps/client/src/app/pages/about/about-page.component.ts - 44 + 45 apps/client/src/app/pages/about/overview/about-overview-page-routing.module.ts @@ -1643,7 +1643,7 @@ Política de privacidad apps/client/src/app/pages/about/about-page.component.ts - 62 + 63 apps/client/src/app/pages/about/privacy-policy/privacy-policy-page-routing.module.ts @@ -1658,12 +1658,12 @@ 33 - - Please enter your coupon code: - Por favor, ingresa tu código de cupón: + + Please enter your coupon code. + Por favor, ingresa tu código de cupón: apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 166 + 213 @@ -1671,7 +1671,7 @@ No se puede canjear este código de cupón apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 175 + 177 @@ -1679,7 +1679,7 @@ El codigo de cupón ha sido canjeado apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 188 + 190 @@ -1687,7 +1687,7 @@ Refrescar apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 189 + 191 @@ -1695,7 +1695,7 @@ ¿Estás seguro de eliminar este método de acceso? apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 246 + 247 @@ -1991,15 +1991,15 @@ Visión general apps/client/src/app/pages/admin/admin-page.component.ts - 27 + 28 apps/client/src/app/pages/home/home-page.component.ts - 37 + 38 apps/client/src/app/pages/resources/resources-page.component.ts - 16 + 17 apps/client/src/app/pages/zen/zen-page-routing.module.ts @@ -2007,7 +2007,7 @@ apps/client/src/app/pages/zen/zen-page.component.ts - 34 + 35 @@ -2019,7 +2019,7 @@ apps/client/src/app/pages/home/home-page.component.ts - 52 + 53 apps/client/src/app/pages/markets/markets-page-routing.module.ts @@ -2031,7 +2031,7 @@ apps/client/src/app/pages/resources/resources-page.component.ts - 26 + 27 @@ -2043,7 +2043,7 @@ apps/client/src/app/pages/portfolio/portfolio-page.component.ts - 44 + 45 @@ -2131,7 +2131,7 @@ apps/client/src/app/pages/portfolio/portfolio-page.component.ts - 34 + 35 @@ -2203,11 +2203,11 @@ apps/client/src/app/pages/home/home-page.component.ts - 42 + 43 apps/client/src/app/pages/zen/zen-page.component.ts - 39 + 40 @@ -2371,7 +2371,7 @@ apps/client/src/app/pages/portfolio/portfolio-page.component.ts - 39 + 40 @@ -2379,7 +2379,7 @@ Importando datos... apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 124 + 125 @@ -2387,7 +2387,7 @@ La importación se ha completado apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 132 + 133 @@ -2403,7 +2403,7 @@ Cartera apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.ts - 116 + 117 apps/client/src/app/pages/portfolio/portfolio-page-routing.module.ts @@ -2411,7 +2411,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 95 + 94 @@ -2531,7 +2531,7 @@ Importar operaciones apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 45 + 46 @@ -2579,7 +2579,7 @@ ¿Estás seguro de eliminar esta operación? libs/ui/src/lib/activities-table/activities-table.component.ts - 229 + 228 @@ -2655,7 +2655,7 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 140 + 141 @@ -2671,7 +2671,7 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 142 + 143 @@ -2807,7 +2807,7 @@ Ahorros libs/ui/src/lib/fire-calculator/fire-calculator.component.ts - 381 + 380 @@ -2815,7 +2815,7 @@ Interés libs/ui/src/lib/fire-calculator/fire-calculator.component.ts - 371 + 370 libs/ui/src/lib/i18n.ts @@ -2827,7 +2827,7 @@ Depósito libs/ui/src/lib/fire-calculator/fire-calculator.component.ts - 361 + 360 @@ -2835,7 +2835,7 @@ Mensual apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 49 + 50 @@ -2859,7 +2859,7 @@ Miedo apps/client/src/app/components/home-market/home-market.component.ts - 27 + 28 libs/ui/src/lib/i18n.ts @@ -2871,7 +2871,7 @@ Codicia apps/client/src/app/components/home-market/home-market.component.ts - 28 + 29 libs/ui/src/lib/i18n.ts @@ -2883,7 +2883,7 @@ Filtrar por... apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 328 + 329 @@ -2919,7 +2919,7 @@ Benchmark apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.ts - 128 + 129 @@ -2951,7 +2951,7 @@ Automático apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 38 + 39 @@ -2991,7 +2991,7 @@ Importe total apps/client/src/app/components/investment-chart/investment-chart.component.ts - 140 + 141 @@ -3007,7 +3007,7 @@ Tasa de ahorro apps/client/src/app/components/investment-chart/investment-chart.component.ts - 199 + 200 @@ -3155,7 +3155,7 @@ libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 403 + 402 @@ -3163,11 +3163,11 @@ Sin datos disponibles libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 405 + 404 libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 418 + 417 @@ -3315,7 +3315,7 @@ Dividendo apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 37 + 38 libs/ui/src/lib/i18n.ts @@ -3351,7 +3351,7 @@ Validando datos... apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 238 + 239 @@ -3379,7 +3379,7 @@ apps/client/src/app/pages/admin/admin-page.component.ts - 37 + 38 @@ -3391,7 +3391,7 @@ apps/client/src/app/pages/admin/admin-page.component.ts - 47 + 48 @@ -3403,7 +3403,7 @@ apps/client/src/app/pages/home/home-page.component.ts - 47 + 48 @@ -3431,7 +3431,7 @@ Anual apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 50 + 51 @@ -3439,7 +3439,7 @@ Importar Dividendos apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 86 + 87 @@ -3951,7 +3951,7 @@ Do you really want to delete these activities? libs/ui/src/lib/activities-table/activities-table.component.ts - 219 + 218 @@ -3999,7 +3999,7 @@ Do you really want to delete this platform? apps/client/src/app/components/admin-platform/admin-platform.component.ts - 86 + 87 @@ -4059,7 +4059,7 @@ apps/client/src/app/pages/admin/admin-page.component.ts - 32 + 33 apps/client/src/app/pages/user-account/user-account-page-routing.module.ts @@ -4067,7 +4067,7 @@ apps/client/src/app/pages/user-account/user-account-page.component.ts - 35 + 36 @@ -4235,7 +4235,7 @@ Changelog apps/client/src/app/pages/about/about-page.component.ts - 49 + 50 apps/client/src/app/pages/about/changelog/changelog-page-routing.module.ts @@ -4247,7 +4247,7 @@ License apps/client/src/app/pages/about/about-page.component.ts - 54 + 55 apps/client/src/app/pages/about/license/license-page-routing.module.ts @@ -4615,7 +4615,7 @@ ETFs without Countries apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 90 + 91 @@ -4623,7 +4623,7 @@ ETFs without Sectors apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 95 + 96 @@ -4855,7 +4855,7 @@ Currencies apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 85 + 86 @@ -5216,7 +5216,7 @@ snake-case apps/client/src/app/app.component.ts - 77 + 78 apps/client/src/app/core/paths.ts @@ -5224,221 +5224,29 @@ apps/client/src/app/pages/about/overview/about-overview-page.component.ts - 19 + 20 apps/client/src/app/pages/faq/faq-page.component.ts - 37 + 38 apps/client/src/app/pages/faq/faq-page.component.ts - 42 + 43 apps/client/src/app/pages/faq/faq-page.component.ts - 48 + 49 apps/client/src/app/pages/resources/overview/resources-overview.component.ts - 14 + 15 features funcionalidades snake-case - - apps/client/src/app/app.component.ts - 78 - - - apps/client/src/app/components/header/header.component.ts - 82 - - - apps/client/src/app/components/header/header.component.ts - 87 - - - apps/client/src/app/core/paths.ts - 4 - - - apps/client/src/app/pages/about/overview/about-overview-page.component.ts - 20 - - - apps/client/src/app/pages/blog/2022/11/black-friday-2022/black-friday-2022-page.component.ts - 15 - - - apps/client/src/app/pages/blog/2023/03/1000-stars-on-github/1000-stars-on-github-page.component.ts - 13 - - - apps/client/src/app/pages/blog/2023/05/unlock-your-financial-potential-with-ghostfolio/unlock-your-financial-potential-with-ghostfolio-page.component.ts - 13 - - - apps/client/src/app/pages/blog/2023/07/exploring-the-path-to-fire/exploring-the-path-to-fire-page.component.ts - 13 - - - apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts - 18 - - - apps/client/src/app/pages/blog/2023/11/black-week-2023/black-week-2023-page.component.ts - 15 - - - apps/client/src/app/pages/blog/2023/11/hacktoberfest-2023-debriefing/hacktoberfest-2023-debriefing-page.component.ts - 14 - - - apps/client/src/app/pages/blog/2024/11/black-weeks-2024/black-weeks-2024-page.component.ts - 15 - - - apps/client/src/app/pages/faq/overview/faq-overview-page.component.ts - 14 - - - apps/client/src/app/pages/pricing/pricing-page.component.ts - 41 - - - apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 25 - - - - about - sobre - snake-case - - apps/client/src/app/app.component.ts - 64 - - - apps/client/src/app/app.component.ts - 66 - - - apps/client/src/app/app.component.ts - 70 - - - apps/client/src/app/app.component.ts - 74 - - - apps/client/src/app/components/header/header.component.ts - 81 - - - apps/client/src/app/components/header/header.component.ts - 86 - - - apps/client/src/app/core/paths.ts - 2 - - - apps/client/src/app/pages/about/about-page.component.ts - 45 - - - apps/client/src/app/pages/about/about-page.component.ts - 50 - - - apps/client/src/app/pages/about/about-page.component.ts - 55 - - - apps/client/src/app/pages/about/about-page.component.ts - 63 - - - apps/client/src/app/pages/about/about-page.component.ts - 74 - - - apps/client/src/app/pages/blog/2023/08/ghostfolio-joins-oss-friends/ghostfolio-joins-oss-friends-page.component.ts - 14 - - - apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts - 13 - - - apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts - 15 - - - apps/client/src/app/pages/blog/2023/09/hacktoberfest-2023/hacktoberfest-2023-page.component.ts - 13 - - - apps/client/src/app/pages/blog/2023/11/hacktoberfest-2023-debriefing/hacktoberfest-2023-debriefing-page.component.ts - 13 - - - apps/client/src/app/pages/blog/2024/09/hacktoberfest-2024/hacktoberfest-2024-page.component.ts - 13 - - - apps/client/src/app/pages/landing/landing-page.component.ts - 26 - - - apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts - 18 - - - apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 24 - - - - privacy-policy - politica-de-privacidad - snake-case - - apps/client/src/app/app.component.ts - 75 - - - apps/client/src/app/core/paths.ts - 8 - - - apps/client/src/app/pages/about/about-page.component.ts - 63 - - - - license - licencia - snake-case - - apps/client/src/app/app.component.ts - 71 - - - apps/client/src/app/core/paths.ts - 5 - - - apps/client/src/app/pages/about/about-page.component.ts - 55 - - - - markets - mercados - snake-case apps/client/src/app/app.component.ts 79 @@ -5453,23 +5261,215 @@ apps/client/src/app/core/paths.ts - 6 + 4 - apps/client/src/app/pages/blog/2022/08/500-stars-on-github/500-stars-on-github-page.component.ts + apps/client/src/app/pages/about/overview/about-overview-page.component.ts + 21 + + + apps/client/src/app/pages/blog/2022/11/black-friday-2022/black-friday-2022-page.component.ts + 14 + + + apps/client/src/app/pages/blog/2023/03/1000-stars-on-github/1000-stars-on-github-page.component.ts + 12 + + + apps/client/src/app/pages/blog/2023/05/unlock-your-financial-potential-with-ghostfolio/unlock-your-financial-potential-with-ghostfolio-page.component.ts + 12 + + + apps/client/src/app/pages/blog/2023/07/exploring-the-path-to-fire/exploring-the-path-to-fire-page.component.ts + 12 + + + apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts + 17 + + + apps/client/src/app/pages/blog/2023/11/black-week-2023/black-week-2023-page.component.ts + 14 + + + apps/client/src/app/pages/blog/2023/11/hacktoberfest-2023-debriefing/hacktoberfest-2023-debriefing-page.component.ts + 13 + + + apps/client/src/app/pages/blog/2024/11/black-weeks-2024/black-weeks-2024-page.component.ts + 14 + + + apps/client/src/app/pages/faq/overview/faq-overview-page.component.ts + 15 + + + apps/client/src/app/pages/pricing/pricing-page.component.ts + 42 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 24 + + + + about + sobre + snake-case + + apps/client/src/app/app.component.ts + 65 + + + apps/client/src/app/app.component.ts + 67 + + + apps/client/src/app/app.component.ts + 71 + + + apps/client/src/app/app.component.ts + 75 + + + apps/client/src/app/components/header/header.component.ts + 82 + + + apps/client/src/app/components/header/header.component.ts + 87 + + + apps/client/src/app/core/paths.ts + 2 + + + apps/client/src/app/pages/about/about-page.component.ts + 46 + + + apps/client/src/app/pages/about/about-page.component.ts + 51 + + + apps/client/src/app/pages/about/about-page.component.ts + 56 + + + apps/client/src/app/pages/about/about-page.component.ts + 64 + + + apps/client/src/app/pages/about/about-page.component.ts + 75 + + + apps/client/src/app/pages/blog/2023/08/ghostfolio-joins-oss-friends/ghostfolio-joins-oss-friends-page.component.ts 13 apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts - 19 + 12 - apps/client/src/app/pages/faq/saas/saas-page.component.ts + apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts 14 + + apps/client/src/app/pages/blog/2023/09/hacktoberfest-2023/hacktoberfest-2023-page.component.ts + 12 + + + apps/client/src/app/pages/blog/2023/11/hacktoberfest-2023-debriefing/hacktoberfest-2023-debriefing-page.component.ts + 12 + + + apps/client/src/app/pages/blog/2024/09/hacktoberfest-2024/hacktoberfest-2024-page.component.ts + 12 + + + apps/client/src/app/pages/landing/landing-page.component.ts + 27 + + + apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts + 19 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 23 + + + + privacy-policy + politica-de-privacidad + snake-case + + apps/client/src/app/app.component.ts + 76 + + + apps/client/src/app/core/paths.ts + 8 + + + apps/client/src/app/pages/about/about-page.component.ts + 64 + + + + license + licencia + snake-case + + apps/client/src/app/app.component.ts + 72 + + + apps/client/src/app/core/paths.ts + 5 + + + apps/client/src/app/pages/about/about-page.component.ts + 56 + + + + markets + mercados + snake-case + + apps/client/src/app/app.component.ts + 80 + + + apps/client/src/app/components/header/header.component.ts + 84 + + + apps/client/src/app/components/header/header.component.ts + 89 + + + apps/client/src/app/core/paths.ts + 6 + + + apps/client/src/app/pages/blog/2022/08/500-stars-on-github/500-stars-on-github-page.component.ts + 12 + + + apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts + 18 + + + apps/client/src/app/pages/faq/saas/saas-page.component.ts + 15 + apps/client/src/app/pages/resources/overview/resources-overview.component.ts - 31 + 32 apps/client/src/app/pages/resources/resources-page-routing.module.ts @@ -5482,27 +5482,27 @@ snake-case apps/client/src/app/app.component.ts - 80 + 81 apps/client/src/app/components/admin-settings/admin-settings.component.ts - 73 + 74 apps/client/src/app/components/header/header.component.ts - 84 + 85 apps/client/src/app/components/header/header.component.ts - 89 + 90 apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.component.ts - 16 + 17 apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 42 + 43 apps/client/src/app/core/http-response.interceptor.ts @@ -5514,43 +5514,43 @@ apps/client/src/app/pages/blog/2021/07/hallo-ghostfolio/hallo-ghostfolio-page.component.ts - 13 + 12 apps/client/src/app/pages/blog/2021/07/hello-ghostfolio/hello-ghostfolio-page.component.ts - 13 + 12 apps/client/src/app/pages/blog/2022/01/first-months-in-open-source/first-months-in-open-source-page.component.ts - 13 + 12 apps/client/src/app/pages/blog/2022/08/500-stars-on-github/500-stars-on-github-page.component.ts - 14 + 13 apps/client/src/app/pages/blog/2022/11/black-friday-2022/black-friday-2022-page.component.ts - 16 - - - apps/client/src/app/pages/blog/2023/03/1000-stars-on-github/1000-stars-on-github-page.component.ts - 14 - - - apps/client/src/app/pages/blog/2023/11/black-week-2023/black-week-2023-page.component.ts - 16 - - - apps/client/src/app/pages/blog/2024/11/black-weeks-2024/black-weeks-2024-page.component.ts - 16 - - - apps/client/src/app/pages/faq/saas/saas-page.component.ts 15 + + apps/client/src/app/pages/blog/2023/03/1000-stars-on-github/1000-stars-on-github-page.component.ts + 13 + + + apps/client/src/app/pages/blog/2023/11/black-week-2023/black-week-2023-page.component.ts + 15 + + + apps/client/src/app/pages/blog/2024/11/black-weeks-2024/black-weeks-2024-page.component.ts + 15 + + + apps/client/src/app/pages/faq/saas/saas-page.component.ts + 16 + libs/ui/src/lib/membership-card/membership-card.component.ts - 31 + 30 @@ -5559,11 +5559,11 @@ snake-case apps/client/src/app/app.component.ts - 81 + 82 apps/client/src/app/components/header/header.component.ts - 90 + 91 apps/client/src/app/core/auth.guard.ts @@ -5575,19 +5575,19 @@ apps/client/src/app/pages/faq/saas/saas-page.component.ts - 16 + 17 apps/client/src/app/pages/features/features-page.component.ts - 29 + 28 apps/client/src/app/pages/landing/landing-page.component.ts - 27 + 28 apps/client/src/app/pages/pricing/pricing-page.component.ts - 42 + 43 @@ -5596,15 +5596,15 @@ snake-case apps/client/src/app/app.component.ts - 82 + 83 apps/client/src/app/components/header/header.component.ts - 85 + 86 apps/client/src/app/components/header/header.component.ts - 91 + 92 apps/client/src/app/core/paths.ts @@ -5612,47 +5612,47 @@ apps/client/src/app/pages/blog/2021/07/hallo-ghostfolio/hallo-ghostfolio-page.component.ts - 14 - - - apps/client/src/app/pages/blog/2021/07/hello-ghostfolio/hello-ghostfolio-page.component.ts - 14 - - - apps/client/src/app/pages/blog/2022/07/how-do-i-get-my-finances-in-order/how-do-i-get-my-finances-in-order-page.component.ts 13 + + apps/client/src/app/pages/blog/2021/07/hello-ghostfolio/hello-ghostfolio-page.component.ts + 13 + + + apps/client/src/app/pages/blog/2022/07/how-do-i-get-my-finances-in-order/how-do-i-get-my-finances-in-order-page.component.ts + 12 + apps/client/src/app/pages/blog/2023/05/unlock-your-financial-potential-with-ghostfolio/unlock-your-financial-potential-with-ghostfolio-page.component.ts - 14 + 13 apps/client/src/app/pages/features/features-page.component.ts - 30 + 29 apps/client/src/app/pages/resources/glossary/resources-glossary.component.ts - 16 + 17 apps/client/src/app/pages/resources/overview/resources-overview.component.ts - 21 + 22 apps/client/src/app/pages/resources/overview/resources-overview.component.ts - 30 + 31 apps/client/src/app/pages/resources/overview/resources-overview.component.ts - 39 + 40 apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts - 14 + 15 apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 27 + 26 @@ -5728,7 +5728,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts - 13 + 14 @@ -5760,7 +5760,7 @@ Switzerland apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 60 + 59 libs/ui/src/lib/i18n.ts @@ -5772,7 +5772,7 @@ Global apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 61 + 60 libs/ui/src/lib/i18n.ts @@ -5884,7 +5884,7 @@ Do you really want to delete this tag? apps/client/src/app/components/admin-tag/admin-tag.component.ts - 86 + 87 @@ -5988,7 +5988,7 @@ apps/client/src/app/pages/user-account/user-account-page.component.ts - 40 + 41 @@ -6000,7 +6000,7 @@ apps/client/src/app/pages/user-account/user-account-page.component.ts - 46 + 47 @@ -6008,7 +6008,7 @@ Find holding... libs/ui/src/lib/assistant/assistant.component.ts - 144 + 143 @@ -6108,7 +6108,7 @@ Oops, cash balance transfer has failed. apps/client/src/app/pages/accounts/accounts-page.component.ts - 317 + 318 @@ -6140,7 +6140,7 @@ Oops! Could not parse historical data. libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.ts - 263 + 262 @@ -6148,7 +6148,7 @@ Do you really want to delete this system message? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 181 + 182 @@ -6204,7 +6204,7 @@ Do you really want to delete this account balance? libs/ui/src/lib/account-balances/account-balances.component.ts - 110 + 109 @@ -6212,7 +6212,7 @@ is an invalid currency! apps/client/src/app/components/admin-overview/admin-overview.component.ts - 136 + 137 @@ -6228,7 +6228,7 @@ The current market price is apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 325 + 326 @@ -6276,7 +6276,7 @@ Oops! Could not grant access. apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.component.ts - 90 + 91 @@ -6296,7 +6296,7 @@ apps/client/src/app/pages/admin/admin-page.component.ts - 42 + 43 @@ -6304,7 +6304,7 @@ Market data is delayed for apps/client/src/app/components/portfolio-performance/portfolio-performance.component.ts - 86 + 87 @@ -6312,15 +6312,15 @@ Inversión apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 41 + 42 apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 55 + 56 apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 89 + 88 @@ -6376,7 +6376,7 @@ Week to date libs/ui/src/lib/assistant/assistant.component.ts - 223 + 222 @@ -6384,7 +6384,7 @@ WTD libs/ui/src/lib/assistant/assistant.component.ts - 223 + 222 @@ -6392,7 +6392,7 @@ Month to date libs/ui/src/lib/assistant/assistant.component.ts - 227 + 226 @@ -6400,7 +6400,7 @@ MTD libs/ui/src/lib/assistant/assistant.component.ts - 227 + 226 @@ -6408,7 +6408,7 @@ Year to date libs/ui/src/lib/assistant/assistant.component.ts - 231 + 230 @@ -6452,7 +6452,7 @@ año libs/ui/src/lib/assistant/assistant.component.ts - 235 + 234 @@ -6460,7 +6460,7 @@ años libs/ui/src/lib/assistant/assistant.component.ts - 257 + 256 @@ -6484,7 +6484,7 @@ General apps/client/src/app/pages/faq/faq-page.component.ts - 36 + 37 @@ -6492,7 +6492,7 @@ Nube apps/client/src/app/pages/faq/faq-page.component.ts - 41 + 42 apps/client/src/app/pages/faq/saas/saas-page-routing.module.ts @@ -6504,7 +6504,7 @@ Self-Hosting apps/client/src/app/pages/faq/faq-page.component.ts - 47 + 48 apps/client/src/app/pages/faq/self-hosting/self-hosting-page-routing.module.ts @@ -6516,7 +6516,7 @@ auto alojado apps/client/src/app/pages/faq/faq-page.component.ts - 48 + 49 @@ -6552,7 +6552,7 @@ Activo apps/client/src/app/components/home-holdings/home-holdings.component.ts - 35 + 36 @@ -6560,7 +6560,7 @@ Closed apps/client/src/app/components/home-holdings/home-holdings.component.ts - 36 + 37 @@ -6648,7 +6648,7 @@ ¿Estás seguro de querer borrar tu cuenta de Ghostfolio? apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 172 + 173 @@ -6696,7 +6696,7 @@ Oops! There was an error setting up biometric authentication. apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 300 + 301 @@ -6712,7 +6712,7 @@ Benchmarks apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 80 + 81 @@ -6768,7 +6768,7 @@ Alternative apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 83 + 82 @@ -6776,7 +6776,7 @@ App apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 84 + 83 @@ -6784,7 +6784,7 @@ Budgeting apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 85 + 84 @@ -6792,7 +6792,7 @@ Community apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 86 + 85 @@ -6800,7 +6800,7 @@ Family Office apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 87 + 86 @@ -6808,7 +6808,7 @@ Investor apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 90 + 89 @@ -6816,7 +6816,7 @@ Open Source apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 91 + 90 @@ -6824,7 +6824,7 @@ Personal Finance apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 93 + 92 @@ -6832,7 +6832,7 @@ Privacy apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 94 + 93 @@ -6840,7 +6840,7 @@ Software apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 96 + 95 @@ -6848,7 +6848,7 @@ Tool apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 97 + 96 @@ -6856,7 +6856,7 @@ User Experience apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 98 + 97 @@ -6864,7 +6864,7 @@ Wealth apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 99 + 98 @@ -6872,7 +6872,7 @@ Wealth Management apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 100 + 99 @@ -7024,7 +7024,7 @@ Error apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 316 + 317 @@ -7396,7 +7396,7 @@ apps/client/src/app/pages/resources/resources-page.component.ts - 31 + 32 @@ -7408,7 +7408,7 @@ apps/client/src/app/pages/resources/resources-page.component.ts - 21 + 22 @@ -7417,7 +7417,7 @@ snake-case apps/client/src/app/pages/resources/overview/resources-overview.component.ts - 22 + 23 apps/client/src/app/pages/resources/resources-page-routing.module.ts @@ -7430,7 +7430,7 @@ snake-case apps/client/src/app/pages/resources/overview/resources-overview.component.ts - 40 + 41 apps/client/src/app/pages/resources/resources-page-routing.module.ts @@ -7490,19 +7490,15 @@ Do you really want to delete the API key? apps/client/src/app/components/admin-settings/admin-settings.component.ts - 92 + 93 Please enter your Ghostfolio API key: Please enter your Ghostfolio API key: - - apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/ghostfolio-premium-api-dialog.component.ts - 45 - apps/client/src/app/pages/api/api-page.component.ts - 41 + 40 @@ -7513,12 +7509,12 @@ 32 - + I have an API key I have an API key apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/ghostfolio-premium-api-dialog.html - 42 + 43 @@ -7534,7 +7530,7 @@ Could not generate an API key apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 138 + 139 @@ -7542,7 +7538,7 @@ Set this API key in your self-hosted environment: apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 153 + 154 @@ -7550,7 +7546,7 @@ Ghostfolio Premium Data Provider API Key apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 156 + 157 @@ -7558,7 +7554,7 @@ Do you really want to generate a new API key? apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 161 + 162 @@ -7606,7 +7602,7 @@ Save apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts - 61 + 62 @@ -7622,7 +7618,7 @@ Me apps/client/src/app/components/user-account-access/user-account-access.component.ts - 134 + 135 @@ -7633,6 +7629,14 @@ 3 + + Please enter your Ghostfolio API key. + Please enter your Ghostfolio API key. + + apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/ghostfolio-premium-api-dialog.component.ts + 59 + + diff --git a/apps/client/src/locales/messages.fr.xlf b/apps/client/src/locales/messages.fr.xlf index a01b9651..4159e464 100644 --- a/apps/client/src/locales/messages.fr.xlf +++ b/apps/client/src/locales/messages.fr.xlf @@ -70,7 +70,7 @@ Voulez-vous vraiment révoquer cet accès ? apps/client/src/app/components/access-table/access-table.component.ts - 67 + 68 @@ -382,7 +382,7 @@ Voulez-vous vraiment supprimer ce compte ? apps/client/src/app/components/accounts-table/accounts-table.component.ts - 106 + 107 @@ -642,7 +642,7 @@ Filtrer par... apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 328 + 329 @@ -882,7 +882,7 @@ Veuillez ajouter une devise : apps/client/src/app/components/admin-overview/admin-overview.component.ts - 125 + 126 @@ -890,7 +890,7 @@ Voulez-vous vraiment supprimer ce code promotionnel ? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 155 + 156 @@ -898,7 +898,7 @@ Voulez-vous vraiment supprimer cette devise ? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 168 + 169 @@ -906,7 +906,7 @@ Voulez-vous vraiment vider le cache ? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 205 + 206 @@ -914,7 +914,7 @@ Veuillez définir votre message système : apps/client/src/app/components/admin-overview/admin-overview.component.ts - 225 + 226 @@ -1054,7 +1054,7 @@ Voulez-vous vraiment supprimer cet·te utilisateur·rice ? apps/client/src/app/components/admin-users/admin-users.component.ts - 138 + 139 @@ -1146,7 +1146,7 @@ Portefeuille apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.ts - 116 + 117 apps/client/src/app/pages/portfolio/portfolio-page-routing.module.ts @@ -1154,7 +1154,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 95 + 94 @@ -1162,7 +1162,7 @@ Référence apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.ts - 128 + 129 @@ -1362,7 +1362,7 @@ apps/client/src/app/components/header/header.component.ts - 230 + 231 @@ -1370,11 +1370,11 @@ Oups! Jeton de Sécurité Incorrect. apps/client/src/app/components/header/header.component.ts - 245 + 246 apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 157 + 158 @@ -1390,7 +1390,7 @@ Peur apps/client/src/app/components/home-market/home-market.component.ts - 27 + 28 libs/ui/src/lib/i18n.ts @@ -1402,7 +1402,7 @@ Avidité apps/client/src/app/components/home-market/home-market.component.ts - 28 + 29 libs/ui/src/lib/i18n.ts @@ -1430,7 +1430,7 @@ Montant Total apps/client/src/app/components/investment-chart/investment-chart.component.ts - 140 + 141 @@ -1438,7 +1438,7 @@ Taux d’Épargne apps/client/src/app/components/investment-chart/investment-chart.component.ts - 199 + 200 @@ -1462,7 +1462,7 @@ ou apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/ghostfolio-premium-api-dialog.html - 35 + 36 apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html @@ -1666,7 +1666,7 @@ Veuillez entrer le montant de votre fonds d’urgence : apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts - 63 + 64 @@ -1730,11 +1730,11 @@ Aujourd’hui apps/client/src/app/components/toggle/toggle.component.ts - 21 + 22 libs/ui/src/lib/assistant/assistant.component.ts - 221 + 220 @@ -1742,11 +1742,11 @@ CDA apps/client/src/app/components/toggle/toggle.component.ts - 22 + 23 libs/ui/src/lib/assistant/assistant.component.ts - 231 + 230 @@ -1754,11 +1754,11 @@ 1A apps/client/src/app/components/toggle/toggle.component.ts - 23 + 24 libs/ui/src/lib/assistant/assistant.component.ts - 235 + 234 @@ -1766,11 +1766,11 @@ 5A apps/client/src/app/components/toggle/toggle.component.ts - 24 + 25 libs/ui/src/lib/assistant/assistant.component.ts - 257 + 256 @@ -1778,11 +1778,11 @@ Max apps/client/src/app/components/toggle/toggle.component.ts - 25 + 26 libs/ui/src/lib/assistant/assistant.component.ts - 260 + 259 @@ -1806,7 +1806,7 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 142 + 143 @@ -1818,7 +1818,7 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 140 + 141 @@ -1826,7 +1826,7 @@ D’accord apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 151 + 152 apps/client/src/app/core/http-response.interceptor.ts @@ -1834,7 +1834,7 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 143 + 144 @@ -1846,7 +1846,7 @@ apps/client/src/app/pages/about/about-page.component.ts - 44 + 45 apps/client/src/app/pages/about/overview/about-overview-page-routing.module.ts @@ -1882,7 +1882,7 @@ Politique de Vie Privée apps/client/src/app/pages/about/about-page.component.ts - 62 + 63 apps/client/src/app/pages/about/privacy-policy/privacy-policy-page-routing.module.ts @@ -1914,15 +1914,15 @@ Auto apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 38 + 39 - - Please enter your coupon code: - Veuillez entrer votre code promotionnel : + + Please enter your coupon code. + Veuillez entrer votre code promotionnel : apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 166 + 213 @@ -1930,7 +1930,7 @@ Le code promotionnel n’a pas pu être appliqué apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 175 + 177 @@ -1938,7 +1938,7 @@ Le code promotionnel a été appliqué apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 188 + 190 @@ -1946,7 +1946,7 @@ Rafraîchir apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 189 + 191 @@ -1954,7 +1954,7 @@ Voulez-vous vraiment supprimer cette méthode de connexion ? apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 246 + 247 @@ -2242,7 +2242,7 @@ apps/client/src/app/pages/admin/admin-page.component.ts - 37 + 38 @@ -2262,7 +2262,7 @@ apps/client/src/app/pages/admin/admin-page.component.ts - 47 + 48 @@ -2410,11 +2410,11 @@ apps/client/src/app/pages/home/home-page.component.ts - 42 + 43 apps/client/src/app/pages/zen/zen-page.component.ts - 39 + 40 @@ -2426,7 +2426,7 @@ apps/client/src/app/pages/home/home-page.component.ts - 47 + 48 @@ -2438,7 +2438,7 @@ apps/client/src/app/pages/home/home-page.component.ts - 52 + 53 apps/client/src/app/pages/markets/markets-page-routing.module.ts @@ -2450,7 +2450,7 @@ apps/client/src/app/pages/resources/resources-page.component.ts - 26 + 27 @@ -2462,7 +2462,7 @@ apps/client/src/app/pages/portfolio/portfolio-page.component.ts - 39 + 40 @@ -2542,7 +2542,7 @@ Import des données... apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 124 + 125 @@ -2550,7 +2550,7 @@ L’import est terminé apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 132 + 133 @@ -2558,7 +2558,7 @@ Validation des données... apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 238 + 239 @@ -2606,7 +2606,7 @@ apps/client/src/app/pages/portfolio/portfolio-page.component.ts - 44 + 45 @@ -2738,7 +2738,7 @@ apps/client/src/app/pages/portfolio/portfolio-page.component.ts - 34 + 35 @@ -2746,7 +2746,7 @@ Dividende apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 37 + 38 libs/ui/src/lib/i18n.ts @@ -2758,7 +2758,7 @@ Dépôt libs/ui/src/lib/fire-calculator/fire-calculator.component.ts - 361 + 360 @@ -2766,7 +2766,7 @@ Mensuel apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 49 + 50 @@ -3014,15 +3014,15 @@ Aperçu apps/client/src/app/pages/admin/admin-page.component.ts - 27 + 28 apps/client/src/app/pages/home/home-page.component.ts - 37 + 38 apps/client/src/app/pages/resources/resources-page.component.ts - 16 + 17 apps/client/src/app/pages/zen/zen-page-routing.module.ts @@ -3030,7 +3030,7 @@ apps/client/src/app/pages/zen/zen-page.component.ts - 34 + 35 @@ -3046,7 +3046,7 @@ Importer Activités apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 45 + 46 @@ -3094,7 +3094,7 @@ Voulez-vous vraiment supprimer cette activité ? libs/ui/src/lib/activities-table/activities-table.component.ts - 229 + 228 @@ -3142,7 +3142,7 @@ Intérêt libs/ui/src/lib/fire-calculator/fire-calculator.component.ts - 371 + 370 libs/ui/src/lib/i18n.ts @@ -3154,7 +3154,7 @@ Épargne libs/ui/src/lib/fire-calculator/fire-calculator.component.ts - 381 + 380 @@ -3222,7 +3222,7 @@ libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 403 + 402 @@ -3398,11 +3398,11 @@ Pas de données disponibles libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 405 + 404 libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 418 + 417 @@ -3430,7 +3430,7 @@ Annuel apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 50 + 51 @@ -3438,7 +3438,7 @@ Importer Dividendes apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 86 + 87 @@ -3950,7 +3950,7 @@ Voulez-vous vraiment supprimer toutes vos activités ? libs/ui/src/lib/activities-table/activities-table.component.ts - 219 + 218 @@ -3998,7 +3998,7 @@ Voulez-vous vraiment supprimer cette plateforme ? apps/client/src/app/components/admin-platform/admin-platform.component.ts - 86 + 87 @@ -4058,7 +4058,7 @@ apps/client/src/app/pages/admin/admin-page.component.ts - 32 + 33 apps/client/src/app/pages/user-account/user-account-page-routing.module.ts @@ -4066,7 +4066,7 @@ apps/client/src/app/pages/user-account/user-account-page.component.ts - 35 + 36 @@ -4234,7 +4234,7 @@ Historique des Modifications apps/client/src/app/pages/about/about-page.component.ts - 49 + 50 apps/client/src/app/pages/about/changelog/changelog-page-routing.module.ts @@ -4246,7 +4246,7 @@ Licence apps/client/src/app/pages/about/about-page.component.ts - 54 + 55 apps/client/src/app/pages/about/license/license-page-routing.module.ts @@ -4614,7 +4614,7 @@ ETF sans Pays apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 90 + 91 @@ -4622,7 +4622,7 @@ ETF sans Secteurs apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 95 + 96 @@ -4854,7 +4854,7 @@ Devises apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 85 + 86 @@ -5215,7 +5215,7 @@ snake-case apps/client/src/app/app.component.ts - 77 + 78 apps/client/src/app/core/paths.ts @@ -5223,221 +5223,29 @@ apps/client/src/app/pages/about/overview/about-overview-page.component.ts - 19 + 20 apps/client/src/app/pages/faq/faq-page.component.ts - 37 + 38 apps/client/src/app/pages/faq/faq-page.component.ts - 42 + 43 apps/client/src/app/pages/faq/faq-page.component.ts - 48 + 49 apps/client/src/app/pages/resources/overview/resources-overview.component.ts - 14 + 15 features fonctionnalites snake-case - - apps/client/src/app/app.component.ts - 78 - - - apps/client/src/app/components/header/header.component.ts - 82 - - - apps/client/src/app/components/header/header.component.ts - 87 - - - apps/client/src/app/core/paths.ts - 4 - - - apps/client/src/app/pages/about/overview/about-overview-page.component.ts - 20 - - - apps/client/src/app/pages/blog/2022/11/black-friday-2022/black-friday-2022-page.component.ts - 15 - - - apps/client/src/app/pages/blog/2023/03/1000-stars-on-github/1000-stars-on-github-page.component.ts - 13 - - - apps/client/src/app/pages/blog/2023/05/unlock-your-financial-potential-with-ghostfolio/unlock-your-financial-potential-with-ghostfolio-page.component.ts - 13 - - - apps/client/src/app/pages/blog/2023/07/exploring-the-path-to-fire/exploring-the-path-to-fire-page.component.ts - 13 - - - apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts - 18 - - - apps/client/src/app/pages/blog/2023/11/black-week-2023/black-week-2023-page.component.ts - 15 - - - apps/client/src/app/pages/blog/2023/11/hacktoberfest-2023-debriefing/hacktoberfest-2023-debriefing-page.component.ts - 14 - - - apps/client/src/app/pages/blog/2024/11/black-weeks-2024/black-weeks-2024-page.component.ts - 15 - - - apps/client/src/app/pages/faq/overview/faq-overview-page.component.ts - 14 - - - apps/client/src/app/pages/pricing/pricing-page.component.ts - 41 - - - apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 25 - - - - about - a-propos - snake-case - - apps/client/src/app/app.component.ts - 64 - - - apps/client/src/app/app.component.ts - 66 - - - apps/client/src/app/app.component.ts - 70 - - - apps/client/src/app/app.component.ts - 74 - - - apps/client/src/app/components/header/header.component.ts - 81 - - - apps/client/src/app/components/header/header.component.ts - 86 - - - apps/client/src/app/core/paths.ts - 2 - - - apps/client/src/app/pages/about/about-page.component.ts - 45 - - - apps/client/src/app/pages/about/about-page.component.ts - 50 - - - apps/client/src/app/pages/about/about-page.component.ts - 55 - - - apps/client/src/app/pages/about/about-page.component.ts - 63 - - - apps/client/src/app/pages/about/about-page.component.ts - 74 - - - apps/client/src/app/pages/blog/2023/08/ghostfolio-joins-oss-friends/ghostfolio-joins-oss-friends-page.component.ts - 14 - - - apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts - 13 - - - apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts - 15 - - - apps/client/src/app/pages/blog/2023/09/hacktoberfest-2023/hacktoberfest-2023-page.component.ts - 13 - - - apps/client/src/app/pages/blog/2023/11/hacktoberfest-2023-debriefing/hacktoberfest-2023-debriefing-page.component.ts - 13 - - - apps/client/src/app/pages/blog/2024/09/hacktoberfest-2024/hacktoberfest-2024-page.component.ts - 13 - - - apps/client/src/app/pages/landing/landing-page.component.ts - 26 - - - apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts - 18 - - - apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 24 - - - - privacy-policy - politique-de-confidentialite - snake-case - - apps/client/src/app/app.component.ts - 75 - - - apps/client/src/app/core/paths.ts - 8 - - - apps/client/src/app/pages/about/about-page.component.ts - 63 - - - - license - licence - snake-case - - apps/client/src/app/app.component.ts - 71 - - - apps/client/src/app/core/paths.ts - 5 - - - apps/client/src/app/pages/about/about-page.component.ts - 55 - - - - markets - marches - snake-case apps/client/src/app/app.component.ts 79 @@ -5452,23 +5260,215 @@ apps/client/src/app/core/paths.ts - 6 + 4 - apps/client/src/app/pages/blog/2022/08/500-stars-on-github/500-stars-on-github-page.component.ts + apps/client/src/app/pages/about/overview/about-overview-page.component.ts + 21 + + + apps/client/src/app/pages/blog/2022/11/black-friday-2022/black-friday-2022-page.component.ts + 14 + + + apps/client/src/app/pages/blog/2023/03/1000-stars-on-github/1000-stars-on-github-page.component.ts + 12 + + + apps/client/src/app/pages/blog/2023/05/unlock-your-financial-potential-with-ghostfolio/unlock-your-financial-potential-with-ghostfolio-page.component.ts + 12 + + + apps/client/src/app/pages/blog/2023/07/exploring-the-path-to-fire/exploring-the-path-to-fire-page.component.ts + 12 + + + apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts + 17 + + + apps/client/src/app/pages/blog/2023/11/black-week-2023/black-week-2023-page.component.ts + 14 + + + apps/client/src/app/pages/blog/2023/11/hacktoberfest-2023-debriefing/hacktoberfest-2023-debriefing-page.component.ts + 13 + + + apps/client/src/app/pages/blog/2024/11/black-weeks-2024/black-weeks-2024-page.component.ts + 14 + + + apps/client/src/app/pages/faq/overview/faq-overview-page.component.ts + 15 + + + apps/client/src/app/pages/pricing/pricing-page.component.ts + 42 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 24 + + + + about + a-propos + snake-case + + apps/client/src/app/app.component.ts + 65 + + + apps/client/src/app/app.component.ts + 67 + + + apps/client/src/app/app.component.ts + 71 + + + apps/client/src/app/app.component.ts + 75 + + + apps/client/src/app/components/header/header.component.ts + 82 + + + apps/client/src/app/components/header/header.component.ts + 87 + + + apps/client/src/app/core/paths.ts + 2 + + + apps/client/src/app/pages/about/about-page.component.ts + 46 + + + apps/client/src/app/pages/about/about-page.component.ts + 51 + + + apps/client/src/app/pages/about/about-page.component.ts + 56 + + + apps/client/src/app/pages/about/about-page.component.ts + 64 + + + apps/client/src/app/pages/about/about-page.component.ts + 75 + + + apps/client/src/app/pages/blog/2023/08/ghostfolio-joins-oss-friends/ghostfolio-joins-oss-friends-page.component.ts 13 apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts - 19 + 12 - apps/client/src/app/pages/faq/saas/saas-page.component.ts + apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts 14 + + apps/client/src/app/pages/blog/2023/09/hacktoberfest-2023/hacktoberfest-2023-page.component.ts + 12 + + + apps/client/src/app/pages/blog/2023/11/hacktoberfest-2023-debriefing/hacktoberfest-2023-debriefing-page.component.ts + 12 + + + apps/client/src/app/pages/blog/2024/09/hacktoberfest-2024/hacktoberfest-2024-page.component.ts + 12 + + + apps/client/src/app/pages/landing/landing-page.component.ts + 27 + + + apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts + 19 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 23 + + + + privacy-policy + politique-de-confidentialite + snake-case + + apps/client/src/app/app.component.ts + 76 + + + apps/client/src/app/core/paths.ts + 8 + + + apps/client/src/app/pages/about/about-page.component.ts + 64 + + + + license + licence + snake-case + + apps/client/src/app/app.component.ts + 72 + + + apps/client/src/app/core/paths.ts + 5 + + + apps/client/src/app/pages/about/about-page.component.ts + 56 + + + + markets + marches + snake-case + + apps/client/src/app/app.component.ts + 80 + + + apps/client/src/app/components/header/header.component.ts + 84 + + + apps/client/src/app/components/header/header.component.ts + 89 + + + apps/client/src/app/core/paths.ts + 6 + + + apps/client/src/app/pages/blog/2022/08/500-stars-on-github/500-stars-on-github-page.component.ts + 12 + + + apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts + 18 + + + apps/client/src/app/pages/faq/saas/saas-page.component.ts + 15 + apps/client/src/app/pages/resources/overview/resources-overview.component.ts - 31 + 32 apps/client/src/app/pages/resources/resources-page-routing.module.ts @@ -5481,27 +5481,27 @@ snake-case apps/client/src/app/app.component.ts - 80 + 81 apps/client/src/app/components/admin-settings/admin-settings.component.ts - 73 + 74 apps/client/src/app/components/header/header.component.ts - 84 + 85 apps/client/src/app/components/header/header.component.ts - 89 + 90 apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.component.ts - 16 + 17 apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 42 + 43 apps/client/src/app/core/http-response.interceptor.ts @@ -5513,43 +5513,43 @@ apps/client/src/app/pages/blog/2021/07/hallo-ghostfolio/hallo-ghostfolio-page.component.ts - 13 + 12 apps/client/src/app/pages/blog/2021/07/hello-ghostfolio/hello-ghostfolio-page.component.ts - 13 + 12 apps/client/src/app/pages/blog/2022/01/first-months-in-open-source/first-months-in-open-source-page.component.ts - 13 + 12 apps/client/src/app/pages/blog/2022/08/500-stars-on-github/500-stars-on-github-page.component.ts - 14 + 13 apps/client/src/app/pages/blog/2022/11/black-friday-2022/black-friday-2022-page.component.ts - 16 - - - apps/client/src/app/pages/blog/2023/03/1000-stars-on-github/1000-stars-on-github-page.component.ts - 14 - - - apps/client/src/app/pages/blog/2023/11/black-week-2023/black-week-2023-page.component.ts - 16 - - - apps/client/src/app/pages/blog/2024/11/black-weeks-2024/black-weeks-2024-page.component.ts - 16 - - - apps/client/src/app/pages/faq/saas/saas-page.component.ts 15 + + apps/client/src/app/pages/blog/2023/03/1000-stars-on-github/1000-stars-on-github-page.component.ts + 13 + + + apps/client/src/app/pages/blog/2023/11/black-week-2023/black-week-2023-page.component.ts + 15 + + + apps/client/src/app/pages/blog/2024/11/black-weeks-2024/black-weeks-2024-page.component.ts + 15 + + + apps/client/src/app/pages/faq/saas/saas-page.component.ts + 16 + libs/ui/src/lib/membership-card/membership-card.component.ts - 31 + 30 @@ -5558,11 +5558,11 @@ snake-case apps/client/src/app/app.component.ts - 81 + 82 apps/client/src/app/components/header/header.component.ts - 90 + 91 apps/client/src/app/core/auth.guard.ts @@ -5574,19 +5574,19 @@ apps/client/src/app/pages/faq/saas/saas-page.component.ts - 16 + 17 apps/client/src/app/pages/features/features-page.component.ts - 29 + 28 apps/client/src/app/pages/landing/landing-page.component.ts - 27 + 28 apps/client/src/app/pages/pricing/pricing-page.component.ts - 42 + 43 @@ -5595,15 +5595,15 @@ snake-case apps/client/src/app/app.component.ts - 82 + 83 apps/client/src/app/components/header/header.component.ts - 85 + 86 apps/client/src/app/components/header/header.component.ts - 91 + 92 apps/client/src/app/core/paths.ts @@ -5611,47 +5611,47 @@ apps/client/src/app/pages/blog/2021/07/hallo-ghostfolio/hallo-ghostfolio-page.component.ts - 14 - - - apps/client/src/app/pages/blog/2021/07/hello-ghostfolio/hello-ghostfolio-page.component.ts - 14 - - - apps/client/src/app/pages/blog/2022/07/how-do-i-get-my-finances-in-order/how-do-i-get-my-finances-in-order-page.component.ts 13 + + apps/client/src/app/pages/blog/2021/07/hello-ghostfolio/hello-ghostfolio-page.component.ts + 13 + + + apps/client/src/app/pages/blog/2022/07/how-do-i-get-my-finances-in-order/how-do-i-get-my-finances-in-order-page.component.ts + 12 + apps/client/src/app/pages/blog/2023/05/unlock-your-financial-potential-with-ghostfolio/unlock-your-financial-potential-with-ghostfolio-page.component.ts - 14 + 13 apps/client/src/app/pages/features/features-page.component.ts - 30 + 29 apps/client/src/app/pages/resources/glossary/resources-glossary.component.ts - 16 + 17 apps/client/src/app/pages/resources/overview/resources-overview.component.ts - 21 + 22 apps/client/src/app/pages/resources/overview/resources-overview.component.ts - 30 + 31 apps/client/src/app/pages/resources/overview/resources-overview.component.ts - 39 + 40 apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts - 14 + 15 apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 27 + 26 @@ -5727,7 +5727,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts - 13 + 14 @@ -5759,7 +5759,7 @@ Suisse apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 60 + 59 libs/ui/src/lib/i18n.ts @@ -5771,7 +5771,7 @@ Mondial apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 61 + 60 libs/ui/src/lib/i18n.ts @@ -5883,7 +5883,7 @@ Confirmez la suppression de ce tag ? apps/client/src/app/components/admin-tag/admin-tag.component.ts - 86 + 87 @@ -5987,7 +5987,7 @@ apps/client/src/app/pages/user-account/user-account-page.component.ts - 40 + 41 @@ -5999,7 +5999,7 @@ apps/client/src/app/pages/user-account/user-account-page.component.ts - 46 + 47 @@ -6007,7 +6007,7 @@ Chercher un actif... libs/ui/src/lib/assistant/assistant.component.ts - 144 + 143 @@ -6107,7 +6107,7 @@ Oops, échec du transfert de la cash balance. apps/client/src/app/pages/accounts/accounts-page.component.ts - 317 + 318 @@ -6139,7 +6139,7 @@ Oops! Echec du parsing des données historiques. libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.ts - 263 + 262 @@ -6147,7 +6147,7 @@ Confirmer la suppresion de ce message système? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 181 + 182 @@ -6203,7 +6203,7 @@ Voulez-vous vraiment supprimer ce solde de compte ? libs/ui/src/lib/account-balances/account-balances.component.ts - 110 + 109 @@ -6211,7 +6211,7 @@ est une devise non valide ! apps/client/src/app/components/admin-overview/admin-overview.component.ts - 136 + 137 @@ -6227,7 +6227,7 @@ Le prix actuel du marché est apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 325 + 326 @@ -6275,7 +6275,7 @@ Oops! Impossible d'accorder l'accès. apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.component.ts - 90 + 91 @@ -6295,7 +6295,7 @@ apps/client/src/app/pages/admin/admin-page.component.ts - 42 + 43 @@ -6303,7 +6303,7 @@ Les données du marché sont retardées de apps/client/src/app/components/portfolio-performance/portfolio-performance.component.ts - 86 + 87 @@ -6311,15 +6311,15 @@ Investissement apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 41 + 42 apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 55 + 56 apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 89 + 88 @@ -6375,7 +6375,7 @@ Week to date libs/ui/src/lib/assistant/assistant.component.ts - 223 + 222 @@ -6383,7 +6383,7 @@ WTD libs/ui/src/lib/assistant/assistant.component.ts - 223 + 222 @@ -6391,7 +6391,7 @@ Month to date libs/ui/src/lib/assistant/assistant.component.ts - 227 + 226 @@ -6399,7 +6399,7 @@ MTD libs/ui/src/lib/assistant/assistant.component.ts - 227 + 226 @@ -6407,7 +6407,7 @@ Year to date libs/ui/src/lib/assistant/assistant.component.ts - 231 + 230 @@ -6451,7 +6451,7 @@ année libs/ui/src/lib/assistant/assistant.component.ts - 235 + 234 @@ -6459,7 +6459,7 @@ années libs/ui/src/lib/assistant/assistant.component.ts - 257 + 256 @@ -6483,7 +6483,7 @@ Général apps/client/src/app/pages/faq/faq-page.component.ts - 36 + 37 @@ -6491,7 +6491,7 @@ Cloud apps/client/src/app/pages/faq/faq-page.component.ts - 41 + 42 apps/client/src/app/pages/faq/saas/saas-page-routing.module.ts @@ -6503,7 +6503,7 @@ Self-Hosting apps/client/src/app/pages/faq/faq-page.component.ts - 47 + 48 apps/client/src/app/pages/faq/self-hosting/self-hosting-page-routing.module.ts @@ -6515,7 +6515,7 @@ self-hosting apps/client/src/app/pages/faq/faq-page.component.ts - 48 + 49 @@ -6551,7 +6551,7 @@ Actif apps/client/src/app/components/home-holdings/home-holdings.component.ts - 35 + 36 @@ -6559,7 +6559,7 @@ Clôturé apps/client/src/app/components/home-holdings/home-holdings.component.ts - 36 + 37 @@ -6647,7 +6647,7 @@ Confirmer la suppresion de votre compte Ghostfolio ? apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 172 + 173 @@ -6695,7 +6695,7 @@ Oops! Une erreur s'est produite lors de la configuration de l'authentification biométrique. apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 300 + 301 @@ -6711,7 +6711,7 @@ Benchmarks apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 80 + 81 @@ -6767,7 +6767,7 @@ Alternative apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 83 + 82 @@ -6775,7 +6775,7 @@ App apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 84 + 83 @@ -6783,7 +6783,7 @@ Budget apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 85 + 84 @@ -6791,7 +6791,7 @@ Communauté apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 86 + 85 @@ -6799,7 +6799,7 @@ Family Office apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 87 + 86 @@ -6807,7 +6807,7 @@ Investisseur apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 90 + 89 @@ -6815,7 +6815,7 @@ Open Source apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 91 + 90 @@ -6823,7 +6823,7 @@ Gestion de Patrimoine apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 93 + 92 @@ -6831,7 +6831,7 @@ Confidentialité apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 94 + 93 @@ -6839,7 +6839,7 @@ Logiciels apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 96 + 95 @@ -6847,7 +6847,7 @@ Outils apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 97 + 96 @@ -6855,7 +6855,7 @@ Expérience Utilisateur apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 98 + 97 @@ -6863,7 +6863,7 @@ Patrimoine apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 99 + 98 @@ -6871,7 +6871,7 @@ Gestion de Patrimoine apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 100 + 99 @@ -7023,7 +7023,7 @@ Erreur apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 316 + 317 @@ -7395,7 +7395,7 @@ apps/client/src/app/pages/resources/resources-page.component.ts - 31 + 32 @@ -7407,7 +7407,7 @@ apps/client/src/app/pages/resources/resources-page.component.ts - 21 + 22 @@ -7416,7 +7416,7 @@ snake-case apps/client/src/app/pages/resources/overview/resources-overview.component.ts - 22 + 23 apps/client/src/app/pages/resources/resources-page-routing.module.ts @@ -7429,7 +7429,7 @@ snake-case apps/client/src/app/pages/resources/overview/resources-overview.component.ts - 40 + 41 apps/client/src/app/pages/resources/resources-page-routing.module.ts @@ -7489,19 +7489,15 @@ Do you really want to delete the API key? apps/client/src/app/components/admin-settings/admin-settings.component.ts - 92 + 93 Please enter your Ghostfolio API key: Please enter your Ghostfolio API key: - - apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/ghostfolio-premium-api-dialog.component.ts - 45 - apps/client/src/app/pages/api/api-page.component.ts - 41 + 40 @@ -7512,12 +7508,12 @@ 32 - + I have an API key I have an API key apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/ghostfolio-premium-api-dialog.html - 42 + 43 @@ -7533,7 +7529,7 @@ Could not generate an API key apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 138 + 139 @@ -7541,7 +7537,7 @@ Set this API key in your self-hosted environment: apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 153 + 154 @@ -7549,7 +7545,7 @@ Ghostfolio Premium Data Provider API Key apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 156 + 157 @@ -7557,7 +7553,7 @@ Do you really want to generate a new API key? apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 161 + 162 @@ -7605,7 +7601,7 @@ Save apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts - 61 + 62 @@ -7621,7 +7617,7 @@ Me apps/client/src/app/components/user-account-access/user-account-access.component.ts - 134 + 135 @@ -7632,6 +7628,14 @@ 3 + + Please enter your Ghostfolio API key. + Please enter your Ghostfolio API key. + + apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/ghostfolio-premium-api-dialog.component.ts + 59 + + diff --git a/apps/client/src/locales/messages.it.xlf b/apps/client/src/locales/messages.it.xlf index 172909d0..8423c6f6 100644 --- a/apps/client/src/locales/messages.it.xlf +++ b/apps/client/src/locales/messages.it.xlf @@ -75,7 +75,7 @@ Vuoi davvero revocare l’accesso concesso? apps/client/src/app/components/access-table/access-table.component.ts - 67 + 68 @@ -323,7 +323,7 @@ Vuoi davvero eliminare questo account? apps/client/src/app/components/accounts-table/accounts-table.component.ts - 106 + 107 @@ -623,7 +623,7 @@ Aggiungi una valuta: apps/client/src/app/components/admin-overview/admin-overview.component.ts - 125 + 126 @@ -631,7 +631,7 @@ Vuoi davvero eliminare questo buono? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 155 + 156 @@ -639,7 +639,7 @@ Vuoi davvero eliminare questa valuta? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 168 + 169 @@ -647,7 +647,7 @@ Vuoi davvero svuotare la cache? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 205 + 206 @@ -655,7 +655,7 @@ Imposta il messaggio di sistema: apps/client/src/app/components/admin-overview/admin-overview.component.ts - 225 + 226 @@ -787,7 +787,7 @@ Vuoi davvero eliminare questo utente? apps/client/src/app/components/admin-users/admin-users.component.ts - 138 + 139 @@ -1043,7 +1043,7 @@ apps/client/src/app/components/header/header.component.ts - 230 + 231 @@ -1051,11 +1051,11 @@ Ops! Token di sicurezza errato. apps/client/src/app/components/header/header.component.ts - 245 + 246 apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 157 + 158 @@ -1103,7 +1103,7 @@ oppure apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/ghostfolio-premium-api-dialog.html - 35 + 36 apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html @@ -1311,7 +1311,7 @@ Inserisci l’importo del tuo fondo di emergenza: apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts - 63 + 64 @@ -1419,11 +1419,11 @@ Oggi apps/client/src/app/components/toggle/toggle.component.ts - 21 + 22 libs/ui/src/lib/assistant/assistant.component.ts - 221 + 220 @@ -1431,11 +1431,11 @@ anno corrente apps/client/src/app/components/toggle/toggle.component.ts - 22 + 23 libs/ui/src/lib/assistant/assistant.component.ts - 231 + 230 @@ -1443,11 +1443,11 @@ 1 anno apps/client/src/app/components/toggle/toggle.component.ts - 23 + 24 libs/ui/src/lib/assistant/assistant.component.ts - 235 + 234 @@ -1455,11 +1455,11 @@ 5 anni apps/client/src/app/components/toggle/toggle.component.ts - 24 + 25 libs/ui/src/lib/assistant/assistant.component.ts - 257 + 256 @@ -1467,11 +1467,11 @@ Massimo apps/client/src/app/components/toggle/toggle.component.ts - 25 + 26 libs/ui/src/lib/assistant/assistant.component.ts - 260 + 259 @@ -1479,7 +1479,7 @@ Bene apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 151 + 152 apps/client/src/app/core/http-response.interceptor.ts @@ -1487,7 +1487,7 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 143 + 144 @@ -1499,7 +1499,7 @@ apps/client/src/app/pages/about/about-page.component.ts - 44 + 45 apps/client/src/app/pages/about/overview/about-overview-page-routing.module.ts @@ -1643,7 +1643,7 @@ Informativa sulla privacy apps/client/src/app/pages/about/about-page.component.ts - 62 + 63 apps/client/src/app/pages/about/privacy-policy/privacy-policy-page-routing.module.ts @@ -1658,12 +1658,12 @@ 33 - - Please enter your coupon code: - Inserisci il tuo codice del buono: + + Please enter your coupon code. + Inserisci il tuo codice del buono: apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 166 + 213 @@ -1671,7 +1671,7 @@ Impossibile riscattare il codice del buono apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 175 + 177 @@ -1679,7 +1679,7 @@ Il codice del buono è stato riscattato apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 188 + 190 @@ -1687,7 +1687,7 @@ Ricarica apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 189 + 191 @@ -1695,7 +1695,7 @@ Vuoi davvero rimuovere questo metodo di accesso? apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 246 + 247 @@ -1991,15 +1991,15 @@ Panoramica apps/client/src/app/pages/admin/admin-page.component.ts - 27 + 28 apps/client/src/app/pages/home/home-page.component.ts - 37 + 38 apps/client/src/app/pages/resources/resources-page.component.ts - 16 + 17 apps/client/src/app/pages/zen/zen-page-routing.module.ts @@ -2007,7 +2007,7 @@ apps/client/src/app/pages/zen/zen-page.component.ts - 34 + 35 @@ -2019,7 +2019,7 @@ apps/client/src/app/pages/home/home-page.component.ts - 52 + 53 apps/client/src/app/pages/markets/markets-page-routing.module.ts @@ -2031,7 +2031,7 @@ apps/client/src/app/pages/resources/resources-page.component.ts - 26 + 27 @@ -2043,7 +2043,7 @@ apps/client/src/app/pages/portfolio/portfolio-page.component.ts - 44 + 45 @@ -2131,7 +2131,7 @@ apps/client/src/app/pages/portfolio/portfolio-page.component.ts - 34 + 35 @@ -2203,11 +2203,11 @@ apps/client/src/app/pages/home/home-page.component.ts - 42 + 43 apps/client/src/app/pages/zen/zen-page.component.ts - 39 + 40 @@ -2371,7 +2371,7 @@ apps/client/src/app/pages/portfolio/portfolio-page.component.ts - 39 + 40 @@ -2379,7 +2379,7 @@ Importazione dei dati... apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 124 + 125 @@ -2387,7 +2387,7 @@ L’importazione è stata completata apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 132 + 133 @@ -2403,7 +2403,7 @@ Portafoglio apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.ts - 116 + 117 apps/client/src/app/pages/portfolio/portfolio-page-routing.module.ts @@ -2411,7 +2411,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 95 + 94 @@ -2531,7 +2531,7 @@ Importa le attività apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 45 + 46 @@ -2579,7 +2579,7 @@ Vuoi davvero eliminare questa attività? libs/ui/src/lib/activities-table/activities-table.component.ts - 229 + 228 @@ -2655,7 +2655,7 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 140 + 141 @@ -2671,7 +2671,7 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 142 + 143 @@ -2807,7 +2807,7 @@ Risparmio libs/ui/src/lib/fire-calculator/fire-calculator.component.ts - 381 + 380 @@ -2815,7 +2815,7 @@ Interesse libs/ui/src/lib/fire-calculator/fire-calculator.component.ts - 371 + 370 libs/ui/src/lib/i18n.ts @@ -2827,7 +2827,7 @@ Deposito libs/ui/src/lib/fire-calculator/fire-calculator.component.ts - 361 + 360 @@ -2835,7 +2835,7 @@ Mensile apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 49 + 50 @@ -2859,7 +2859,7 @@ Paura apps/client/src/app/components/home-market/home-market.component.ts - 27 + 28 libs/ui/src/lib/i18n.ts @@ -2871,7 +2871,7 @@ Avidità apps/client/src/app/components/home-market/home-market.component.ts - 28 + 29 libs/ui/src/lib/i18n.ts @@ -2883,7 +2883,7 @@ Filtra per... apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 328 + 329 @@ -2919,7 +2919,7 @@ Benchmark apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.ts - 128 + 129 @@ -2951,7 +2951,7 @@ Auto apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 38 + 39 @@ -2991,7 +2991,7 @@ Importo totale apps/client/src/app/components/investment-chart/investment-chart.component.ts - 140 + 141 @@ -3007,7 +3007,7 @@ Tasso di risparmio apps/client/src/app/components/investment-chart/investment-chart.component.ts - 199 + 200 @@ -3155,7 +3155,7 @@ libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 403 + 402 @@ -3163,11 +3163,11 @@ Nessun dato disponibile libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 405 + 404 libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 418 + 417 @@ -3315,7 +3315,7 @@ Dividendi apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 37 + 38 libs/ui/src/lib/i18n.ts @@ -3351,7 +3351,7 @@ Convalida dei dati... apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 238 + 239 @@ -3379,7 +3379,7 @@ apps/client/src/app/pages/admin/admin-page.component.ts - 37 + 38 @@ -3391,7 +3391,7 @@ apps/client/src/app/pages/admin/admin-page.component.ts - 47 + 48 @@ -3403,7 +3403,7 @@ apps/client/src/app/pages/home/home-page.component.ts - 47 + 48 @@ -3431,7 +3431,7 @@ Annuale apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 50 + 51 @@ -3439,7 +3439,7 @@ Importa i dividendi apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 86 + 87 @@ -3951,7 +3951,7 @@ Vuoi davvero eliminare tutte le tue attività? libs/ui/src/lib/activities-table/activities-table.component.ts - 219 + 218 @@ -3999,7 +3999,7 @@ Vuoi davvero eliminare questa piattaforma? apps/client/src/app/components/admin-platform/admin-platform.component.ts - 86 + 87 @@ -4059,7 +4059,7 @@ apps/client/src/app/pages/admin/admin-page.component.ts - 32 + 33 apps/client/src/app/pages/user-account/user-account-page-routing.module.ts @@ -4067,7 +4067,7 @@ apps/client/src/app/pages/user-account/user-account-page.component.ts - 35 + 36 @@ -4235,7 +4235,7 @@ Changelog apps/client/src/app/pages/about/about-page.component.ts - 49 + 50 apps/client/src/app/pages/about/changelog/changelog-page-routing.module.ts @@ -4247,7 +4247,7 @@ Licenza apps/client/src/app/pages/about/about-page.component.ts - 54 + 55 apps/client/src/app/pages/about/license/license-page-routing.module.ts @@ -4615,7 +4615,7 @@ ETF senza paesi apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 90 + 91 @@ -4623,7 +4623,7 @@ ETF senza settori apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 95 + 96 @@ -4855,7 +4855,7 @@ Valute apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 85 + 86 @@ -5216,7 +5216,7 @@ snake-case apps/client/src/app/app.component.ts - 77 + 78 apps/client/src/app/core/paths.ts @@ -5224,221 +5224,29 @@ apps/client/src/app/pages/about/overview/about-overview-page.component.ts - 19 + 20 apps/client/src/app/pages/faq/faq-page.component.ts - 37 + 38 apps/client/src/app/pages/faq/faq-page.component.ts - 42 + 43 apps/client/src/app/pages/faq/faq-page.component.ts - 48 + 49 apps/client/src/app/pages/resources/overview/resources-overview.component.ts - 14 + 15 features funzionalita snake-case - - apps/client/src/app/app.component.ts - 78 - - - apps/client/src/app/components/header/header.component.ts - 82 - - - apps/client/src/app/components/header/header.component.ts - 87 - - - apps/client/src/app/core/paths.ts - 4 - - - apps/client/src/app/pages/about/overview/about-overview-page.component.ts - 20 - - - apps/client/src/app/pages/blog/2022/11/black-friday-2022/black-friday-2022-page.component.ts - 15 - - - apps/client/src/app/pages/blog/2023/03/1000-stars-on-github/1000-stars-on-github-page.component.ts - 13 - - - apps/client/src/app/pages/blog/2023/05/unlock-your-financial-potential-with-ghostfolio/unlock-your-financial-potential-with-ghostfolio-page.component.ts - 13 - - - apps/client/src/app/pages/blog/2023/07/exploring-the-path-to-fire/exploring-the-path-to-fire-page.component.ts - 13 - - - apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts - 18 - - - apps/client/src/app/pages/blog/2023/11/black-week-2023/black-week-2023-page.component.ts - 15 - - - apps/client/src/app/pages/blog/2023/11/hacktoberfest-2023-debriefing/hacktoberfest-2023-debriefing-page.component.ts - 14 - - - apps/client/src/app/pages/blog/2024/11/black-weeks-2024/black-weeks-2024-page.component.ts - 15 - - - apps/client/src/app/pages/faq/overview/faq-overview-page.component.ts - 14 - - - apps/client/src/app/pages/pricing/pricing-page.component.ts - 41 - - - apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 25 - - - - about - informazioni-su - snake-case - - apps/client/src/app/app.component.ts - 64 - - - apps/client/src/app/app.component.ts - 66 - - - apps/client/src/app/app.component.ts - 70 - - - apps/client/src/app/app.component.ts - 74 - - - apps/client/src/app/components/header/header.component.ts - 81 - - - apps/client/src/app/components/header/header.component.ts - 86 - - - apps/client/src/app/core/paths.ts - 2 - - - apps/client/src/app/pages/about/about-page.component.ts - 45 - - - apps/client/src/app/pages/about/about-page.component.ts - 50 - - - apps/client/src/app/pages/about/about-page.component.ts - 55 - - - apps/client/src/app/pages/about/about-page.component.ts - 63 - - - apps/client/src/app/pages/about/about-page.component.ts - 74 - - - apps/client/src/app/pages/blog/2023/08/ghostfolio-joins-oss-friends/ghostfolio-joins-oss-friends-page.component.ts - 14 - - - apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts - 13 - - - apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts - 15 - - - apps/client/src/app/pages/blog/2023/09/hacktoberfest-2023/hacktoberfest-2023-page.component.ts - 13 - - - apps/client/src/app/pages/blog/2023/11/hacktoberfest-2023-debriefing/hacktoberfest-2023-debriefing-page.component.ts - 13 - - - apps/client/src/app/pages/blog/2024/09/hacktoberfest-2024/hacktoberfest-2024-page.component.ts - 13 - - - apps/client/src/app/pages/landing/landing-page.component.ts - 26 - - - apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts - 18 - - - apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 24 - - - - privacy-policy - informativa-sulla-privacy - snake-case - - apps/client/src/app/app.component.ts - 75 - - - apps/client/src/app/core/paths.ts - 8 - - - apps/client/src/app/pages/about/about-page.component.ts - 63 - - - - license - licenza - snake-case - - apps/client/src/app/app.component.ts - 71 - - - apps/client/src/app/core/paths.ts - 5 - - - apps/client/src/app/pages/about/about-page.component.ts - 55 - - - - markets - mercati - snake-case apps/client/src/app/app.component.ts 79 @@ -5453,23 +5261,215 @@ apps/client/src/app/core/paths.ts - 6 + 4 - apps/client/src/app/pages/blog/2022/08/500-stars-on-github/500-stars-on-github-page.component.ts + apps/client/src/app/pages/about/overview/about-overview-page.component.ts + 21 + + + apps/client/src/app/pages/blog/2022/11/black-friday-2022/black-friday-2022-page.component.ts + 14 + + + apps/client/src/app/pages/blog/2023/03/1000-stars-on-github/1000-stars-on-github-page.component.ts + 12 + + + apps/client/src/app/pages/blog/2023/05/unlock-your-financial-potential-with-ghostfolio/unlock-your-financial-potential-with-ghostfolio-page.component.ts + 12 + + + apps/client/src/app/pages/blog/2023/07/exploring-the-path-to-fire/exploring-the-path-to-fire-page.component.ts + 12 + + + apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts + 17 + + + apps/client/src/app/pages/blog/2023/11/black-week-2023/black-week-2023-page.component.ts + 14 + + + apps/client/src/app/pages/blog/2023/11/hacktoberfest-2023-debriefing/hacktoberfest-2023-debriefing-page.component.ts + 13 + + + apps/client/src/app/pages/blog/2024/11/black-weeks-2024/black-weeks-2024-page.component.ts + 14 + + + apps/client/src/app/pages/faq/overview/faq-overview-page.component.ts + 15 + + + apps/client/src/app/pages/pricing/pricing-page.component.ts + 42 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 24 + + + + about + informazioni-su + snake-case + + apps/client/src/app/app.component.ts + 65 + + + apps/client/src/app/app.component.ts + 67 + + + apps/client/src/app/app.component.ts + 71 + + + apps/client/src/app/app.component.ts + 75 + + + apps/client/src/app/components/header/header.component.ts + 82 + + + apps/client/src/app/components/header/header.component.ts + 87 + + + apps/client/src/app/core/paths.ts + 2 + + + apps/client/src/app/pages/about/about-page.component.ts + 46 + + + apps/client/src/app/pages/about/about-page.component.ts + 51 + + + apps/client/src/app/pages/about/about-page.component.ts + 56 + + + apps/client/src/app/pages/about/about-page.component.ts + 64 + + + apps/client/src/app/pages/about/about-page.component.ts + 75 + + + apps/client/src/app/pages/blog/2023/08/ghostfolio-joins-oss-friends/ghostfolio-joins-oss-friends-page.component.ts 13 apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts - 19 + 12 - apps/client/src/app/pages/faq/saas/saas-page.component.ts + apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts 14 + + apps/client/src/app/pages/blog/2023/09/hacktoberfest-2023/hacktoberfest-2023-page.component.ts + 12 + + + apps/client/src/app/pages/blog/2023/11/hacktoberfest-2023-debriefing/hacktoberfest-2023-debriefing-page.component.ts + 12 + + + apps/client/src/app/pages/blog/2024/09/hacktoberfest-2024/hacktoberfest-2024-page.component.ts + 12 + + + apps/client/src/app/pages/landing/landing-page.component.ts + 27 + + + apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts + 19 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 23 + + + + privacy-policy + informativa-sulla-privacy + snake-case + + apps/client/src/app/app.component.ts + 76 + + + apps/client/src/app/core/paths.ts + 8 + + + apps/client/src/app/pages/about/about-page.component.ts + 64 + + + + license + licenza + snake-case + + apps/client/src/app/app.component.ts + 72 + + + apps/client/src/app/core/paths.ts + 5 + + + apps/client/src/app/pages/about/about-page.component.ts + 56 + + + + markets + mercati + snake-case + + apps/client/src/app/app.component.ts + 80 + + + apps/client/src/app/components/header/header.component.ts + 84 + + + apps/client/src/app/components/header/header.component.ts + 89 + + + apps/client/src/app/core/paths.ts + 6 + + + apps/client/src/app/pages/blog/2022/08/500-stars-on-github/500-stars-on-github-page.component.ts + 12 + + + apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts + 18 + + + apps/client/src/app/pages/faq/saas/saas-page.component.ts + 15 + apps/client/src/app/pages/resources/overview/resources-overview.component.ts - 31 + 32 apps/client/src/app/pages/resources/resources-page-routing.module.ts @@ -5482,27 +5482,27 @@ snake-case apps/client/src/app/app.component.ts - 80 + 81 apps/client/src/app/components/admin-settings/admin-settings.component.ts - 73 + 74 apps/client/src/app/components/header/header.component.ts - 84 + 85 apps/client/src/app/components/header/header.component.ts - 89 + 90 apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.component.ts - 16 + 17 apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 42 + 43 apps/client/src/app/core/http-response.interceptor.ts @@ -5514,43 +5514,43 @@ apps/client/src/app/pages/blog/2021/07/hallo-ghostfolio/hallo-ghostfolio-page.component.ts - 13 + 12 apps/client/src/app/pages/blog/2021/07/hello-ghostfolio/hello-ghostfolio-page.component.ts - 13 + 12 apps/client/src/app/pages/blog/2022/01/first-months-in-open-source/first-months-in-open-source-page.component.ts - 13 + 12 apps/client/src/app/pages/blog/2022/08/500-stars-on-github/500-stars-on-github-page.component.ts - 14 + 13 apps/client/src/app/pages/blog/2022/11/black-friday-2022/black-friday-2022-page.component.ts - 16 - - - apps/client/src/app/pages/blog/2023/03/1000-stars-on-github/1000-stars-on-github-page.component.ts - 14 - - - apps/client/src/app/pages/blog/2023/11/black-week-2023/black-week-2023-page.component.ts - 16 - - - apps/client/src/app/pages/blog/2024/11/black-weeks-2024/black-weeks-2024-page.component.ts - 16 - - - apps/client/src/app/pages/faq/saas/saas-page.component.ts 15 + + apps/client/src/app/pages/blog/2023/03/1000-stars-on-github/1000-stars-on-github-page.component.ts + 13 + + + apps/client/src/app/pages/blog/2023/11/black-week-2023/black-week-2023-page.component.ts + 15 + + + apps/client/src/app/pages/blog/2024/11/black-weeks-2024/black-weeks-2024-page.component.ts + 15 + + + apps/client/src/app/pages/faq/saas/saas-page.component.ts + 16 + libs/ui/src/lib/membership-card/membership-card.component.ts - 31 + 30 @@ -5559,11 +5559,11 @@ snake-case apps/client/src/app/app.component.ts - 81 + 82 apps/client/src/app/components/header/header.component.ts - 90 + 91 apps/client/src/app/core/auth.guard.ts @@ -5575,19 +5575,19 @@ apps/client/src/app/pages/faq/saas/saas-page.component.ts - 16 + 17 apps/client/src/app/pages/features/features-page.component.ts - 29 + 28 apps/client/src/app/pages/landing/landing-page.component.ts - 27 + 28 apps/client/src/app/pages/pricing/pricing-page.component.ts - 42 + 43 @@ -5596,15 +5596,15 @@ snake-case apps/client/src/app/app.component.ts - 82 + 83 apps/client/src/app/components/header/header.component.ts - 85 + 86 apps/client/src/app/components/header/header.component.ts - 91 + 92 apps/client/src/app/core/paths.ts @@ -5612,47 +5612,47 @@ apps/client/src/app/pages/blog/2021/07/hallo-ghostfolio/hallo-ghostfolio-page.component.ts - 14 - - - apps/client/src/app/pages/blog/2021/07/hello-ghostfolio/hello-ghostfolio-page.component.ts - 14 - - - apps/client/src/app/pages/blog/2022/07/how-do-i-get-my-finances-in-order/how-do-i-get-my-finances-in-order-page.component.ts 13 + + apps/client/src/app/pages/blog/2021/07/hello-ghostfolio/hello-ghostfolio-page.component.ts + 13 + + + apps/client/src/app/pages/blog/2022/07/how-do-i-get-my-finances-in-order/how-do-i-get-my-finances-in-order-page.component.ts + 12 + apps/client/src/app/pages/blog/2023/05/unlock-your-financial-potential-with-ghostfolio/unlock-your-financial-potential-with-ghostfolio-page.component.ts - 14 + 13 apps/client/src/app/pages/features/features-page.component.ts - 30 + 29 apps/client/src/app/pages/resources/glossary/resources-glossary.component.ts - 16 + 17 apps/client/src/app/pages/resources/overview/resources-overview.component.ts - 21 + 22 apps/client/src/app/pages/resources/overview/resources-overview.component.ts - 30 + 31 apps/client/src/app/pages/resources/overview/resources-overview.component.ts - 39 + 40 apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts - 14 + 15 apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 27 + 26 @@ -5728,7 +5728,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts - 13 + 14 @@ -5760,7 +5760,7 @@ Svizzera apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 60 + 59 libs/ui/src/lib/i18n.ts @@ -5772,7 +5772,7 @@ Globale apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 61 + 60 libs/ui/src/lib/i18n.ts @@ -5884,7 +5884,7 @@ Sei sicuro di voler eliminare questo tag? apps/client/src/app/components/admin-tag/admin-tag.component.ts - 86 + 87 @@ -5988,7 +5988,7 @@ apps/client/src/app/pages/user-account/user-account-page.component.ts - 40 + 41 @@ -6000,7 +6000,7 @@ apps/client/src/app/pages/user-account/user-account-page.component.ts - 46 + 47 @@ -6008,7 +6008,7 @@ Trova possedimenti... libs/ui/src/lib/assistant/assistant.component.ts - 144 + 143 @@ -6108,7 +6108,7 @@ Ops, il trasferimento del saldo di cassa è fallito. apps/client/src/app/pages/accounts/accounts-page.component.ts - 317 + 318 @@ -6140,7 +6140,7 @@ Ops! Impossibile elaborare i dati storici. libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.ts - 263 + 262 @@ -6148,7 +6148,7 @@ Confermi di voler cancellare questo messaggio di sistema? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 181 + 182 @@ -6204,7 +6204,7 @@ Vuoi veramente elimnare il saldo di questo conto? libs/ui/src/lib/account-balances/account-balances.component.ts - 110 + 109 @@ -6212,7 +6212,7 @@ non è una valuta valida! apps/client/src/app/components/admin-overview/admin-overview.component.ts - 136 + 137 @@ -6228,7 +6228,7 @@ L'attuale prezzo di mercato è apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 325 + 326 @@ -6276,7 +6276,7 @@ Ops! Impossibile abilitare l'accesso. apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.component.ts - 90 + 91 @@ -6296,7 +6296,7 @@ apps/client/src/app/pages/admin/admin-page.component.ts - 42 + 43 @@ -6304,7 +6304,7 @@ I dati di mercato sono ritardati di apps/client/src/app/components/portfolio-performance/portfolio-performance.component.ts - 86 + 87 @@ -6312,15 +6312,15 @@ Investimento apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 41 + 42 apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 55 + 56 apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 89 + 88 @@ -6376,7 +6376,7 @@ Da inizio settimana libs/ui/src/lib/assistant/assistant.component.ts - 223 + 222 @@ -6384,7 +6384,7 @@ Settimana corrente libs/ui/src/lib/assistant/assistant.component.ts - 223 + 222 @@ -6392,7 +6392,7 @@ Da inizio mese libs/ui/src/lib/assistant/assistant.component.ts - 227 + 226 @@ -6400,7 +6400,7 @@ Mese corrente libs/ui/src/lib/assistant/assistant.component.ts - 227 + 226 @@ -6408,7 +6408,7 @@ Da inizio anno libs/ui/src/lib/assistant/assistant.component.ts - 231 + 230 @@ -6452,7 +6452,7 @@ anno libs/ui/src/lib/assistant/assistant.component.ts - 235 + 234 @@ -6460,7 +6460,7 @@ anni libs/ui/src/lib/assistant/assistant.component.ts - 257 + 256 @@ -6484,7 +6484,7 @@ Generale apps/client/src/app/pages/faq/faq-page.component.ts - 36 + 37 @@ -6492,7 +6492,7 @@ Cloud apps/client/src/app/pages/faq/faq-page.component.ts - 41 + 42 apps/client/src/app/pages/faq/saas/saas-page-routing.module.ts @@ -6504,7 +6504,7 @@ Self-Hosting apps/client/src/app/pages/faq/faq-page.component.ts - 47 + 48 apps/client/src/app/pages/faq/self-hosting/self-hosting-page-routing.module.ts @@ -6516,7 +6516,7 @@ self-hosting apps/client/src/app/pages/faq/faq-page.component.ts - 48 + 49 @@ -6552,7 +6552,7 @@ Attivo apps/client/src/app/components/home-holdings/home-holdings.component.ts - 35 + 36 @@ -6560,7 +6560,7 @@ Chiuso apps/client/src/app/components/home-holdings/home-holdings.component.ts - 36 + 37 @@ -6648,7 +6648,7 @@ Confermi di voler chiudere il tuo account Ghostfolio? apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 172 + 173 @@ -6696,7 +6696,7 @@ Ops! C'è stato un errore impostando l'autenticazione biometrica. apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 300 + 301 @@ -6712,7 +6712,7 @@ Benchmarks apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 80 + 81 @@ -6768,7 +6768,7 @@ Alternativa apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 83 + 82 @@ -6776,7 +6776,7 @@ App apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 84 + 83 @@ -6784,7 +6784,7 @@ Budgeting apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 85 + 84 @@ -6792,7 +6792,7 @@ Comunità apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 86 + 85 @@ -6800,7 +6800,7 @@ Ufficio familiare apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 87 + 86 @@ -6808,7 +6808,7 @@ Investitore apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 90 + 89 @@ -6816,7 +6816,7 @@ Open Source apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 91 + 90 @@ -6824,7 +6824,7 @@ Finanza Personale apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 93 + 92 @@ -6832,7 +6832,7 @@ Privacy apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 94 + 93 @@ -6840,7 +6840,7 @@ Software apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 96 + 95 @@ -6848,7 +6848,7 @@ Strumento apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 97 + 96 @@ -6856,7 +6856,7 @@ Esperienza Utente apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 98 + 97 @@ -6864,7 +6864,7 @@ Ricchezza apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 99 + 98 @@ -6872,7 +6872,7 @@ Gestione Patrimoniale apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 100 + 99 @@ -7024,7 +7024,7 @@ Errore apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 316 + 317 @@ -7396,7 +7396,7 @@ apps/client/src/app/pages/resources/resources-page.component.ts - 31 + 32 @@ -7408,7 +7408,7 @@ apps/client/src/app/pages/resources/resources-page.component.ts - 21 + 22 @@ -7417,7 +7417,7 @@ snake-case apps/client/src/app/pages/resources/overview/resources-overview.component.ts - 22 + 23 apps/client/src/app/pages/resources/resources-page-routing.module.ts @@ -7430,7 +7430,7 @@ snake-case apps/client/src/app/pages/resources/overview/resources-overview.component.ts - 40 + 41 apps/client/src/app/pages/resources/resources-page-routing.module.ts @@ -7490,19 +7490,15 @@ Do you really want to delete the API key? apps/client/src/app/components/admin-settings/admin-settings.component.ts - 92 + 93 Please enter your Ghostfolio API key: Please enter your Ghostfolio API key: - - apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/ghostfolio-premium-api-dialog.component.ts - 45 - apps/client/src/app/pages/api/api-page.component.ts - 41 + 40 @@ -7513,12 +7509,12 @@ 32 - + I have an API key I have an API key apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/ghostfolio-premium-api-dialog.html - 42 + 43 @@ -7534,7 +7530,7 @@ Could not generate an API key apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 138 + 139 @@ -7542,7 +7538,7 @@ Set this API key in your self-hosted environment: apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 153 + 154 @@ -7550,7 +7546,7 @@ Ghostfolio Premium Data Provider API Key apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 156 + 157 @@ -7558,7 +7554,7 @@ Do you really want to generate a new API key? apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 161 + 162 @@ -7606,7 +7602,7 @@ Save apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts - 61 + 62 @@ -7622,7 +7618,7 @@ Me apps/client/src/app/components/user-account-access/user-account-access.component.ts - 134 + 135 @@ -7633,6 +7629,14 @@ 3 + + Please enter your Ghostfolio API key. + Please enter your Ghostfolio API key. + + apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/ghostfolio-premium-api-dialog.component.ts + 59 + + diff --git a/apps/client/src/locales/messages.nl.xlf b/apps/client/src/locales/messages.nl.xlf index b13e4d66..71e3d1f5 100644 --- a/apps/client/src/locales/messages.nl.xlf +++ b/apps/client/src/locales/messages.nl.xlf @@ -74,7 +74,7 @@ Wil je deze verleende toegang echt intrekken? apps/client/src/app/components/access-table/access-table.component.ts - 67 + 68 @@ -322,7 +322,7 @@ Wil je deze rekening echt verwijderen? apps/client/src/app/components/accounts-table/accounts-table.component.ts - 106 + 107 @@ -622,7 +622,7 @@ Voeg een valuta toe: apps/client/src/app/components/admin-overview/admin-overview.component.ts - 125 + 126 @@ -630,7 +630,7 @@ Wil je deze coupon echt verwijderen? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 155 + 156 @@ -638,7 +638,7 @@ Wil je deze valuta echt verwijderen? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 168 + 169 @@ -646,7 +646,7 @@ Wil je echt de cache legen? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 205 + 206 @@ -654,7 +654,7 @@ Stel je systeemboodschap in: apps/client/src/app/components/admin-overview/admin-overview.component.ts - 225 + 226 @@ -786,7 +786,7 @@ Wilt je deze gebruiker echt verwijderen? apps/client/src/app/components/admin-users/admin-users.component.ts - 138 + 139 @@ -1042,7 +1042,7 @@ apps/client/src/app/components/header/header.component.ts - 230 + 231 @@ -1050,11 +1050,11 @@ Oeps! Onjuiste beveiligingstoken. apps/client/src/app/components/header/header.component.ts - 245 + 246 apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 157 + 158 @@ -1102,7 +1102,7 @@ of apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/ghostfolio-premium-api-dialog.html - 35 + 36 apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html @@ -1310,7 +1310,7 @@ Voer het bedrag van je noodfonds in: apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts - 63 + 64 @@ -1418,11 +1418,11 @@ Vandaag apps/client/src/app/components/toggle/toggle.component.ts - 21 + 22 libs/ui/src/lib/assistant/assistant.component.ts - 221 + 220 @@ -1430,11 +1430,11 @@ YTD apps/client/src/app/components/toggle/toggle.component.ts - 22 + 23 libs/ui/src/lib/assistant/assistant.component.ts - 231 + 230 @@ -1442,11 +1442,11 @@ 1J apps/client/src/app/components/toggle/toggle.component.ts - 23 + 24 libs/ui/src/lib/assistant/assistant.component.ts - 235 + 234 @@ -1454,11 +1454,11 @@ 5J apps/client/src/app/components/toggle/toggle.component.ts - 24 + 25 libs/ui/src/lib/assistant/assistant.component.ts - 257 + 256 @@ -1466,11 +1466,11 @@ Max apps/client/src/app/components/toggle/toggle.component.ts - 25 + 26 libs/ui/src/lib/assistant/assistant.component.ts - 260 + 259 @@ -1478,7 +1478,7 @@ Oké apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 151 + 152 apps/client/src/app/core/http-response.interceptor.ts @@ -1486,7 +1486,7 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 143 + 144 @@ -1498,7 +1498,7 @@ apps/client/src/app/pages/about/about-page.component.ts - 44 + 45 apps/client/src/app/pages/about/overview/about-overview-page-routing.module.ts @@ -1642,7 +1642,7 @@ Privacybeleid apps/client/src/app/pages/about/about-page.component.ts - 62 + 63 apps/client/src/app/pages/about/privacy-policy/privacy-policy-page-routing.module.ts @@ -1657,12 +1657,12 @@ 33 - - Please enter your coupon code: - Voer je couponcode in: + + Please enter your coupon code. + Voer je couponcode in: apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 166 + 213 @@ -1670,7 +1670,7 @@ Kon je kortingscode niet inwisselen apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 175 + 177 @@ -1678,7 +1678,7 @@ Je couponcode is ingewisseld apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 188 + 190 @@ -1686,7 +1686,7 @@ Herladen apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 189 + 191 @@ -1694,7 +1694,7 @@ Wil je deze aanmeldingsmethode echt verwijderen? apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 246 + 247 @@ -1990,15 +1990,15 @@ Overzicht apps/client/src/app/pages/admin/admin-page.component.ts - 27 + 28 apps/client/src/app/pages/home/home-page.component.ts - 37 + 38 apps/client/src/app/pages/resources/resources-page.component.ts - 16 + 17 apps/client/src/app/pages/zen/zen-page-routing.module.ts @@ -2006,7 +2006,7 @@ apps/client/src/app/pages/zen/zen-page.component.ts - 34 + 35 @@ -2018,7 +2018,7 @@ apps/client/src/app/pages/home/home-page.component.ts - 52 + 53 apps/client/src/app/pages/markets/markets-page-routing.module.ts @@ -2030,7 +2030,7 @@ apps/client/src/app/pages/resources/resources-page.component.ts - 26 + 27 @@ -2042,7 +2042,7 @@ apps/client/src/app/pages/portfolio/portfolio-page.component.ts - 44 + 45 @@ -2130,7 +2130,7 @@ apps/client/src/app/pages/portfolio/portfolio-page.component.ts - 34 + 35 @@ -2202,11 +2202,11 @@ apps/client/src/app/pages/home/home-page.component.ts - 42 + 43 apps/client/src/app/pages/zen/zen-page.component.ts - 39 + 40 @@ -2370,7 +2370,7 @@ apps/client/src/app/pages/portfolio/portfolio-page.component.ts - 39 + 40 @@ -2378,7 +2378,7 @@ Gegevens importeren... apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 124 + 125 @@ -2386,7 +2386,7 @@ Importeren is voltooid apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 132 + 133 @@ -2402,7 +2402,7 @@ Portefeuille apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.ts - 116 + 117 apps/client/src/app/pages/portfolio/portfolio-page-routing.module.ts @@ -2410,7 +2410,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 95 + 94 @@ -2530,7 +2530,7 @@ Activiteiten importeren apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 45 + 46 @@ -2578,7 +2578,7 @@ Wil je deze activiteit echt verwijderen? libs/ui/src/lib/activities-table/activities-table.component.ts - 229 + 228 @@ -2654,7 +2654,7 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 140 + 141 @@ -2670,7 +2670,7 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 142 + 143 @@ -2806,7 +2806,7 @@ Besparingen libs/ui/src/lib/fire-calculator/fire-calculator.component.ts - 381 + 380 @@ -2814,7 +2814,7 @@ Rente libs/ui/src/lib/fire-calculator/fire-calculator.component.ts - 371 + 370 libs/ui/src/lib/i18n.ts @@ -2826,7 +2826,7 @@ Storting libs/ui/src/lib/fire-calculator/fire-calculator.component.ts - 361 + 360 @@ -2834,7 +2834,7 @@ Maandelijks apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 49 + 50 @@ -2858,7 +2858,7 @@ Angst apps/client/src/app/components/home-market/home-market.component.ts - 27 + 28 libs/ui/src/lib/i18n.ts @@ -2870,7 +2870,7 @@ Hebzucht apps/client/src/app/components/home-market/home-market.component.ts - 28 + 29 libs/ui/src/lib/i18n.ts @@ -2882,7 +2882,7 @@ Filter op... apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 328 + 329 @@ -2918,7 +2918,7 @@ Benchmark apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.ts - 128 + 129 @@ -2950,7 +2950,7 @@ Automatisch apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 38 + 39 @@ -2990,7 +2990,7 @@ Totaalbedrag apps/client/src/app/components/investment-chart/investment-chart.component.ts - 140 + 141 @@ -3006,7 +3006,7 @@ Spaarrente apps/client/src/app/components/investment-chart/investment-chart.component.ts - 199 + 200 @@ -3154,7 +3154,7 @@ libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 403 + 402 @@ -3162,11 +3162,11 @@ Geen gegevens beschikbaar libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 405 + 404 libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 418 + 417 @@ -3314,7 +3314,7 @@ Dividend apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 37 + 38 libs/ui/src/lib/i18n.ts @@ -3350,7 +3350,7 @@ Gegevens valideren... apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 238 + 239 @@ -3378,7 +3378,7 @@ apps/client/src/app/pages/admin/admin-page.component.ts - 37 + 38 @@ -3390,7 +3390,7 @@ apps/client/src/app/pages/admin/admin-page.component.ts - 47 + 48 @@ -3402,7 +3402,7 @@ apps/client/src/app/pages/home/home-page.component.ts - 47 + 48 @@ -3430,7 +3430,7 @@ Jaarlijks apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 50 + 51 @@ -3438,7 +3438,7 @@ Importeer dividenden apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 86 + 87 @@ -3950,7 +3950,7 @@ Wil je echt al je activiteiten verwijderen? libs/ui/src/lib/activities-table/activities-table.component.ts - 219 + 218 @@ -3998,7 +3998,7 @@ Wil je dit platform echt verwijderen? apps/client/src/app/components/admin-platform/admin-platform.component.ts - 86 + 87 @@ -4058,7 +4058,7 @@ apps/client/src/app/pages/admin/admin-page.component.ts - 32 + 33 apps/client/src/app/pages/user-account/user-account-page-routing.module.ts @@ -4066,7 +4066,7 @@ apps/client/src/app/pages/user-account/user-account-page.component.ts - 35 + 36 @@ -4234,7 +4234,7 @@ Changelog apps/client/src/app/pages/about/about-page.component.ts - 49 + 50 apps/client/src/app/pages/about/changelog/changelog-page-routing.module.ts @@ -4246,7 +4246,7 @@ Licentie apps/client/src/app/pages/about/about-page.component.ts - 54 + 55 apps/client/src/app/pages/about/license/license-page-routing.module.ts @@ -4614,7 +4614,7 @@ ETF’s zonder Landen apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 90 + 91 @@ -4622,7 +4622,7 @@ ETF’s zonder Sectoren apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 95 + 96 @@ -4854,7 +4854,7 @@ Valuta apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 85 + 86 @@ -5215,7 +5215,7 @@ snake-case apps/client/src/app/app.component.ts - 77 + 78 apps/client/src/app/core/paths.ts @@ -5223,221 +5223,29 @@ apps/client/src/app/pages/about/overview/about-overview-page.component.ts - 19 + 20 apps/client/src/app/pages/faq/faq-page.component.ts - 37 + 38 apps/client/src/app/pages/faq/faq-page.component.ts - 42 + 43 apps/client/src/app/pages/faq/faq-page.component.ts - 48 + 49 apps/client/src/app/pages/resources/overview/resources-overview.component.ts - 14 + 15 features functionaliteiten snake-case - - apps/client/src/app/app.component.ts - 78 - - - apps/client/src/app/components/header/header.component.ts - 82 - - - apps/client/src/app/components/header/header.component.ts - 87 - - - apps/client/src/app/core/paths.ts - 4 - - - apps/client/src/app/pages/about/overview/about-overview-page.component.ts - 20 - - - apps/client/src/app/pages/blog/2022/11/black-friday-2022/black-friday-2022-page.component.ts - 15 - - - apps/client/src/app/pages/blog/2023/03/1000-stars-on-github/1000-stars-on-github-page.component.ts - 13 - - - apps/client/src/app/pages/blog/2023/05/unlock-your-financial-potential-with-ghostfolio/unlock-your-financial-potential-with-ghostfolio-page.component.ts - 13 - - - apps/client/src/app/pages/blog/2023/07/exploring-the-path-to-fire/exploring-the-path-to-fire-page.component.ts - 13 - - - apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts - 18 - - - apps/client/src/app/pages/blog/2023/11/black-week-2023/black-week-2023-page.component.ts - 15 - - - apps/client/src/app/pages/blog/2023/11/hacktoberfest-2023-debriefing/hacktoberfest-2023-debriefing-page.component.ts - 14 - - - apps/client/src/app/pages/blog/2024/11/black-weeks-2024/black-weeks-2024-page.component.ts - 15 - - - apps/client/src/app/pages/faq/overview/faq-overview-page.component.ts - 14 - - - apps/client/src/app/pages/pricing/pricing-page.component.ts - 41 - - - apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 25 - - - - about - over - snake-case - - apps/client/src/app/app.component.ts - 64 - - - apps/client/src/app/app.component.ts - 66 - - - apps/client/src/app/app.component.ts - 70 - - - apps/client/src/app/app.component.ts - 74 - - - apps/client/src/app/components/header/header.component.ts - 81 - - - apps/client/src/app/components/header/header.component.ts - 86 - - - apps/client/src/app/core/paths.ts - 2 - - - apps/client/src/app/pages/about/about-page.component.ts - 45 - - - apps/client/src/app/pages/about/about-page.component.ts - 50 - - - apps/client/src/app/pages/about/about-page.component.ts - 55 - - - apps/client/src/app/pages/about/about-page.component.ts - 63 - - - apps/client/src/app/pages/about/about-page.component.ts - 74 - - - apps/client/src/app/pages/blog/2023/08/ghostfolio-joins-oss-friends/ghostfolio-joins-oss-friends-page.component.ts - 14 - - - apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts - 13 - - - apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts - 15 - - - apps/client/src/app/pages/blog/2023/09/hacktoberfest-2023/hacktoberfest-2023-page.component.ts - 13 - - - apps/client/src/app/pages/blog/2023/11/hacktoberfest-2023-debriefing/hacktoberfest-2023-debriefing-page.component.ts - 13 - - - apps/client/src/app/pages/blog/2024/09/hacktoberfest-2024/hacktoberfest-2024-page.component.ts - 13 - - - apps/client/src/app/pages/landing/landing-page.component.ts - 26 - - - apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts - 18 - - - apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 24 - - - - privacy-policy - privacybeleid - snake-case - - apps/client/src/app/app.component.ts - 75 - - - apps/client/src/app/core/paths.ts - 8 - - - apps/client/src/app/pages/about/about-page.component.ts - 63 - - - - license - licentie - snake-case - - apps/client/src/app/app.component.ts - 71 - - - apps/client/src/app/core/paths.ts - 5 - - - apps/client/src/app/pages/about/about-page.component.ts - 55 - - - - markets - markten - snake-case apps/client/src/app/app.component.ts 79 @@ -5452,23 +5260,215 @@ apps/client/src/app/core/paths.ts - 6 + 4 - apps/client/src/app/pages/blog/2022/08/500-stars-on-github/500-stars-on-github-page.component.ts + apps/client/src/app/pages/about/overview/about-overview-page.component.ts + 21 + + + apps/client/src/app/pages/blog/2022/11/black-friday-2022/black-friday-2022-page.component.ts + 14 + + + apps/client/src/app/pages/blog/2023/03/1000-stars-on-github/1000-stars-on-github-page.component.ts + 12 + + + apps/client/src/app/pages/blog/2023/05/unlock-your-financial-potential-with-ghostfolio/unlock-your-financial-potential-with-ghostfolio-page.component.ts + 12 + + + apps/client/src/app/pages/blog/2023/07/exploring-the-path-to-fire/exploring-the-path-to-fire-page.component.ts + 12 + + + apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts + 17 + + + apps/client/src/app/pages/blog/2023/11/black-week-2023/black-week-2023-page.component.ts + 14 + + + apps/client/src/app/pages/blog/2023/11/hacktoberfest-2023-debriefing/hacktoberfest-2023-debriefing-page.component.ts + 13 + + + apps/client/src/app/pages/blog/2024/11/black-weeks-2024/black-weeks-2024-page.component.ts + 14 + + + apps/client/src/app/pages/faq/overview/faq-overview-page.component.ts + 15 + + + apps/client/src/app/pages/pricing/pricing-page.component.ts + 42 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 24 + + + + about + over + snake-case + + apps/client/src/app/app.component.ts + 65 + + + apps/client/src/app/app.component.ts + 67 + + + apps/client/src/app/app.component.ts + 71 + + + apps/client/src/app/app.component.ts + 75 + + + apps/client/src/app/components/header/header.component.ts + 82 + + + apps/client/src/app/components/header/header.component.ts + 87 + + + apps/client/src/app/core/paths.ts + 2 + + + apps/client/src/app/pages/about/about-page.component.ts + 46 + + + apps/client/src/app/pages/about/about-page.component.ts + 51 + + + apps/client/src/app/pages/about/about-page.component.ts + 56 + + + apps/client/src/app/pages/about/about-page.component.ts + 64 + + + apps/client/src/app/pages/about/about-page.component.ts + 75 + + + apps/client/src/app/pages/blog/2023/08/ghostfolio-joins-oss-friends/ghostfolio-joins-oss-friends-page.component.ts 13 apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts - 19 + 12 - apps/client/src/app/pages/faq/saas/saas-page.component.ts + apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts 14 + + apps/client/src/app/pages/blog/2023/09/hacktoberfest-2023/hacktoberfest-2023-page.component.ts + 12 + + + apps/client/src/app/pages/blog/2023/11/hacktoberfest-2023-debriefing/hacktoberfest-2023-debriefing-page.component.ts + 12 + + + apps/client/src/app/pages/blog/2024/09/hacktoberfest-2024/hacktoberfest-2024-page.component.ts + 12 + + + apps/client/src/app/pages/landing/landing-page.component.ts + 27 + + + apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts + 19 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 23 + + + + privacy-policy + privacybeleid + snake-case + + apps/client/src/app/app.component.ts + 76 + + + apps/client/src/app/core/paths.ts + 8 + + + apps/client/src/app/pages/about/about-page.component.ts + 64 + + + + license + licentie + snake-case + + apps/client/src/app/app.component.ts + 72 + + + apps/client/src/app/core/paths.ts + 5 + + + apps/client/src/app/pages/about/about-page.component.ts + 56 + + + + markets + markten + snake-case + + apps/client/src/app/app.component.ts + 80 + + + apps/client/src/app/components/header/header.component.ts + 84 + + + apps/client/src/app/components/header/header.component.ts + 89 + + + apps/client/src/app/core/paths.ts + 6 + + + apps/client/src/app/pages/blog/2022/08/500-stars-on-github/500-stars-on-github-page.component.ts + 12 + + + apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts + 18 + + + apps/client/src/app/pages/faq/saas/saas-page.component.ts + 15 + apps/client/src/app/pages/resources/overview/resources-overview.component.ts - 31 + 32 apps/client/src/app/pages/resources/resources-page-routing.module.ts @@ -5481,27 +5481,27 @@ snake-case apps/client/src/app/app.component.ts - 80 + 81 apps/client/src/app/components/admin-settings/admin-settings.component.ts - 73 + 74 apps/client/src/app/components/header/header.component.ts - 84 + 85 apps/client/src/app/components/header/header.component.ts - 89 + 90 apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.component.ts - 16 + 17 apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 42 + 43 apps/client/src/app/core/http-response.interceptor.ts @@ -5513,43 +5513,43 @@ apps/client/src/app/pages/blog/2021/07/hallo-ghostfolio/hallo-ghostfolio-page.component.ts - 13 + 12 apps/client/src/app/pages/blog/2021/07/hello-ghostfolio/hello-ghostfolio-page.component.ts - 13 + 12 apps/client/src/app/pages/blog/2022/01/first-months-in-open-source/first-months-in-open-source-page.component.ts - 13 + 12 apps/client/src/app/pages/blog/2022/08/500-stars-on-github/500-stars-on-github-page.component.ts - 14 + 13 apps/client/src/app/pages/blog/2022/11/black-friday-2022/black-friday-2022-page.component.ts - 16 - - - apps/client/src/app/pages/blog/2023/03/1000-stars-on-github/1000-stars-on-github-page.component.ts - 14 - - - apps/client/src/app/pages/blog/2023/11/black-week-2023/black-week-2023-page.component.ts - 16 - - - apps/client/src/app/pages/blog/2024/11/black-weeks-2024/black-weeks-2024-page.component.ts - 16 - - - apps/client/src/app/pages/faq/saas/saas-page.component.ts 15 + + apps/client/src/app/pages/blog/2023/03/1000-stars-on-github/1000-stars-on-github-page.component.ts + 13 + + + apps/client/src/app/pages/blog/2023/11/black-week-2023/black-week-2023-page.component.ts + 15 + + + apps/client/src/app/pages/blog/2024/11/black-weeks-2024/black-weeks-2024-page.component.ts + 15 + + + apps/client/src/app/pages/faq/saas/saas-page.component.ts + 16 + libs/ui/src/lib/membership-card/membership-card.component.ts - 31 + 30 @@ -5558,11 +5558,11 @@ snake-case apps/client/src/app/app.component.ts - 81 + 82 apps/client/src/app/components/header/header.component.ts - 90 + 91 apps/client/src/app/core/auth.guard.ts @@ -5574,19 +5574,19 @@ apps/client/src/app/pages/faq/saas/saas-page.component.ts - 16 + 17 apps/client/src/app/pages/features/features-page.component.ts - 29 + 28 apps/client/src/app/pages/landing/landing-page.component.ts - 27 + 28 apps/client/src/app/pages/pricing/pricing-page.component.ts - 42 + 43 @@ -5595,15 +5595,15 @@ snake-case apps/client/src/app/app.component.ts - 82 + 83 apps/client/src/app/components/header/header.component.ts - 85 + 86 apps/client/src/app/components/header/header.component.ts - 91 + 92 apps/client/src/app/core/paths.ts @@ -5611,47 +5611,47 @@ apps/client/src/app/pages/blog/2021/07/hallo-ghostfolio/hallo-ghostfolio-page.component.ts - 14 - - - apps/client/src/app/pages/blog/2021/07/hello-ghostfolio/hello-ghostfolio-page.component.ts - 14 - - - apps/client/src/app/pages/blog/2022/07/how-do-i-get-my-finances-in-order/how-do-i-get-my-finances-in-order-page.component.ts 13 + + apps/client/src/app/pages/blog/2021/07/hello-ghostfolio/hello-ghostfolio-page.component.ts + 13 + + + apps/client/src/app/pages/blog/2022/07/how-do-i-get-my-finances-in-order/how-do-i-get-my-finances-in-order-page.component.ts + 12 + apps/client/src/app/pages/blog/2023/05/unlock-your-financial-potential-with-ghostfolio/unlock-your-financial-potential-with-ghostfolio-page.component.ts - 14 + 13 apps/client/src/app/pages/features/features-page.component.ts - 30 + 29 apps/client/src/app/pages/resources/glossary/resources-glossary.component.ts - 16 + 17 apps/client/src/app/pages/resources/overview/resources-overview.component.ts - 21 + 22 apps/client/src/app/pages/resources/overview/resources-overview.component.ts - 30 + 31 apps/client/src/app/pages/resources/overview/resources-overview.component.ts - 39 + 40 apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts - 14 + 15 apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 27 + 26 @@ -5727,7 +5727,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts - 13 + 14 @@ -5759,7 +5759,7 @@ Zwitserland apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 60 + 59 libs/ui/src/lib/i18n.ts @@ -5771,7 +5771,7 @@ Wereldwijd apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 61 + 60 libs/ui/src/lib/i18n.ts @@ -5883,7 +5883,7 @@ Do you really want to delete this tag? apps/client/src/app/components/admin-tag/admin-tag.component.ts - 86 + 87 @@ -5987,7 +5987,7 @@ apps/client/src/app/pages/user-account/user-account-page.component.ts - 40 + 41 @@ -5999,7 +5999,7 @@ apps/client/src/app/pages/user-account/user-account-page.component.ts - 46 + 47 @@ -6007,7 +6007,7 @@ Find holding... libs/ui/src/lib/assistant/assistant.component.ts - 144 + 143 @@ -6107,7 +6107,7 @@ Oops, cash balance transfer has failed. apps/client/src/app/pages/accounts/accounts-page.component.ts - 317 + 318 @@ -6139,7 +6139,7 @@ Oops! Could not parse historical data. libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.ts - 263 + 262 @@ -6147,7 +6147,7 @@ Do you really want to delete this system message? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 181 + 182 @@ -6203,7 +6203,7 @@ Do you really want to delete this account balance? libs/ui/src/lib/account-balances/account-balances.component.ts - 110 + 109 @@ -6211,7 +6211,7 @@ is an invalid currency! apps/client/src/app/components/admin-overview/admin-overview.component.ts - 136 + 137 @@ -6227,7 +6227,7 @@ The current market price is apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 325 + 326 @@ -6275,7 +6275,7 @@ Oops! Could not grant access. apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.component.ts - 90 + 91 @@ -6295,7 +6295,7 @@ apps/client/src/app/pages/admin/admin-page.component.ts - 42 + 43 @@ -6303,7 +6303,7 @@ Market data is delayed for apps/client/src/app/components/portfolio-performance/portfolio-performance.component.ts - 86 + 87 @@ -6311,15 +6311,15 @@ Investment apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 41 + 42 apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 55 + 56 apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 89 + 88 @@ -6375,7 +6375,7 @@ Week to date libs/ui/src/lib/assistant/assistant.component.ts - 223 + 222 @@ -6383,7 +6383,7 @@ WTD libs/ui/src/lib/assistant/assistant.component.ts - 223 + 222 @@ -6391,7 +6391,7 @@ Month to date libs/ui/src/lib/assistant/assistant.component.ts - 227 + 226 @@ -6399,7 +6399,7 @@ MTD libs/ui/src/lib/assistant/assistant.component.ts - 227 + 226 @@ -6407,7 +6407,7 @@ Year to date libs/ui/src/lib/assistant/assistant.component.ts - 231 + 230 @@ -6451,7 +6451,7 @@ year libs/ui/src/lib/assistant/assistant.component.ts - 235 + 234 @@ -6459,7 +6459,7 @@ years libs/ui/src/lib/assistant/assistant.component.ts - 257 + 256 @@ -6483,7 +6483,7 @@ General apps/client/src/app/pages/faq/faq-page.component.ts - 36 + 37 @@ -6491,7 +6491,7 @@ Cloud apps/client/src/app/pages/faq/faq-page.component.ts - 41 + 42 apps/client/src/app/pages/faq/saas/saas-page-routing.module.ts @@ -6503,7 +6503,7 @@ Self-Hosting apps/client/src/app/pages/faq/faq-page.component.ts - 47 + 48 apps/client/src/app/pages/faq/self-hosting/self-hosting-page-routing.module.ts @@ -6515,7 +6515,7 @@ self-hosting apps/client/src/app/pages/faq/faq-page.component.ts - 48 + 49 @@ -6551,7 +6551,7 @@ Active apps/client/src/app/components/home-holdings/home-holdings.component.ts - 35 + 36 @@ -6559,7 +6559,7 @@ Closed apps/client/src/app/components/home-holdings/home-holdings.component.ts - 36 + 37 @@ -6647,7 +6647,7 @@ Do you really want to close your Ghostfolio account? apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 172 + 173 @@ -6695,7 +6695,7 @@ Oops! There was an error setting up biometric authentication. apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 300 + 301 @@ -6711,7 +6711,7 @@ Benchmarks apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 80 + 81 @@ -6767,7 +6767,7 @@ Alternative apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 83 + 82 @@ -6775,7 +6775,7 @@ App apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 84 + 83 @@ -6783,7 +6783,7 @@ Budgeting apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 85 + 84 @@ -6791,7 +6791,7 @@ Community apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 86 + 85 @@ -6799,7 +6799,7 @@ Family Office apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 87 + 86 @@ -6807,7 +6807,7 @@ Investor apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 90 + 89 @@ -6815,7 +6815,7 @@ Open Source apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 91 + 90 @@ -6823,7 +6823,7 @@ Personal Finance apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 93 + 92 @@ -6831,7 +6831,7 @@ Privacy apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 94 + 93 @@ -6839,7 +6839,7 @@ Software apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 96 + 95 @@ -6847,7 +6847,7 @@ Tool apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 97 + 96 @@ -6855,7 +6855,7 @@ User Experience apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 98 + 97 @@ -6863,7 +6863,7 @@ Wealth apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 99 + 98 @@ -6871,7 +6871,7 @@ Wealth Management apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 100 + 99 @@ -7023,7 +7023,7 @@ Error apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 316 + 317 @@ -7395,7 +7395,7 @@ apps/client/src/app/pages/resources/resources-page.component.ts - 31 + 32 @@ -7407,7 +7407,7 @@ apps/client/src/app/pages/resources/resources-page.component.ts - 21 + 22 @@ -7416,7 +7416,7 @@ snake-case apps/client/src/app/pages/resources/overview/resources-overview.component.ts - 22 + 23 apps/client/src/app/pages/resources/resources-page-routing.module.ts @@ -7429,7 +7429,7 @@ snake-case apps/client/src/app/pages/resources/overview/resources-overview.component.ts - 40 + 41 apps/client/src/app/pages/resources/resources-page-routing.module.ts @@ -7489,19 +7489,15 @@ Do you really want to delete the API key? apps/client/src/app/components/admin-settings/admin-settings.component.ts - 92 + 93 Please enter your Ghostfolio API key: Please enter your Ghostfolio API key: - - apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/ghostfolio-premium-api-dialog.component.ts - 45 - apps/client/src/app/pages/api/api-page.component.ts - 41 + 40 @@ -7512,12 +7508,12 @@ 32 - + I have an API key I have an API key apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/ghostfolio-premium-api-dialog.html - 42 + 43 @@ -7533,7 +7529,7 @@ Could not generate an API key apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 138 + 139 @@ -7541,7 +7537,7 @@ Set this API key in your self-hosted environment: apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 153 + 154 @@ -7549,7 +7545,7 @@ Ghostfolio Premium Data Provider API Key apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 156 + 157 @@ -7557,7 +7553,7 @@ Do you really want to generate a new API key? apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 161 + 162 @@ -7605,7 +7601,7 @@ Save apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts - 61 + 62 @@ -7621,7 +7617,7 @@ Me apps/client/src/app/components/user-account-access/user-account-access.component.ts - 134 + 135 @@ -7632,6 +7628,14 @@ 3 + + Please enter your Ghostfolio API key. + Please enter your Ghostfolio API key. + + apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/ghostfolio-premium-api-dialog.component.ts + 59 + + diff --git a/apps/client/src/locales/messages.pl.xlf b/apps/client/src/locales/messages.pl.xlf index 06b42b64..d2a4090e 100644 --- a/apps/client/src/locales/messages.pl.xlf +++ b/apps/client/src/locales/messages.pl.xlf @@ -7,129 +7,19 @@ snake-case apps/client/src/app/app.component.ts - 64 + 65 apps/client/src/app/app.component.ts - 66 + 67 apps/client/src/app/app.component.ts - 70 + 71 apps/client/src/app/app.component.ts - 74 - - - apps/client/src/app/components/header/header.component.ts - 81 - - - apps/client/src/app/components/header/header.component.ts - 86 - - - apps/client/src/app/core/paths.ts - 2 - - - apps/client/src/app/pages/about/about-page.component.ts - 45 - - - apps/client/src/app/pages/about/about-page.component.ts - 50 - - - apps/client/src/app/pages/about/about-page.component.ts - 55 - - - apps/client/src/app/pages/about/about-page.component.ts - 63 - - - apps/client/src/app/pages/about/about-page.component.ts - 74 - - - apps/client/src/app/pages/blog/2023/08/ghostfolio-joins-oss-friends/ghostfolio-joins-oss-friends-page.component.ts - 14 - - - apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts - 13 - - - apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts - 15 - - - apps/client/src/app/pages/blog/2023/09/hacktoberfest-2023/hacktoberfest-2023-page.component.ts - 13 - - - apps/client/src/app/pages/blog/2023/11/hacktoberfest-2023-debriefing/hacktoberfest-2023-debriefing-page.component.ts - 13 - - - apps/client/src/app/pages/blog/2024/09/hacktoberfest-2024/hacktoberfest-2024-page.component.ts - 13 - - - apps/client/src/app/pages/landing/landing-page.component.ts - 26 - - - apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts - 18 - - - apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 24 - - - - faq - faq - snake-case - - apps/client/src/app/app.component.ts - 77 - - - apps/client/src/app/core/paths.ts - 3 - - - apps/client/src/app/pages/about/overview/about-overview-page.component.ts - 19 - - - apps/client/src/app/pages/faq/faq-page.component.ts - 37 - - - apps/client/src/app/pages/faq/faq-page.component.ts - 42 - - - apps/client/src/app/pages/faq/faq-page.component.ts - 48 - - - apps/client/src/app/pages/resources/overview/resources-overview.component.ts - 14 - - - - features - funkcje - snake-case - - apps/client/src/app/app.component.ts - 78 + 75 apps/client/src/app/components/header/header.component.ts @@ -141,77 +31,101 @@ apps/client/src/app/core/paths.ts - 4 + 2 + + + apps/client/src/app/pages/about/about-page.component.ts + 46 + + + apps/client/src/app/pages/about/about-page.component.ts + 51 + + + apps/client/src/app/pages/about/about-page.component.ts + 56 + + + apps/client/src/app/pages/about/about-page.component.ts + 64 + + + apps/client/src/app/pages/about/about-page.component.ts + 75 + + + apps/client/src/app/pages/blog/2023/08/ghostfolio-joins-oss-friends/ghostfolio-joins-oss-friends-page.component.ts + 13 + + + apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts + 12 + + + apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts + 14 + + + apps/client/src/app/pages/blog/2023/09/hacktoberfest-2023/hacktoberfest-2023-page.component.ts + 12 + + + apps/client/src/app/pages/blog/2023/11/hacktoberfest-2023-debriefing/hacktoberfest-2023-debriefing-page.component.ts + 12 + + + apps/client/src/app/pages/blog/2024/09/hacktoberfest-2024/hacktoberfest-2024-page.component.ts + 12 + + + apps/client/src/app/pages/landing/landing-page.component.ts + 27 + + + apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts + 19 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 23 + + + + faq + faq + snake-case + + apps/client/src/app/app.component.ts + 78 + + + apps/client/src/app/core/paths.ts + 3 apps/client/src/app/pages/about/overview/about-overview-page.component.ts 20 - apps/client/src/app/pages/blog/2022/11/black-friday-2022/black-friday-2022-page.component.ts + apps/client/src/app/pages/faq/faq-page.component.ts + 38 + + + apps/client/src/app/pages/faq/faq-page.component.ts + 43 + + + apps/client/src/app/pages/faq/faq-page.component.ts + 49 + + + apps/client/src/app/pages/resources/overview/resources-overview.component.ts 15 - - apps/client/src/app/pages/blog/2023/03/1000-stars-on-github/1000-stars-on-github-page.component.ts - 13 - - - apps/client/src/app/pages/blog/2023/05/unlock-your-financial-potential-with-ghostfolio/unlock-your-financial-potential-with-ghostfolio-page.component.ts - 13 - - - apps/client/src/app/pages/blog/2023/07/exploring-the-path-to-fire/exploring-the-path-to-fire-page.component.ts - 13 - - - apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts - 18 - - - apps/client/src/app/pages/blog/2023/11/black-week-2023/black-week-2023-page.component.ts - 15 - - - apps/client/src/app/pages/blog/2023/11/hacktoberfest-2023-debriefing/hacktoberfest-2023-debriefing-page.component.ts - 14 - - - apps/client/src/app/pages/blog/2024/11/black-weeks-2024/black-weeks-2024-page.component.ts - 15 - - - apps/client/src/app/pages/faq/overview/faq-overview-page.component.ts - 14 - - - apps/client/src/app/pages/pricing/pricing-page.component.ts - 41 - - - apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 25 - - - license - licencja - snake-case - - apps/client/src/app/app.component.ts - 71 - - - apps/client/src/app/core/paths.ts - 5 - - - apps/client/src/app/pages/about/about-page.component.ts - 55 - - - - markets - rynki + + features + funkcje snake-case apps/client/src/app/app.component.ts @@ -225,25 +139,111 @@ apps/client/src/app/components/header/header.component.ts 88 + + apps/client/src/app/core/paths.ts + 4 + + + apps/client/src/app/pages/about/overview/about-overview-page.component.ts + 21 + + + apps/client/src/app/pages/blog/2022/11/black-friday-2022/black-friday-2022-page.component.ts + 14 + + + apps/client/src/app/pages/blog/2023/03/1000-stars-on-github/1000-stars-on-github-page.component.ts + 12 + + + apps/client/src/app/pages/blog/2023/05/unlock-your-financial-potential-with-ghostfolio/unlock-your-financial-potential-with-ghostfolio-page.component.ts + 12 + + + apps/client/src/app/pages/blog/2023/07/exploring-the-path-to-fire/exploring-the-path-to-fire-page.component.ts + 12 + + + apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts + 17 + + + apps/client/src/app/pages/blog/2023/11/black-week-2023/black-week-2023-page.component.ts + 14 + + + apps/client/src/app/pages/blog/2023/11/hacktoberfest-2023-debriefing/hacktoberfest-2023-debriefing-page.component.ts + 13 + + + apps/client/src/app/pages/blog/2024/11/black-weeks-2024/black-weeks-2024-page.component.ts + 14 + + + apps/client/src/app/pages/faq/overview/faq-overview-page.component.ts + 15 + + + apps/client/src/app/pages/pricing/pricing-page.component.ts + 42 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 24 + + + + license + licencja + snake-case + + apps/client/src/app/app.component.ts + 72 + + + apps/client/src/app/core/paths.ts + 5 + + + apps/client/src/app/pages/about/about-page.component.ts + 56 + + + + markets + rynki + snake-case + + apps/client/src/app/app.component.ts + 80 + + + apps/client/src/app/components/header/header.component.ts + 84 + + + apps/client/src/app/components/header/header.component.ts + 89 + apps/client/src/app/core/paths.ts 6 apps/client/src/app/pages/blog/2022/08/500-stars-on-github/500-stars-on-github-page.component.ts - 13 + 12 apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts - 19 + 18 apps/client/src/app/pages/faq/saas/saas-page.component.ts - 14 + 15 apps/client/src/app/pages/resources/overview/resources-overview.component.ts - 31 + 32 apps/client/src/app/pages/resources/resources-page-routing.module.ts @@ -256,27 +256,27 @@ snake-case apps/client/src/app/app.component.ts - 80 + 81 apps/client/src/app/components/admin-settings/admin-settings.component.ts - 73 + 74 apps/client/src/app/components/header/header.component.ts - 84 + 85 apps/client/src/app/components/header/header.component.ts - 89 + 90 apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.component.ts - 16 + 17 apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 42 + 43 apps/client/src/app/core/http-response.interceptor.ts @@ -288,43 +288,43 @@ apps/client/src/app/pages/blog/2021/07/hallo-ghostfolio/hallo-ghostfolio-page.component.ts - 13 + 12 apps/client/src/app/pages/blog/2021/07/hello-ghostfolio/hello-ghostfolio-page.component.ts - 13 + 12 apps/client/src/app/pages/blog/2022/01/first-months-in-open-source/first-months-in-open-source-page.component.ts - 13 + 12 apps/client/src/app/pages/blog/2022/08/500-stars-on-github/500-stars-on-github-page.component.ts - 14 + 13 apps/client/src/app/pages/blog/2022/11/black-friday-2022/black-friday-2022-page.component.ts - 16 - - - apps/client/src/app/pages/blog/2023/03/1000-stars-on-github/1000-stars-on-github-page.component.ts - 14 - - - apps/client/src/app/pages/blog/2023/11/black-week-2023/black-week-2023-page.component.ts - 16 - - - apps/client/src/app/pages/blog/2024/11/black-weeks-2024/black-weeks-2024-page.component.ts - 16 - - - apps/client/src/app/pages/faq/saas/saas-page.component.ts 15 + + apps/client/src/app/pages/blog/2023/03/1000-stars-on-github/1000-stars-on-github-page.component.ts + 13 + + + apps/client/src/app/pages/blog/2023/11/black-week-2023/black-week-2023-page.component.ts + 15 + + + apps/client/src/app/pages/blog/2024/11/black-weeks-2024/black-weeks-2024-page.component.ts + 15 + + + apps/client/src/app/pages/faq/saas/saas-page.component.ts + 16 + libs/ui/src/lib/membership-card/membership-card.component.ts - 31 + 30 @@ -333,7 +333,7 @@ snake-case apps/client/src/app/app.component.ts - 75 + 76 apps/client/src/app/core/paths.ts @@ -341,7 +341,7 @@ apps/client/src/app/pages/about/about-page.component.ts - 63 + 64 @@ -350,11 +350,11 @@ snake-case apps/client/src/app/app.component.ts - 81 + 82 apps/client/src/app/components/header/header.component.ts - 90 + 91 apps/client/src/app/core/auth.guard.ts @@ -366,19 +366,19 @@ apps/client/src/app/pages/faq/saas/saas-page.component.ts - 16 + 17 apps/client/src/app/pages/features/features-page.component.ts - 29 + 28 apps/client/src/app/pages/landing/landing-page.component.ts - 27 + 28 apps/client/src/app/pages/pricing/pricing-page.component.ts - 42 + 43 @@ -387,15 +387,15 @@ snake-case apps/client/src/app/app.component.ts - 82 + 83 apps/client/src/app/components/header/header.component.ts - 85 + 86 apps/client/src/app/components/header/header.component.ts - 91 + 92 apps/client/src/app/core/paths.ts @@ -403,47 +403,47 @@ apps/client/src/app/pages/blog/2021/07/hallo-ghostfolio/hallo-ghostfolio-page.component.ts - 14 - - - apps/client/src/app/pages/blog/2021/07/hello-ghostfolio/hello-ghostfolio-page.component.ts - 14 - - - apps/client/src/app/pages/blog/2022/07/how-do-i-get-my-finances-in-order/how-do-i-get-my-finances-in-order-page.component.ts 13 + + apps/client/src/app/pages/blog/2021/07/hello-ghostfolio/hello-ghostfolio-page.component.ts + 13 + + + apps/client/src/app/pages/blog/2022/07/how-do-i-get-my-finances-in-order/how-do-i-get-my-finances-in-order-page.component.ts + 12 + apps/client/src/app/pages/blog/2023/05/unlock-your-financial-potential-with-ghostfolio/unlock-your-financial-potential-with-ghostfolio-page.component.ts - 14 + 13 apps/client/src/app/pages/features/features-page.component.ts - 30 + 29 apps/client/src/app/pages/resources/glossary/resources-glossary.component.ts - 16 + 17 apps/client/src/app/pages/resources/overview/resources-overview.component.ts - 21 + 22 apps/client/src/app/pages/resources/overview/resources-overview.component.ts - 30 + 31 apps/client/src/app/pages/resources/overview/resources-overview.component.ts - 39 + 40 apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts - 14 + 15 apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 27 + 26 @@ -835,7 +835,7 @@ Czy na pewno chcesz cofnąć przyznany dostęp? apps/client/src/app/components/access-table/access-table.component.ts - 67 + 68 @@ -1167,7 +1167,7 @@ Czy na pewno chcesz usunąć to konto? apps/client/src/app/components/accounts-table/accounts-table.component.ts - 106 + 107 @@ -1427,7 +1427,7 @@ Waluty apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 85 + 86 @@ -1435,7 +1435,7 @@ ETF-y bez Krajów apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 90 + 91 @@ -1443,7 +1443,7 @@ ETF-y bez Sektorów apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 95 + 96 @@ -1459,7 +1459,7 @@ Filtruj według... apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 328 + 329 @@ -1603,7 +1603,7 @@ Ups! Nie udało się sparsować danych historycznych. libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.ts - 263 + 262 @@ -1783,7 +1783,7 @@ Proszę dodać walutę: apps/client/src/app/components/admin-overview/admin-overview.component.ts - 125 + 126 @@ -1791,7 +1791,7 @@ Czy naprawdę chcesz usunąć ten kupon? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 155 + 156 @@ -1799,7 +1799,7 @@ Czy naprawdę chcesz usunąć tę walutę? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 168 + 169 @@ -1807,7 +1807,7 @@ Czy naprawdę chcesz usunąć tę wiadomość systemową? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 181 + 182 @@ -1815,7 +1815,7 @@ Czy naprawdę chcesz wyczyścić pamięć podręczną? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 205 + 206 @@ -1823,7 +1823,7 @@ Proszę ustawić swoją wiadomość systemową: apps/client/src/app/components/admin-overview/admin-overview.component.ts - 225 + 226 @@ -2003,7 +2003,7 @@ Czy naprawdę chcesz usunąć tę platformę? apps/client/src/app/components/admin-platform/admin-platform.component.ts - 86 + 87 @@ -2063,7 +2063,7 @@ Czy naprawdę chcesz usunąć ten tag? apps/client/src/app/components/admin-tag/admin-tag.component.ts - 86 + 87 @@ -2087,7 +2087,7 @@ Czy na pewno chcesz usunąć tego użytkownika? apps/client/src/app/components/admin-users/admin-users.component.ts - 138 + 139 @@ -2171,7 +2171,7 @@ Portfel apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.ts - 116 + 117 apps/client/src/app/pages/portfolio/portfolio-page-routing.module.ts @@ -2179,7 +2179,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 95 + 94 @@ -2187,7 +2187,7 @@ Poziom Odniesienia (Benchmark) apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.ts - 128 + 129 @@ -2303,7 +2303,7 @@ apps/client/src/app/components/header/header.component.ts - 230 + 231 @@ -2311,11 +2311,11 @@ Ups! Nieprawidłowy token bezpieczeństwa. apps/client/src/app/components/header/header.component.ts - 245 + 246 apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 157 + 158 @@ -2331,7 +2331,7 @@ Zagrożenie apps/client/src/app/components/home-market/home-market.component.ts - 27 + 28 libs/ui/src/lib/i18n.ts @@ -2343,7 +2343,7 @@ Zachłanność apps/client/src/app/components/home-market/home-market.component.ts - 28 + 29 libs/ui/src/lib/i18n.ts @@ -2455,7 +2455,7 @@ Całkowita Kwota apps/client/src/app/components/investment-chart/investment-chart.component.ts - 140 + 141 @@ -2463,7 +2463,7 @@ Stopa Oszczędności apps/client/src/app/components/investment-chart/investment-chart.component.ts - 199 + 200 @@ -2487,7 +2487,7 @@ lub apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/ghostfolio-premium-api-dialog.html - 35 + 36 apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html @@ -2743,7 +2743,7 @@ Wprowadź wysokość funduszu rezerwowego: apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts - 63 + 64 @@ -2955,11 +2955,11 @@ Dziś apps/client/src/app/components/toggle/toggle.component.ts - 21 + 22 libs/ui/src/lib/assistant/assistant.component.ts - 221 + 220 @@ -2967,11 +2967,11 @@ Liczony od początku roku (year-to-date) apps/client/src/app/components/toggle/toggle.component.ts - 22 + 23 libs/ui/src/lib/assistant/assistant.component.ts - 231 + 230 @@ -2979,11 +2979,11 @@ 1 rok apps/client/src/app/components/toggle/toggle.component.ts - 23 + 24 libs/ui/src/lib/assistant/assistant.component.ts - 235 + 234 @@ -2991,11 +2991,11 @@ 5 lat apps/client/src/app/components/toggle/toggle.component.ts - 24 + 25 libs/ui/src/lib/assistant/assistant.component.ts - 257 + 256 @@ -3003,11 +3003,11 @@ Maksimum apps/client/src/app/components/toggle/toggle.component.ts - 25 + 26 libs/ui/src/lib/assistant/assistant.component.ts - 260 + 259 @@ -3034,12 +3034,12 @@ 7 - - Please enter your coupon code: - Wpisz kod kuponu: + + Please enter your coupon code. + Wpisz kod kuponu: apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 166 + 213 @@ -3047,7 +3047,7 @@ Nie udało się zrealizować kodu kuponu apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 175 + 177 @@ -3055,7 +3055,7 @@ Kupon został zrealizowany apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 188 + 190 @@ -3063,7 +3063,7 @@ Odśwież apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 189 + 191 @@ -3099,7 +3099,7 @@ Auto apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 38 + 39 @@ -3107,7 +3107,7 @@ Czy na pewno chcesz usunąć tą metode logowania? apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 246 + 247 @@ -3291,7 +3291,7 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 142 + 143 @@ -3303,7 +3303,7 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 140 + 141 @@ -3311,7 +3311,7 @@ Okej apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 151 + 152 apps/client/src/app/core/http-response.interceptor.ts @@ -3319,7 +3319,7 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 143 + 144 @@ -3331,7 +3331,7 @@ apps/client/src/app/pages/about/about-page.component.ts - 44 + 45 apps/client/src/app/pages/about/overview/about-overview-page-routing.module.ts @@ -3343,7 +3343,7 @@ Changelog apps/client/src/app/pages/about/about-page.component.ts - 49 + 50 apps/client/src/app/pages/about/changelog/changelog-page-routing.module.ts @@ -3355,7 +3355,7 @@ Licencja apps/client/src/app/pages/about/about-page.component.ts - 54 + 55 apps/client/src/app/pages/about/license/license-page-routing.module.ts @@ -3367,7 +3367,7 @@ Polityka Prywatności apps/client/src/app/pages/about/about-page.component.ts - 62 + 63 apps/client/src/app/pages/about/privacy-policy/privacy-policy-page-routing.module.ts @@ -3411,7 +3411,7 @@ Ups, transfer salda nie powiódł się. apps/client/src/app/pages/accounts/accounts-page.component.ts - 317 + 318 @@ -3479,7 +3479,7 @@ apps/client/src/app/pages/admin/admin-page.component.ts - 37 + 38 @@ -3491,7 +3491,7 @@ apps/client/src/app/pages/admin/admin-page.component.ts - 32 + 33 apps/client/src/app/pages/user-account/user-account-page-routing.module.ts @@ -3499,7 +3499,7 @@ apps/client/src/app/pages/user-account/user-account-page.component.ts - 35 + 36 @@ -3511,7 +3511,7 @@ apps/client/src/app/pages/admin/admin-page.component.ts - 47 + 48 @@ -3519,15 +3519,15 @@ Przegląd apps/client/src/app/pages/admin/admin-page.component.ts - 27 + 28 apps/client/src/app/pages/home/home-page.component.ts - 37 + 38 apps/client/src/app/pages/resources/resources-page.component.ts - 16 + 17 apps/client/src/app/pages/zen/zen-page-routing.module.ts @@ -3535,7 +3535,7 @@ apps/client/src/app/pages/zen/zen-page.component.ts - 34 + 35 @@ -3735,11 +3735,11 @@ apps/client/src/app/pages/home/home-page.component.ts - 42 + 43 apps/client/src/app/pages/zen/zen-page.component.ts - 39 + 40 @@ -3751,7 +3751,7 @@ apps/client/src/app/pages/home/home-page.component.ts - 47 + 48 @@ -3763,7 +3763,7 @@ apps/client/src/app/pages/home/home-page.component.ts - 52 + 53 apps/client/src/app/pages/markets/markets-page-routing.module.ts @@ -3775,7 +3775,7 @@ apps/client/src/app/pages/resources/resources-page.component.ts - 26 + 27 @@ -4203,7 +4203,7 @@ apps/client/src/app/pages/portfolio/portfolio-page.component.ts - 39 + 40 @@ -4211,7 +4211,7 @@ Czy na pewno chcesz usunąć te aktywności? libs/ui/src/lib/activities-table/activities-table.component.ts - 219 + 218 @@ -4351,7 +4351,7 @@ Importuj Aktywności apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 45 + 46 @@ -4359,7 +4359,7 @@ Impotruj Dywidendy apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 86 + 87 @@ -4367,7 +4367,7 @@ Importowanie danych... apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 124 + 125 @@ -4375,7 +4375,7 @@ Importowanie zakończone apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 132 + 133 @@ -4383,7 +4383,7 @@ Weryfikacja danych... apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 238 + 239 @@ -4475,7 +4475,7 @@ apps/client/src/app/pages/portfolio/portfolio-page.component.ts - 44 + 45 @@ -4651,7 +4651,7 @@ apps/client/src/app/pages/portfolio/portfolio-page.component.ts - 34 + 35 @@ -4659,7 +4659,7 @@ Dywidenda apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 37 + 38 libs/ui/src/lib/i18n.ts @@ -4671,7 +4671,7 @@ Depozyt libs/ui/src/lib/fire-calculator/fire-calculator.component.ts - 361 + 360 @@ -4679,7 +4679,7 @@ Miesięcznie apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 49 + 50 @@ -4687,7 +4687,7 @@ Rocznie apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 50 + 51 @@ -5119,7 +5119,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts - 13 + 14 @@ -5383,7 +5383,7 @@ Szwajcaria apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 60 + 59 libs/ui/src/lib/i18n.ts @@ -5395,7 +5395,7 @@ Globalny apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 61 + 60 libs/ui/src/lib/i18n.ts @@ -5435,7 +5435,7 @@ apps/client/src/app/pages/user-account/user-account-page.component.ts - 40 + 41 @@ -5447,7 +5447,7 @@ apps/client/src/app/pages/user-account/user-account-page.component.ts - 46 + 47 @@ -5559,7 +5559,7 @@ Czy na pewno chcesz usunąć tę działalność? libs/ui/src/lib/activities-table/activities-table.component.ts - 229 + 228 @@ -5567,7 +5567,7 @@ Znajdź portfel akcji... libs/ui/src/lib/assistant/assistant.component.ts - 144 + 143 @@ -5667,7 +5667,7 @@ Udział libs/ui/src/lib/fire-calculator/fire-calculator.component.ts - 371 + 370 libs/ui/src/lib/i18n.ts @@ -5679,7 +5679,7 @@ Oszczędności libs/ui/src/lib/fire-calculator/fire-calculator.component.ts - 381 + 380 @@ -5843,7 +5843,7 @@ libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 403 + 402 @@ -6143,11 +6143,11 @@ Brak danych libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 405 + 404 libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 418 + 417 @@ -6203,7 +6203,7 @@ Czy na pewno chcesz usunąć saldo tego konta? libs/ui/src/lib/account-balances/account-balances.component.ts - 110 + 109 @@ -6211,7 +6211,7 @@ to nieprawidłowa waluta! apps/client/src/app/components/admin-overview/admin-overview.component.ts - 136 + 137 @@ -6227,7 +6227,7 @@ Obecna cena rynkowa wynosi apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 325 + 326 @@ -6275,7 +6275,7 @@ Ups! Nie udało się przyznać dostępu. apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.component.ts - 90 + 91 @@ -6295,7 +6295,7 @@ apps/client/src/app/pages/admin/admin-page.component.ts - 42 + 43 @@ -6303,7 +6303,7 @@ Dane rynkowe są opóźnione o apps/client/src/app/components/portfolio-performance/portfolio-performance.component.ts - 86 + 87 @@ -6311,15 +6311,15 @@ Inwestycje apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 41 + 42 apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 55 + 56 apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 89 + 88 @@ -6375,7 +6375,7 @@ Dotychczasowy tydzień libs/ui/src/lib/assistant/assistant.component.ts - 223 + 222 @@ -6383,7 +6383,7 @@ WTD libs/ui/src/lib/assistant/assistant.component.ts - 223 + 222 @@ -6391,7 +6391,7 @@ Od początku miesiąca libs/ui/src/lib/assistant/assistant.component.ts - 227 + 226 @@ -6399,7 +6399,7 @@ MTD libs/ui/src/lib/assistant/assistant.component.ts - 227 + 226 @@ -6407,7 +6407,7 @@ Od początku roku libs/ui/src/lib/assistant/assistant.component.ts - 231 + 230 @@ -6451,7 +6451,7 @@ rok libs/ui/src/lib/assistant/assistant.component.ts - 235 + 234 @@ -6459,7 +6459,7 @@ lata libs/ui/src/lib/assistant/assistant.component.ts - 257 + 256 @@ -6483,7 +6483,7 @@ Informacje Ogólne apps/client/src/app/pages/faq/faq-page.component.ts - 36 + 37 @@ -6491,7 +6491,7 @@ Rozwiązanie w Chmurze apps/client/src/app/pages/faq/faq-page.component.ts - 41 + 42 apps/client/src/app/pages/faq/saas/saas-page-routing.module.ts @@ -6503,7 +6503,7 @@ Własny Hosting apps/client/src/app/pages/faq/faq-page.component.ts - 47 + 48 apps/client/src/app/pages/faq/self-hosting/self-hosting-page-routing.module.ts @@ -6515,7 +6515,7 @@ self-hosting apps/client/src/app/pages/faq/faq-page.component.ts - 48 + 49 @@ -6551,7 +6551,7 @@ Antywne apps/client/src/app/components/home-holdings/home-holdings.component.ts - 35 + 36 @@ -6559,7 +6559,7 @@ Zamknięte apps/client/src/app/components/home-holdings/home-holdings.component.ts - 36 + 37 @@ -6647,7 +6647,7 @@ Czy na pewno chcesz zamknąć swoje konto Ghostfolio? apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 172 + 173 @@ -6695,7 +6695,7 @@ Ups! Wystąpił błąd podczas konfigurowania uwierzytelniania biometrycznego. apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 300 + 301 @@ -6711,7 +6711,7 @@ Punkty Odniesienia apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 80 + 81 @@ -6767,7 +6767,7 @@ Alternatywa apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 83 + 82 @@ -6775,7 +6775,7 @@ Aplikacja apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 84 + 83 @@ -6783,7 +6783,7 @@ Budżetowanie apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 85 + 84 @@ -6791,7 +6791,7 @@ Społeczność apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 86 + 85 @@ -6799,7 +6799,7 @@ Biuro Rodzinne apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 87 + 86 @@ -6807,7 +6807,7 @@ Inwestor apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 90 + 89 @@ -6815,7 +6815,7 @@ Otwarty Kod Źródłowy apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 91 + 90 @@ -6823,7 +6823,7 @@ Finanse Osobiste apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 93 + 92 @@ -6831,7 +6831,7 @@ Prywatność apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 94 + 93 @@ -6839,7 +6839,7 @@ Oprogramowanie apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 96 + 95 @@ -6847,7 +6847,7 @@ Narzędzie apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 97 + 96 @@ -6855,7 +6855,7 @@ Doświadczenie Użytkownika apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 98 + 97 @@ -6863,7 +6863,7 @@ Majątek apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 99 + 98 @@ -6871,7 +6871,7 @@ Zarządzanie Majątkiem apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 100 + 99 @@ -7023,7 +7023,7 @@ Błąd apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 316 + 317 @@ -7395,7 +7395,7 @@ apps/client/src/app/pages/resources/resources-page.component.ts - 31 + 32 @@ -7407,7 +7407,7 @@ apps/client/src/app/pages/resources/resources-page.component.ts - 21 + 22 @@ -7416,7 +7416,7 @@ snake-case apps/client/src/app/pages/resources/overview/resources-overview.component.ts - 22 + 23 apps/client/src/app/pages/resources/resources-page-routing.module.ts @@ -7429,7 +7429,7 @@ snake-case apps/client/src/app/pages/resources/overview/resources-overview.component.ts - 40 + 41 apps/client/src/app/pages/resources/resources-page-routing.module.ts @@ -7489,19 +7489,15 @@ Czy na pewno chcesz usunąć klucz API?? apps/client/src/app/components/admin-settings/admin-settings.component.ts - 92 + 93 Please enter your Ghostfolio API key: Wprowadź swój klucz API konta Ghostfolio: - - apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/ghostfolio-premium-api-dialog.component.ts - 45 - apps/client/src/app/pages/api/api-page.component.ts - 41 + 40 @@ -7512,12 +7508,12 @@ 32 - + I have an API key Posiadam klucz API apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/ghostfolio-premium-api-dialog.html - 42 + 43 @@ -7533,7 +7529,7 @@ Nie udało się wygenerować klucza API apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 138 + 139 @@ -7541,7 +7537,7 @@ Ustaw ten klucz API w samodzielnie hostowanym środowisku: apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 153 + 154 @@ -7549,7 +7545,7 @@ Klucz API dostawcy danych Premium Ghostfolio apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 156 + 157 @@ -7557,7 +7553,7 @@ Czy na pewno chcesz wygenerować nowy klucz API? apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 161 + 162 @@ -7605,7 +7601,7 @@ Zapisz apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts - 61 + 62 @@ -7621,7 +7617,7 @@ Me apps/client/src/app/components/user-account-access/user-account-access.component.ts - 134 + 135 @@ -7632,6 +7628,14 @@ 3 + + Please enter your Ghostfolio API key. + Please enter your Ghostfolio API key. + + apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/ghostfolio-premium-api-dialog.component.ts + 59 + + diff --git a/apps/client/src/locales/messages.pt.xlf b/apps/client/src/locales/messages.pt.xlf index 3ad4c089..f8034354 100644 --- a/apps/client/src/locales/messages.pt.xlf +++ b/apps/client/src/locales/messages.pt.xlf @@ -70,7 +70,7 @@ Pretende realmente revogar este acesso concedido? apps/client/src/app/components/access-table/access-table.component.ts - 67 + 68 @@ -382,7 +382,7 @@ Pretende realmente eliminar esta conta? apps/client/src/app/components/accounts-table/accounts-table.component.ts - 106 + 107 @@ -642,7 +642,7 @@ Filtrar por... apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 328 + 329 @@ -786,7 +786,7 @@ Por favor, adicione uma moeda: apps/client/src/app/components/admin-overview/admin-overview.component.ts - 125 + 126 @@ -794,7 +794,7 @@ Deseja realmente eliminar este cupão? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 155 + 156 @@ -802,7 +802,7 @@ Deseja realmente excluir esta moeda? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 168 + 169 @@ -810,7 +810,7 @@ Deseja realmente limpar a cache? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 205 + 206 @@ -818,7 +818,7 @@ Por favor, defina a sua mensagem do sistema: apps/client/src/app/components/admin-overview/admin-overview.component.ts - 225 + 226 @@ -922,7 +922,7 @@ Deseja realmente excluir este utilizador? apps/client/src/app/components/admin-users/admin-users.component.ts - 138 + 139 @@ -1014,7 +1014,7 @@ Portefólio apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.ts - 116 + 117 apps/client/src/app/pages/portfolio/portfolio-page-routing.module.ts @@ -1022,7 +1022,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 95 + 94 @@ -1030,7 +1030,7 @@ Referência apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.ts - 128 + 129 @@ -1230,7 +1230,7 @@ apps/client/src/app/components/header/header.component.ts - 230 + 231 @@ -1238,11 +1238,11 @@ Oops! Token de Segurança Incorreto. apps/client/src/app/components/header/header.component.ts - 245 + 246 apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 157 + 158 @@ -1258,7 +1258,7 @@ Medo apps/client/src/app/components/home-market/home-market.component.ts - 27 + 28 libs/ui/src/lib/i18n.ts @@ -1270,7 +1270,7 @@ Ganância apps/client/src/app/components/home-market/home-market.component.ts - 28 + 29 libs/ui/src/lib/i18n.ts @@ -1298,7 +1298,7 @@ Depósito libs/ui/src/lib/fire-calculator/fire-calculator.component.ts - 361 + 360 @@ -1306,7 +1306,7 @@ Valor Total apps/client/src/app/components/investment-chart/investment-chart.component.ts - 140 + 141 @@ -1314,7 +1314,7 @@ Taxa de Poupança apps/client/src/app/components/investment-chart/investment-chart.component.ts - 199 + 200 @@ -1338,7 +1338,7 @@ ou apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/ghostfolio-premium-api-dialog.html - 35 + 36 apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html @@ -1542,7 +1542,7 @@ Por favor, insira o valor do seu fundo de emergência: apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts - 63 + 64 @@ -1714,11 +1714,11 @@ Hoje apps/client/src/app/components/toggle/toggle.component.ts - 21 + 22 libs/ui/src/lib/assistant/assistant.component.ts - 221 + 220 @@ -1726,11 +1726,11 @@ AATD apps/client/src/app/components/toggle/toggle.component.ts - 22 + 23 libs/ui/src/lib/assistant/assistant.component.ts - 231 + 230 @@ -1738,11 +1738,11 @@ 1A apps/client/src/app/components/toggle/toggle.component.ts - 23 + 24 libs/ui/src/lib/assistant/assistant.component.ts - 235 + 234 @@ -1750,11 +1750,11 @@ 5A apps/client/src/app/components/toggle/toggle.component.ts - 24 + 25 libs/ui/src/lib/assistant/assistant.component.ts - 257 + 256 @@ -1762,11 +1762,11 @@ Máx apps/client/src/app/components/toggle/toggle.component.ts - 25 + 26 libs/ui/src/lib/assistant/assistant.component.ts - 260 + 259 @@ -1790,7 +1790,7 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 142 + 143 @@ -1802,7 +1802,7 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 140 + 141 @@ -1810,7 +1810,7 @@ OK apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 151 + 152 apps/client/src/app/core/http-response.interceptor.ts @@ -1818,7 +1818,7 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 143 + 144 @@ -1830,7 +1830,7 @@ apps/client/src/app/pages/about/about-page.component.ts - 44 + 45 apps/client/src/app/pages/about/overview/about-overview-page-routing.module.ts @@ -1866,7 +1866,7 @@ Política de Privacidade apps/client/src/app/pages/about/about-page.component.ts - 62 + 63 apps/client/src/app/pages/about/privacy-policy/privacy-policy-page-routing.module.ts @@ -1898,15 +1898,15 @@ Auto apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 38 + 39 - - Please enter your coupon code: - Por favor, insira o seu código de cupão: + + Please enter your coupon code. + Por favor, insira o seu código de cupão: apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 166 + 213 @@ -1914,7 +1914,7 @@ Não foi possível resgatar o código de cupão apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 175 + 177 @@ -1922,7 +1922,7 @@ Código de cupão foi resgatado apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 188 + 190 @@ -1930,7 +1930,7 @@ Atualizar apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 189 + 191 @@ -1938,7 +1938,7 @@ Deseja realmente remover este método de início de sessão? apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 246 + 247 @@ -2026,7 +2026,7 @@ apps/client/src/app/pages/admin/admin-page.component.ts - 47 + 48 @@ -2326,15 +2326,15 @@ Visão geral apps/client/src/app/pages/admin/admin-page.component.ts - 27 + 28 apps/client/src/app/pages/home/home-page.component.ts - 37 + 38 apps/client/src/app/pages/resources/resources-page.component.ts - 16 + 17 apps/client/src/app/pages/zen/zen-page-routing.module.ts @@ -2342,7 +2342,7 @@ apps/client/src/app/pages/zen/zen-page.component.ts - 34 + 35 @@ -2354,7 +2354,7 @@ apps/client/src/app/pages/home/home-page.component.ts - 52 + 53 apps/client/src/app/pages/markets/markets-page-routing.module.ts @@ -2366,7 +2366,7 @@ apps/client/src/app/pages/resources/resources-page.component.ts - 26 + 27 @@ -2378,7 +2378,7 @@ apps/client/src/app/pages/portfolio/portfolio-page.component.ts - 39 + 40 @@ -2474,7 +2474,7 @@ A importar dados... apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 124 + 125 @@ -2482,7 +2482,7 @@ A importação foi concluída apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 132 + 133 @@ -2514,7 +2514,7 @@ apps/client/src/app/pages/portfolio/portfolio-page.component.ts - 44 + 45 @@ -2646,7 +2646,7 @@ apps/client/src/app/pages/portfolio/portfolio-page.component.ts - 34 + 35 @@ -2654,7 +2654,7 @@ Mensalmente apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 49 + 50 @@ -2734,11 +2734,11 @@ apps/client/src/app/pages/home/home-page.component.ts - 42 + 43 apps/client/src/app/pages/zen/zen-page.component.ts - 39 + 40 @@ -2922,7 +2922,7 @@ Importar Atividades apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 45 + 46 @@ -2970,7 +2970,7 @@ Deseja realmente eliminar esta atividade? libs/ui/src/lib/activities-table/activities-table.component.ts - 229 + 228 @@ -3018,7 +3018,7 @@ Juros libs/ui/src/lib/fire-calculator/fire-calculator.component.ts - 371 + 370 libs/ui/src/lib/i18n.ts @@ -3030,7 +3030,7 @@ Poupanças libs/ui/src/lib/fire-calculator/fire-calculator.component.ts - 381 + 380 @@ -3066,7 +3066,7 @@ libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 403 + 402 @@ -3242,11 +3242,11 @@ Sem dados disponíveis libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 405 + 404 libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 418 + 417 @@ -3338,7 +3338,7 @@ apps/client/src/app/pages/admin/admin-page.component.ts - 37 + 38 @@ -3350,7 +3350,7 @@ apps/client/src/app/pages/home/home-page.component.ts - 47 + 48 @@ -3358,7 +3358,7 @@ A validar dados... apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 238 + 239 @@ -3382,7 +3382,7 @@ Dividendos apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 37 + 38 libs/ui/src/lib/i18n.ts @@ -3430,7 +3430,7 @@ Anualmente apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 50 + 51 @@ -3438,7 +3438,7 @@ Importar Dividendos apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 86 + 87 @@ -3950,7 +3950,7 @@ Deseja mesmo eliminar estas atividades? libs/ui/src/lib/activities-table/activities-table.component.ts - 219 + 218 @@ -3998,7 +3998,7 @@ Deseja mesmo eliminar esta plataforma? apps/client/src/app/components/admin-platform/admin-platform.component.ts - 86 + 87 @@ -4058,7 +4058,7 @@ apps/client/src/app/pages/admin/admin-page.component.ts - 32 + 33 apps/client/src/app/pages/user-account/user-account-page-routing.module.ts @@ -4066,7 +4066,7 @@ apps/client/src/app/pages/user-account/user-account-page.component.ts - 35 + 36 @@ -4234,7 +4234,7 @@ Registo de alterações apps/client/src/app/pages/about/about-page.component.ts - 49 + 50 apps/client/src/app/pages/about/changelog/changelog-page-routing.module.ts @@ -4246,7 +4246,7 @@ Licença apps/client/src/app/pages/about/about-page.component.ts - 54 + 55 apps/client/src/app/pages/about/license/license-page-routing.module.ts @@ -4614,7 +4614,7 @@ ETFs without Countries apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 90 + 91 @@ -4622,7 +4622,7 @@ ETFs without Sectors apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 95 + 96 @@ -4854,7 +4854,7 @@ Moedas apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 85 + 86 @@ -5215,7 +5215,7 @@ snake-case apps/client/src/app/app.component.ts - 77 + 78 apps/client/src/app/core/paths.ts @@ -5223,221 +5223,29 @@ apps/client/src/app/pages/about/overview/about-overview-page.component.ts - 19 + 20 apps/client/src/app/pages/faq/faq-page.component.ts - 37 + 38 apps/client/src/app/pages/faq/faq-page.component.ts - 42 + 43 apps/client/src/app/pages/faq/faq-page.component.ts - 48 + 49 apps/client/src/app/pages/resources/overview/resources-overview.component.ts - 14 + 15 features funcionalidades snake-case - - apps/client/src/app/app.component.ts - 78 - - - apps/client/src/app/components/header/header.component.ts - 82 - - - apps/client/src/app/components/header/header.component.ts - 87 - - - apps/client/src/app/core/paths.ts - 4 - - - apps/client/src/app/pages/about/overview/about-overview-page.component.ts - 20 - - - apps/client/src/app/pages/blog/2022/11/black-friday-2022/black-friday-2022-page.component.ts - 15 - - - apps/client/src/app/pages/blog/2023/03/1000-stars-on-github/1000-stars-on-github-page.component.ts - 13 - - - apps/client/src/app/pages/blog/2023/05/unlock-your-financial-potential-with-ghostfolio/unlock-your-financial-potential-with-ghostfolio-page.component.ts - 13 - - - apps/client/src/app/pages/blog/2023/07/exploring-the-path-to-fire/exploring-the-path-to-fire-page.component.ts - 13 - - - apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts - 18 - - - apps/client/src/app/pages/blog/2023/11/black-week-2023/black-week-2023-page.component.ts - 15 - - - apps/client/src/app/pages/blog/2023/11/hacktoberfest-2023-debriefing/hacktoberfest-2023-debriefing-page.component.ts - 14 - - - apps/client/src/app/pages/blog/2024/11/black-weeks-2024/black-weeks-2024-page.component.ts - 15 - - - apps/client/src/app/pages/faq/overview/faq-overview-page.component.ts - 14 - - - apps/client/src/app/pages/pricing/pricing-page.component.ts - 41 - - - apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 25 - - - - about - sobre - snake-case - - apps/client/src/app/app.component.ts - 64 - - - apps/client/src/app/app.component.ts - 66 - - - apps/client/src/app/app.component.ts - 70 - - - apps/client/src/app/app.component.ts - 74 - - - apps/client/src/app/components/header/header.component.ts - 81 - - - apps/client/src/app/components/header/header.component.ts - 86 - - - apps/client/src/app/core/paths.ts - 2 - - - apps/client/src/app/pages/about/about-page.component.ts - 45 - - - apps/client/src/app/pages/about/about-page.component.ts - 50 - - - apps/client/src/app/pages/about/about-page.component.ts - 55 - - - apps/client/src/app/pages/about/about-page.component.ts - 63 - - - apps/client/src/app/pages/about/about-page.component.ts - 74 - - - apps/client/src/app/pages/blog/2023/08/ghostfolio-joins-oss-friends/ghostfolio-joins-oss-friends-page.component.ts - 14 - - - apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts - 13 - - - apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts - 15 - - - apps/client/src/app/pages/blog/2023/09/hacktoberfest-2023/hacktoberfest-2023-page.component.ts - 13 - - - apps/client/src/app/pages/blog/2023/11/hacktoberfest-2023-debriefing/hacktoberfest-2023-debriefing-page.component.ts - 13 - - - apps/client/src/app/pages/blog/2024/09/hacktoberfest-2024/hacktoberfest-2024-page.component.ts - 13 - - - apps/client/src/app/pages/landing/landing-page.component.ts - 26 - - - apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts - 18 - - - apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 24 - - - - privacy-policy - politica-de-privacidade - snake-case - - apps/client/src/app/app.component.ts - 75 - - - apps/client/src/app/core/paths.ts - 8 - - - apps/client/src/app/pages/about/about-page.component.ts - 63 - - - - license - licenca - snake-case - - apps/client/src/app/app.component.ts - 71 - - - apps/client/src/app/core/paths.ts - 5 - - - apps/client/src/app/pages/about/about-page.component.ts - 55 - - - - markets - mercados - snake-case apps/client/src/app/app.component.ts 79 @@ -5452,23 +5260,215 @@ apps/client/src/app/core/paths.ts - 6 + 4 - apps/client/src/app/pages/blog/2022/08/500-stars-on-github/500-stars-on-github-page.component.ts + apps/client/src/app/pages/about/overview/about-overview-page.component.ts + 21 + + + apps/client/src/app/pages/blog/2022/11/black-friday-2022/black-friday-2022-page.component.ts + 14 + + + apps/client/src/app/pages/blog/2023/03/1000-stars-on-github/1000-stars-on-github-page.component.ts + 12 + + + apps/client/src/app/pages/blog/2023/05/unlock-your-financial-potential-with-ghostfolio/unlock-your-financial-potential-with-ghostfolio-page.component.ts + 12 + + + apps/client/src/app/pages/blog/2023/07/exploring-the-path-to-fire/exploring-the-path-to-fire-page.component.ts + 12 + + + apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts + 17 + + + apps/client/src/app/pages/blog/2023/11/black-week-2023/black-week-2023-page.component.ts + 14 + + + apps/client/src/app/pages/blog/2023/11/hacktoberfest-2023-debriefing/hacktoberfest-2023-debriefing-page.component.ts + 13 + + + apps/client/src/app/pages/blog/2024/11/black-weeks-2024/black-weeks-2024-page.component.ts + 14 + + + apps/client/src/app/pages/faq/overview/faq-overview-page.component.ts + 15 + + + apps/client/src/app/pages/pricing/pricing-page.component.ts + 42 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 24 + + + + about + sobre + snake-case + + apps/client/src/app/app.component.ts + 65 + + + apps/client/src/app/app.component.ts + 67 + + + apps/client/src/app/app.component.ts + 71 + + + apps/client/src/app/app.component.ts + 75 + + + apps/client/src/app/components/header/header.component.ts + 82 + + + apps/client/src/app/components/header/header.component.ts + 87 + + + apps/client/src/app/core/paths.ts + 2 + + + apps/client/src/app/pages/about/about-page.component.ts + 46 + + + apps/client/src/app/pages/about/about-page.component.ts + 51 + + + apps/client/src/app/pages/about/about-page.component.ts + 56 + + + apps/client/src/app/pages/about/about-page.component.ts + 64 + + + apps/client/src/app/pages/about/about-page.component.ts + 75 + + + apps/client/src/app/pages/blog/2023/08/ghostfolio-joins-oss-friends/ghostfolio-joins-oss-friends-page.component.ts 13 apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts - 19 + 12 - apps/client/src/app/pages/faq/saas/saas-page.component.ts + apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts 14 + + apps/client/src/app/pages/blog/2023/09/hacktoberfest-2023/hacktoberfest-2023-page.component.ts + 12 + + + apps/client/src/app/pages/blog/2023/11/hacktoberfest-2023-debriefing/hacktoberfest-2023-debriefing-page.component.ts + 12 + + + apps/client/src/app/pages/blog/2024/09/hacktoberfest-2024/hacktoberfest-2024-page.component.ts + 12 + + + apps/client/src/app/pages/landing/landing-page.component.ts + 27 + + + apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts + 19 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 23 + + + + privacy-policy + politica-de-privacidade + snake-case + + apps/client/src/app/app.component.ts + 76 + + + apps/client/src/app/core/paths.ts + 8 + + + apps/client/src/app/pages/about/about-page.component.ts + 64 + + + + license + licenca + snake-case + + apps/client/src/app/app.component.ts + 72 + + + apps/client/src/app/core/paths.ts + 5 + + + apps/client/src/app/pages/about/about-page.component.ts + 56 + + + + markets + mercados + snake-case + + apps/client/src/app/app.component.ts + 80 + + + apps/client/src/app/components/header/header.component.ts + 84 + + + apps/client/src/app/components/header/header.component.ts + 89 + + + apps/client/src/app/core/paths.ts + 6 + + + apps/client/src/app/pages/blog/2022/08/500-stars-on-github/500-stars-on-github-page.component.ts + 12 + + + apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts + 18 + + + apps/client/src/app/pages/faq/saas/saas-page.component.ts + 15 + apps/client/src/app/pages/resources/overview/resources-overview.component.ts - 31 + 32 apps/client/src/app/pages/resources/resources-page-routing.module.ts @@ -5481,27 +5481,27 @@ snake-case apps/client/src/app/app.component.ts - 80 + 81 apps/client/src/app/components/admin-settings/admin-settings.component.ts - 73 + 74 apps/client/src/app/components/header/header.component.ts - 84 + 85 apps/client/src/app/components/header/header.component.ts - 89 + 90 apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.component.ts - 16 + 17 apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 42 + 43 apps/client/src/app/core/http-response.interceptor.ts @@ -5513,43 +5513,43 @@ apps/client/src/app/pages/blog/2021/07/hallo-ghostfolio/hallo-ghostfolio-page.component.ts - 13 + 12 apps/client/src/app/pages/blog/2021/07/hello-ghostfolio/hello-ghostfolio-page.component.ts - 13 + 12 apps/client/src/app/pages/blog/2022/01/first-months-in-open-source/first-months-in-open-source-page.component.ts - 13 + 12 apps/client/src/app/pages/blog/2022/08/500-stars-on-github/500-stars-on-github-page.component.ts - 14 + 13 apps/client/src/app/pages/blog/2022/11/black-friday-2022/black-friday-2022-page.component.ts - 16 - - - apps/client/src/app/pages/blog/2023/03/1000-stars-on-github/1000-stars-on-github-page.component.ts - 14 - - - apps/client/src/app/pages/blog/2023/11/black-week-2023/black-week-2023-page.component.ts - 16 - - - apps/client/src/app/pages/blog/2024/11/black-weeks-2024/black-weeks-2024-page.component.ts - 16 - - - apps/client/src/app/pages/faq/saas/saas-page.component.ts 15 + + apps/client/src/app/pages/blog/2023/03/1000-stars-on-github/1000-stars-on-github-page.component.ts + 13 + + + apps/client/src/app/pages/blog/2023/11/black-week-2023/black-week-2023-page.component.ts + 15 + + + apps/client/src/app/pages/blog/2024/11/black-weeks-2024/black-weeks-2024-page.component.ts + 15 + + + apps/client/src/app/pages/faq/saas/saas-page.component.ts + 16 + libs/ui/src/lib/membership-card/membership-card.component.ts - 31 + 30 @@ -5558,11 +5558,11 @@ snake-case apps/client/src/app/app.component.ts - 81 + 82 apps/client/src/app/components/header/header.component.ts - 90 + 91 apps/client/src/app/core/auth.guard.ts @@ -5574,19 +5574,19 @@ apps/client/src/app/pages/faq/saas/saas-page.component.ts - 16 + 17 apps/client/src/app/pages/features/features-page.component.ts - 29 + 28 apps/client/src/app/pages/landing/landing-page.component.ts - 27 + 28 apps/client/src/app/pages/pricing/pricing-page.component.ts - 42 + 43 @@ -5595,15 +5595,15 @@ snake-case apps/client/src/app/app.component.ts - 82 + 83 apps/client/src/app/components/header/header.component.ts - 85 + 86 apps/client/src/app/components/header/header.component.ts - 91 + 92 apps/client/src/app/core/paths.ts @@ -5611,47 +5611,47 @@ apps/client/src/app/pages/blog/2021/07/hallo-ghostfolio/hallo-ghostfolio-page.component.ts - 14 - - - apps/client/src/app/pages/blog/2021/07/hello-ghostfolio/hello-ghostfolio-page.component.ts - 14 - - - apps/client/src/app/pages/blog/2022/07/how-do-i-get-my-finances-in-order/how-do-i-get-my-finances-in-order-page.component.ts 13 + + apps/client/src/app/pages/blog/2021/07/hello-ghostfolio/hello-ghostfolio-page.component.ts + 13 + + + apps/client/src/app/pages/blog/2022/07/how-do-i-get-my-finances-in-order/how-do-i-get-my-finances-in-order-page.component.ts + 12 + apps/client/src/app/pages/blog/2023/05/unlock-your-financial-potential-with-ghostfolio/unlock-your-financial-potential-with-ghostfolio-page.component.ts - 14 + 13 apps/client/src/app/pages/features/features-page.component.ts - 30 + 29 apps/client/src/app/pages/resources/glossary/resources-glossary.component.ts - 16 + 17 apps/client/src/app/pages/resources/overview/resources-overview.component.ts - 21 + 22 apps/client/src/app/pages/resources/overview/resources-overview.component.ts - 30 + 31 apps/client/src/app/pages/resources/overview/resources-overview.component.ts - 39 + 40 apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts - 14 + 15 apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 27 + 26 @@ -5727,7 +5727,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts - 13 + 14 @@ -5759,7 +5759,7 @@ Switzerland apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 60 + 59 libs/ui/src/lib/i18n.ts @@ -5771,7 +5771,7 @@ Global apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 61 + 60 libs/ui/src/lib/i18n.ts @@ -5883,7 +5883,7 @@ Do you really want to delete this tag? apps/client/src/app/components/admin-tag/admin-tag.component.ts - 86 + 87 @@ -5987,7 +5987,7 @@ apps/client/src/app/pages/user-account/user-account-page.component.ts - 40 + 41 @@ -5999,7 +5999,7 @@ apps/client/src/app/pages/user-account/user-account-page.component.ts - 46 + 47 @@ -6007,7 +6007,7 @@ Find holding... libs/ui/src/lib/assistant/assistant.component.ts - 144 + 143 @@ -6107,7 +6107,7 @@ Oops, cash balance transfer has failed. apps/client/src/app/pages/accounts/accounts-page.component.ts - 317 + 318 @@ -6139,7 +6139,7 @@ Oops! Could not parse historical data. libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.ts - 263 + 262 @@ -6147,7 +6147,7 @@ Do you really want to delete this system message? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 181 + 182 @@ -6203,7 +6203,7 @@ Do you really want to delete this account balance? libs/ui/src/lib/account-balances/account-balances.component.ts - 110 + 109 @@ -6211,7 +6211,7 @@ is an invalid currency! apps/client/src/app/components/admin-overview/admin-overview.component.ts - 136 + 137 @@ -6227,7 +6227,7 @@ The current market price is apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 325 + 326 @@ -6275,7 +6275,7 @@ Oops! Could not grant access. apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.component.ts - 90 + 91 @@ -6295,7 +6295,7 @@ apps/client/src/app/pages/admin/admin-page.component.ts - 42 + 43 @@ -6303,7 +6303,7 @@ Market data is delayed for apps/client/src/app/components/portfolio-performance/portfolio-performance.component.ts - 86 + 87 @@ -6311,15 +6311,15 @@ Investment apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 41 + 42 apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 55 + 56 apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 89 + 88 @@ -6375,7 +6375,7 @@ Week to date libs/ui/src/lib/assistant/assistant.component.ts - 223 + 222 @@ -6383,7 +6383,7 @@ WTD libs/ui/src/lib/assistant/assistant.component.ts - 223 + 222 @@ -6391,7 +6391,7 @@ Month to date libs/ui/src/lib/assistant/assistant.component.ts - 227 + 226 @@ -6399,7 +6399,7 @@ MTD libs/ui/src/lib/assistant/assistant.component.ts - 227 + 226 @@ -6407,7 +6407,7 @@ Year to date libs/ui/src/lib/assistant/assistant.component.ts - 231 + 230 @@ -6451,7 +6451,7 @@ year libs/ui/src/lib/assistant/assistant.component.ts - 235 + 234 @@ -6459,7 +6459,7 @@ years libs/ui/src/lib/assistant/assistant.component.ts - 257 + 256 @@ -6483,7 +6483,7 @@ General apps/client/src/app/pages/faq/faq-page.component.ts - 36 + 37 @@ -6491,7 +6491,7 @@ Cloud apps/client/src/app/pages/faq/faq-page.component.ts - 41 + 42 apps/client/src/app/pages/faq/saas/saas-page-routing.module.ts @@ -6503,7 +6503,7 @@ Self-Hosting apps/client/src/app/pages/faq/faq-page.component.ts - 47 + 48 apps/client/src/app/pages/faq/self-hosting/self-hosting-page-routing.module.ts @@ -6515,7 +6515,7 @@ self-hosting apps/client/src/app/pages/faq/faq-page.component.ts - 48 + 49 @@ -6551,7 +6551,7 @@ Active apps/client/src/app/components/home-holdings/home-holdings.component.ts - 35 + 36 @@ -6559,7 +6559,7 @@ Closed apps/client/src/app/components/home-holdings/home-holdings.component.ts - 36 + 37 @@ -6647,7 +6647,7 @@ Do you really want to close your Ghostfolio account? apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 172 + 173 @@ -6695,7 +6695,7 @@ Oops! There was an error setting up biometric authentication. apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 300 + 301 @@ -6711,7 +6711,7 @@ Benchmarks apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 80 + 81 @@ -6767,7 +6767,7 @@ Alternative apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 83 + 82 @@ -6775,7 +6775,7 @@ App apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 84 + 83 @@ -6783,7 +6783,7 @@ Budgeting apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 85 + 84 @@ -6791,7 +6791,7 @@ Community apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 86 + 85 @@ -6799,7 +6799,7 @@ Family Office apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 87 + 86 @@ -6807,7 +6807,7 @@ Investor apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 90 + 89 @@ -6815,7 +6815,7 @@ Open Source apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 91 + 90 @@ -6823,7 +6823,7 @@ Personal Finance apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 93 + 92 @@ -6831,7 +6831,7 @@ Privacy apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 94 + 93 @@ -6839,7 +6839,7 @@ Software apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 96 + 95 @@ -6847,7 +6847,7 @@ Tool apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 97 + 96 @@ -6855,7 +6855,7 @@ User Experience apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 98 + 97 @@ -6863,7 +6863,7 @@ Wealth apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 99 + 98 @@ -6871,7 +6871,7 @@ Wealth Management apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 100 + 99 @@ -7023,7 +7023,7 @@ Error apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 316 + 317 @@ -7395,7 +7395,7 @@ apps/client/src/app/pages/resources/resources-page.component.ts - 31 + 32 @@ -7407,7 +7407,7 @@ apps/client/src/app/pages/resources/resources-page.component.ts - 21 + 22 @@ -7416,7 +7416,7 @@ snake-case apps/client/src/app/pages/resources/overview/resources-overview.component.ts - 22 + 23 apps/client/src/app/pages/resources/resources-page-routing.module.ts @@ -7429,7 +7429,7 @@ snake-case apps/client/src/app/pages/resources/overview/resources-overview.component.ts - 40 + 41 apps/client/src/app/pages/resources/resources-page-routing.module.ts @@ -7489,19 +7489,15 @@ Do you really want to delete the API key? apps/client/src/app/components/admin-settings/admin-settings.component.ts - 92 + 93 Please enter your Ghostfolio API key: Please enter your Ghostfolio API key: - - apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/ghostfolio-premium-api-dialog.component.ts - 45 - apps/client/src/app/pages/api/api-page.component.ts - 41 + 40 @@ -7512,12 +7508,12 @@ 32 - + I have an API key I have an API key apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/ghostfolio-premium-api-dialog.html - 42 + 43 @@ -7533,7 +7529,7 @@ Could not generate an API key apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 138 + 139 @@ -7541,7 +7537,7 @@ Set this API key in your self-hosted environment: apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 153 + 154 @@ -7549,7 +7545,7 @@ Ghostfolio Premium Data Provider API Key apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 156 + 157 @@ -7557,7 +7553,7 @@ Do you really want to generate a new API key? apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 161 + 162 @@ -7605,7 +7601,7 @@ Save apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts - 61 + 62 @@ -7621,7 +7617,7 @@ Me apps/client/src/app/components/user-account-access/user-account-access.component.ts - 134 + 135 @@ -7632,6 +7628,14 @@ 3 + + Please enter your Ghostfolio API key. + Please enter your Ghostfolio API key. + + apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/ghostfolio-premium-api-dialog.component.ts + 59 + + diff --git a/apps/client/src/locales/messages.tr.xlf b/apps/client/src/locales/messages.tr.xlf index 5e8a124e..62e9608f 100644 --- a/apps/client/src/locales/messages.tr.xlf +++ b/apps/client/src/locales/messages.tr.xlf @@ -7,129 +7,19 @@ snake-case apps/client/src/app/app.component.ts - 64 + 65 apps/client/src/app/app.component.ts - 66 + 67 apps/client/src/app/app.component.ts - 70 + 71 apps/client/src/app/app.component.ts - 74 - - - apps/client/src/app/components/header/header.component.ts - 81 - - - apps/client/src/app/components/header/header.component.ts - 86 - - - apps/client/src/app/core/paths.ts - 2 - - - apps/client/src/app/pages/about/about-page.component.ts - 45 - - - apps/client/src/app/pages/about/about-page.component.ts - 50 - - - apps/client/src/app/pages/about/about-page.component.ts - 55 - - - apps/client/src/app/pages/about/about-page.component.ts - 63 - - - apps/client/src/app/pages/about/about-page.component.ts - 74 - - - apps/client/src/app/pages/blog/2023/08/ghostfolio-joins-oss-friends/ghostfolio-joins-oss-friends-page.component.ts - 14 - - - apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts - 13 - - - apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts - 15 - - - apps/client/src/app/pages/blog/2023/09/hacktoberfest-2023/hacktoberfest-2023-page.component.ts - 13 - - - apps/client/src/app/pages/blog/2023/11/hacktoberfest-2023-debriefing/hacktoberfest-2023-debriefing-page.component.ts - 13 - - - apps/client/src/app/pages/blog/2024/09/hacktoberfest-2024/hacktoberfest-2024-page.component.ts - 13 - - - apps/client/src/app/pages/landing/landing-page.component.ts - 26 - - - apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts - 18 - - - apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 24 - - - - faq - sss - snake-case - - apps/client/src/app/app.component.ts - 77 - - - apps/client/src/app/core/paths.ts - 3 - - - apps/client/src/app/pages/about/overview/about-overview-page.component.ts - 19 - - - apps/client/src/app/pages/faq/faq-page.component.ts - 37 - - - apps/client/src/app/pages/faq/faq-page.component.ts - 42 - - - apps/client/src/app/pages/faq/faq-page.component.ts - 48 - - - apps/client/src/app/pages/resources/overview/resources-overview.component.ts - 14 - - - - features - oezellikler - snake-case - - apps/client/src/app/app.component.ts - 78 + 75 apps/client/src/app/components/header/header.component.ts @@ -141,77 +31,101 @@ apps/client/src/app/core/paths.ts - 4 + 2 + + + apps/client/src/app/pages/about/about-page.component.ts + 46 + + + apps/client/src/app/pages/about/about-page.component.ts + 51 + + + apps/client/src/app/pages/about/about-page.component.ts + 56 + + + apps/client/src/app/pages/about/about-page.component.ts + 64 + + + apps/client/src/app/pages/about/about-page.component.ts + 75 + + + apps/client/src/app/pages/blog/2023/08/ghostfolio-joins-oss-friends/ghostfolio-joins-oss-friends-page.component.ts + 13 + + + apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts + 12 + + + apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts + 14 + + + apps/client/src/app/pages/blog/2023/09/hacktoberfest-2023/hacktoberfest-2023-page.component.ts + 12 + + + apps/client/src/app/pages/blog/2023/11/hacktoberfest-2023-debriefing/hacktoberfest-2023-debriefing-page.component.ts + 12 + + + apps/client/src/app/pages/blog/2024/09/hacktoberfest-2024/hacktoberfest-2024-page.component.ts + 12 + + + apps/client/src/app/pages/landing/landing-page.component.ts + 27 + + + apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts + 19 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 23 + + + + faq + sss + snake-case + + apps/client/src/app/app.component.ts + 78 + + + apps/client/src/app/core/paths.ts + 3 apps/client/src/app/pages/about/overview/about-overview-page.component.ts 20 - apps/client/src/app/pages/blog/2022/11/black-friday-2022/black-friday-2022-page.component.ts + apps/client/src/app/pages/faq/faq-page.component.ts + 38 + + + apps/client/src/app/pages/faq/faq-page.component.ts + 43 + + + apps/client/src/app/pages/faq/faq-page.component.ts + 49 + + + apps/client/src/app/pages/resources/overview/resources-overview.component.ts 15 - - apps/client/src/app/pages/blog/2023/03/1000-stars-on-github/1000-stars-on-github-page.component.ts - 13 - - - apps/client/src/app/pages/blog/2023/05/unlock-your-financial-potential-with-ghostfolio/unlock-your-financial-potential-with-ghostfolio-page.component.ts - 13 - - - apps/client/src/app/pages/blog/2023/07/exploring-the-path-to-fire/exploring-the-path-to-fire-page.component.ts - 13 - - - apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts - 18 - - - apps/client/src/app/pages/blog/2023/11/black-week-2023/black-week-2023-page.component.ts - 15 - - - apps/client/src/app/pages/blog/2023/11/hacktoberfest-2023-debriefing/hacktoberfest-2023-debriefing-page.component.ts - 14 - - - apps/client/src/app/pages/blog/2024/11/black-weeks-2024/black-weeks-2024-page.component.ts - 15 - - - apps/client/src/app/pages/faq/overview/faq-overview-page.component.ts - 14 - - - apps/client/src/app/pages/pricing/pricing-page.component.ts - 41 - - - apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 25 - - - license - lisans - snake-case - - apps/client/src/app/app.component.ts - 71 - - - apps/client/src/app/core/paths.ts - 5 - - - apps/client/src/app/pages/about/about-page.component.ts - 55 - - - - markets - piyasalar + + features + oezellikler snake-case apps/client/src/app/app.component.ts @@ -225,25 +139,111 @@ apps/client/src/app/components/header/header.component.ts 88 + + apps/client/src/app/core/paths.ts + 4 + + + apps/client/src/app/pages/about/overview/about-overview-page.component.ts + 21 + + + apps/client/src/app/pages/blog/2022/11/black-friday-2022/black-friday-2022-page.component.ts + 14 + + + apps/client/src/app/pages/blog/2023/03/1000-stars-on-github/1000-stars-on-github-page.component.ts + 12 + + + apps/client/src/app/pages/blog/2023/05/unlock-your-financial-potential-with-ghostfolio/unlock-your-financial-potential-with-ghostfolio-page.component.ts + 12 + + + apps/client/src/app/pages/blog/2023/07/exploring-the-path-to-fire/exploring-the-path-to-fire-page.component.ts + 12 + + + apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts + 17 + + + apps/client/src/app/pages/blog/2023/11/black-week-2023/black-week-2023-page.component.ts + 14 + + + apps/client/src/app/pages/blog/2023/11/hacktoberfest-2023-debriefing/hacktoberfest-2023-debriefing-page.component.ts + 13 + + + apps/client/src/app/pages/blog/2024/11/black-weeks-2024/black-weeks-2024-page.component.ts + 14 + + + apps/client/src/app/pages/faq/overview/faq-overview-page.component.ts + 15 + + + apps/client/src/app/pages/pricing/pricing-page.component.ts + 42 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 24 + + + + license + lisans + snake-case + + apps/client/src/app/app.component.ts + 72 + + + apps/client/src/app/core/paths.ts + 5 + + + apps/client/src/app/pages/about/about-page.component.ts + 56 + + + + markets + piyasalar + snake-case + + apps/client/src/app/app.component.ts + 80 + + + apps/client/src/app/components/header/header.component.ts + 84 + + + apps/client/src/app/components/header/header.component.ts + 89 + apps/client/src/app/core/paths.ts 6 apps/client/src/app/pages/blog/2022/08/500-stars-on-github/500-stars-on-github-page.component.ts - 13 + 12 apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts - 19 + 18 apps/client/src/app/pages/faq/saas/saas-page.component.ts - 14 + 15 apps/client/src/app/pages/resources/overview/resources-overview.component.ts - 31 + 32 apps/client/src/app/pages/resources/resources-page-routing.module.ts @@ -256,27 +256,27 @@ snake-case apps/client/src/app/app.component.ts - 80 + 81 apps/client/src/app/components/admin-settings/admin-settings.component.ts - 73 + 74 apps/client/src/app/components/header/header.component.ts - 84 + 85 apps/client/src/app/components/header/header.component.ts - 89 + 90 apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.component.ts - 16 + 17 apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 42 + 43 apps/client/src/app/core/http-response.interceptor.ts @@ -288,43 +288,43 @@ apps/client/src/app/pages/blog/2021/07/hallo-ghostfolio/hallo-ghostfolio-page.component.ts - 13 + 12 apps/client/src/app/pages/blog/2021/07/hello-ghostfolio/hello-ghostfolio-page.component.ts - 13 + 12 apps/client/src/app/pages/blog/2022/01/first-months-in-open-source/first-months-in-open-source-page.component.ts - 13 + 12 apps/client/src/app/pages/blog/2022/08/500-stars-on-github/500-stars-on-github-page.component.ts - 14 + 13 apps/client/src/app/pages/blog/2022/11/black-friday-2022/black-friday-2022-page.component.ts - 16 - - - apps/client/src/app/pages/blog/2023/03/1000-stars-on-github/1000-stars-on-github-page.component.ts - 14 - - - apps/client/src/app/pages/blog/2023/11/black-week-2023/black-week-2023-page.component.ts - 16 - - - apps/client/src/app/pages/blog/2024/11/black-weeks-2024/black-weeks-2024-page.component.ts - 16 - - - apps/client/src/app/pages/faq/saas/saas-page.component.ts 15 + + apps/client/src/app/pages/blog/2023/03/1000-stars-on-github/1000-stars-on-github-page.component.ts + 13 + + + apps/client/src/app/pages/blog/2023/11/black-week-2023/black-week-2023-page.component.ts + 15 + + + apps/client/src/app/pages/blog/2024/11/black-weeks-2024/black-weeks-2024-page.component.ts + 15 + + + apps/client/src/app/pages/faq/saas/saas-page.component.ts + 16 + libs/ui/src/lib/membership-card/membership-card.component.ts - 31 + 30 @@ -333,7 +333,7 @@ snake-case apps/client/src/app/app.component.ts - 75 + 76 apps/client/src/app/core/paths.ts @@ -341,7 +341,7 @@ apps/client/src/app/pages/about/about-page.component.ts - 63 + 64 @@ -350,11 +350,11 @@ snake-case apps/client/src/app/app.component.ts - 81 + 82 apps/client/src/app/components/header/header.component.ts - 90 + 91 apps/client/src/app/core/auth.guard.ts @@ -366,19 +366,19 @@ apps/client/src/app/pages/faq/saas/saas-page.component.ts - 16 + 17 apps/client/src/app/pages/features/features-page.component.ts - 29 + 28 apps/client/src/app/pages/landing/landing-page.component.ts - 27 + 28 apps/client/src/app/pages/pricing/pricing-page.component.ts - 42 + 43 @@ -387,15 +387,15 @@ snake-case apps/client/src/app/app.component.ts - 82 + 83 apps/client/src/app/components/header/header.component.ts - 85 + 86 apps/client/src/app/components/header/header.component.ts - 91 + 92 apps/client/src/app/core/paths.ts @@ -403,47 +403,47 @@ apps/client/src/app/pages/blog/2021/07/hallo-ghostfolio/hallo-ghostfolio-page.component.ts - 14 - - - apps/client/src/app/pages/blog/2021/07/hello-ghostfolio/hello-ghostfolio-page.component.ts - 14 - - - apps/client/src/app/pages/blog/2022/07/how-do-i-get-my-finances-in-order/how-do-i-get-my-finances-in-order-page.component.ts 13 + + apps/client/src/app/pages/blog/2021/07/hello-ghostfolio/hello-ghostfolio-page.component.ts + 13 + + + apps/client/src/app/pages/blog/2022/07/how-do-i-get-my-finances-in-order/how-do-i-get-my-finances-in-order-page.component.ts + 12 + apps/client/src/app/pages/blog/2023/05/unlock-your-financial-potential-with-ghostfolio/unlock-your-financial-potential-with-ghostfolio-page.component.ts - 14 + 13 apps/client/src/app/pages/features/features-page.component.ts - 30 + 29 apps/client/src/app/pages/resources/glossary/resources-glossary.component.ts - 16 + 17 apps/client/src/app/pages/resources/overview/resources-overview.component.ts - 21 + 22 apps/client/src/app/pages/resources/overview/resources-overview.component.ts - 30 + 31 apps/client/src/app/pages/resources/overview/resources-overview.component.ts - 39 + 40 apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts - 14 + 15 apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 27 + 26 @@ -811,7 +811,7 @@ Bu erişim iznini geri almayı gerçekten istiyor musunuz? apps/client/src/app/components/access-table/access-table.component.ts - 67 + 68 @@ -1131,7 +1131,7 @@ Bu hesabı silmeyi gerçekten istiyor musunuz? apps/client/src/app/components/accounts-table/accounts-table.component.ts - 106 + 107 @@ -1391,7 +1391,7 @@ Para Birimleri apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 85 + 86 @@ -1399,7 +1399,7 @@ Ülkesi Olmayan ETF’ler apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 90 + 91 @@ -1407,7 +1407,7 @@ Sektörü Olmayan ETF’ler apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 95 + 96 @@ -1415,7 +1415,7 @@ Filtrele... apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 328 + 329 @@ -1691,7 +1691,7 @@ Lütfen bir para birimi giriniz: apps/client/src/app/components/admin-overview/admin-overview.component.ts - 125 + 126 @@ -1699,7 +1699,7 @@ Önbelleği temizlemeyi gerçekten istiyor musunuz? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 155 + 156 @@ -1707,7 +1707,7 @@ Bu para birimini silmeyi gerçekten istiyor musunuz? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 168 + 169 @@ -1715,7 +1715,7 @@ Önbelleği temizlemeyi gerçekten istiyor musunuz apps/client/src/app/components/admin-overview/admin-overview.component.ts - 205 + 206 @@ -1723,7 +1723,7 @@ Lütfen sistem mesajınızı belirleyin: apps/client/src/app/components/admin-overview/admin-overview.component.ts - 225 + 226 @@ -1915,7 +1915,7 @@ Bu platformu silmeyi gerçekten istiyor musunuz? apps/client/src/app/components/admin-platform/admin-platform.component.ts - 86 + 87 @@ -1947,7 +1947,7 @@ Bu kullanıcıyı silmeyi gerçekten istiyor musunu? apps/client/src/app/components/admin-users/admin-users.component.ts - 138 + 139 @@ -2035,7 +2035,7 @@ Portföy apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.ts - 116 + 117 apps/client/src/app/pages/portfolio/portfolio-page-routing.module.ts @@ -2043,7 +2043,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 95 + 94 @@ -2051,7 +2051,7 @@ Karşılaştırma Ölçütü apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.ts - 128 + 129 @@ -2155,7 +2155,7 @@ apps/client/src/app/components/header/header.component.ts - 230 + 231 @@ -2163,11 +2163,11 @@ Hay Allah! Güvenlik anahtarı yanlış. apps/client/src/app/components/header/header.component.ts - 245 + 246 apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 157 + 158 @@ -2183,7 +2183,7 @@ Korku apps/client/src/app/components/home-market/home-market.component.ts - 27 + 28 libs/ui/src/lib/i18n.ts @@ -2195,7 +2195,7 @@ Açgözlülük apps/client/src/app/components/home-market/home-market.component.ts - 28 + 29 libs/ui/src/lib/i18n.ts @@ -2307,7 +2307,7 @@ Toplam Tutar apps/client/src/app/components/investment-chart/investment-chart.component.ts - 140 + 141 @@ -2315,7 +2315,7 @@ Tasarruf Oranı apps/client/src/app/components/investment-chart/investment-chart.component.ts - 199 + 200 @@ -2339,7 +2339,7 @@ veya apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/ghostfolio-premium-api-dialog.html - 35 + 36 apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html @@ -2571,7 +2571,7 @@ Lütfen acil durum yedeği meblağını giriniz: apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts - 63 + 64 @@ -2799,11 +2799,11 @@ Bugün apps/client/src/app/components/toggle/toggle.component.ts - 21 + 22 libs/ui/src/lib/assistant/assistant.component.ts - 221 + 220 @@ -2811,11 +2811,11 @@ YTD apps/client/src/app/components/toggle/toggle.component.ts - 22 + 23 libs/ui/src/lib/assistant/assistant.component.ts - 231 + 230 @@ -2823,11 +2823,11 @@ 1Y apps/client/src/app/components/toggle/toggle.component.ts - 23 + 24 libs/ui/src/lib/assistant/assistant.component.ts - 235 + 234 @@ -2835,11 +2835,11 @@ 5Y apps/client/src/app/components/toggle/toggle.component.ts - 24 + 25 libs/ui/src/lib/assistant/assistant.component.ts - 257 + 256 @@ -2847,11 +2847,11 @@ Maks. apps/client/src/app/components/toggle/toggle.component.ts - 25 + 26 libs/ui/src/lib/assistant/assistant.component.ts - 260 + 259 @@ -2875,7 +2875,7 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 142 + 143 @@ -2887,7 +2887,7 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 140 + 141 @@ -2895,7 +2895,7 @@ Tamam apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 151 + 152 apps/client/src/app/core/http-response.interceptor.ts @@ -2903,7 +2903,7 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 143 + 144 @@ -2915,7 +2915,7 @@ apps/client/src/app/pages/about/about-page.component.ts - 44 + 45 apps/client/src/app/pages/about/overview/about-overview-page-routing.module.ts @@ -2927,7 +2927,7 @@ Değişiklik Günlüğü apps/client/src/app/pages/about/about-page.component.ts - 49 + 50 apps/client/src/app/pages/about/changelog/changelog-page-routing.module.ts @@ -2939,7 +2939,7 @@ Lisans apps/client/src/app/pages/about/about-page.component.ts - 54 + 55 apps/client/src/app/pages/about/license/license-page-routing.module.ts @@ -2951,7 +2951,7 @@ Gizlilik Politikası apps/client/src/app/pages/about/about-page.component.ts - 62 + 63 apps/client/src/app/pages/about/privacy-policy/privacy-policy-page-routing.module.ts @@ -3031,7 +3031,7 @@ apps/client/src/app/pages/admin/admin-page.component.ts - 37 + 38 @@ -3043,7 +3043,7 @@ apps/client/src/app/pages/admin/admin-page.component.ts - 32 + 33 apps/client/src/app/pages/user-account/user-account-page-routing.module.ts @@ -3051,7 +3051,7 @@ apps/client/src/app/pages/user-account/user-account-page.component.ts - 35 + 36 @@ -3063,7 +3063,7 @@ apps/client/src/app/pages/admin/admin-page.component.ts - 47 + 48 @@ -3071,15 +3071,15 @@ Özet apps/client/src/app/pages/admin/admin-page.component.ts - 27 + 28 apps/client/src/app/pages/home/home-page.component.ts - 37 + 38 apps/client/src/app/pages/resources/resources-page.component.ts - 16 + 17 apps/client/src/app/pages/zen/zen-page-routing.module.ts @@ -3087,7 +3087,7 @@ apps/client/src/app/pages/zen/zen-page.component.ts - 34 + 35 @@ -3299,11 +3299,11 @@ apps/client/src/app/pages/home/home-page.component.ts - 42 + 43 apps/client/src/app/pages/zen/zen-page.component.ts - 39 + 40 @@ -3315,7 +3315,7 @@ apps/client/src/app/pages/home/home-page.component.ts - 47 + 48 @@ -3327,7 +3327,7 @@ apps/client/src/app/pages/home/home-page.component.ts - 52 + 53 apps/client/src/app/pages/markets/markets-page-routing.module.ts @@ -3339,7 +3339,7 @@ apps/client/src/app/pages/resources/resources-page.component.ts - 26 + 27 @@ -3715,7 +3715,7 @@ apps/client/src/app/pages/portfolio/portfolio-page.component.ts - 39 + 40 @@ -3723,7 +3723,7 @@ Tüm işlemlerinizi silmeyi gerçekten istiyor musunuz? libs/ui/src/lib/activities-table/activities-table.component.ts - 219 + 218 @@ -3831,7 +3831,7 @@ İşlemleri İçe Aktar apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 45 + 46 @@ -3839,7 +3839,7 @@ Temettüleri İçe Aktar apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 86 + 87 @@ -3847,7 +3847,7 @@ Veri içe aktarılıyor... apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 124 + 125 @@ -3855,7 +3855,7 @@ İçe aktarma tamamlandı apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 132 + 133 @@ -3863,7 +3863,7 @@ Veri doğrulanıyor... apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 238 + 239 @@ -3963,7 +3963,7 @@ apps/client/src/app/pages/portfolio/portfolio-page.component.ts - 44 + 45 @@ -4139,7 +4139,7 @@ apps/client/src/app/pages/portfolio/portfolio-page.component.ts - 34 + 35 @@ -4147,7 +4147,7 @@ Temettü apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 37 + 38 libs/ui/src/lib/i18n.ts @@ -4159,7 +4159,7 @@ Para Yatırma libs/ui/src/lib/fire-calculator/fire-calculator.component.ts - 361 + 360 @@ -4167,7 +4167,7 @@ Aylık apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 49 + 50 @@ -4175,7 +4175,7 @@ Yıllık apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 50 + 51 @@ -4607,7 +4607,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts - 13 + 14 @@ -4863,7 +4863,7 @@ İsviçre apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 60 + 59 libs/ui/src/lib/i18n.ts @@ -4875,7 +4875,7 @@ Küresel apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 61 + 60 libs/ui/src/lib/i18n.ts @@ -4935,15 +4935,15 @@ Otomatik apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 38 + 39 - - Please enter your coupon code: - Lütfen kupon kodunuzu girin: + + Please enter your coupon code. + Lütfen kupon kodunuzu girin: apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 166 + 213 @@ -4951,7 +4951,7 @@ Kupon kodu kullanılamadı apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 175 + 177 @@ -4959,7 +4959,7 @@ Kupon kodu kullanıldı apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 188 + 190 @@ -4967,7 +4967,7 @@ Yeniden Yükle apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 189 + 191 @@ -4975,7 +4975,7 @@ Bu giriş yöntemini kaldırmayı gerçekten istiyor musunuz? apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 246 + 247 @@ -5275,7 +5275,7 @@ TBu işlemi silmeyi gerçekten istiyor musunuz? libs/ui/src/lib/activities-table/activities-table.component.ts - 229 + 228 @@ -5347,7 +5347,7 @@ Faiz libs/ui/src/lib/fire-calculator/fire-calculator.component.ts - 371 + 370 libs/ui/src/lib/i18n.ts @@ -5359,7 +5359,7 @@ Tasarruflar libs/ui/src/lib/fire-calculator/fire-calculator.component.ts - 381 + 380 @@ -5523,7 +5523,7 @@ libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 403 + 402 @@ -5771,11 +5771,11 @@ Veri mevcut değil libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 405 + 404 libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 418 + 417 @@ -5883,7 +5883,7 @@ Bu etiketi silmeyi gerçekten istiyor musunuz? apps/client/src/app/components/admin-tag/admin-tag.component.ts - 86 + 87 @@ -5987,7 +5987,7 @@ apps/client/src/app/pages/user-account/user-account-page.component.ts - 40 + 41 @@ -5999,7 +5999,7 @@ apps/client/src/app/pages/user-account/user-account-page.component.ts - 46 + 47 @@ -6007,7 +6007,7 @@ Sahip olunan varlıkları bul... libs/ui/src/lib/assistant/assistant.component.ts - 144 + 143 @@ -6107,7 +6107,7 @@ Hay Allah, Nakit bakiyesi tranferi başarısız oldu. apps/client/src/app/pages/accounts/accounts-page.component.ts - 317 + 318 @@ -6139,7 +6139,7 @@ Hay Allah! Geçmiş veriler ayrıştırılamadı. libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.ts - 263 + 262 @@ -6147,7 +6147,7 @@ Bu sistem mesajını silmeyi gerçekten istiyor musunuz? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 181 + 182 @@ -6203,7 +6203,7 @@ Bu nakit bakiyesini silmeyi gerçekten istiyor musunuz? libs/ui/src/lib/account-balances/account-balances.component.ts - 110 + 109 @@ -6211,7 +6211,7 @@ is an invalid currency! apps/client/src/app/components/admin-overview/admin-overview.component.ts - 136 + 137 @@ -6227,7 +6227,7 @@ The current market price is apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 325 + 326 @@ -6275,7 +6275,7 @@ Oops! Could not grant access. apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.component.ts - 90 + 91 @@ -6295,7 +6295,7 @@ apps/client/src/app/pages/admin/admin-page.component.ts - 42 + 43 @@ -6303,7 +6303,7 @@ Market data is delayed for apps/client/src/app/components/portfolio-performance/portfolio-performance.component.ts - 86 + 87 @@ -6311,15 +6311,15 @@ Investment apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 41 + 42 apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 55 + 56 apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 89 + 88 @@ -6375,7 +6375,7 @@ Week to date libs/ui/src/lib/assistant/assistant.component.ts - 223 + 222 @@ -6383,7 +6383,7 @@ WTD libs/ui/src/lib/assistant/assistant.component.ts - 223 + 222 @@ -6391,7 +6391,7 @@ Month to date libs/ui/src/lib/assistant/assistant.component.ts - 227 + 226 @@ -6399,7 +6399,7 @@ MTD libs/ui/src/lib/assistant/assistant.component.ts - 227 + 226 @@ -6407,7 +6407,7 @@ Year to date libs/ui/src/lib/assistant/assistant.component.ts - 231 + 230 @@ -6451,7 +6451,7 @@ year libs/ui/src/lib/assistant/assistant.component.ts - 235 + 234 @@ -6459,7 +6459,7 @@ years libs/ui/src/lib/assistant/assistant.component.ts - 257 + 256 @@ -6483,7 +6483,7 @@ General apps/client/src/app/pages/faq/faq-page.component.ts - 36 + 37 @@ -6491,7 +6491,7 @@ Cloud apps/client/src/app/pages/faq/faq-page.component.ts - 41 + 42 apps/client/src/app/pages/faq/saas/saas-page-routing.module.ts @@ -6503,7 +6503,7 @@ Self-Hosting apps/client/src/app/pages/faq/faq-page.component.ts - 47 + 48 apps/client/src/app/pages/faq/self-hosting/self-hosting-page-routing.module.ts @@ -6515,7 +6515,7 @@ self-hosting apps/client/src/app/pages/faq/faq-page.component.ts - 48 + 49 @@ -6551,7 +6551,7 @@ Active apps/client/src/app/components/home-holdings/home-holdings.component.ts - 35 + 36 @@ -6559,7 +6559,7 @@ Closed apps/client/src/app/components/home-holdings/home-holdings.component.ts - 36 + 37 @@ -6647,7 +6647,7 @@ Do you really want to close your Ghostfolio account? apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 172 + 173 @@ -6695,7 +6695,7 @@ Oops! There was an error setting up biometric authentication. apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 300 + 301 @@ -6711,7 +6711,7 @@ Benchmarks apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 80 + 81 @@ -6767,7 +6767,7 @@ Alternative apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 83 + 82 @@ -6775,7 +6775,7 @@ App apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 84 + 83 @@ -6783,7 +6783,7 @@ Budgeting apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 85 + 84 @@ -6791,7 +6791,7 @@ Community apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 86 + 85 @@ -6799,7 +6799,7 @@ Family Office apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 87 + 86 @@ -6807,7 +6807,7 @@ Investor apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 90 + 89 @@ -6815,7 +6815,7 @@ Open Source apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 91 + 90 @@ -6823,7 +6823,7 @@ Personal Finance apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 93 + 92 @@ -6831,7 +6831,7 @@ Privacy apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 94 + 93 @@ -6839,7 +6839,7 @@ Software apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 96 + 95 @@ -6847,7 +6847,7 @@ Tool apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 97 + 96 @@ -6855,7 +6855,7 @@ User Experience apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 98 + 97 @@ -6863,7 +6863,7 @@ Wealth apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 99 + 98 @@ -6871,7 +6871,7 @@ Wealth Management apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 100 + 99 @@ -7023,7 +7023,7 @@ Error apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 316 + 317 @@ -7395,7 +7395,7 @@ apps/client/src/app/pages/resources/resources-page.component.ts - 31 + 32 @@ -7407,7 +7407,7 @@ apps/client/src/app/pages/resources/resources-page.component.ts - 21 + 22 @@ -7416,7 +7416,7 @@ snake-case apps/client/src/app/pages/resources/overview/resources-overview.component.ts - 22 + 23 apps/client/src/app/pages/resources/resources-page-routing.module.ts @@ -7429,7 +7429,7 @@ snake-case apps/client/src/app/pages/resources/overview/resources-overview.component.ts - 40 + 41 apps/client/src/app/pages/resources/resources-page-routing.module.ts @@ -7489,19 +7489,15 @@ Do you really want to delete the API key? apps/client/src/app/components/admin-settings/admin-settings.component.ts - 92 + 93 Please enter your Ghostfolio API key: Please enter your Ghostfolio API key: - - apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/ghostfolio-premium-api-dialog.component.ts - 45 - apps/client/src/app/pages/api/api-page.component.ts - 41 + 40 @@ -7512,12 +7508,12 @@ 32 - + I have an API key I have an API key apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/ghostfolio-premium-api-dialog.html - 42 + 43 @@ -7533,7 +7529,7 @@ Could not generate an API key apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 138 + 139 @@ -7541,7 +7537,7 @@ Set this API key in your self-hosted environment: apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 153 + 154 @@ -7549,7 +7545,7 @@ Ghostfolio Premium Data Provider API Key apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 156 + 157 @@ -7557,7 +7553,7 @@ Do you really want to generate a new API key? apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 161 + 162 @@ -7605,7 +7601,7 @@ Save apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts - 61 + 62 @@ -7621,7 +7617,7 @@ Me apps/client/src/app/components/user-account-access/user-account-access.component.ts - 134 + 135 @@ -7632,6 +7628,14 @@ 3 + + Please enter your Ghostfolio API key. + Please enter your Ghostfolio API key. + + apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/ghostfolio-premium-api-dialog.component.ts + 59 + + diff --git a/apps/client/src/locales/messages.xlf b/apps/client/src/locales/messages.xlf index d94fa109..03def343 100644 --- a/apps/client/src/locales/messages.xlf +++ b/apps/client/src/locales/messages.xlf @@ -7,127 +7,19 @@ snake-case apps/client/src/app/app.component.ts - 64 + 65 apps/client/src/app/app.component.ts - 66 + 67 apps/client/src/app/app.component.ts - 70 + 71 apps/client/src/app/app.component.ts - 74 - - - apps/client/src/app/components/header/header.component.ts - 81 - - - apps/client/src/app/components/header/header.component.ts - 86 - - - apps/client/src/app/core/paths.ts - 2 - - - apps/client/src/app/pages/about/about-page.component.ts - 45 - - - apps/client/src/app/pages/about/about-page.component.ts - 50 - - - apps/client/src/app/pages/about/about-page.component.ts - 55 - - - apps/client/src/app/pages/about/about-page.component.ts - 63 - - - apps/client/src/app/pages/about/about-page.component.ts - 74 - - - apps/client/src/app/pages/blog/2023/08/ghostfolio-joins-oss-friends/ghostfolio-joins-oss-friends-page.component.ts - 14 - - - apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts - 13 - - - apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts - 15 - - - apps/client/src/app/pages/blog/2023/09/hacktoberfest-2023/hacktoberfest-2023-page.component.ts - 13 - - - apps/client/src/app/pages/blog/2023/11/hacktoberfest-2023-debriefing/hacktoberfest-2023-debriefing-page.component.ts - 13 - - - apps/client/src/app/pages/blog/2024/09/hacktoberfest-2024/hacktoberfest-2024-page.component.ts - 13 - - - apps/client/src/app/pages/landing/landing-page.component.ts - 26 - - - apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts - 18 - - - apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 24 - - - - faq - snake-case - - apps/client/src/app/app.component.ts - 77 - - - apps/client/src/app/core/paths.ts - 3 - - - apps/client/src/app/pages/about/overview/about-overview-page.component.ts - 19 - - - apps/client/src/app/pages/faq/faq-page.component.ts - 37 - - - apps/client/src/app/pages/faq/faq-page.component.ts - 42 - - - apps/client/src/app/pages/faq/faq-page.component.ts - 48 - - - apps/client/src/app/pages/resources/overview/resources-overview.component.ts - 14 - - - - features - snake-case - - apps/client/src/app/app.component.ts - 78 + 75 apps/client/src/app/components/header/header.component.ts @@ -139,75 +31,99 @@ apps/client/src/app/core/paths.ts - 4 + 2 + + + apps/client/src/app/pages/about/about-page.component.ts + 46 + + + apps/client/src/app/pages/about/about-page.component.ts + 51 + + + apps/client/src/app/pages/about/about-page.component.ts + 56 + + + apps/client/src/app/pages/about/about-page.component.ts + 64 + + + apps/client/src/app/pages/about/about-page.component.ts + 75 + + + apps/client/src/app/pages/blog/2023/08/ghostfolio-joins-oss-friends/ghostfolio-joins-oss-friends-page.component.ts + 13 + + + apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts + 12 + + + apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts + 14 + + + apps/client/src/app/pages/blog/2023/09/hacktoberfest-2023/hacktoberfest-2023-page.component.ts + 12 + + + apps/client/src/app/pages/blog/2023/11/hacktoberfest-2023-debriefing/hacktoberfest-2023-debriefing-page.component.ts + 12 + + + apps/client/src/app/pages/blog/2024/09/hacktoberfest-2024/hacktoberfest-2024-page.component.ts + 12 + + + apps/client/src/app/pages/landing/landing-page.component.ts + 27 + + + apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts + 19 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 23 + + + + faq + snake-case + + apps/client/src/app/app.component.ts + 78 + + + apps/client/src/app/core/paths.ts + 3 apps/client/src/app/pages/about/overview/about-overview-page.component.ts 20 - apps/client/src/app/pages/blog/2022/11/black-friday-2022/black-friday-2022-page.component.ts + apps/client/src/app/pages/faq/faq-page.component.ts + 38 + + + apps/client/src/app/pages/faq/faq-page.component.ts + 43 + + + apps/client/src/app/pages/faq/faq-page.component.ts + 49 + + + apps/client/src/app/pages/resources/overview/resources-overview.component.ts 15 - - apps/client/src/app/pages/blog/2023/03/1000-stars-on-github/1000-stars-on-github-page.component.ts - 13 - - - apps/client/src/app/pages/blog/2023/05/unlock-your-financial-potential-with-ghostfolio/unlock-your-financial-potential-with-ghostfolio-page.component.ts - 13 - - - apps/client/src/app/pages/blog/2023/07/exploring-the-path-to-fire/exploring-the-path-to-fire-page.component.ts - 13 - - - apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts - 18 - - - apps/client/src/app/pages/blog/2023/11/black-week-2023/black-week-2023-page.component.ts - 15 - - - apps/client/src/app/pages/blog/2023/11/hacktoberfest-2023-debriefing/hacktoberfest-2023-debriefing-page.component.ts - 14 - - - apps/client/src/app/pages/blog/2024/11/black-weeks-2024/black-weeks-2024-page.component.ts - 15 - - - apps/client/src/app/pages/faq/overview/faq-overview-page.component.ts - 14 - - - apps/client/src/app/pages/pricing/pricing-page.component.ts - 41 - - - apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 25 - - - license - snake-case - - apps/client/src/app/app.component.ts - 71 - - - apps/client/src/app/core/paths.ts - 5 - - - apps/client/src/app/pages/about/about-page.component.ts - 55 - - - - markets + + features snake-case apps/client/src/app/app.component.ts @@ -221,25 +137,109 @@ apps/client/src/app/components/header/header.component.ts 88 + + apps/client/src/app/core/paths.ts + 4 + + + apps/client/src/app/pages/about/overview/about-overview-page.component.ts + 21 + + + apps/client/src/app/pages/blog/2022/11/black-friday-2022/black-friday-2022-page.component.ts + 14 + + + apps/client/src/app/pages/blog/2023/03/1000-stars-on-github/1000-stars-on-github-page.component.ts + 12 + + + apps/client/src/app/pages/blog/2023/05/unlock-your-financial-potential-with-ghostfolio/unlock-your-financial-potential-with-ghostfolio-page.component.ts + 12 + + + apps/client/src/app/pages/blog/2023/07/exploring-the-path-to-fire/exploring-the-path-to-fire-page.component.ts + 12 + + + apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts + 17 + + + apps/client/src/app/pages/blog/2023/11/black-week-2023/black-week-2023-page.component.ts + 14 + + + apps/client/src/app/pages/blog/2023/11/hacktoberfest-2023-debriefing/hacktoberfest-2023-debriefing-page.component.ts + 13 + + + apps/client/src/app/pages/blog/2024/11/black-weeks-2024/black-weeks-2024-page.component.ts + 14 + + + apps/client/src/app/pages/faq/overview/faq-overview-page.component.ts + 15 + + + apps/client/src/app/pages/pricing/pricing-page.component.ts + 42 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 24 + + + + license + snake-case + + apps/client/src/app/app.component.ts + 72 + + + apps/client/src/app/core/paths.ts + 5 + + + apps/client/src/app/pages/about/about-page.component.ts + 56 + + + + markets + snake-case + + apps/client/src/app/app.component.ts + 80 + + + apps/client/src/app/components/header/header.component.ts + 84 + + + apps/client/src/app/components/header/header.component.ts + 89 + apps/client/src/app/core/paths.ts 6 apps/client/src/app/pages/blog/2022/08/500-stars-on-github/500-stars-on-github-page.component.ts - 13 + 12 apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts - 19 + 18 apps/client/src/app/pages/faq/saas/saas-page.component.ts - 14 + 15 apps/client/src/app/pages/resources/overview/resources-overview.component.ts - 31 + 32 apps/client/src/app/pages/resources/resources-page-routing.module.ts @@ -251,27 +251,27 @@ snake-case apps/client/src/app/app.component.ts - 80 + 81 apps/client/src/app/components/admin-settings/admin-settings.component.ts - 73 + 74 apps/client/src/app/components/header/header.component.ts - 84 + 85 apps/client/src/app/components/header/header.component.ts - 89 + 90 apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.component.ts - 16 + 17 apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 42 + 43 apps/client/src/app/core/http-response.interceptor.ts @@ -283,43 +283,43 @@ apps/client/src/app/pages/blog/2021/07/hallo-ghostfolio/hallo-ghostfolio-page.component.ts - 13 + 12 apps/client/src/app/pages/blog/2021/07/hello-ghostfolio/hello-ghostfolio-page.component.ts - 13 + 12 apps/client/src/app/pages/blog/2022/01/first-months-in-open-source/first-months-in-open-source-page.component.ts - 13 + 12 apps/client/src/app/pages/blog/2022/08/500-stars-on-github/500-stars-on-github-page.component.ts - 14 + 13 apps/client/src/app/pages/blog/2022/11/black-friday-2022/black-friday-2022-page.component.ts - 16 - - - apps/client/src/app/pages/blog/2023/03/1000-stars-on-github/1000-stars-on-github-page.component.ts - 14 - - - apps/client/src/app/pages/blog/2023/11/black-week-2023/black-week-2023-page.component.ts - 16 - - - apps/client/src/app/pages/blog/2024/11/black-weeks-2024/black-weeks-2024-page.component.ts - 16 - - - apps/client/src/app/pages/faq/saas/saas-page.component.ts 15 + + apps/client/src/app/pages/blog/2023/03/1000-stars-on-github/1000-stars-on-github-page.component.ts + 13 + + + apps/client/src/app/pages/blog/2023/11/black-week-2023/black-week-2023-page.component.ts + 15 + + + apps/client/src/app/pages/blog/2024/11/black-weeks-2024/black-weeks-2024-page.component.ts + 15 + + + apps/client/src/app/pages/faq/saas/saas-page.component.ts + 16 + libs/ui/src/lib/membership-card/membership-card.component.ts - 31 + 30 @@ -327,7 +327,7 @@ snake-case apps/client/src/app/app.component.ts - 75 + 76 apps/client/src/app/core/paths.ts @@ -335,7 +335,7 @@ apps/client/src/app/pages/about/about-page.component.ts - 63 + 64 @@ -343,11 +343,11 @@ snake-case apps/client/src/app/app.component.ts - 81 + 82 apps/client/src/app/components/header/header.component.ts - 90 + 91 apps/client/src/app/core/auth.guard.ts @@ -359,19 +359,19 @@ apps/client/src/app/pages/faq/saas/saas-page.component.ts - 16 + 17 apps/client/src/app/pages/features/features-page.component.ts - 29 + 28 apps/client/src/app/pages/landing/landing-page.component.ts - 27 + 28 apps/client/src/app/pages/pricing/pricing-page.component.ts - 42 + 43 @@ -379,15 +379,15 @@ snake-case apps/client/src/app/app.component.ts - 82 + 83 apps/client/src/app/components/header/header.component.ts - 85 + 86 apps/client/src/app/components/header/header.component.ts - 91 + 92 apps/client/src/app/core/paths.ts @@ -395,47 +395,47 @@ apps/client/src/app/pages/blog/2021/07/hallo-ghostfolio/hallo-ghostfolio-page.component.ts - 14 - - - apps/client/src/app/pages/blog/2021/07/hello-ghostfolio/hello-ghostfolio-page.component.ts - 14 - - - apps/client/src/app/pages/blog/2022/07/how-do-i-get-my-finances-in-order/how-do-i-get-my-finances-in-order-page.component.ts 13 + + apps/client/src/app/pages/blog/2021/07/hello-ghostfolio/hello-ghostfolio-page.component.ts + 13 + + + apps/client/src/app/pages/blog/2022/07/how-do-i-get-my-finances-in-order/how-do-i-get-my-finances-in-order-page.component.ts + 12 + apps/client/src/app/pages/blog/2023/05/unlock-your-financial-potential-with-ghostfolio/unlock-your-financial-potential-with-ghostfolio-page.component.ts - 14 + 13 apps/client/src/app/pages/features/features-page.component.ts - 30 + 29 apps/client/src/app/pages/resources/glossary/resources-glossary.component.ts - 16 + 17 apps/client/src/app/pages/resources/overview/resources-overview.component.ts - 21 + 22 apps/client/src/app/pages/resources/overview/resources-overview.component.ts - 30 + 31 apps/client/src/app/pages/resources/overview/resources-overview.component.ts - 39 + 40 apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts - 14 + 15 apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 27 + 26 @@ -806,7 +806,7 @@ Do you really want to revoke this granted access? apps/client/src/app/components/access-table/access-table.component.ts - 67 + 68 @@ -1133,7 +1133,7 @@ Do you really want to delete this account? apps/client/src/app/components/accounts-table/accounts-table.component.ts - 106 + 107 @@ -1375,21 +1375,21 @@ Currencies apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 85 + 86 ETFs without Countries apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 90 + 91 ETFs without Sectors apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 95 + 96 @@ -1403,7 +1403,7 @@ Filter by... apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 328 + 329 @@ -1536,7 +1536,7 @@ Oops! Could not parse historical data. libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.ts - 263 + 262 @@ -1700,49 +1700,49 @@ Please add a currency: apps/client/src/app/components/admin-overview/admin-overview.component.ts - 125 + 126 is an invalid currency! apps/client/src/app/components/admin-overview/admin-overview.component.ts - 136 + 137 Do you really want to delete this coupon? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 155 + 156 Do you really want to delete this currency? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 168 + 169 Do you really want to delete this system message? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 181 + 182 Do you really want to flush the cache? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 205 + 206 Please set your system message: apps/client/src/app/components/admin-overview/admin-overview.component.ts - 225 + 226 @@ -1904,7 +1904,7 @@ Do you really want to delete this platform? apps/client/src/app/components/admin-platform/admin-platform.component.ts - 86 + 87 @@ -1958,7 +1958,7 @@ Do you really want to delete this tag? apps/client/src/app/components/admin-tag/admin-tag.component.ts - 86 + 87 @@ -1979,7 +1979,7 @@ Do you really want to delete this user? apps/client/src/app/components/admin-users/admin-users.component.ts - 138 + 139 @@ -2053,7 +2053,7 @@ Portfolio apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.ts - 116 + 117 apps/client/src/app/pages/portfolio/portfolio-page-routing.module.ts @@ -2061,14 +2061,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 95 + 94 Benchmark apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.ts - 128 + 129 @@ -2173,18 +2173,18 @@ apps/client/src/app/components/header/header.component.ts - 230 + 231 Oops! Incorrect Security Token. apps/client/src/app/components/header/header.component.ts - 245 + 246 apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 157 + 158 @@ -2198,7 +2198,7 @@ Fear apps/client/src/app/components/home-market/home-market.component.ts - 27 + 28 libs/ui/src/lib/i18n.ts @@ -2209,7 +2209,7 @@ Greed apps/client/src/app/components/home-market/home-market.component.ts - 28 + 29 libs/ui/src/lib/i18n.ts @@ -2308,14 +2308,14 @@ Total Amount apps/client/src/app/components/investment-chart/investment-chart.component.ts - 140 + 141 Savings Rate apps/client/src/app/components/investment-chart/investment-chart.component.ts - 199 + 200 @@ -2337,7 +2337,7 @@ or apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/ghostfolio-premium-api-dialog.html - 35 + 36 apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html @@ -2569,7 +2569,7 @@ Please set the amount of your emergency fund. apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts - 63 + 64 @@ -2763,55 +2763,55 @@ Today apps/client/src/app/components/toggle/toggle.component.ts - 21 + 22 libs/ui/src/lib/assistant/assistant.component.ts - 221 + 220 YTD apps/client/src/app/components/toggle/toggle.component.ts - 22 + 23 libs/ui/src/lib/assistant/assistant.component.ts - 231 + 230 1Y apps/client/src/app/components/toggle/toggle.component.ts - 23 + 24 libs/ui/src/lib/assistant/assistant.component.ts - 235 + 234 5Y apps/client/src/app/components/toggle/toggle.component.ts - 24 + 25 libs/ui/src/lib/assistant/assistant.component.ts - 257 + 256 Max apps/client/src/app/components/toggle/toggle.component.ts - 25 + 26 libs/ui/src/lib/assistant/assistant.component.ts - 260 + 259 @@ -2835,32 +2835,32 @@ 7 - - Please enter your coupon code: + + Please enter your coupon code. apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 166 + 213 Could not redeem coupon code apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 175 + 177 Coupon code has been redeemed apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 188 + 190 Reload apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 189 + 191 @@ -2892,14 +2892,14 @@ Auto apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 38 + 39 Do you really want to remove this sign in method? apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 246 + 247 @@ -3062,7 +3062,7 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 142 + 143 @@ -3073,14 +3073,14 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 140 + 141 Okay apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 151 + 152 apps/client/src/app/core/http-response.interceptor.ts @@ -3088,7 +3088,7 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 143 + 144 @@ -3099,7 +3099,7 @@ apps/client/src/app/pages/about/about-page.component.ts - 44 + 45 apps/client/src/app/pages/about/overview/about-overview-page-routing.module.ts @@ -3110,7 +3110,7 @@ Changelog apps/client/src/app/pages/about/about-page.component.ts - 49 + 50 apps/client/src/app/pages/about/changelog/changelog-page-routing.module.ts @@ -3121,7 +3121,7 @@ License apps/client/src/app/pages/about/about-page.component.ts - 54 + 55 apps/client/src/app/pages/about/license/license-page-routing.module.ts @@ -3132,7 +3132,7 @@ Privacy Policy apps/client/src/app/pages/about/about-page.component.ts - 62 + 63 apps/client/src/app/pages/about/privacy-policy/privacy-policy-page-routing.module.ts @@ -3171,7 +3171,7 @@ Oops, cash balance transfer has failed. apps/client/src/app/pages/accounts/accounts-page.component.ts - 317 + 318 @@ -3231,7 +3231,7 @@ apps/client/src/app/pages/admin/admin-page.component.ts - 37 + 38 @@ -3242,7 +3242,7 @@ apps/client/src/app/pages/admin/admin-page.component.ts - 32 + 33 apps/client/src/app/pages/user-account/user-account-page-routing.module.ts @@ -3250,7 +3250,7 @@ apps/client/src/app/pages/user-account/user-account-page.component.ts - 35 + 36 @@ -3261,22 +3261,22 @@ apps/client/src/app/pages/admin/admin-page.component.ts - 47 + 48 Overview apps/client/src/app/pages/admin/admin-page.component.ts - 27 + 28 apps/client/src/app/pages/home/home-page.component.ts - 37 + 38 apps/client/src/app/pages/resources/resources-page.component.ts - 16 + 17 apps/client/src/app/pages/zen/zen-page-routing.module.ts @@ -3284,7 +3284,7 @@ apps/client/src/app/pages/zen/zen-page.component.ts - 34 + 35 @@ -3462,11 +3462,11 @@ apps/client/src/app/pages/home/home-page.component.ts - 42 + 43 apps/client/src/app/pages/zen/zen-page.component.ts - 39 + 40 @@ -3477,7 +3477,7 @@ apps/client/src/app/pages/home/home-page.component.ts - 47 + 48 @@ -3488,7 +3488,7 @@ apps/client/src/app/pages/home/home-page.component.ts - 52 + 53 apps/client/src/app/pages/markets/markets-page-routing.module.ts @@ -3500,7 +3500,7 @@ apps/client/src/app/pages/resources/resources-page.component.ts - 26 + 27 @@ -3878,14 +3878,14 @@ apps/client/src/app/pages/portfolio/portfolio-page.component.ts - 39 + 40 Do you really want to delete these activities? libs/ui/src/lib/activities-table/activities-table.component.ts - 219 + 218 @@ -4011,35 +4011,35 @@ Import Activities apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 45 + 46 Import Dividends apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 86 + 87 Importing data... apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 124 + 125 Import has been completed apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 132 + 133 Validating data... apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 238 + 239 @@ -4121,7 +4121,7 @@ apps/client/src/app/pages/portfolio/portfolio-page.component.ts - 44 + 45 @@ -4279,14 +4279,14 @@ apps/client/src/app/pages/portfolio/portfolio-page.component.ts - 34 + 35 Dividend apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 37 + 38 libs/ui/src/lib/i18n.ts @@ -4297,21 +4297,21 @@ Deposit libs/ui/src/lib/fire-calculator/fire-calculator.component.ts - 361 + 360 Monthly apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 49 + 50 Yearly apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 50 + 51 @@ -4697,7 +4697,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts - 13 + 14 @@ -4957,7 +4957,7 @@ Switzerland apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 60 + 59 libs/ui/src/lib/i18n.ts @@ -4968,7 +4968,7 @@ Global apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 61 + 60 libs/ui/src/lib/i18n.ts @@ -5004,7 +5004,7 @@ apps/client/src/app/pages/user-account/user-account-page.component.ts - 40 + 41 @@ -5015,7 +5015,7 @@ apps/client/src/app/pages/user-account/user-account-page.component.ts - 46 + 47 @@ -5050,7 +5050,7 @@ Do you really want to delete this account balance? libs/ui/src/lib/account-balances/account-balances.component.ts - 110 + 109 @@ -5122,14 +5122,14 @@ Do you really want to delete this activity? libs/ui/src/lib/activities-table/activities-table.component.ts - 229 + 228 Find holding... libs/ui/src/lib/assistant/assistant.component.ts - 144 + 143 @@ -5231,7 +5231,7 @@ Interest libs/ui/src/lib/fire-calculator/fire-calculator.component.ts - 371 + 370 libs/ui/src/lib/i18n.ts @@ -5242,7 +5242,7 @@ Savings libs/ui/src/lib/fire-calculator/fire-calculator.component.ts - 381 + 380 @@ -5387,7 +5387,7 @@ libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 403 + 402 @@ -5650,11 +5650,11 @@ No data available libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 405 + 404 libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 418 + 417 @@ -5675,7 +5675,7 @@ The current market price is apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 325 + 326 @@ -5689,7 +5689,7 @@ Oops! Could not grant access. apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.component.ts - 90 + 91 @@ -5729,14 +5729,14 @@ apps/client/src/app/pages/admin/admin-page.component.ts - 42 + 43 Market data is delayed for apps/client/src/app/components/portfolio-performance/portfolio-performance.component.ts - 86 + 87 @@ -5764,15 +5764,15 @@ Investment apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 41 + 42 apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 55 + 56 apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 89 + 88 @@ -5800,35 +5800,35 @@ Year to date libs/ui/src/lib/assistant/assistant.component.ts - 231 + 230 Week to date libs/ui/src/lib/assistant/assistant.component.ts - 223 + 222 Month to date libs/ui/src/lib/assistant/assistant.component.ts - 227 + 226 MTD libs/ui/src/lib/assistant/assistant.component.ts - 227 + 226 WTD libs/ui/src/lib/assistant/assistant.component.ts - 223 + 222 @@ -5867,14 +5867,14 @@ year libs/ui/src/lib/assistant/assistant.component.ts - 235 + 234 years libs/ui/src/lib/assistant/assistant.component.ts - 257 + 256 @@ -5888,7 +5888,7 @@ self-hosting apps/client/src/app/pages/faq/faq-page.component.ts - 48 + 49 @@ -5906,7 +5906,7 @@ Self-Hosting apps/client/src/app/pages/faq/faq-page.component.ts - 47 + 48 apps/client/src/app/pages/faq/self-hosting/self-hosting-page-routing.module.ts @@ -5924,14 +5924,14 @@ General apps/client/src/app/pages/faq/faq-page.component.ts - 36 + 37 Cloud apps/client/src/app/pages/faq/faq-page.component.ts - 41 + 42 apps/client/src/app/pages/faq/saas/saas-page-routing.module.ts @@ -5956,14 +5956,14 @@ Closed apps/client/src/app/components/home-holdings/home-holdings.component.ts - 36 + 37 Active apps/client/src/app/components/home-holdings/home-holdings.component.ts - 35 + 36 @@ -6047,7 +6047,7 @@ Do you really want to close your Ghostfolio account? apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 172 + 173 @@ -6082,7 +6082,7 @@ Oops! There was an error setting up biometric authentication. apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 300 + 301 @@ -6117,7 +6117,7 @@ Benchmarks apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 80 + 81 @@ -6145,14 +6145,14 @@ Wealth apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 99 + 98 Community apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 86 + 85 @@ -6194,35 +6194,35 @@ User Experience apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 98 + 97 App apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 84 + 83 Tool apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 97 + 96 Investor apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 90 + 89 Wealth Management apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 100 + 99 @@ -6250,28 +6250,28 @@ Alternative apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 83 + 82 Family Office apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 87 + 86 Personal Finance apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 93 + 92 Software apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 96 + 95 @@ -6299,7 +6299,7 @@ Budgeting apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 85 + 84 @@ -6313,7 +6313,7 @@ Open Source apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 91 + 90 @@ -6348,7 +6348,7 @@ Privacy apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 94 + 93 @@ -6369,7 +6369,7 @@ Error apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 316 + 317 @@ -6688,7 +6688,7 @@ apps/client/src/app/pages/resources/resources-page.component.ts - 31 + 32 @@ -6696,7 +6696,7 @@ snake-case apps/client/src/app/pages/resources/overview/resources-overview.component.ts - 40 + 41 apps/client/src/app/pages/resources/resources-page-routing.module.ts @@ -6711,7 +6711,7 @@ apps/client/src/app/pages/resources/resources-page.component.ts - 21 + 22 @@ -6719,7 +6719,7 @@ snake-case apps/client/src/app/pages/resources/overview/resources-overview.component.ts - 22 + 23 apps/client/src/app/pages/resources/resources-page-routing.module.ts @@ -6756,13 +6756,9 @@ Please enter your Ghostfolio API key: - - apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/ghostfolio-premium-api-dialog.component.ts - 45 - apps/client/src/app/pages/api/api-page.component.ts - 41 + 40 @@ -6783,14 +6779,14 @@ Do you really want to delete the API key? apps/client/src/app/components/admin-settings/admin-settings.component.ts - 92 + 93 - + I have an API key apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/ghostfolio-premium-api-dialog.html - 42 + 43 @@ -6839,28 +6835,28 @@ Could not generate an API key apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 138 + 139 Do you really want to generate a new API key? apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 161 + 162 Ghostfolio Premium Data Provider API Key apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 156 + 157 Set this API key in your self-hosted environment: apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 153 + 154 @@ -6881,7 +6877,7 @@ Save apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts - 61 + 62 @@ -6902,7 +6898,14 @@ Me apps/client/src/app/components/user-account-access/user-account-access.component.ts - 134 + 135 + + + + Please enter your Ghostfolio API key. + + apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/ghostfolio-premium-api-dialog.component.ts + 59 diff --git a/apps/client/src/locales/messages.zh.xlf b/apps/client/src/locales/messages.zh.xlf index e88e77ae..44ba3578 100644 --- a/apps/client/src/locales/messages.zh.xlf +++ b/apps/client/src/locales/messages.zh.xlf @@ -8,129 +8,19 @@ snake-case apps/client/src/app/app.component.ts - 64 + 65 apps/client/src/app/app.component.ts - 66 + 67 apps/client/src/app/app.component.ts - 70 + 71 apps/client/src/app/app.component.ts - 74 - - - apps/client/src/app/components/header/header.component.ts - 81 - - - apps/client/src/app/components/header/header.component.ts - 86 - - - apps/client/src/app/core/paths.ts - 2 - - - apps/client/src/app/pages/about/about-page.component.ts - 45 - - - apps/client/src/app/pages/about/about-page.component.ts - 50 - - - apps/client/src/app/pages/about/about-page.component.ts - 55 - - - apps/client/src/app/pages/about/about-page.component.ts - 63 - - - apps/client/src/app/pages/about/about-page.component.ts - 74 - - - apps/client/src/app/pages/blog/2023/08/ghostfolio-joins-oss-friends/ghostfolio-joins-oss-friends-page.component.ts - 14 - - - apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts - 13 - - - apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts - 15 - - - apps/client/src/app/pages/blog/2023/09/hacktoberfest-2023/hacktoberfest-2023-page.component.ts - 13 - - - apps/client/src/app/pages/blog/2023/11/hacktoberfest-2023-debriefing/hacktoberfest-2023-debriefing-page.component.ts - 13 - - - apps/client/src/app/pages/blog/2024/09/hacktoberfest-2024/hacktoberfest-2024-page.component.ts - 13 - - - apps/client/src/app/pages/landing/landing-page.component.ts - 26 - - - apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts - 18 - - - apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 24 - - - - faq - 常见问题 - snake-case - - apps/client/src/app/app.component.ts - 77 - - - apps/client/src/app/core/paths.ts - 3 - - - apps/client/src/app/pages/about/overview/about-overview-page.component.ts - 19 - - - apps/client/src/app/pages/faq/faq-page.component.ts - 37 - - - apps/client/src/app/pages/faq/faq-page.component.ts - 42 - - - apps/client/src/app/pages/faq/faq-page.component.ts - 48 - - - apps/client/src/app/pages/resources/overview/resources-overview.component.ts - 14 - - - - features - 功能 - snake-case - - apps/client/src/app/app.component.ts - 78 + 75 apps/client/src/app/components/header/header.component.ts @@ -142,77 +32,101 @@ apps/client/src/app/core/paths.ts - 4 + 2 + + + apps/client/src/app/pages/about/about-page.component.ts + 46 + + + apps/client/src/app/pages/about/about-page.component.ts + 51 + + + apps/client/src/app/pages/about/about-page.component.ts + 56 + + + apps/client/src/app/pages/about/about-page.component.ts + 64 + + + apps/client/src/app/pages/about/about-page.component.ts + 75 + + + apps/client/src/app/pages/blog/2023/08/ghostfolio-joins-oss-friends/ghostfolio-joins-oss-friends-page.component.ts + 13 + + + apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts + 12 + + + apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts + 14 + + + apps/client/src/app/pages/blog/2023/09/hacktoberfest-2023/hacktoberfest-2023-page.component.ts + 12 + + + apps/client/src/app/pages/blog/2023/11/hacktoberfest-2023-debriefing/hacktoberfest-2023-debriefing-page.component.ts + 12 + + + apps/client/src/app/pages/blog/2024/09/hacktoberfest-2024/hacktoberfest-2024-page.component.ts + 12 + + + apps/client/src/app/pages/landing/landing-page.component.ts + 27 + + + apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts + 19 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 23 + + + + faq + 常见问题 + snake-case + + apps/client/src/app/app.component.ts + 78 + + + apps/client/src/app/core/paths.ts + 3 apps/client/src/app/pages/about/overview/about-overview-page.component.ts 20 - apps/client/src/app/pages/blog/2022/11/black-friday-2022/black-friday-2022-page.component.ts + apps/client/src/app/pages/faq/faq-page.component.ts + 38 + + + apps/client/src/app/pages/faq/faq-page.component.ts + 43 + + + apps/client/src/app/pages/faq/faq-page.component.ts + 49 + + + apps/client/src/app/pages/resources/overview/resources-overview.component.ts 15 - - apps/client/src/app/pages/blog/2023/03/1000-stars-on-github/1000-stars-on-github-page.component.ts - 13 - - - apps/client/src/app/pages/blog/2023/05/unlock-your-financial-potential-with-ghostfolio/unlock-your-financial-potential-with-ghostfolio-page.component.ts - 13 - - - apps/client/src/app/pages/blog/2023/07/exploring-the-path-to-fire/exploring-the-path-to-fire-page.component.ts - 13 - - - apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts - 18 - - - apps/client/src/app/pages/blog/2023/11/black-week-2023/black-week-2023-page.component.ts - 15 - - - apps/client/src/app/pages/blog/2023/11/hacktoberfest-2023-debriefing/hacktoberfest-2023-debriefing-page.component.ts - 14 - - - apps/client/src/app/pages/blog/2024/11/black-weeks-2024/black-weeks-2024-page.component.ts - 15 - - - apps/client/src/app/pages/faq/overview/faq-overview-page.component.ts - 14 - - - apps/client/src/app/pages/pricing/pricing-page.component.ts - 41 - - - apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 25 - - - license - 许可 - snake-case - - apps/client/src/app/app.component.ts - 71 - - - apps/client/src/app/core/paths.ts - 5 - - - apps/client/src/app/pages/about/about-page.component.ts - 55 - - - - markets - 市场 + + features + 功能 snake-case apps/client/src/app/app.component.ts @@ -226,25 +140,111 @@ apps/client/src/app/components/header/header.component.ts 88 + + apps/client/src/app/core/paths.ts + 4 + + + apps/client/src/app/pages/about/overview/about-overview-page.component.ts + 21 + + + apps/client/src/app/pages/blog/2022/11/black-friday-2022/black-friday-2022-page.component.ts + 14 + + + apps/client/src/app/pages/blog/2023/03/1000-stars-on-github/1000-stars-on-github-page.component.ts + 12 + + + apps/client/src/app/pages/blog/2023/05/unlock-your-financial-potential-with-ghostfolio/unlock-your-financial-potential-with-ghostfolio-page.component.ts + 12 + + + apps/client/src/app/pages/blog/2023/07/exploring-the-path-to-fire/exploring-the-path-to-fire-page.component.ts + 12 + + + apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts + 17 + + + apps/client/src/app/pages/blog/2023/11/black-week-2023/black-week-2023-page.component.ts + 14 + + + apps/client/src/app/pages/blog/2023/11/hacktoberfest-2023-debriefing/hacktoberfest-2023-debriefing-page.component.ts + 13 + + + apps/client/src/app/pages/blog/2024/11/black-weeks-2024/black-weeks-2024-page.component.ts + 14 + + + apps/client/src/app/pages/faq/overview/faq-overview-page.component.ts + 15 + + + apps/client/src/app/pages/pricing/pricing-page.component.ts + 42 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts + 24 + + + + license + 许可 + snake-case + + apps/client/src/app/app.component.ts + 72 + + + apps/client/src/app/core/paths.ts + 5 + + + apps/client/src/app/pages/about/about-page.component.ts + 56 + + + + markets + 市场 + snake-case + + apps/client/src/app/app.component.ts + 80 + + + apps/client/src/app/components/header/header.component.ts + 84 + + + apps/client/src/app/components/header/header.component.ts + 89 + apps/client/src/app/core/paths.ts 6 apps/client/src/app/pages/blog/2022/08/500-stars-on-github/500-stars-on-github-page.component.ts - 13 + 12 apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts - 19 + 18 apps/client/src/app/pages/faq/saas/saas-page.component.ts - 14 + 15 apps/client/src/app/pages/resources/overview/resources-overview.component.ts - 31 + 32 apps/client/src/app/pages/resources/resources-page-routing.module.ts @@ -257,27 +257,27 @@ snake-case apps/client/src/app/app.component.ts - 80 + 81 apps/client/src/app/components/admin-settings/admin-settings.component.ts - 73 + 74 apps/client/src/app/components/header/header.component.ts - 84 + 85 apps/client/src/app/components/header/header.component.ts - 89 + 90 apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.component.ts - 16 + 17 apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 42 + 43 apps/client/src/app/core/http-response.interceptor.ts @@ -289,43 +289,43 @@ apps/client/src/app/pages/blog/2021/07/hallo-ghostfolio/hallo-ghostfolio-page.component.ts - 13 + 12 apps/client/src/app/pages/blog/2021/07/hello-ghostfolio/hello-ghostfolio-page.component.ts - 13 + 12 apps/client/src/app/pages/blog/2022/01/first-months-in-open-source/first-months-in-open-source-page.component.ts - 13 + 12 apps/client/src/app/pages/blog/2022/08/500-stars-on-github/500-stars-on-github-page.component.ts - 14 + 13 apps/client/src/app/pages/blog/2022/11/black-friday-2022/black-friday-2022-page.component.ts - 16 - - - apps/client/src/app/pages/blog/2023/03/1000-stars-on-github/1000-stars-on-github-page.component.ts - 14 - - - apps/client/src/app/pages/blog/2023/11/black-week-2023/black-week-2023-page.component.ts - 16 - - - apps/client/src/app/pages/blog/2024/11/black-weeks-2024/black-weeks-2024-page.component.ts - 16 - - - apps/client/src/app/pages/faq/saas/saas-page.component.ts 15 + + apps/client/src/app/pages/blog/2023/03/1000-stars-on-github/1000-stars-on-github-page.component.ts + 13 + + + apps/client/src/app/pages/blog/2023/11/black-week-2023/black-week-2023-page.component.ts + 15 + + + apps/client/src/app/pages/blog/2024/11/black-weeks-2024/black-weeks-2024-page.component.ts + 15 + + + apps/client/src/app/pages/faq/saas/saas-page.component.ts + 16 + libs/ui/src/lib/membership-card/membership-card.component.ts - 31 + 30 @@ -334,7 +334,7 @@ snake-case apps/client/src/app/app.component.ts - 75 + 76 apps/client/src/app/core/paths.ts @@ -342,7 +342,7 @@ apps/client/src/app/pages/about/about-page.component.ts - 63 + 64 @@ -351,11 +351,11 @@ snake-case apps/client/src/app/app.component.ts - 81 + 82 apps/client/src/app/components/header/header.component.ts - 90 + 91 apps/client/src/app/core/auth.guard.ts @@ -367,19 +367,19 @@ apps/client/src/app/pages/faq/saas/saas-page.component.ts - 16 + 17 apps/client/src/app/pages/features/features-page.component.ts - 29 + 28 apps/client/src/app/pages/landing/landing-page.component.ts - 27 + 28 apps/client/src/app/pages/pricing/pricing-page.component.ts - 42 + 43 @@ -388,15 +388,15 @@ snake-case apps/client/src/app/app.component.ts - 82 + 83 apps/client/src/app/components/header/header.component.ts - 85 + 86 apps/client/src/app/components/header/header.component.ts - 91 + 92 apps/client/src/app/core/paths.ts @@ -404,47 +404,47 @@ apps/client/src/app/pages/blog/2021/07/hallo-ghostfolio/hallo-ghostfolio-page.component.ts - 14 - - - apps/client/src/app/pages/blog/2021/07/hello-ghostfolio/hello-ghostfolio-page.component.ts - 14 - - - apps/client/src/app/pages/blog/2022/07/how-do-i-get-my-finances-in-order/how-do-i-get-my-finances-in-order-page.component.ts 13 + + apps/client/src/app/pages/blog/2021/07/hello-ghostfolio/hello-ghostfolio-page.component.ts + 13 + + + apps/client/src/app/pages/blog/2022/07/how-do-i-get-my-finances-in-order/how-do-i-get-my-finances-in-order-page.component.ts + 12 + apps/client/src/app/pages/blog/2023/05/unlock-your-financial-potential-with-ghostfolio/unlock-your-financial-potential-with-ghostfolio-page.component.ts - 14 + 13 apps/client/src/app/pages/features/features-page.component.ts - 30 + 29 apps/client/src/app/pages/resources/glossary/resources-glossary.component.ts - 16 + 17 apps/client/src/app/pages/resources/overview/resources-overview.component.ts - 21 + 22 apps/client/src/app/pages/resources/overview/resources-overview.component.ts - 30 + 31 apps/client/src/app/pages/resources/overview/resources-overview.component.ts - 39 + 40 apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts - 14 + 15 apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 27 + 26 @@ -836,7 +836,7 @@ 您真的要撤销此授予的访问权限吗? apps/client/src/app/components/access-table/access-table.component.ts - 67 + 68 @@ -1176,7 +1176,7 @@ 您真的要删除该帐户吗? apps/client/src/app/components/accounts-table/accounts-table.component.ts - 106 + 107 @@ -1436,7 +1436,7 @@ 货币 apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 85 + 86 @@ -1444,7 +1444,7 @@ 没有国家的 ETF apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 90 + 91 @@ -1452,7 +1452,7 @@ 无行业类别的 ETF apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 95 + 96 @@ -1468,7 +1468,7 @@ 过滤... apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 328 + 329 @@ -1612,7 +1612,7 @@ 哎呀!无法解析历史数据。 libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.ts - 263 + 262 @@ -1792,7 +1792,7 @@ 请添加货币: apps/client/src/app/components/admin-overview/admin-overview.component.ts - 125 + 126 @@ -1800,7 +1800,7 @@ 是无效的货币! apps/client/src/app/components/admin-overview/admin-overview.component.ts - 136 + 137 @@ -1808,7 +1808,7 @@ 您确实要删除此优惠券吗? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 155 + 156 @@ -1816,7 +1816,7 @@ 您真的要删除该货币吗? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 168 + 169 @@ -1824,7 +1824,7 @@ 您真的要删除这条系统消息吗? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 181 + 182 @@ -1832,7 +1832,7 @@ 您真的要刷新缓存吗? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 205 + 206 @@ -1840,7 +1840,7 @@ 请设置您的系统消息: apps/client/src/app/components/admin-overview/admin-overview.component.ts - 225 + 226 @@ -2020,7 +2020,7 @@ 您真的要删除这个平台吗? apps/client/src/app/components/admin-platform/admin-platform.component.ts - 86 + 87 @@ -2080,7 +2080,7 @@ 您真的要删除此标签吗? apps/client/src/app/components/admin-tag/admin-tag.component.ts - 86 + 87 @@ -2104,7 +2104,7 @@ 您真的要删除该用户吗? apps/client/src/app/components/admin-users/admin-users.component.ts - 138 + 139 @@ -2188,7 +2188,7 @@ 文件夹 apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.ts - 116 + 117 apps/client/src/app/pages/portfolio/portfolio-page-routing.module.ts @@ -2196,7 +2196,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 95 + 94 @@ -2204,7 +2204,7 @@ 基准 apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.ts - 128 + 129 @@ -2320,7 +2320,7 @@ apps/client/src/app/components/header/header.component.ts - 230 + 231 @@ -2328,11 +2328,11 @@ 哎呀!安全令牌不正确。 apps/client/src/app/components/header/header.component.ts - 245 + 246 apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 157 + 158 @@ -2348,7 +2348,7 @@ 恐惧 apps/client/src/app/components/home-market/home-market.component.ts - 27 + 28 libs/ui/src/lib/i18n.ts @@ -2360,7 +2360,7 @@ 贪婪 apps/client/src/app/components/home-market/home-market.component.ts - 28 + 29 libs/ui/src/lib/i18n.ts @@ -2472,7 +2472,7 @@ 总金额 apps/client/src/app/components/investment-chart/investment-chart.component.ts - 140 + 141 @@ -2480,7 +2480,7 @@ 储蓄率 apps/client/src/app/components/investment-chart/investment-chart.component.ts - 199 + 200 @@ -2504,7 +2504,7 @@ apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/ghostfolio-premium-api-dialog.html - 35 + 36 apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html @@ -2760,7 +2760,7 @@ 请输入您的应急基金金额: apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts - 63 + 64 @@ -2972,11 +2972,11 @@ 今天 apps/client/src/app/components/toggle/toggle.component.ts - 21 + 22 libs/ui/src/lib/assistant/assistant.component.ts - 221 + 220 @@ -2984,11 +2984,11 @@ 年初至今 apps/client/src/app/components/toggle/toggle.component.ts - 22 + 23 libs/ui/src/lib/assistant/assistant.component.ts - 231 + 230 @@ -2996,11 +2996,11 @@ 1年 apps/client/src/app/components/toggle/toggle.component.ts - 23 + 24 libs/ui/src/lib/assistant/assistant.component.ts - 235 + 234 @@ -3008,11 +3008,11 @@ 5年 apps/client/src/app/components/toggle/toggle.component.ts - 24 + 25 libs/ui/src/lib/assistant/assistant.component.ts - 257 + 256 @@ -3020,11 +3020,11 @@ 最大限度 apps/client/src/app/components/toggle/toggle.component.ts - 25 + 26 libs/ui/src/lib/assistant/assistant.component.ts - 260 + 259 @@ -3051,12 +3051,12 @@ 7 - - Please enter your coupon code: - 请输入您的优惠券代码: + + Please enter your coupon code. + 请输入您的优惠券代码: apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 166 + 213 @@ -3064,7 +3064,7 @@ 无法兑换优惠券代码 apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 175 + 177 @@ -3072,7 +3072,7 @@ 优惠券代码已兑换 apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 188 + 190 @@ -3080,7 +3080,7 @@ 重新加载 apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 189 + 191 @@ -3116,7 +3116,7 @@ 自动 apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 38 + 39 @@ -3124,7 +3124,7 @@ 您确实要删除此登录方法吗? apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 246 + 247 @@ -3308,7 +3308,7 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 142 + 143 @@ -3320,7 +3320,7 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 140 + 141 @@ -3328,7 +3328,7 @@ 好的 apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 151 + 152 apps/client/src/app/core/http-response.interceptor.ts @@ -3336,7 +3336,7 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 143 + 144 @@ -3348,7 +3348,7 @@ apps/client/src/app/pages/about/about-page.component.ts - 44 + 45 apps/client/src/app/pages/about/overview/about-overview-page-routing.module.ts @@ -3360,7 +3360,7 @@ 更新日志 apps/client/src/app/pages/about/about-page.component.ts - 49 + 50 apps/client/src/app/pages/about/changelog/changelog-page-routing.module.ts @@ -3372,7 +3372,7 @@ 许可 apps/client/src/app/pages/about/about-page.component.ts - 54 + 55 apps/client/src/app/pages/about/license/license-page-routing.module.ts @@ -3384,7 +3384,7 @@ 隐私政策 apps/client/src/app/pages/about/about-page.component.ts - 62 + 63 apps/client/src/app/pages/about/privacy-policy/privacy-policy-page-routing.module.ts @@ -3428,7 +3428,7 @@ 糟糕,现金余额转账失败。 apps/client/src/app/pages/accounts/accounts-page.component.ts - 317 + 318 @@ -3496,7 +3496,7 @@ apps/client/src/app/pages/admin/admin-page.component.ts - 37 + 38 @@ -3508,7 +3508,7 @@ apps/client/src/app/pages/admin/admin-page.component.ts - 32 + 33 apps/client/src/app/pages/user-account/user-account-page-routing.module.ts @@ -3516,7 +3516,7 @@ apps/client/src/app/pages/user-account/user-account-page.component.ts - 35 + 36 @@ -3528,7 +3528,7 @@ apps/client/src/app/pages/admin/admin-page.component.ts - 47 + 48 @@ -3536,15 +3536,15 @@ 概述 apps/client/src/app/pages/admin/admin-page.component.ts - 27 + 28 apps/client/src/app/pages/home/home-page.component.ts - 37 + 38 apps/client/src/app/pages/resources/resources-page.component.ts - 16 + 17 apps/client/src/app/pages/zen/zen-page-routing.module.ts @@ -3552,7 +3552,7 @@ apps/client/src/app/pages/zen/zen-page.component.ts - 34 + 35 @@ -3752,11 +3752,11 @@ apps/client/src/app/pages/home/home-page.component.ts - 42 + 43 apps/client/src/app/pages/zen/zen-page.component.ts - 39 + 40 @@ -3768,7 +3768,7 @@ apps/client/src/app/pages/home/home-page.component.ts - 47 + 48 @@ -3780,7 +3780,7 @@ apps/client/src/app/pages/home/home-page.component.ts - 52 + 53 apps/client/src/app/pages/markets/markets-page-routing.module.ts @@ -3792,7 +3792,7 @@ apps/client/src/app/pages/resources/resources-page.component.ts - 26 + 27 @@ -4220,7 +4220,7 @@ apps/client/src/app/pages/portfolio/portfolio-page.component.ts - 39 + 40 @@ -4228,7 +4228,7 @@ 您真的要删除所有活动吗? libs/ui/src/lib/activities-table/activities-table.component.ts - 219 + 218 @@ -4368,7 +4368,7 @@ 导入活动 apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 45 + 46 @@ -4376,7 +4376,7 @@ 导入股息 apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 86 + 87 @@ -4384,7 +4384,7 @@ 正在导入数据... apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 124 + 125 @@ -4392,7 +4392,7 @@ 导入已完成 apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 132 + 133 @@ -4400,7 +4400,7 @@ 验证数据... apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 238 + 239 @@ -4492,7 +4492,7 @@ apps/client/src/app/pages/portfolio/portfolio-page.component.ts - 44 + 45 @@ -4668,7 +4668,7 @@ apps/client/src/app/pages/portfolio/portfolio-page.component.ts - 34 + 35 @@ -4676,7 +4676,7 @@ 股息 apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 37 + 38 libs/ui/src/lib/i18n.ts @@ -4688,7 +4688,7 @@ 订金 libs/ui/src/lib/fire-calculator/fire-calculator.component.ts - 361 + 360 @@ -4696,7 +4696,7 @@ 每月 apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 49 + 50 @@ -4704,7 +4704,7 @@ 每年 apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 50 + 51 @@ -5136,7 +5136,7 @@ apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts - 13 + 14 @@ -5424,7 +5424,7 @@ 瑞士 apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 60 + 59 libs/ui/src/lib/i18n.ts @@ -5436,7 +5436,7 @@ 全球的 apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 61 + 60 libs/ui/src/lib/i18n.ts @@ -5476,7 +5476,7 @@ apps/client/src/app/pages/user-account/user-account-page.component.ts - 40 + 41 @@ -5488,7 +5488,7 @@ apps/client/src/app/pages/user-account/user-account-page.component.ts - 46 + 47 @@ -5528,7 +5528,7 @@ 您确实要删除该帐户余额吗? libs/ui/src/lib/account-balances/account-balances.component.ts - 110 + 109 @@ -5608,7 +5608,7 @@ 您确实要删除此活动吗? libs/ui/src/lib/activities-table/activities-table.component.ts - 229 + 228 @@ -5616,7 +5616,7 @@ 查找持有... libs/ui/src/lib/assistant/assistant.component.ts - 144 + 143 @@ -5732,7 +5732,7 @@ 利息 libs/ui/src/lib/fire-calculator/fire-calculator.component.ts - 371 + 370 libs/ui/src/lib/i18n.ts @@ -5744,7 +5744,7 @@ 储蓄 libs/ui/src/lib/fire-calculator/fire-calculator.component.ts - 381 + 380 @@ -5908,7 +5908,7 @@ libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 403 + 402 @@ -6208,11 +6208,11 @@ 无可用数据 libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 405 + 404 libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 418 + 417 @@ -6236,7 +6236,7 @@ 当前市场价格为 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 325 + 326 @@ -6252,7 +6252,7 @@ 哎呀!无法授予访问权限。 apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.component.ts - 90 + 91 @@ -6296,7 +6296,7 @@ apps/client/src/app/pages/admin/admin-page.component.ts - 42 + 43 @@ -6304,7 +6304,7 @@ 市场数据延迟 apps/client/src/app/components/portfolio-performance/portfolio-performance.component.ts - 86 + 87 @@ -6336,15 +6336,15 @@ 投资 apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 41 + 42 apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 55 + 56 apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 89 + 88 @@ -6376,7 +6376,7 @@ 今年迄今为止 libs/ui/src/lib/assistant/assistant.component.ts - 231 + 230 @@ -6384,7 +6384,7 @@ 本周至今 libs/ui/src/lib/assistant/assistant.component.ts - 223 + 222 @@ -6392,7 +6392,7 @@ 本月至今 libs/ui/src/lib/assistant/assistant.component.ts - 227 + 226 @@ -6400,7 +6400,7 @@ 最大输运量 libs/ui/src/lib/assistant/assistant.component.ts - 227 + 226 @@ -6408,7 +6408,7 @@ 世界贸易组织 libs/ui/src/lib/assistant/assistant.component.ts - 223 + 222 @@ -6452,7 +6452,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 235 + 234 @@ -6460,7 +6460,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 257 + 256 @@ -6476,7 +6476,7 @@ 自托管 apps/client/src/app/pages/faq/faq-page.component.ts - 48 + 49 @@ -6496,7 +6496,7 @@ 自托管 apps/client/src/app/pages/faq/faq-page.component.ts - 47 + 48 apps/client/src/app/pages/faq/self-hosting/self-hosting-page-routing.module.ts @@ -6516,7 +6516,7 @@ 一般的 apps/client/src/app/pages/faq/faq-page.component.ts - 36 + 37 @@ -6524,7 +6524,7 @@ apps/client/src/app/pages/faq/faq-page.component.ts - 41 + 42 apps/client/src/app/pages/faq/saas/saas-page-routing.module.ts @@ -6552,7 +6552,7 @@ 关闭 apps/client/src/app/components/home-holdings/home-holdings.component.ts - 36 + 37 @@ -6560,7 +6560,7 @@ 积极的 apps/client/src/app/components/home-holdings/home-holdings.component.ts - 35 + 36 @@ -6648,7 +6648,7 @@ Do you really want to close your Ghostfolio account? apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 172 + 173 @@ -6696,7 +6696,7 @@ Oops! There was an error setting up biometric authentication. apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 300 + 301 @@ -6712,7 +6712,7 @@ Benchmarks apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 80 + 81 @@ -6768,7 +6768,7 @@ Alternative apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 83 + 82 @@ -6776,7 +6776,7 @@ App apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 84 + 83 @@ -6784,7 +6784,7 @@ Budgeting apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 85 + 84 @@ -6792,7 +6792,7 @@ Community apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 86 + 85 @@ -6800,7 +6800,7 @@ Family Office apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 87 + 86 @@ -6808,7 +6808,7 @@ Investor apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 90 + 89 @@ -6816,7 +6816,7 @@ Open Source apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 91 + 90 @@ -6824,7 +6824,7 @@ Personal Finance apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 93 + 92 @@ -6832,7 +6832,7 @@ Privacy apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 94 + 93 @@ -6840,7 +6840,7 @@ Software apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 96 + 95 @@ -6848,7 +6848,7 @@ Tool apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 97 + 96 @@ -6856,7 +6856,7 @@ User Experience apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 98 + 97 @@ -6864,7 +6864,7 @@ Wealth apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 99 + 98 @@ -6872,7 +6872,7 @@ Wealth Management apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts - 100 + 99 @@ -7024,7 +7024,7 @@ Error apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 316 + 317 @@ -7396,7 +7396,7 @@ apps/client/src/app/pages/resources/resources-page.component.ts - 31 + 32 @@ -7408,7 +7408,7 @@ apps/client/src/app/pages/resources/resources-page.component.ts - 21 + 22 @@ -7417,7 +7417,7 @@ snake-case apps/client/src/app/pages/resources/overview/resources-overview.component.ts - 22 + 23 apps/client/src/app/pages/resources/resources-page-routing.module.ts @@ -7430,7 +7430,7 @@ snake-case apps/client/src/app/pages/resources/overview/resources-overview.component.ts - 40 + 41 apps/client/src/app/pages/resources/resources-page-routing.module.ts @@ -7490,19 +7490,15 @@ Do you really want to delete the API key? apps/client/src/app/components/admin-settings/admin-settings.component.ts - 92 + 93 Please enter your Ghostfolio API key: Please enter your Ghostfolio API key: - - apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/ghostfolio-premium-api-dialog.component.ts - 45 - apps/client/src/app/pages/api/api-page.component.ts - 41 + 40 @@ -7513,12 +7509,12 @@ 32 - + I have an API key I have an API key apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/ghostfolio-premium-api-dialog.html - 42 + 43 @@ -7534,7 +7530,7 @@ Could not generate an API key apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 138 + 139 @@ -7542,7 +7538,7 @@ Set this API key in your self-hosted environment: apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 153 + 154 @@ -7550,7 +7546,7 @@ Ghostfolio Premium Data Provider API Key apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 156 + 157 @@ -7558,7 +7554,7 @@ Do you really want to generate a new API key? apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 161 + 162 @@ -7606,7 +7602,7 @@ Save apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts - 61 + 62 @@ -7622,7 +7618,7 @@ Me apps/client/src/app/components/user-account-access/user-account-access.component.ts - 134 + 135 @@ -7633,6 +7629,14 @@ 3 + + Please enter your Ghostfolio API key. + Please enter your Ghostfolio API key. + + apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/ghostfolio-premium-api-dialog.component.ts + 59 + + From ee6b723ba5bff3052c209f0d207ec9504750b7c6 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Tue, 31 Dec 2024 07:51:39 +0100 Subject: [PATCH 52/63] Feature/update OSS friends list 20241230 (#4166) * Update OSS friends list --- apps/client/src/assets/oss-friends.json | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/apps/client/src/assets/oss-friends.json b/apps/client/src/assets/oss-friends.json index c3a12793..c7d1be3e 100644 --- a/apps/client/src/assets/oss-friends.json +++ b/apps/client/src/assets/oss-friends.json @@ -1,6 +1,11 @@ { - "createdAt": "2024-11-27T00:00:00.000Z", + "createdAt": "2024-12-30T00:00:00.000Z", "data": [ + { + "name": "Activepieces", + "description": "Activepieces is an open source, no-code, AI-first business automation tool. Alternative to Zapier, Make and Workato.", + "href": "https://activepieces.com" + }, { "name": "Aptabase", "description": "Analytics for Apps, open source, simple and privacy-friendly. SDKs for Swift, React Native, Electron, Flutter and many others.", From aca4c3d46dce1169bf7cbe8542521dfb9d12e796 Mon Sep 17 00:00:00 2001 From: Lennart Goedhart Date: Tue, 31 Dec 2024 18:33:36 +1100 Subject: [PATCH 53/63] Feature/modernize docker compose files (#4101) * Modernize docker compose files * Update changelog --- .env.example | 4 +-- CHANGELOG.md | 4 +++ DEVELOPMENT.md | 2 +- README.md | 22 +++++++++++---- docker/docker-compose.build.yml | 49 +++++++-------------------------- docker/docker-compose.dev.yml | 17 ++++-------- docker/docker-compose.yml | 20 ++++++++------ 7 files changed, 51 insertions(+), 67 deletions(-) diff --git a/.env.example b/.env.example index 76689499..e4a93562 100644 --- a/.env.example +++ b/.env.example @@ -1,7 +1,7 @@ COMPOSE_PROJECT_NAME=ghostfolio # CACHE -REDIS_HOST=localhost +REDIS_HOST=redis REDIS_PORT=6379 REDIS_PASSWORD= @@ -12,5 +12,5 @@ POSTGRES_PASSWORD= # VARIOUS ACCESS_TOKEN_SALT= -DATABASE_URL=postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@localhost:5432/${POSTGRES_DB}?connect_timeout=300&sslmode=prefer +DATABASE_URL=postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@postgres:5432/${POSTGRES_DB}?connect_timeout=300&sslmode=prefer JWT_SECRET_KEY= diff --git a/CHANGELOG.md b/CHANGELOG.md index aded12c4..1fbf5912 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed +- Changed the `REDIS_HOST` from `localhost` to `redis` in `.env.example` +- Changed the _Postgres_ host from `localhost` to `postgres` in `.env.example` +- Changed the _Postgres_ image from `postgres:15` to `postgres:15-alpine` in the `docker-compose` files +- Introduced `extends` in the `docker-compose` files - Improved the language localization for German (`de`) ## 2.132.0 - 2024-12-30 diff --git a/DEVELOPMENT.md b/DEVELOPMENT.md index b009679a..9e32b56e 100644 --- a/DEVELOPMENT.md +++ b/DEVELOPMENT.md @@ -12,7 +12,7 @@ ### Setup 1. Run `npm install` -1. Run `docker compose --env-file ./.env -f docker/docker-compose.dev.yml up -d` to start [PostgreSQL](https://www.postgresql.org) and [Redis](https://redis.io) +1. Run `docker compose -f docker/docker-compose.dev.yml up -d` to start [PostgreSQL](https://www.postgresql.org) and [Redis](https://redis.io) 1. Run `npm run database:setup` to initialize the database schema 1. Start the [server](#start-server) and the [client](#start-client) 1. Open https://localhost:4200/en in your browser diff --git a/README.md b/README.md index dca360c3..4151617c 100644 --- a/README.md +++ b/README.md @@ -118,7 +118,7 @@ We provide official container images hosted on [Docker Hub](https://hub.docker.c Run the following command to start the Docker images from [Docker Hub](https://hub.docker.com/r/ghostfolio/ghostfolio): ```bash -docker compose --env-file ./.env -f docker/docker-compose.yml up -d +docker compose -f docker/docker-compose.yml up -d ``` #### b. Build and run environment @@ -126,8 +126,8 @@ docker compose --env-file ./.env -f docker/docker-compose.yml up -d Run the following commands to build and start the Docker images: ```bash -docker compose --env-file ./.env -f docker/docker-compose.build.yml build -docker compose --env-file ./.env -f docker/docker-compose.build.yml up -d +docker compose -f docker/docker-compose.build.yml build +docker compose -f docker/docker-compose.build.yml up -d ``` #### Setup @@ -137,9 +137,19 @@ docker compose --env-file ./.env -f docker/docker-compose.build.yml up -d #### Upgrade Version -1. Increase the version of the `ghostfolio/ghostfolio` Docker image in `docker/docker-compose.yml` -1. Run the following command to start the new Docker image: `docker compose --env-file ./.env -f docker/docker-compose.yml up -d` - At each start, the container will automatically apply the database schema migrations if needed. +1. Update the _Ghostfolio_ Docker image + + - Increase the version of the `ghostfolio/ghostfolio` Docker image in `docker/docker-compose.yml` + - Run the following command if `ghostfolio:latest` is set: + ```bash + docker compose -f docker/docker-compose.yml pull + ``` + +1. Run the following command to start the new Docker image: + ```bash + docker compose -f docker/docker-compose.yml up -d + ``` + The container will automatically apply any required database schema migrations during startup. ### Home Server Systems (Community) diff --git a/docker/docker-compose.build.yml b/docker/docker-compose.build.yml index 96829ad3..a2b3e7cb 100644 --- a/docker/docker-compose.build.yml +++ b/docker/docker-compose.build.yml @@ -2,51 +2,22 @@ name: ghostfolio_build services: ghostfolio: build: ../ - container_name: ghostfolio-build - init: true - env_file: - - ../.env - environment: - DATABASE_URL: postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@postgres:5432/${POSTGRES_DB}?connect_timeout=300&sslmode=prefer - REDIS_HOST: redis - REDIS_PASSWORD: ${REDIS_PASSWORD} - ports: - - 3333:3333 - depends_on: - postgres: - condition: service_healthy - redis: - condition: service_healthy - healthcheck: - test: ['CMD-SHELL', 'curl -f http://localhost:3333/api/v1/health'] - interval: 10s - timeout: 5s - retries: 5 + image: ghostfolio/ghostfolio:local + extends: + file: docker-compose.yml + service: ghostfolio postgres: - image: docker.io/library/postgres:15 container_name: gf-postgres-build - env_file: - - ../.env - healthcheck: - test: ['CMD-SHELL', 'pg_isready -d $${POSTGRES_DB} -U $${POSTGRES_USER}'] - interval: 10s - timeout: 5s - retries: 5 - volumes: - - postgres:/var/lib/postgresql/data + extends: + file: docker-compose.yml + service: postgres redis: - image: docker.io/library/redis:alpine container_name: gf-redis-build - env_file: - - ../.env - command: ['redis-server', '--requirepass', $REDIS_PASSWORD] - healthcheck: - test: ['CMD-SHELL', 'redis-cli --pass "$REDIS_PASSWORD" ping | grep PONG'] - interval: 10s - timeout: 5s - retries: 5 + extends: + file: docker-compose.yml + service: redis volumes: postgres: diff --git a/docker/docker-compose.dev.yml b/docker/docker-compose.dev.yml index 39a1d56e..ec91025e 100644 --- a/docker/docker-compose.dev.yml +++ b/docker/docker-compose.dev.yml @@ -1,23 +1,18 @@ name: ghostfolio_dev services: postgres: - image: docker.io/library/postgres:15 + extends: + file: docker-compose.yml + service: postgres container_name: gf-postgres-dev - restart: unless-stopped - env_file: - - ../.env ports: - ${POSTGRES_PORT:-5432}:5432 - volumes: - - postgres:/var/lib/postgresql/data redis: - image: docker.io/library/redis:alpine + extends: + file: docker-compose.yml + service: redis container_name: gf-redis-dev - restart: unless-stopped - env_file: - - ../.env - command: ['redis-server', '--requirepass', $REDIS_PASSWORD] ports: - ${REDIS_PORT:-6379}:6379 diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml index c6ec5b3d..8c69e542 100644 --- a/docker/docker-compose.yml +++ b/docker/docker-compose.yml @@ -3,6 +3,7 @@ services: ghostfolio: image: docker.io/ghostfolio/ghostfolio:latest container_name: ghostfolio + restart: unless-stopped init: true cap_drop: - ALL @@ -10,10 +11,6 @@ services: - no-new-privileges:true env_file: - ../.env - environment: - DATABASE_URL: postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@postgres:5432/${POSTGRES_DB}?connect_timeout=300&sslmode=prefer - REDIS_HOST: redis - REDIS_PASSWORD: ${REDIS_PASSWORD} ports: - 3333:3333 depends_on: @@ -28,8 +25,9 @@ services: retries: 5 postgres: - image: docker.io/library/postgres:15 + image: docker.io/library/postgres:15-alpine container_name: gf-postgres + restart: unless-stopped cap_drop: - ALL cap_add: @@ -43,7 +41,8 @@ services: env_file: - ../.env healthcheck: - test: ['CMD-SHELL', 'pg_isready -d $${POSTGRES_DB} -U $${POSTGRES_USER}'] + test: + ['CMD-SHELL', 'pg_isready -d "$${POSTGRES_DB}" -U $${POSTGRES_USER}'] interval: 10s timeout: 5s retries: 5 @@ -53,6 +52,7 @@ services: redis: image: docker.io/library/redis:alpine container_name: gf-redis + restart: unless-stopped user: '999:1000' cap_drop: - ALL @@ -60,9 +60,13 @@ services: - no-new-privileges:true env_file: - ../.env - command: ['redis-server', '--requirepass', $REDIS_PASSWORD] + command: + - /bin/sh + - -c + - redis-server --requirepass "$${REDIS_PASSWORD:?REDIS_PASSWORD variable is not set}" healthcheck: - test: ['CMD-SHELL', 'redis-cli --pass "$REDIS_PASSWORD" ping | grep PONG'] + test: + ['CMD-SHELL', 'redis-cli --pass "$${REDIS_PASSWORD}" ping | grep PONG'] interval: 10s timeout: 5s retries: 5 From 7a602ea2d66d41a0d2a6de23355cdf7165d3efb4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Szymon=20=C5=81=C4=85giewka?= Date: Wed, 1 Jan 2025 09:16:40 +0100 Subject: [PATCH 54/63] Feature/remove got in favor of using fetch (#4154) * Remove got in favor of using fetch * Update changelog --- CHANGELOG.md | 1 + apps/api/src/app/info/info.service.ts | 21 +- apps/api/src/app/logo/logo.service.ts | 8 +- .../coingecko/coingecko.service.ts | 29 +- .../openfigi/openfigi.service.ts | 23 +- .../trackinsight/trackinsight.service.ts | 21 +- .../eod-historical-data.service.ts | 25 +- .../financial-modeling-prep.service.ts | 20 +- .../ghostfolio/ghostfolio.service.ts | 25 +- .../data-provider/manual/manual.service.ts | 12 +- .../rapid-api/rapid-api.service.ts | 8 +- package-lock.json | 296 +----------------- package.json | 1 - 13 files changed, 91 insertions(+), 399 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1fbf5912..f7babf45 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed +- Eliminated `got` in favor of using `fetch` - Changed the `REDIS_HOST` from `localhost` to `redis` in `.env.example` - Changed the _Postgres_ host from `localhost` to `postgres` in `.env.example` - Changed the _Postgres_ image from `postgres:15` to `postgres:15-alpine` in the `docker-compose` files diff --git a/apps/api/src/app/info/info.service.ts b/apps/api/src/app/info/info.service.ts index cd403516..b61d4462 100644 --- a/apps/api/src/app/info/info.service.ts +++ b/apps/api/src/app/info/info.service.ts @@ -33,7 +33,6 @@ import { Injectable, Logger } from '@nestjs/common'; import { JwtService } from '@nestjs/jwt'; import * as cheerio from 'cheerio'; import { format, subDays } from 'date-fns'; -import got from 'got'; @Injectable() export class InfoService { @@ -155,16 +154,15 @@ export class InfoService { private async countDockerHubPulls(): Promise { try { - const { pull_count } = await got( + const { pull_count } = (await fetch( `https://hub.docker.com/v2/repositories/ghostfolio/ghostfolio`, { headers: { 'User-Agent': 'request' }, - // @ts-ignore signal: AbortSignal.timeout( this.configurationService.get('REQUEST_TIMEOUT') ) } - ).json(); + ).then((res) => res.json())) as { pull_count: number }; return pull_count; } catch (error) { @@ -176,12 +174,11 @@ export class InfoService { private async countGitHubContributors(): Promise { try { - const { body } = await got('https://github.com/ghostfolio/ghostfolio', { - // @ts-ignore + const body = await fetch('https://github.com/ghostfolio/ghostfolio', { signal: AbortSignal.timeout( this.configurationService.get('REQUEST_TIMEOUT') ) - }); + }).then((res) => res.text()); const $ = cheerio.load(body); @@ -199,16 +196,15 @@ export class InfoService { private async countGitHubStargazers(): Promise { try { - const { stargazers_count } = await got( + const { stargazers_count } = (await fetch( `https://api.github.com/repos/ghostfolio/ghostfolio`, { headers: { 'User-Agent': 'request' }, - // @ts-ignore signal: AbortSignal.timeout( this.configurationService.get('REQUEST_TIMEOUT') ) } - ).json(); + ).then((res) => res.json())) as { stargazers_count: number }; return stargazers_count; } catch (error) { @@ -323,7 +319,7 @@ export class InfoService { PROPERTY_BETTER_UPTIME_MONITOR_ID )) as string; - const { data } = await got( + const { data } = await fetch( `https://uptime.betterstack.com/api/v2/monitors/${monitorId}/sla?from=${format( subDays(new Date(), 90), DATE_FORMAT @@ -334,12 +330,11 @@ export class InfoService { 'API_KEY_BETTER_UPTIME' )}` }, - // @ts-ignore signal: AbortSignal.timeout( this.configurationService.get('REQUEST_TIMEOUT') ) } - ).json(); + ).then((res) => res.json()); return data.attributes.availability / 100; } catch (error) { diff --git a/apps/api/src/app/logo/logo.service.ts b/apps/api/src/app/logo/logo.service.ts index 759db2af..584f50ca 100644 --- a/apps/api/src/app/logo/logo.service.ts +++ b/apps/api/src/app/logo/logo.service.ts @@ -4,7 +4,6 @@ import { AssetProfileIdentifier } from '@ghostfolio/common/interfaces'; import { HttpException, Injectable } from '@nestjs/common'; import { DataSource } from '@prisma/client'; -import got from 'got'; import { StatusCodes, getReasonPhrase } from 'http-status-codes'; @Injectable() @@ -44,15 +43,16 @@ export class LogoService { } private getBuffer(aUrl: string) { - return got( + return fetch( `https://t0.gstatic.com/faviconV2?client=SOCIAL&type=FAVICON&fallback_opts=TYPE,SIZE,URL&url=${aUrl}&size=64`, { headers: { 'User-Agent': 'request' }, - // @ts-ignore signal: AbortSignal.timeout( this.configurationService.get('REQUEST_TIMEOUT') ) } - ).buffer(); + ) + .then((res) => res.arrayBuffer()) + .then((buffer) => Buffer.from(buffer)); } } diff --git a/apps/api/src/services/data-provider/coingecko/coingecko.service.ts b/apps/api/src/services/data-provider/coingecko/coingecko.service.ts index ddc04ffc..30dbe0ae 100644 --- a/apps/api/src/services/data-provider/coingecko/coingecko.service.ts +++ b/apps/api/src/services/data-provider/coingecko/coingecko.service.ts @@ -26,12 +26,11 @@ import { SymbolProfile } from '@prisma/client'; import { format, fromUnixTime, getUnixTime } from 'date-fns'; -import got, { Headers } from 'got'; @Injectable() export class CoinGeckoService implements DataProviderInterface { private readonly apiUrl: string; - private readonly headers: Headers = {}; + private readonly headers: HeadersInit = {}; public constructor( private readonly configurationService: ConfigurationService @@ -69,19 +68,18 @@ export class CoinGeckoService implements DataProviderInterface { }; try { - const { name } = await got(`${this.apiUrl}/coins/${symbol}`, { + const { name } = await fetch(`${this.apiUrl}/coins/${symbol}`, { headers: this.headers, - // @ts-ignore signal: AbortSignal.timeout( this.configurationService.get('REQUEST_TIMEOUT') ) - }).json(); + }).then((res) => res.json()); response.name = name; } catch (error) { let message = error; - if (error?.code === 'ABORT_ERR') { + if (error?.name === 'AbortError') { message = `RequestError: The operation to get the asset profile for ${symbol} was aborted because the request to the data provider took more than ${( this.configurationService.get('REQUEST_TIMEOUT') / 1000 ).toFixed(3)} seconds`; @@ -114,7 +112,7 @@ export class CoinGeckoService implements DataProviderInterface { [symbol: string]: { [date: string]: IDataProviderHistoricalResponse }; }> { try { - const { prices } = await got( + const { prices } = await fetch( `${ this.apiUrl }/coins/${symbol}/market_chart/range?vs_currency=${DEFAULT_CURRENCY.toLowerCase()}&from=${getUnixTime( @@ -122,10 +120,9 @@ export class CoinGeckoService implements DataProviderInterface { )}&to=${getUnixTime(to)}`, { headers: this.headers, - // @ts-ignore signal: AbortSignal.timeout(requestTimeout) } - ).json(); + ).then((res) => res.json()); const result: { [symbol: string]: { [date: string]: IDataProviderHistoricalResponse }; @@ -169,16 +166,15 @@ export class CoinGeckoService implements DataProviderInterface { } try { - const quotes = await got( + const quotes = await fetch( `${this.apiUrl}/simple/price?ids=${symbols.join( ',' )}&vs_currencies=${DEFAULT_CURRENCY.toLowerCase()}`, { headers: this.headers, - // @ts-ignore signal: AbortSignal.timeout(requestTimeout) } - ).json(); + ).then((res) => res.json()); for (const symbol in quotes) { response[symbol] = { @@ -192,7 +188,7 @@ export class CoinGeckoService implements DataProviderInterface { } catch (error) { let message = error; - if (error?.code === 'ABORT_ERR') { + if (error?.name === 'AbortError') { message = `RequestError: The operation to get the quotes was aborted because the request to the data provider took more than ${( this.configurationService.get('REQUEST_TIMEOUT') / 1000 ).toFixed(3)} seconds`; @@ -212,13 +208,12 @@ export class CoinGeckoService implements DataProviderInterface { let items: LookupItem[] = []; try { - const { coins } = await got(`${this.apiUrl}/search?query=${query}`, { + const { coins } = await fetch(`${this.apiUrl}/search?query=${query}`, { headers: this.headers, - // @ts-ignore signal: AbortSignal.timeout( this.configurationService.get('REQUEST_TIMEOUT') ) - }).json(); + }).then((res) => res.json()); items = coins.map(({ id: symbol, name }) => { return { @@ -234,7 +229,7 @@ export class CoinGeckoService implements DataProviderInterface { } catch (error) { let message = error; - if (error?.code === 'ABORT_ERR') { + if (error?.name === 'AbortError') { message = `RequestError: The operation to search for ${query} was aborted because the request to the data provider took more than ${( this.configurationService.get('REQUEST_TIMEOUT') / 1000 ).toFixed(3)} seconds`; diff --git a/apps/api/src/services/data-provider/data-enhancer/openfigi/openfigi.service.ts b/apps/api/src/services/data-provider/data-enhancer/openfigi/openfigi.service.ts index 3efe7e40..bb9d0606 100644 --- a/apps/api/src/services/data-provider/data-enhancer/openfigi/openfigi.service.ts +++ b/apps/api/src/services/data-provider/data-enhancer/openfigi/openfigi.service.ts @@ -4,7 +4,6 @@ import { parseSymbol } from '@ghostfolio/common/helper'; import { Injectable } from '@nestjs/common'; import { SymbolProfile } from '@prisma/client'; -import got, { Headers } from 'got'; @Injectable() export class OpenFigiDataEnhancerService implements DataEnhancerInterface { @@ -32,7 +31,7 @@ export class OpenFigiDataEnhancerService implements DataEnhancerInterface { return response; } - const headers: Headers = {}; + const headers: HeadersInit = {}; const { exchange, ticker } = parseSymbol({ symbol, dataSource: response.dataSource @@ -43,14 +42,20 @@ export class OpenFigiDataEnhancerService implements DataEnhancerInterface { this.configurationService.get('API_KEY_OPEN_FIGI'); } - const mappings = await got - .post(`${OpenFigiDataEnhancerService.baseUrl}/v3/mapping`, { - headers, - json: [{ exchCode: exchange, idType: 'TICKER', idValue: ticker }], - // @ts-ignore + const mappings = (await fetch( + `${OpenFigiDataEnhancerService.baseUrl}/v3/mapping`, + { + body: JSON.stringify([ + { exchCode: exchange, idType: 'TICKER', idValue: ticker } + ]), + headers: { + 'Content-Type': 'application/json', + ...headers + }, + method: 'POST', signal: AbortSignal.timeout(requestTimeout) - }) - .json(); + } + ).then((res) => res.json())) as any[]; if (mappings?.length === 1 && mappings[0].data?.length === 1) { const { compositeFIGI, figi, shareClassFIGI } = mappings[0].data[0]; diff --git a/apps/api/src/services/data-provider/data-enhancer/trackinsight/trackinsight.service.ts b/apps/api/src/services/data-provider/data-enhancer/trackinsight/trackinsight.service.ts index a4e69528..56b90082 100644 --- a/apps/api/src/services/data-provider/data-enhancer/trackinsight/trackinsight.service.ts +++ b/apps/api/src/services/data-provider/data-enhancer/trackinsight/trackinsight.service.ts @@ -7,7 +7,6 @@ import { Sector } from '@ghostfolio/common/interfaces/sector.interface'; import { Injectable } from '@nestjs/common'; import { SymbolProfile } from '@prisma/client'; import { countries } from 'countries-list'; -import got from 'got'; @Injectable() export class TrackinsightDataEnhancerService implements DataEnhancerInterface { @@ -45,27 +44,25 @@ export class TrackinsightDataEnhancerService implements DataEnhancerInterface { return response; } - const profile = await got( + const profile = await fetch( `${TrackinsightDataEnhancerService.baseUrl}/funds/${symbol}.json`, { - // @ts-ignore signal: AbortSignal.timeout(requestTimeout) } ) - .json() + .then((res) => res.json()) .catch(() => { - return got( + return fetch( `${TrackinsightDataEnhancerService.baseUrl}/funds/${ symbol.split('.')?.[0] }.json`, { - // @ts-ignore signal: AbortSignal.timeout( this.configurationService.get('REQUEST_TIMEOUT') ) } ) - .json() + .then((res) => res.json()) .catch(() => { return {}; }); @@ -77,29 +74,27 @@ export class TrackinsightDataEnhancerService implements DataEnhancerInterface { response.isin = isin; } - const holdings = await got( + const holdings = await fetch( `${TrackinsightDataEnhancerService.baseUrl}/holdings/${symbol}.json`, { - // @ts-ignore signal: AbortSignal.timeout( this.configurationService.get('REQUEST_TIMEOUT') ) } ) - .json() + .then((res) => res.json()) .catch(() => { - return got( + return fetch( `${TrackinsightDataEnhancerService.baseUrl}/holdings/${ symbol.split('.')?.[0] }.json`, { - // @ts-ignore signal: AbortSignal.timeout( this.configurationService.get('REQUEST_TIMEOUT') ) } ) - .json() + .then((res) => res.json()) .catch(() => { return {}; }); diff --git a/apps/api/src/services/data-provider/eod-historical-data/eod-historical-data.service.ts b/apps/api/src/services/data-provider/eod-historical-data/eod-historical-data.service.ts index 3ba8eb04..e427a830 100644 --- a/apps/api/src/services/data-provider/eod-historical-data/eod-historical-data.service.ts +++ b/apps/api/src/services/data-provider/eod-historical-data/eod-historical-data.service.ts @@ -31,7 +31,6 @@ import { SymbolProfile } from '@prisma/client'; import { addDays, format, isSameDay, isToday } from 'date-fns'; -import got from 'got'; import { isNumber } from 'lodash'; @Injectable() @@ -95,7 +94,7 @@ export class EodHistoricalDataService implements DataProviderInterface { [date: string]: IDataProviderHistoricalResponse; } = {}; - const historicalResult = await got( + const historicalResult = await fetch( `${this.URL}/div/${symbol}?api_token=${ this.apiKey }&fmt=json&from=${format(from, DATE_FORMAT)}&to=${format( @@ -103,10 +102,9 @@ export class EodHistoricalDataService implements DataProviderInterface { DATE_FORMAT )}`, { - // @ts-ignore signal: AbortSignal.timeout(requestTimeout) } - ).json(); + ).then((res) => res.json()); for (const { date, value } of historicalResult) { response[date] = { @@ -140,7 +138,7 @@ export class EodHistoricalDataService implements DataProviderInterface { symbol = this.convertToEodSymbol(symbol); try { - const response = await got( + const response = await fetch( `${this.URL}/eod/${symbol}?api_token=${ this.apiKey }&fmt=json&from=${format(from, DATE_FORMAT)}&to=${format( @@ -148,10 +146,9 @@ export class EodHistoricalDataService implements DataProviderInterface { DATE_FORMAT )}&period=${granularity}`, { - // @ts-ignore signal: AbortSignal.timeout(requestTimeout) } - ).json(); + ).then((res) => res.json()); return response.reduce( (result, { adjusted_close, date }) => { @@ -205,15 +202,14 @@ export class EodHistoricalDataService implements DataProviderInterface { }); try { - const realTimeResponse = await got( + const realTimeResponse = await fetch( `${this.URL}/real-time/${eodHistoricalDataSymbols[0]}?api_token=${ this.apiKey }&fmt=json&s=${eodHistoricalDataSymbols.join(',')}`, { - // @ts-ignore signal: AbortSignal.timeout(requestTimeout) } - ).json(); + ).then((res) => res.json()); const quotes: { close: number; @@ -286,7 +282,7 @@ export class EodHistoricalDataService implements DataProviderInterface { } catch (error) { let message = error; - if (error?.code === 'ABORT_ERR') { + if (error?.name === 'AbortError') { message = `RequestError: The operation to get the quotes was aborted because the request to the data provider took more than ${( this.configurationService.get('REQUEST_TIMEOUT') / 1000 ).toFixed(3)} seconds`; @@ -400,15 +396,14 @@ export class EodHistoricalDataService implements DataProviderInterface { })[] = []; try { - const response = await got( + const response = await fetch( `${this.URL}/search/${aQuery}?api_token=${this.apiKey}`, { - // @ts-ignore signal: AbortSignal.timeout( this.configurationService.get('REQUEST_TIMEOUT') ) } - ).json(); + ).then((res) => res.json()); searchResult = response.map( ({ Code, Currency, Exchange, ISIN: isin, Name: name, Type }) => { @@ -431,7 +426,7 @@ export class EodHistoricalDataService implements DataProviderInterface { } catch (error) { let message = error; - if (error?.code === 'ABORT_ERR') { + if (error?.name === 'AbortError') { message = `RequestError: The operation to search for ${aQuery} was aborted because the request to the data provider took more than ${( this.configurationService.get('REQUEST_TIMEOUT') / 1000 ).toFixed(3)} seconds`; diff --git a/apps/api/src/services/data-provider/financial-modeling-prep/financial-modeling-prep.service.ts b/apps/api/src/services/data-provider/financial-modeling-prep/financial-modeling-prep.service.ts index 933af480..ed55b3c2 100644 --- a/apps/api/src/services/data-provider/financial-modeling-prep/financial-modeling-prep.service.ts +++ b/apps/api/src/services/data-provider/financial-modeling-prep/financial-modeling-prep.service.ts @@ -21,7 +21,6 @@ import { import { Injectable, Logger } from '@nestjs/common'; import { DataSource, SymbolProfile } from '@prisma/client'; import { format, isAfter, isBefore, isSameDay } from 'date-fns'; -import got from 'got'; @Injectable() export class FinancialModelingPrepService implements DataProviderInterface { @@ -72,13 +71,12 @@ export class FinancialModelingPrepService implements DataProviderInterface { [symbol: string]: { [date: string]: IDataProviderHistoricalResponse }; }> { try { - const { historical } = await got( + const { historical } = await fetch( `${this.URL}/historical-price-full/${symbol}?apikey=${this.apiKey}`, { - // @ts-ignore signal: AbortSignal.timeout(requestTimeout) } - ).json(); + ).then((res) => res.json()); const result: { [symbol: string]: { [date: string]: IDataProviderHistoricalResponse }; @@ -124,13 +122,12 @@ export class FinancialModelingPrepService implements DataProviderInterface { } try { - const quotes = await got( + const quotes = await fetch( `${this.URL}/quote/${symbols.join(',')}?apikey=${this.apiKey}`, { - // @ts-ignore signal: AbortSignal.timeout(requestTimeout) } - ).json(); + ).then((res) => res.json()); for (const { price, symbol } of quotes) { response[symbol] = { @@ -144,7 +141,7 @@ export class FinancialModelingPrepService implements DataProviderInterface { } catch (error) { let message = error; - if (error?.code === 'ABORT_ERR') { + if (error?.name === 'AbortError') { message = `RequestError: The operation to get the quotes was aborted because the request to the data provider took more than ${( this.configurationService.get('REQUEST_TIMEOUT') / 1000 ).toFixed(3)} seconds`; @@ -164,15 +161,14 @@ export class FinancialModelingPrepService implements DataProviderInterface { let items: LookupItem[] = []; try { - const result = await got( + const result = await fetch( `${this.URL}/search?query=${query}&apikey=${this.apiKey}`, { - // @ts-ignore signal: AbortSignal.timeout( this.configurationService.get('REQUEST_TIMEOUT') ) } - ).json(); + ).then((res) => res.json()); items = result.map(({ currency, name, symbol }) => { return { @@ -187,7 +183,7 @@ export class FinancialModelingPrepService implements DataProviderInterface { } catch (error) { let message = error; - if (error?.code === 'ABORT_ERR') { + if (error?.name === 'AbortError') { message = `RequestError: The operation to search for ${query} was aborted because the request to the data provider took more than ${( this.configurationService.get('REQUEST_TIMEOUT') / 1000 ).toFixed(3)} seconds`; diff --git a/apps/api/src/services/data-provider/ghostfolio/ghostfolio.service.ts b/apps/api/src/services/data-provider/ghostfolio/ghostfolio.service.ts index b6e86949..a674d479 100644 --- a/apps/api/src/services/data-provider/ghostfolio/ghostfolio.service.ts +++ b/apps/api/src/services/data-provider/ghostfolio/ghostfolio.service.ts @@ -28,7 +28,6 @@ import { import { Injectable, Logger } from '@nestjs/common'; import { DataSource, SymbolProfile } from '@prisma/client'; import { format } from 'date-fns'; -import got from 'got'; import { StatusCodes } from 'http-status-codes'; @Injectable() @@ -86,17 +85,16 @@ export class GhostfolioService implements DataProviderInterface { } = {}; try { - const { dividends } = await got( + const { dividends } = (await fetch( `${this.URL}/v2/data-providers/ghostfolio/dividends/${symbol}?from=${format(from, DATE_FORMAT)}&granularity=${granularity}&to=${format( to, DATE_FORMAT )}`, { headers: await this.getRequestHeaders(), - // @ts-ignore signal: AbortSignal.timeout(requestTimeout) } - ).json(); + ).then((res) => res.json())) as DividendsResponse; response = dividends; } catch (error) { @@ -130,17 +128,16 @@ export class GhostfolioService implements DataProviderInterface { [symbol: string]: { [date: string]: IDataProviderHistoricalResponse }; }> { try { - const { historicalData } = await got( + const { historicalData } = (await fetch( `${this.URL}/v2/data-providers/ghostfolio/historical/${symbol}?from=${format(from, DATE_FORMAT)}&granularity=${granularity}&to=${format( to, DATE_FORMAT )}`, { headers: await this.getRequestHeaders(), - // @ts-ignore signal: AbortSignal.timeout(requestTimeout) } - ).json(); + ).then((res) => res.json())) as HistoricalResponse; return { [symbol]: historicalData @@ -192,20 +189,19 @@ export class GhostfolioService implements DataProviderInterface { } try { - const { quotes } = await got( + const { quotes } = (await fetch( `${this.URL}/v2/data-providers/ghostfolio/quotes?symbols=${symbols.join(',')}`, { headers: await this.getRequestHeaders(), - // @ts-ignore signal: AbortSignal.timeout(requestTimeout) } - ).json(); + ).then((res) => res.json())) as QuotesResponse; response = quotes; } catch (error) { let message = error; - if (error.code === 'ABORT_ERR') { + if (error.name === 'AbortError') { message = `RequestError: The operation to get the quotes was aborted because the request to the data provider took more than ${( this.configurationService.get('REQUEST_TIMEOUT') / 1000 ).toFixed(3)} seconds`; @@ -235,20 +231,19 @@ export class GhostfolioService implements DataProviderInterface { let searchResult: LookupResponse = { items: [] }; try { - searchResult = await got( + searchResult = (await fetch( `${this.URL}/v2/data-providers/ghostfolio/lookup?query=${query}`, { headers: await this.getRequestHeaders(), - // @ts-ignore signal: AbortSignal.timeout( this.configurationService.get('REQUEST_TIMEOUT') ) } - ).json(); + ).then((res) => res.json())) as LookupResponse; } catch (error) { let message = error; - if (error.code === 'ABORT_ERR') { + if (error.name === 'AbortError') { message = `RequestError: The operation to search for ${query} was aborted because the request to the data provider took more than ${( this.configurationService.get('REQUEST_TIMEOUT') / 1000 ).toFixed(3)} seconds`; 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 3e98a9d7..9ba84d6d 100644 --- a/apps/api/src/services/data-provider/manual/manual.service.ts +++ b/apps/api/src/services/data-provider/manual/manual.service.ts @@ -27,7 +27,6 @@ import { Injectable, Logger } from '@nestjs/common'; import { DataSource, SymbolProfile } from '@prisma/client'; import * as cheerio from 'cheerio'; import { addDays, format, isBefore } from 'date-fns'; -import got, { Headers } from 'got'; import * as jsonpath from 'jsonpath'; @Injectable() @@ -276,23 +275,22 @@ export class ManualService implements DataProviderInterface { ): Promise { try { let locale = scraperConfiguration.locale; - const { body, headers } = await got(scraperConfiguration.url, { - headers: scraperConfiguration.headers as Headers, - // @ts-ignore + const response = await fetch(scraperConfiguration.url, { + headers: scraperConfiguration.headers as HeadersInit, signal: AbortSignal.timeout( this.configurationService.get('REQUEST_TIMEOUT') ) }); - if (headers['content-type'].includes('application/json')) { - const data = JSON.parse(body); + if (response.headers['content-type'].includes('application/json')) { + const data = await response.json(); const value = String( jsonpath.query(data, scraperConfiguration.selector)[0] ); return extractNumberFromString({ locale, value }); } else { - const $ = cheerio.load(body); + const $ = cheerio.load(await response.text()); if (!locale) { try { diff --git a/apps/api/src/services/data-provider/rapid-api/rapid-api.service.ts b/apps/api/src/services/data-provider/rapid-api/rapid-api.service.ts index 08cc2ef0..4c9bb271 100644 --- a/apps/api/src/services/data-provider/rapid-api/rapid-api.service.ts +++ b/apps/api/src/services/data-provider/rapid-api/rapid-api.service.ts @@ -20,7 +20,6 @@ import { import { Injectable, Logger } from '@nestjs/common'; import { DataSource, SymbolProfile } from '@prisma/client'; import { format } from 'date-fns'; -import got from 'got'; @Injectable() export class RapidApiService implements DataProviderInterface { @@ -135,7 +134,7 @@ export class RapidApiService implements DataProviderInterface { oneYearAgo: { value: number; valueText: string }; }> { try { - const { fgi } = await got( + const { fgi } = await fetch( `https://fear-and-greed-index.p.rapidapi.com/v1/fgi`, { headers: { @@ -143,18 +142,17 @@ export class RapidApiService implements DataProviderInterface { 'x-rapidapi-host': 'fear-and-greed-index.p.rapidapi.com', 'x-rapidapi-key': this.configurationService.get('API_KEY_RAPID_API') }, - // @ts-ignore signal: AbortSignal.timeout( this.configurationService.get('REQUEST_TIMEOUT') ) } - ).json(); + ).then((res) => res.json()); return fgi; } catch (error) { let message = error; - if (error?.code === 'ABORT_ERR') { + if (error?.name === 'AbortError') { message = `RequestError: The operation was aborted because the request to the data provider took more than ${( this.configurationService.get('REQUEST_TIMEOUT') / 1000 ).toFixed(3)} seconds`; diff --git a/package-lock.json b/package-lock.json index 305bcb27..93189ca1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -65,7 +65,6 @@ "date-fns": "3.6.0", "envalid": "7.3.1", "google-spreadsheet": "3.2.0", - "got": "11.8.6", "helmet": "7.0.0", "http-status-codes": "2.3.0", "ionicons": "7.4.0", @@ -9561,18 +9560,6 @@ "devOptional": true, "license": "MIT" }, - "node_modules/@sindresorhus/is": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", - "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/is?sponsor=1" - } - }, "node_modules/@sindresorhus/merge-streams": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-2.3.0.tgz", @@ -10643,18 +10630,6 @@ "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", "license": "0BSD" }, - "node_modules/@szmarczak/http-timer": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", - "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", - "license": "MIT", - "dependencies": { - "defer-to-connect": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/@testing-library/dom": { "version": "10.4.0", "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-10.4.0.tgz", @@ -11148,33 +11123,6 @@ "dev": true, "license": "MIT" }, - "node_modules/@types/cacheable-request": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.3.tgz", - "integrity": "sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==", - "license": "MIT", - "dependencies": { - "@types/http-cache-semantics": "*", - "@types/keyv": "^3.1.4", - "@types/node": "*", - "@types/responselike": "^1.0.0" - } - }, - "node_modules/@types/cacheable-request/node_modules/@types/node": { - "version": "22.10.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.2.tgz", - "integrity": "sha512-Xxr6BBRCAOQixvonOye19wnzyDiUtTeqldOOmj3CkeblonbccA12PFwlufvRdrpjXxqnmUaeiU5EOA+7s5diUQ==", - "license": "MIT", - "dependencies": { - "undici-types": "~6.20.0" - } - }, - "node_modules/@types/cacheable-request/node_modules/undici-types": { - "version": "6.20.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", - "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", - "license": "MIT" - }, "node_modules/@types/color": { "version": "3.0.6", "resolved": "https://registry.npmjs.org/@types/color/-/color-3.0.6.tgz", @@ -11418,12 +11366,6 @@ "devOptional": true, "license": "MIT" }, - "node_modules/@types/http-cache-semantics": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz", - "integrity": "sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==", - "license": "MIT" - }, "node_modules/@types/http-errors": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz", @@ -11558,30 +11500,6 @@ "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", "license": "MIT" }, - "node_modules/@types/keyv": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz", - "integrity": "sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/keyv/node_modules/@types/node": { - "version": "22.10.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.2.tgz", - "integrity": "sha512-Xxr6BBRCAOQixvonOye19wnzyDiUtTeqldOOmj3CkeblonbccA12PFwlufvRdrpjXxqnmUaeiU5EOA+7s5diUQ==", - "license": "MIT", - "dependencies": { - "undici-types": "~6.20.0" - } - }, - "node_modules/@types/keyv/node_modules/undici-types": { - "version": "6.20.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", - "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", - "license": "MIT" - }, "node_modules/@types/lodash": { "version": "4.17.7", "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.7.tgz", @@ -11826,30 +11744,6 @@ "@types/react": "^18.0.0" } }, - "node_modules/@types/responselike": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.3.tgz", - "integrity": "sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/responselike/node_modules/@types/node": { - "version": "22.10.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.2.tgz", - "integrity": "sha512-Xxr6BBRCAOQixvonOye19wnzyDiUtTeqldOOmj3CkeblonbccA12PFwlufvRdrpjXxqnmUaeiU5EOA+7s5diUQ==", - "license": "MIT", - "dependencies": { - "undici-types": "~6.20.0" - } - }, - "node_modules/@types/responselike/node_modules/undici-types": { - "version": "6.20.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", - "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", - "license": "MIT" - }, "node_modules/@types/retry": { "version": "0.12.2", "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.2.tgz", @@ -14422,33 +14316,6 @@ "node": ">= 18" } }, - "node_modules/cacheable-lookup": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", - "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==", - "license": "MIT", - "engines": { - "node": ">=10.6.0" - } - }, - "node_modules/cacheable-request": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.4.tgz", - "integrity": "sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==", - "license": "MIT", - "dependencies": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^4.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^6.0.1", - "responselike": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/cachedir": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/cachedir/-/cachedir-2.4.0.tgz", @@ -15058,27 +14925,6 @@ "node": ">=0.10.0" } }, - "node_modules/clone-response": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz", - "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==", - "license": "MIT", - "dependencies": { - "mimic-response": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/clone-response/node_modules/mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, "node_modules/cluster-key-slot": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/cluster-key-slot/-/cluster-key-slot-1.1.2.tgz", @@ -16881,21 +16727,6 @@ "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/decompress-response": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", - "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", - "license": "MIT", - "dependencies": { - "mimic-response": "^3.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/dedent": { "version": "1.5.3", "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.3.tgz", @@ -16984,15 +16815,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/defer-to-connect": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", - "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", - "license": "MIT", - "engines": { - "node": ">=10" - } - }, "node_modules/define-data-property": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", @@ -17531,6 +17353,7 @@ "version": "1.4.4", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, "license": "MIT", "dependencies": { "once": "^1.4.0" @@ -19943,6 +19766,7 @@ "version": "5.2.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, "license": "MIT", "dependencies": { "pump": "^3.0.0" @@ -20266,31 +20090,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/got": { - "version": "11.8.6", - "resolved": "https://registry.npmjs.org/got/-/got-11.8.6.tgz", - "integrity": "sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==", - "license": "MIT", - "dependencies": { - "@sindresorhus/is": "^4.0.0", - "@szmarczak/http-timer": "^4.0.5", - "@types/cacheable-request": "^6.0.1", - "@types/responselike": "^1.0.0", - "cacheable-lookup": "^5.0.3", - "cacheable-request": "^7.0.2", - "decompress-response": "^6.0.0", - "http2-wrapper": "^1.0.0-beta.5.2", - "lowercase-keys": "^2.0.0", - "p-cancelable": "^2.0.0", - "responselike": "^2.0.0" - }, - "engines": { - "node": ">=10.19.0" - }, - "funding": { - "url": "https://github.com/sindresorhus/got?sponsor=1" - } - }, "node_modules/graceful-fs": { "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", @@ -20786,6 +20585,7 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", + "dev": true, "license": "BSD-2-Clause" }, "node_modules/http-deceiver": { @@ -20937,19 +20737,6 @@ "integrity": "sha512-RJ8XvFvpPM/Dmc5SV+dC4y5PCeOhT3x1Hq0NU3rjGeg5a/CqlhZ7uudknPwZFz4aeAXDcbAyaeP7GAo9lvngtA==", "license": "MIT" }, - "node_modules/http2-wrapper": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", - "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==", - "license": "MIT", - "dependencies": { - "quick-lru": "^5.1.1", - "resolve-alpn": "^1.0.0" - }, - "engines": { - "node": ">=10.19.0" - } - }, "node_modules/https-proxy-agent": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", @@ -23281,6 +23068,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true, "license": "MIT" }, "node_modules/json-parse-even-better-errors": { @@ -23521,6 +23309,7 @@ "version": "4.5.4", "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, "license": "MIT", "dependencies": { "json-buffer": "3.0.1" @@ -24746,15 +24535,6 @@ "devOptional": true, "license": "0BSD" }, - "node_modules/lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/lru-cache": { "version": "10.4.3", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", @@ -25600,18 +25380,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/mimic-response": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", - "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/min-indent": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", @@ -26361,18 +26129,6 @@ "node": ">=0.10.0" } }, - "node_modules/normalize-url": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", - "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/npm-bundled": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-4.0.0.tgz", @@ -26888,6 +26644,7 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "devOptional": true, "license": "ISC", "dependencies": { "wrappy": "1" @@ -27036,15 +26793,6 @@ "dev": true, "license": "MIT" }, - "node_modules/p-cancelable": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", - "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/p-limit": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", @@ -28662,6 +28410,7 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.2.tgz", "integrity": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==", + "dev": true, "license": "MIT", "dependencies": { "end-of-stream": "^1.1.0", @@ -28759,18 +28508,6 @@ ], "license": "MIT" }, - "node_modules/quick-lru": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", - "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/rambda": { "version": "9.4.1", "resolved": "https://registry.npmjs.org/rambda/-/rambda-9.4.1.tgz", @@ -29368,12 +29105,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/resolve-alpn": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", - "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==", - "license": "MIT" - }, "node_modules/resolve-cwd": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", @@ -29443,18 +29174,6 @@ "node": ">=10" } }, - "node_modules/responselike": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz", - "integrity": "sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==", - "license": "MIT", - "dependencies": { - "lowercase-keys": "^2.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/restore-cursor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", @@ -34053,6 +33772,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "devOptional": true, "license": "ISC" }, "node_modules/write-file-atomic": { diff --git a/package.json b/package.json index 650918ef..607ec233 100644 --- a/package.json +++ b/package.json @@ -111,7 +111,6 @@ "date-fns": "3.6.0", "envalid": "7.3.1", "google-spreadsheet": "3.2.0", - "got": "11.8.6", "helmet": "7.0.0", "http-status-codes": "2.3.0", "ionicons": "7.4.0", From b9917e72b2ae6c9dfa9c3cdcd9bc556c8141eb34 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Wed, 1 Jan 2025 09:19:31 +0100 Subject: [PATCH 55/63] Feature/update year to 2025 (#4169) * Update year --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 4151617c..14477ea9 100644 --- a/README.md +++ b/README.md @@ -306,6 +306,6 @@ If you like to support this project, get [**Ghostfolio Premium**](https://ghostf ## License -© 2021 - 2024 [Ghostfolio](https://ghostfol.io) +© 2021 - 2025 [Ghostfolio](https://ghostfol.io) Licensed under the [AGPLv3 License](https://www.gnu.org/licenses/agpl-3.0.html). From 1cf7ffdee8aa78c77b75c8f1069ccf0bcf580e09 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Wed, 1 Jan 2025 19:20:27 +0100 Subject: [PATCH 56/63] Feature/refresh cryptocurrencies list 20241230 (#4165) * Update cryptocurrencies.json * Update changelog --- CHANGELOG.md | 1 + .../cryptocurrencies/cryptocurrencies.json | 211 +++++++++++++++--- 2 files changed, 183 insertions(+), 29 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f7babf45..4aa7a13b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Changed the _Postgres_ image from `postgres:15` to `postgres:15-alpine` in the `docker-compose` files - Introduced `extends` in the `docker-compose` files - Improved the language localization for German (`de`) +- Refreshed the cryptocurrencies list ## 2.132.0 - 2024-12-30 diff --git a/apps/api/src/assets/cryptocurrencies/cryptocurrencies.json b/apps/api/src/assets/cryptocurrencies/cryptocurrencies.json index ac215738..f77297d0 100644 --- a/apps/api/src/assets/cryptocurrencies/cryptocurrencies.json +++ b/apps/api/src/assets/cryptocurrencies/cryptocurrencies.json @@ -11,7 +11,7 @@ "611": "SixEleven", "777": "Jackpot", "808": "808", - "888": "Octocoin", + "888": "888", "1337": "EliteCoin", "1717": "1717 Masonic Commemorative Token", "2015": "2015 coin", @@ -26,6 +26,7 @@ "0DOG": "Bitcoin Dogs", "0KN": "0 Knowledge Network", "0NE": "Stone", + "0X0": "0x0.ai", "0X1": "0x1.tools: AI Multi-tool Plaform", "0XBTC": "0xBitcoin", "0XCOCO": "0xCoco", @@ -36,7 +37,6 @@ "0XOS": "0xOS AI", "0XSEARCH": "Search", "0XVOX": "HashVox AI", - "0x0": "0x0.ai", "0xDIARY": "The 0xDiary Token", "0xVPN": "0xVPN.org", "1-UP": "1-UP", @@ -50,6 +50,7 @@ "1EX": "1ex Trading Board", "1FLR": "Flare Token", "1GOLD": "1irstGold", + "1GUY": "1GUY", "1INCH": "1inch", "1IRST": "1irstcoin", "1MCT": "MicroCreditToken", @@ -136,6 +137,7 @@ "A8": "Ancient8", "AA": "Alva", "AAA": "Moon Rabbit", + "AAAHHM": "Plankton in Pain", "AAB": "AAX Token", "AABL": "Abble", "AAC": "Double-A Chain", @@ -177,6 +179,7 @@ "ABONDV1": "ApeSwap", "ABR": "Allbridge", "ABT": "ArcBlock", + "ABTC": "aBTC", "ABUL": "Abulaba", "ABUNI": "Uniswap Protocol Token (Arbitrum Bridge)", "ABUSDC": "USD Coin (Arbitrum Bridge)", @@ -318,6 +321,7 @@ "AGB": "Apes Go Bananas", "AGC": "Argocoin", "AGENT": "AgentLayer", + "AGENTFUN": "AgentFun.AI", "AGET": "Agetron", "AGETH": "Kelp Gain", "AGEUR": "agEUR", @@ -454,6 +458,7 @@ "AKRO": "Akropolis", "AKT": "Akash Network", "AKTIO": "AKTIO Coin", + "AKUMA": "Akuma Inu", "AL": "ArchLoot", "ALA": "Alanyaspor Fan Token", "ALAN": "Alan the Alien", @@ -502,6 +507,7 @@ "ALLC": "All Crypto Mechanics", "ALLEY": "NFT Alley", "ALLIN": "All in", + "ALLMEE": "All.me", "ALM": "Alium Finance", "ALMAN": "Alman", "ALMC": "Awkward Look Monkey Club", @@ -577,6 +583,7 @@ "AMO": "AMO Coin", "AMOGUS": "Sussy Baka Impostor", "AMON": "AmonD", + "AMORE": "Amocucinare", "AMOS": "Amos", "AMP": "Amp", "AMPL": "Ampleforth", @@ -736,7 +743,7 @@ "ARBS": "Arbswap", "ARBT": "ARBITRAGE", "ARBUZ": "ARBUZ", - "ARC": "Neko Arc", + "ARC": "Arc", "ARCA": "Legend of Arcadia", "ARCAD": "Arcadeum", "ARCADE": "ARCADE", @@ -818,6 +825,7 @@ "ARTFI": "ARTFI", "ARTG": "Goya Giant Token", "ARTH": "ARTH", + "ARTHERA": "Arthera", "ARTI": "Arti Project", "ARTIF": "Artificial Intelligence", "ARTII": "ARTII Token", @@ -906,6 +914,7 @@ "ATHE": "Atheios", "ATHEN": "Athenas AI", "ATHENA": "Athena DexFi", + "ATHER": "Ather", "ATHVODKA": "All Time High Vodka", "ATID": "AstridDAO Token", "ATK": "Attack Wagon", @@ -932,11 +941,12 @@ "ATOZ": "Race Kingdom", "ATP": "Atlas Protocol", "ATPAY": "AtPay", - "ATR": "Ather", + "ATR": "Artrade", "ATRI": "Atari Token", "ATRNO": "AETERNUS", "ATROFA": "Atrofarm", "ATRS": "Attarius Network", + "ATRV1": "Artrade v1", "ATS": "Atlas DEX", "ATT": "Attila", "ATTR": "Attrace", @@ -991,6 +1001,7 @@ "AVATAR": "Avatar", "AVATLY": "Avatly", "AVAV": "AVAV", + "AVAV1": "AVA v1", "AVAX": "Avalanche", "AVAXIOU": "Avalanche IOU", "AVB": "Autonomous Virtual Beings", @@ -1210,10 +1221,11 @@ "BAMBIT": "BAMBIT", "BAMBOO": "BambooDeFi", "BAMITCOIN": "Bamit", - "BAN": "Banano", + "BAN": "Comedian", "BANANA": "Banana Gun", "BANANAF": "Banana For Scale", "BANANAS": "Monkey Peepo", + "BANANO": "Banano", "BANC": "Babes and Nerds", "BANCA": "BANCA", "BAND": "Band Protocol", @@ -1455,6 +1467,7 @@ "BEPR": "Blockchain Euro Project", "BEPRO": "BEPRO Network", "BERF": "BERF", + "BERG": "Bloxberg", "BERN": "BERNcash", "BERNIE": "BERNIE SENDERS", "BERRY": "Berry", @@ -1873,6 +1886,7 @@ "BOBE": "BOOK OF BILLIONAIRES", "BOBER": "BOBER", "BOBFUN": "BOB", + "BOBLS": "Boblles", "BOBO": "BOBO", "BOBOT": "Bobo The Bear", "BOBS": "Bob's Repair", @@ -2217,6 +2231,7 @@ "BTCAS": "BitcoinAsia", "BTCAT": "Bitcoin Cat", "BTCB": "Bitcoin BEP2", + "BTCBASE": "Bitcoin on Base", "BTCBR": "Bitcoin BR", "BTCBRV1": "Bitcoin BR v1", "BTCC": "Bitcoin Core", @@ -2308,8 +2323,10 @@ "BUB": "BUBCAT", "BUBBA": "Bubba", "BUBBLE": "Bubble", + "BUBBLES": "BUBBLES", "BUBO": "Budbo", "BUBU": "BUBU", + "BUBV1": "BUBCAT v1", "BUC": "Beau Cat", "BUCK": "Coinbuck", "BUCKS": "SwagBucks", @@ -2784,7 +2801,9 @@ "CHEDDA": "Chedda", "CHEEKS": "CHEEKS", "CHEEL": "Cheelee", - "CHEEMS": "Cheems", + "CHEEMS": "Cheems (cheems.pet)", + "CHEEMSCO": "Cheems", + "CHEEMSV1": "Cheems (cheems.pet) v1", "CHEEPEPE": "CHEEPEPE", "CHEERS": "DICAPRIO CHEERS", "CHEESE": "Cheese", @@ -3107,7 +3126,7 @@ "COMFI": "CompliFi", "COMM": "Community Coin", "COMMUNITYCOIN": "Community Coin", - "COMP": "Compound Governance Token", + "COMP": "Compound", "COMPCOIN": "Compcoin", "COMPD": "Compound Coin", "COMPU": "Compute Network", @@ -3125,6 +3144,7 @@ "CONSENTIUM": "Consentium", "CONTROL": "Control Token", "CONV": "Convergence", + "CONVO": "Prefrontal Cortex Convo Agent by Virtuals", "CONX": "Connex", "COO": "Cool Cats MILK", "COOCHIE": "Cucci", @@ -3708,6 +3728,7 @@ "DCCT": "DocuChain", "DCD": "DecideAI", "DCE": "Decentra Ecosystem", + "DCF": "Decentralized Finance", "DCHEFSOL": "Degen Chef", "DCHEWY": "Drop Chewy", "DCHF": "DeFi Franc", @@ -3792,7 +3813,9 @@ "DEFY": "DEFY", "DEG": "Degis", "DEGA": "Dega", + "DEGATE": "DeGate", "DEGEN": "Degen", + "DEGENAI": "Degen Spartan AI", "DEGENR": "DegenReborn", "DEGO": "Dego Finance", "DEGOD": "degod", @@ -3802,6 +3825,7 @@ "DEI": "Deimos", "DEK": "DekBox", "DEL": "Decimal", + "DELAY": "DegenLayer", "DELCHAIN": "DelChain", "DELFI": "DeltaFi", "DELI": "NFTDeli", @@ -3914,6 +3938,7 @@ "DGPT": "DigiPulse", "DGTA": "Digitra.com Token", "DGTX": "Digitex Token", + "DGV1": "Decentral Games v1", "DGVC": "DegenVC", "DGX": "Digix Gold token", "DHLT": "DeHealth", @@ -4008,6 +4033,7 @@ "DKEY": "DKEY Bank", "DKKT": "DKK Token", "DKNIGHT": "Dark Knight", + "DKP": "Dragginz", "DKS": "DarkShield", "DKT": "Duelist King", "DKUMA": "KumaDex Token", @@ -4074,6 +4100,7 @@ "DOBBY": "Dobby", "DOBEN": "dark boden", "DOBO": "DogeBonk", + "DOBUY": "Just do buy", "DOC": "Dochain", "DOCAINEURON": "Doc.ai Neuron", "DOCC": "Doc Coin", @@ -4291,13 +4318,15 @@ "DRM8": "Dream8Coin", "DROGGY": "Droggy", "DRONE": "Drone Coin", - "DROP": "Dropil", + "DROP": "DROP", + "DROPIL": "Dropil", "DROPS": "Drops", "DROVERS": "Drover Inu", "DRP": "DCORP", "DRPU": "DRP Utility", "DRS": "Digital Rupees", "DRT": "DomRaider", + "DRUGS": "Big Pharmai", "DRXNE": "Droxne", "DRZ": "Droidz", "DS": "DeStorage", @@ -4486,6 +4515,7 @@ "EBEN": "Green Ben", "EBET": "EthBet", "EBIT": "eBit", + "EBITCOIN": "eBitcoin", "EBK": "Ebakus", "EBOX": "Ethbox Token", "EBS": "EbolaShare", @@ -4494,7 +4524,7 @@ "EBSO": "eBlockStock", "EBST": "eBoost", "EBT": "ELON BUYS TWITTER", - "EBTC": "eBitcoin", + "EBTC": "Ether.fi Staked BTC", "EBULL": "ETHEREUM IS GOOD", "EBYT": "EarthByt", "EBZ": "Ebitz", @@ -4680,6 +4710,7 @@ "ELONMU": "Elon Musk", "ELONONE": "AstroElon", "ELONPEPE": "Elon Pepe Robot", + "ELONRWA": "ElonRWA", "ELONTRUMP": "ELON TRUMP", "ELP": "Ellerium", "ELS": "Ethlas", @@ -4693,6 +4724,7 @@ "ELVN": "11Minutes", "ELX": "Energy Ledger", "ELY": "Elysian", + "ELYS": "Elys Network", "ELYSIUM": "Elysium", "EM": "Eminer", "EMAID": "MaidSafeCoin", @@ -4783,6 +4815,7 @@ "EOX": "EXTRA ORDINARY", "EPAN": "Paypolitan Token", "EPANUS": "Epanus", + "EPENDLE": "Equilibria Pendle", "EPEP": "Epep", "EPETS": "Etherpets", "EPIC": "Epic Cash", @@ -4891,7 +4924,7 @@ "ETHERDELTA": "EtherDelta", "ETHERE": "Ethereal", "ETHEREM": "Etherempires", - "ETHEREUM": "Solana Ethereum Meme", + "ETHEREUMMEME": "Solana Ethereum Meme", "ETHEREUMP": "ETHEREUMPLUS", "ETHERINC": "EtherInc", "ETHERKING": "Ether Kingdoms Token", @@ -4926,6 +4959,7 @@ "ETM": "En-Tan-Mo", "ETN": "Electroneum", "ETNA": "ETNA Network", + "ETNY": "Ethernity", "ETP": "Metaverse", "ETPOS": "EtherPOS", "ETR": "Electric Token", @@ -5056,6 +5090,7 @@ "EZT": "EZToken", "EZY": "EzyStayz", "ElvishMagic": "EMAGIC", + "F": "SynFutures", "F16": "F16Coin", "F1C": "Future1coin", "F2C": "Ftribe Fighters", @@ -5114,6 +5149,7 @@ "FAST": "Fastswap", "FASTAI": "Fast And Ai", "FASTMOON": "FastMoon", + "FASTUSD": "Sei fastUSD", "FASTV1": "Fastswap v1", "FAT": "Fatcoin", "FATCAKE": "FatCake", @@ -5153,6 +5189,7 @@ "FCS": "CryptoFocus", "FCT": "FirmaChain", "FCTC": "FaucetCoin", + "FCTR": "FactorDAO", "FDC": "Fidance", "FDLS": "FIDELIS", "FDM": "Fandom", @@ -5335,10 +5372,14 @@ "FLOKINY": "Floki New Year", "FLOKIPEPE": "FlokiPepe", "FLOKITA": "FLOKITA", + "FLOKIV1": "Floki v1", + "FLOKIV2": "Floki v2", + "FLOKIV3": "Floki v3", "FLOKIX": "FLOKI X", "FLOOF": "FLOOF", "FLOOR": "FloorDAO", "FLOP": "Big Floppa", + "FLOPPA": "Floppa Cat", "FLORK": "FLORK BNB", "FLORKY": "Florky", "FLOSHIDO": "FLOSHIDO INU", @@ -5491,8 +5532,9 @@ "FREAK": "Freakoff", "FREC": "Freyrchain", "FRECNX": "FreldoCoinX", - "FRED": "FREDEnergy", + "FRED": "First Convicted Raccon Fred", "FREDDY": "FREDDY", + "FREDE": "FREDEnergy", "FREE": "FREE coin", "FREED": "FreedomCoin", "FREEDO": "Freedom", @@ -5648,6 +5690,7 @@ "FXDX": "FXDX", "FXF": "Finxflo", "FXI": "FX1 Sports", + "FXN": "FXN", "FXP": "FXPay", "FXS": "Frax Share", "FXST": "FX Stock Token", @@ -5691,6 +5734,7 @@ "GALO": "Clube Atlético Mineiro Fan Token", "GALT": "Galtcoin", "GAM": "Gambit coin", + "GAMA": "GAMA Coin", "GAMB": "GAMB", "GAMBI": "Gambi Fi", "GAMBIT": "Gambit", @@ -5952,6 +5996,7 @@ "GKI": "GKi", "GL": "Lemmings", "GLA": "Gladius", + "GLASS": "Glass Chain", "GLAX": "BLOCK GALAXY NETWORK", "GLAZE": "Glaze", "GLB": "Golden Ball", @@ -5985,7 +6030,7 @@ "GLOWSHA": "GlowShares", "GLQ": "GraphLinq Protocol", "GLR": "Glory Finance", - "GLS": "Glass Chain", + "GLS": "Glacier", "GLT": "GlobalToken", "GLX": "GalaxyCoin", "GLYPH": "GlyphCoin", @@ -6196,6 +6241,8 @@ "GRID": "Grid+", "GRIDCOIN": "GridCoin", "GRIDZ": "GridZone.io", + "GRIFFAIN": "GRIFFAIN", + "GRIFT": "ORBIT", "GRIM": "GRIMREAPER", "GRIMACE": "Grimace", "GRIMEVO": "Grim EVO", @@ -6294,6 +6341,7 @@ "GTX": "GALLACTIC", "GUA": "GUA", "GUAC": "Guacamole", + "GUAN": "Guanciale by Virtuals", "GUAP": "Guapcoin", "GUAR": "Guarium", "GUARD": "Guardian", @@ -6316,6 +6364,7 @@ "GUP": "Guppy", "GURL": "Gently Used Girl", "GURU": "Guru Network", + "GUS": "Gus", "GUSD": "Gemini Dollar", "GUSDT": "Global Utility Smart Digital Token", "GUT": "Genesis Universe", @@ -6409,6 +6458,7 @@ "HARRIS": "KAMALA HARRIS", "HARRISV": "Harris V Trump", "HARRYP": "HarryPotterObamaSonic10Inu (ERC20)", + "HARRYPO": "HarryPotterObamaPacMan8Inu", "HART": "HARA", "HASBIK": "Hasbulla", "HASH": "Provenance Blockchain", @@ -6503,6 +6553,8 @@ "HERBE": "Herbee", "HERME": "Hermes DAO", "HERMES": "Hermes Protocol", + "HERMIONE": "Hermione", + "HERMY": "Hermy The Stallion", "HERO": "Metahero", "HEROC": "HEROcoin", "HEROES": "Dehero Community Token", @@ -6808,13 +6860,15 @@ "HYN": "Hyperion", "HYP": "HyperStake", "HYPC": "HyperCycle", - "HYPE": "Hype", + "HYPE": "Hyperliquid", "HYPER": "HyperChainX", "HYPERAI": "HyperHash AI", "HYPERCOIN": "HyperCoin", "HYPERD": "HyperDAO", + "HYPERIONX": "HyperionX", "HYPERS": "HyperSpace", "HYPES": "Supreme Finance", + "HYPEV1": "Hype v1", "HYPR": "Hypr Network", "HYS": "Heiss Shares", "HYT": "HoryouToken", @@ -6955,6 +7009,7 @@ "IMI": "Influencer", "IML": "IMMLA", "IMMO": "ImmortalDAO Finance", + "IMMORTAL": "IMMORTAL.COM", "IMO": "IMO", "IMP": "CoinIMP", "IMPACT": "Impact", @@ -6980,6 +7035,7 @@ "INCAKE": "InfinityCAKE", "INCEPT": "Incept", "INCNT": "Incent", + "INCO": "InfinitiCoin", "INCORGNITO": "Incorgnito", "INCP": "InceptionCoin", "IND": "Indorse", @@ -7208,6 +7264,7 @@ "JANE": "JaneCoin", "JANET": "Janet", "JANI": "JANI", + "JANRO": "Janro The Rat", "JAR": "Jarvis+", "JARED": "Jared From Subway", "JARY": "JeromeAndGary", @@ -7261,6 +7318,7 @@ "JFI": "JackPool.finance", "JFIN": "JFIN Coin", "JFIVE": "Jonny Five", + "JFP": "JUSTICE FOR PEANUT", "JGLP": "Jones GLP", "JGN": "Juggernaut", "JHH": "Jen-Hsun Huang", @@ -7430,6 +7488,7 @@ "KANGAL": "Kangal", "KANGO": "KANGO", "KAP": "KAP Games", + "KAPPY": "Kappy", "KAPU": "Kapu", "KAR": "Karura", "KARA": "KarateCat", @@ -7540,6 +7599,7 @@ "KI": "Genopets KI", "KIAN": "Porta", "KIBA": "Kiba Inu", + "KIBAV1": "Kiba Inu v1", "KIBSHI": "KiboShib", "KICK": "Kick", "KICKS": "GetKicks", @@ -7787,6 +7847,7 @@ "KWAI": "KWAI", "KWATT": "4New", "KWD": "KIWI DEFI", + "KWEEN": "KWEEN", "KWENTA": "Kwenta", "KWH": "KWHCoin", "KWIK": "KwikSwap", @@ -7799,6 +7860,7 @@ "KYL": "Kylin Network", "KYOKO": "Kyoko", "KYRA": "KYRA", + "KYSOL": "Kyros Restaked SOL", "KYTE": "Kambria Yield Tuning Engine", "KYUB": "Kyuubi", "KYVE": "KYVE Network", @@ -7843,6 +7905,7 @@ "LANDLORD": "LANDLORD RONALD", "LANDS": "Two Lands", "LANDV1": "Landshare v1", + "LANDW": "LandWolf", "LANDWOLF": "LANDWOLF", "LANDWOLFETH": "Landwolf", "LANDWU": "LandWu", @@ -7892,6 +7955,7 @@ "LC": "Lotus Capital", "LC4": "LEOcoin", "LCASH": "LitecoinCash", + "LCAT": "Lion Cat", "LCC": "LitecoinCash", "LCD": "Lucidao", "LCG": "LCG", @@ -7955,6 +8019,7 @@ "LEPEN": "LePenCoin", "LEPER": "Leper", "LESBIAN": "Lesbian Inu", + "LESLIE": "Leslie", "LESS": "Less Network", "LESSF": "LessFnGas", "LESTER": "Litecoin Mascot", @@ -7976,6 +8041,7 @@ "LEZGI": "LEZGI Token", "LF": "Linkflow", "LFC": "BigLifeCoin", + "LFDOG": "lifedog", "LFG": "Gamerse", "LFGO": "Lets Fuckin Go", "LFI": "LunaFi", @@ -8024,6 +8090,7 @@ "LIFT": "Uplift", "LIGER": "Ligercoin", "LIGHT": "LightChain", + "LIGHTSPEED": "LightSpeedCoin", "LIGMA": "Ligma Node", "LIGO": "Ligo", "LIKE": "Only1", @@ -8044,6 +8111,7 @@ "LINDACEO": "LindaYacc Ceo", "LINEA": "Linea", "LING": "Lingose", + "LINGO": "Lingo", "LINK": "Chainlink", "LINKA": "LINKA", "LINKC": "LINKCHAIN", @@ -8229,7 +8297,7 @@ "LRT": "LandRocker", "LRT2": "LRT Squared", "LSC": "LS Coin", - "LSD": "LightSpeedCoin", + "LSD": "Pontem Liquidswap", "LSDOGE": "LSDoge", "LSETH": "Liquid Staked ETH", "LSHARE": "LSHARE", @@ -8246,6 +8314,7 @@ "LSWAP": "LoopSwap", "LT": "Loctite Assets Token", "LTA": "Litra", + "LTAI": "LibertAI", "LTB": "Litebar", "LTBC": "LTBCoin", "LTBTC": "Lightning Bitcoin", @@ -8370,6 +8439,7 @@ "M": "MetaVerse-M", "M1": "SupplyShock", "M2O": "M2O Token", + "M3M3": "M3M3", "M87": "MESSIER", "MAAL": "Maal Chain", "MABA": "Make America Based Again", @@ -8467,6 +8537,7 @@ "MARIO": "MARIO CEO", "MARK": "Benchmark Protocol", "MARKE": "Market Ledger", + "MARKETMOVE": "MarketMove", "MARLEY": "Marley Token", "MARMAJ": "marmaj", "MARO": "Maro", @@ -8636,7 +8707,7 @@ "MDUS": "MEDIEUS", "MDX": "Mdex (BSC)", "MDXH": "Mdex (HECO)", - "ME": "All.me", + "ME": "Magic Eden", "MEAN": "Meanfi", "MEB": "Meblox Protocol", "MEC": "MegaCoin", @@ -8743,6 +8814,7 @@ "METAD": "MetaDoge", "METADIUM": "Metadium", "METADOGE": "MetaDoge", + "METADOGEV1": "MetaDoge V1", "METADOGEV2": "MetaDoge V2", "METAF": "MetaFastest", "METAG": "MetagamZ", @@ -8845,6 +8917,7 @@ "MIDAS": "Midas", "MIDASDOLLAR": "Midas Dollar Share", "MIDN": "Midnight", + "MIDNIGHT": "Midnight", "MIE": "MIE Network", "MIF": "monkeywifhat", "MIG": "Migranet", @@ -9111,6 +9184,7 @@ "MONAV": "Monavale", "MONB": "MonbaseCoin", "MONDO": "mondo", + "MONET": "Claude Monet Memeory Coin", "MONETA": "Moneta", "MONEY": "MoneyCoin", "MONEYBEE": "MONEYBEE", @@ -9130,6 +9204,7 @@ "MONKEY": "Monkey", "MONKEYS": "Monkeys Token", "MONKU": "Monku", + "MONKY": "Wise Monkey", "MONO": "MonoX", "MONOLITH": "Monolith", "MONONOKEINU": "Mononoke Inu", @@ -9144,7 +9219,10 @@ "MOOBIFI": "Staked BIFI", "MOOCAT": "MooCat", "MOODENG": "Moo Deng (moodengsol.com)", + "MOODENGBNB": "MOODENG (moodengbnb.com)", + "MOODENGSBS": "Moo Deng (moodeng.sbs)", "MOODENGSPACE": "MOO DENG", + "MOODENGVIP": "MOO DENG (moodeng.vip)", "MOODENGWIF": "MOODENGWIF", "MOOI": "Moonai", "MOOLA": "Degen Forest", @@ -9179,6 +9257,7 @@ "MORE": "More Coin", "MOREGEN": "MoreGen FreeMoon", "MORFEY": "Morfey", + "MORI": "MEMENTO•MORI (Runes)", "MOROS": "MOROS NET", "MORPH": "Morpheus Token", "MORPHO": "Morpho", @@ -9196,7 +9275,7 @@ "MOUTAI": "Moutai", "MOV": "MovieCoin", "MOVD": "MOVE Network", - "MOVE": "MarketMove", + "MOVE": "Movement", "MOVER": "Mover", "MOVEUSD": "MoveMoney USD", "MOVEY": "Movey", @@ -9345,6 +9424,7 @@ "MUN": "MUNcoin", "MUNCH": "Munch Token", "MUNCHY": "Boys Club Munchy", + "MUNDI": "Salvator Mundi", "MUNI": "Uniswap Protocol Token (Multichain)", "MUNITY": "Metahorse Unity", "MUNK": "Dramatic Chipmunk", @@ -9571,6 +9651,7 @@ "NEIROONB": "Neiro on Base", "NEKI": "Neki Token", "NEKO": "The Neko", + "NEKOARC": "Neko Arc", "NEKOIN": "Nekoin", "NEKOS": "Nekocoin", "NEMO": "NEMO", @@ -9730,6 +9811,7 @@ "NIPPY": "Cat On Catnip", "NIQAB": "NIQAB WORLD ORDER", "NIRV": "Nirvana NIRV", + "NIRVA": "Nirvana", "NIT": "Nesten", "NITEFEEDER": "Nitefeeder", "NITO": "Nitroken", @@ -9785,6 +9867,7 @@ "NOIZ": "NOIZ", "NOKA": "Noka Solana AI", "NOKU": "NOKU Master token", + "NOKUV1": "NOKU Master token v1", "NOLA": "Nola", "NOM": "Finom NOM Token", "NOMNOM": "nomnom", @@ -10008,7 +10091,7 @@ "OCTAX": "OctaX", "OCTI": "Oction", "OCTO": "OctoFi", - "OCTOC": "OctoCoin", + "OCTOCOIN": "Octocoin", "OCTOIN": "Octoin Coin", "OCW": "Online Cold Wallet", "OCX": "Original Crypto Coin", @@ -10189,6 +10272,7 @@ "OPS": "Octopus Protocol", "OPSC": "OpenSourceCoin", "OPSEC": "OpSec", + "OPSECV1": "OpSec v1", "OPSV1": "Octopus Protocol v1", "OPSV2": "Octopus Protocol v2", "OPT": "Opus", @@ -10202,6 +10286,7 @@ "OPTION": "OptionCoin", "OPU": "Opu Coin", "OPUL": "Opulous", + "OPUS": "Opus", "OPV": "OpenLive NFT", "OPXVEVELO": "OpenX Locked Velo", "ORA": "Oracolxor", @@ -10413,6 +10498,7 @@ "PARQ": "PARQ", "PARRY": "Parry Parrot", "PART": "Particl", + "PARTY": "Party", "PAS": "Passive Coin", "PASC": "Pascal Coin", "PASG": "Passage", @@ -10460,7 +10546,9 @@ "PBR": "PolkaBridge", "PBRV1": "PolkaBridge v1", "PBT": "Primalbase", + "PBTC": "pTokens BTC", "PBTC35A": "pBTC35A", + "PBTCV1": "pTokens BTC v1", "PBUX": "Playbux", "PBX": "Probinex", "PBXV1": "Probinex v1", @@ -10546,7 +10634,8 @@ "PENDY": "Pendy", "PENG": "Peng", "PENGCOIN": "PENG", - "PENGU": "Penguiana", + "PENGU": "Pudgy Penguins", + "PENGUI": "Penguiana", "PENGYX": "PengyX", "PENIS": "PenisGrow", "PENJ": "Penjamin Blinkerton", @@ -10622,6 +10711,7 @@ "PEPPA": "PEPPA", "PEPPER": "Pepper Token", "PEPS": "PEPS Coin", + "PEPU": "Pepe Unchained", "PEPURAI": "PEPURAI", "PEPVERS": "PepVerse", "PEPY": "Pepy", @@ -10681,7 +10771,6 @@ "PHAUNTEM": "Phauntem", "PHB": "Phoenix Global [v2]", "PHBD": "Polygon HBD", - "PHC": "Profit Hunters Coin", "PHCR": "PhotoChromic", "PHEN": "Phenx", "PHEX": "HEX (Polygon Portal)", @@ -10948,6 +11037,7 @@ "POLYX": "Polymesh", "POM": "Proof Of Memes", "PON": "Ponder", + "PONCH": "Ponchiqs", "PONCHO": "Poncho", "POND": "Marlin", "PONGO": "Pongo", @@ -11021,6 +11111,7 @@ "POWR": "Power Ledger", "POWSCHE": "Powsche", "POX": "Monkey Pox", + "POZO": "Pozo Coin", "PP": "ProducePay Chain", "PPAD": "PlayPad", "PPALPHA": "Phoenix Protocol", @@ -11087,6 +11178,7 @@ "PROB": "ProBit Token", "PROC": "ProCurrency", "PROD": "Productivist", + "PROFITHUNTERS": "Profit Hunters Coin", "PROGE": "Protector Roge", "PROJECT89": "Project89", "PROLIFIC": "Prolific Game Studio", @@ -11313,6 +11405,7 @@ "QLINDO": "QLINDO", "QLIX": "QLix", "QMALL": "QMALL TOKEN", + "QMV": "Qumva Network", "QNT": "Quant", "QNTR": "Quantor", "QNTU": "Quanta", @@ -11357,11 +11450,13 @@ "QUARK": "Quark", "QUARTZ": "Sandclock", "QUASA": "Quasacoin", + "QUASAR": "Quasar", "QUB": "Qubism", "QUBE": "Qube", "QUBIC": "Qubic", "QUBITICA": "Qubitica", "QUBY": "Quby", + "QUDEFI": "Qudefi", "QUE": "Queen Of Memes", "QUEEN": "Queen of Engrand", "QUICK": "Quickswap", @@ -11467,6 +11562,7 @@ "RBLZ": "RebelSatoshi", "RBN": "Ribbon Finance", "RBNB": "StaFi Staked BNB", + "RBNT": "Redbelly Network", "RBP": "Rare Ball Potion", "RBR": "Ribbit Rewards", "RBRETT": "ROARING BRETT", @@ -11483,6 +11579,7 @@ "RCC": "Reality Clash", "RCCC": "RCCC", "RCG": "Recharge", + "RCGE": "RCGE", "RCH": "Rich", "RCKT": "RocketSwap", "RCM": "READ2N", @@ -11707,6 +11804,7 @@ "RIZO": "HahaYes", "RIZOLOL": "Rizo", "RIZZ": "Rizz", + "RIZZMAS": "Rizzmas", "RJV": "Rejuve.AI", "RKC": "Royal Kingdom Coin", "RKI": "RAKHI", @@ -11717,6 +11815,7 @@ "RLC": "iExec", "RLM": "MarbleVerse", "RLOOP": "rLoop", + "RLP": "Resolv RLP", "RLT": "Runner Land", "RLUSD": "Ripple USD", "RLX": "Relex", @@ -11779,6 +11878,7 @@ "RONCOIN": "RON", "ROND": "ROND", "RONIN": "Ronin", + "RONNIE": "Ronnie", "ROO": "Lucky Roo", "ROOBEE": "ROOBEE", "ROOK": "KeeperDAO", @@ -11789,6 +11889,7 @@ "ROOT": "The Root Network", "ROOTCOIN": "RootCoin", "ROOTS": "RootProject", + "ROPIRITO": "Ropirito", "ROS": "ROS Coin", "ROSA": "Rosa Inu", "ROSE": "Oasis Labs", @@ -11854,6 +11955,7 @@ "RSWETH": "Restaked Swell Ethereum", "RT2": "RotoCoin", "RTB": "AB-CHAIN", + "RTBL": "Rolling T-bill", "RTC": "Reltime", "RTD": "Retard", "RTE": "Rate3", @@ -11885,6 +11987,7 @@ "RUNY": "Runy", "RUP": "Rupee", "RUPX": "Rupaya", + "RURI": "Ruri - Truth Terminal's Crush", "RUSD": "Reflecto USD", "RUSH": "RUSH COIN", "RUSHCMC": "RUSHCMC", @@ -11899,6 +12002,7 @@ "RVL": "Revolotto", "RVLNG": "RevolutionGames", "RVLT": "Revolt 2 Earn", + "RVLTV1": "Revolt 2 Earn v1", "RVM": "Realvirm", "RVN": "Ravencoin", "RVO": "AhrvoDEEX", @@ -12006,6 +12110,7 @@ "SANSHU": "Sanshu Inu", "SANTA": "SANTA CHRISTMAS INU", "SANTAGROK": "Santa Grok", + "SANTAHAT": "SANTA HAT", "SANTOS": "Santos FC Fan Token", "SAO": "Sator", "SAP": "SwapAll", @@ -12370,6 +12475,7 @@ "SHINT": "Shiba Interstellar", "SHIP": "ShipChain", "SHIR": "SHIRO", + "SHIRO": "Shiro Neko", "SHIRYOINU": "Shiryo-Inu", "SHISHA": "Shisha Coin", "SHIT": "I will poop it NFT", @@ -12494,10 +12600,12 @@ "SKET": "Sketch coin", "SKEY": "SmartKey", "SKG888": "Safu & Kek Gigafundz 888", - "SKI": "Skillchain", + "SKI": "Ski Mask Dog", "SKIBIDI": "Skibidi Toilet", + "SKICAT": "SKI MASK CAT", "SKID": "Success Kid", "SKILL": "CryptoBlades", + "SKILLC": "Skillchain", "SKIN": "Skincoin", "SKING": "Solo King", "SKINS": "Coins & Skins", @@ -12797,6 +12905,7 @@ "SOONCOIN": "SoonCoin", "SOOTCASE": "I like my sootcase", "SOP": "SoPay", + "SOPH": "Sophon", "SOPHON": "Sophon (Atomicals)", "SOR": "Sorcery", "SORA": "Sora Validator Token", @@ -12806,6 +12915,7 @@ "SORAI": "Sora AI", "SORAPORN": "Sora Porn", "SOSNOVKINO": "Sosnovkino", + "SOSWAP": "Solana Swap", "SOT": "Soccer Crypto", "SOTA": "SOTA Finance", "SOUL": "Phantasma", @@ -12817,6 +12927,7 @@ "SOV": "Sovryn", "SOVE": "Soverain", "SOVI": "Sovi Finance", + "SOVRN": "Sovrun", "SOWA": "Sowa AI", "SOX": "Nobby Game", "SOY": "Soy Finance", @@ -12971,6 +13082,7 @@ "SSB": "SatoshiStreetBets", "SSC": "SelfSell", "SSD": "Sonic Screw Driver Coin", + "SSDX": "SpunkySDX", "SSE": "Soroosh Smart Ecosystem", "SSG": "Surviving Soldiers", "SSGT": "Safeswap", @@ -12997,7 +13109,7 @@ "STABLZ": "Stablz", "STAC": "STAC", "STACK": "StackOS", - "STACKS": "STACKS", + "STACKS": " STACKS PAY", "STACS": "STACS Token", "STAK": "Jigstack", "STAKE": "xDai Chain", @@ -13011,6 +13123,7 @@ "STARAMBA": "Staramba", "STARBASE": "Starbase", "STARC": "StarChain", + "STARDOGE": "StarDOGE", "STARL": "StarLink", "STARLAUNCH": "StarLaunch", "STARLY": "Starly", @@ -13035,18 +13148,22 @@ "STATOKEN": "STA", "STATOM": "Stride Staked ATOM", "STATS": "Stats", + "STAU": "STAU", "STAX": "Staxcoin", "STAY": "NFsTay", "STBOT": "SolTradingBot", + "STBTC": "Lorenzo stBTC", "STBU": "Stobox Token", "STC": "Satoshi Island", "STCN": "Stakecoin", "STD": "STEED", "STDYDX": "Stride Staked DYDX", "STEAK": "SteakHut Finance", + "STEAKUSDC": "Steakhouse USDC Morpho Vault", "STEALTH": "StealthPad", "STEAMPUNK": "SteamPunk", "STEAMX": "Steam Exchange", + "STEEL": "SteelCoin", "STEEM": "Steem", "STEEMD": "Steem Dollars", "STEEP": "SteepCoin", @@ -13092,6 +13209,7 @@ "STMX": "StormX", "STND": "Standard Protocol", "STNEAR": "Staked NEAR", + "STNK": "Stonks", "STO": "Save The Ocean", "STOC": "STO Cash", "STOG": "Stooges", @@ -13176,6 +13294,7 @@ "SUGAR": "Sugar Exchange", "SUI": "Sui", "SUIA": "SUIA", + "SUIAI": "SUI Agents", "SUIB": "Suiba Inu", "SUIJAK": "Suijak", "SUILAMA": "Suilama", @@ -13226,6 +13345,8 @@ "SUPERT": "Super Trump", "SUPERTX": "SuperTX", "SUPR": "SuperDapp", + "SUPRA": "Supra", + "SUPREMEFINANCE": "Hype", "SUR": "Suretly", "SURE": "inSure", "SURF": "Surf.Finance", @@ -13233,6 +13354,7 @@ "SUSD": "sUSD", "SUSDA": "sUSDa", "SUSDE": "Ethena Staked USDe", + "SUSDS": "Savings USDS", "SUSDX": "Staked USDX", "SUSHI": "Sushi", "SUSX": "Savings USX", @@ -13333,6 +13455,8 @@ "SYNCG": "SyncGPT", "SYNCN": "Sync Network", "SYNCO": "Synco", + "SYNDOG": "Synthesizer Dog", + "SYNK": "Synk", "SYNLEV": "SynLev", "SYNO": "Synonym Finance", "SYNR": "MOBLAND", @@ -13395,6 +13519,7 @@ "TARA": "Taraxa", "TARAL": "TARALITY", "TARD": "Tard", + "TARDI": "Tardi", "TARI": "Tari World", "TAROT": "Tarot", "TAROTV1": "Tarot v1", @@ -13414,6 +13539,7 @@ "TAVA": "ALTAVA", "TAX": "MetaToll", "TAXI": "Robotaxi", + "TAXLESSTRUMP": "MAGA TAXLESS", "TBAC": "BlockAura", "TBANK": "TaoBank", "TBAR": "Titanium BAR", @@ -13457,6 +13583,7 @@ "TCY": "The Crypto You", "TD": "The Big Red", "TDAN": "TDAN", + "TDC": "Tidecoin", "TDE": "Trade Ecology Token", "TDEFI": "Token Teknoloji A.S. Token DeFi", "TDFB": "TDFB", @@ -13523,10 +13650,11 @@ "TEST": "Test", "TESTA": "Testa", "TET": "Tectum", - "TETHER": "Hermione", + "TETH": "Treehouse ETH", "TETHYS": "Tethys", "TETRA": "Tetra", "TETU": "TETU", + "TEVA": "Tevaera", "TEW": "Trump in a memes world", "TF47": "Trump Force 47", "TFBX": "Truefeedback Token", @@ -13591,6 +13719,7 @@ "THR": "Thorecoin", "THREE": "Three Protocol Token ", "THRT": "ThriveToken", + "THRUST": "Thruster", "THRY": "THEORY", "THS": "TechShares", "THT": "Thought", @@ -13669,6 +13798,7 @@ "TLP": "TulipCoin", "TLW": "TILWIKI", "TMAGA": "THE MAGA MOVEMENT", + "TMAI": "Token Metrics AI", "TMANIA": "Trump Mania", "TME": "Timereum", "TMED": "MDsquare", @@ -13721,6 +13851,7 @@ "TOMB": "Tomb", "TOMC": "TOM CAT", "TOMI": "tomiNet", + "TOMO": "Tomo Cat", "TOMOE": "TomoChain ERC20", "TOMS": "TomTomCoin", "TON": "Toncoin", @@ -13800,6 +13931,7 @@ "TRAC": "OriginTrail", "TRACE": "Trace Network Labs", "TRACEA": "Trace AI", + "TRACKEDBIO": "TrackedBio", "TRACN": "trac (Ordinals)", "TRADE": "Polytrade", "TRADEBOT": "TradeBot", @@ -13830,7 +13962,7 @@ "TRDT": "Trident", "TREAT": "Treat", "TRECENTO": "Trecento Blockchain Capital", - "TREE": "HyperionX", + "TREE": "Tree", "TREEB": "Retreeb", "TREMP": "Doland Tremp", "TRESTLE": "TRESTLE", @@ -14330,6 +14462,7 @@ "UTKV1": "Utrust", "UTMDOGE": "UltramanDoge", "UTNP": "Universa", + "UTON": "uTON", "UTT": "United Traders Token", "UTU": "UTU Protocol", "UTX": "UTIX", @@ -14363,7 +14496,7 @@ "VALUE": "Value Liquidity", "VAMPIRE": "Vampire Inu", "VAN": "Vanspor Token", - "VANA": "Nirvana", + "VANA": "Vana", "VANCAT": "Vancat", "VANCE": "JD Vance", "VANF": "Van Fwogh", @@ -14523,6 +14656,8 @@ "VITAFAST": "Molecules of Korolchuk IP-NFT", "VITAL": "Vital Network", "VITALI": "Vitalik's Casper", + "VITAMINS": "Vitamins", + "VITARNA": "VitaRNA", "VITE": "VITE", "VITRA": "Vitra Studios", "VITY": "Vitteey", @@ -14547,6 +14682,7 @@ "VLUNA": "Venus Luna", "VLX": "Velas", "VLXPAD": "VelasPad", + "VMANTA": "Bifrost Voucher MANTA", "VMATIC": "Venus MATIC", "VMC": "VirtualMining Coin", "VME": "TrueVett", @@ -14632,6 +14768,7 @@ "VSOL": "VSolidus", "VSP": "Vesper Finance", "VSTA": "Vesta Finance", + "VSTR": "Vestra DAO", "VSUI": "Volo Staked SUI", "VSX": "Vsync", "VSYS": "V Systems", @@ -14668,6 +14805,7 @@ "VXRP": "Venus XRP", "VXT": "Voxto Amplify", "VXV": "Vectorspace AI", + "VY": "Valinity", "VYBE": "Vybe", "VYFI": "VyFinance", "VYNC": "VYNK Chain", @@ -14730,6 +14868,7 @@ "WARPED": "Warped Games", "WARPIE": "Warpie", "WARS": "MetaWars", + "WART": "Warthog", "WAS": "Wasder", "WASABI": "WasabiX", "WASD": "WASD Studios", @@ -14750,6 +14889,7 @@ "WAXS": "Axie Infinity Shards (Wormhole)", "WAY": "WayCoin", "WAZ": "MikeAI", + "WBAN": "Wrapped Banano", "WBB": "Wild Beast Coin", "WBBC": "Wibcoin", "WBC": "WorldBrain Coin", @@ -14828,6 +14968,7 @@ "WELL": "Moonwell", "WELLTOKEN": "Well", "WELLV1": "Moonwell v1", + "WELON": "WrappedElon", "WELSH": "Welshcorgicoin", "WELT": "Fabwelt", "WELUPS": "Welups Blockchain", @@ -14839,6 +14980,7 @@ "WENLAMBO": "Wenlambo", "WEOS": "Wrapped EOS", "WEPC": "World Earn & Play Community", + "WERK": "Werk Family", "WEST": "Waves Enterprise", "WET": "WeShow Token", "WETH": "WETH", @@ -14985,7 +15127,8 @@ "WMN": "WebMind Network", "WMNT": "Wrapped Mantle", "WMOXY": "Moxy", - "WMT": "World Mobile Token", + "WMT": "World Mobile Token v1", + "WMTX": "World Mobile Token", "WMW": "WoopMoney", "WMX": "Wombex Finance", "WMXWOM": "Wombex WOM", @@ -15139,6 +15282,7 @@ "WXRP": "Wrapped XRP", "WXT": "WXT", "WXTZ": "Wrapped Tezos", + "WYAC": "Woman Yelling At Cat", "WYN": "Wynn", "WYNN": "Anita Max Wynn", "WYS": "Wysker", @@ -15168,6 +15312,7 @@ "XALGO": "Wrapped ALGO", "XALPHA": "XAlpha AI", "XAMP": "Antiample", + "XAND": "Xandeum", "XANK": "Xank", "XAP": "Apollon", "XAR": "Arcana Network", @@ -15305,6 +15450,7 @@ "XING": "Xing Xing", "XINU": "XINU", "XIO": "Blockzero Labs", + "XION": "XION", "XIOS": "Xios", "XIOT": "Xiotri", "XIV": "Project Inverse", @@ -15334,6 +15480,7 @@ "XMN": "Motion", "XMO": "Monero Original", "XMON": "XMON", + "XMOON": "r/CryptoCurrency Moons v1", "XMP": "Mapt.Coin", "XMR": "Monero", "XMRG": "Monero Gold", @@ -15418,7 +15565,6 @@ "XRP": "XRP", "XRP2": "XRP2.0", "XRP20": "XRP20", - "XRP8": "HarryPotterObamaPacMan8Inu", "XRPAYNET": "XRPayNet", "XRPC": "Xrp Classic", "XRPCHAIN": "Ripple Chain", @@ -15525,6 +15671,7 @@ "YAYCOIN": "YAYcoin", "YBC": "YbCoin", "YBO": "Young Boys Fan Token", + "YBR": "YieldBricks", "YCC": "Yuan Chain Coin", "YCE": "MYCE", "YCO": "Y Coin", @@ -15538,6 +15685,7 @@ "YEE": "Yeeco", "YEED": "Yggdrash", "YEEHAW": "YEEHAW", + "YEETI": "YEETI 液体", "YEFI": "YeFi", "YEL": "Yel.Finance", "YEON": "Yeon", @@ -15603,6 +15751,7 @@ "YOUNES": "YOUNES", "YOURAI": "YOUR AI", "YOURMOM": "YOUR MOM DOG", + "YOUSIM": "YouSim", "YOVI": "YobitVirtualCoin", "YOYOW": "Yoyow", "YPC": "YoungParrot", @@ -15625,6 +15774,7 @@ "YUKI": "YUKI", "YUKIE": "Yukie", "YUKKY": "YUKKY", + "YUKO": "YUKO", "YUM": "Yumerium", "YUMMI": "Yummi Universe", "YUMMY": "Yummy", @@ -15689,8 +15839,7 @@ "ZEBU": "ZEBU", "ZEC": "ZCash", "ZECD": "ZCashDarkCoin", - "ZED": "ZED Token", - "ZEDCOIN": "ZedCoin", + "ZED": "ZedCoins", "ZEDD": "ZedDex", "ZEDTOKEN": "Zed Token", "ZEDX": "ZEDXION", @@ -15729,9 +15878,11 @@ "ZEUM": "Colizeum", "ZEUS": "Zeus Network", "ZEUSPEPES": "Zeus", + "ZEX": "Zeta", "ZEXI": "ZEXICON", "ZEXY": "ZEXY", "ZF": "zkSwap Finance ", + "ZFI": "Zyfi", "ZFL": "Zuflo Coin", "ZFLOKI": "zkFloki", "ZFM": "ZFMCOIN", @@ -15791,7 +15942,8 @@ "ZKX": "ZKX", "ZKZ": "Zkzone", "ZLA": "Zilla", - "ZLDA": "Zelda Inu", + "ZLDA": "ZELDA 2.0", + "ZLDAV1": "ZELDA v1", "ZLK": "Zenlink Network", "ZLOT": "zLOT Finance", "ZLP": "ZilPay Wallet", @@ -15812,6 +15964,7 @@ "ZODI": "Zodium", "ZOE": "Zoe Cash", "ZOI": "Zoin", + "ZON": "Zon Token", "ZONE": "Zone", "ZONO": "Zono Swap", "ZONX": "METAZONX", From bbbd974be64f4f88d494c3e9ab9eecce8f35358e Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Thu, 2 Jan 2025 06:35:11 +0100 Subject: [PATCH 57/63] Bugfix/improve handling of missing url in logo service (#4171) * Improve handling of missing url * Update changelog --- CHANGELOG.md | 4 ++++ apps/api/src/app/logo/logo.service.ts | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4aa7a13b..b2b66f56 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,6 +17,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Improved the language localization for German (`de`) - Refreshed the cryptocurrencies list +### Fixed + +- Improved the handling of a missing url in the endpoint to fetch the logo of an asset or a platform + ## 2.132.0 - 2024-12-30 ### Added diff --git a/apps/api/src/app/logo/logo.service.ts b/apps/api/src/app/logo/logo.service.ts index 584f50ca..d245faa2 100644 --- a/apps/api/src/app/logo/logo.service.ts +++ b/apps/api/src/app/logo/logo.service.ts @@ -28,7 +28,7 @@ export class LogoService { { dataSource, symbol } ]); - if (!assetProfile) { + if (!assetProfile?.url) { throw new HttpException( getReasonPhrase(StatusCodes.NOT_FOUND), StatusCodes.NOT_FOUND From 87f6357d74418adf252d492bc166a99a6accc46c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Szymon=20=C5=81=C4=85giewka?= Date: Thu, 2 Jan 2025 10:09:40 +0100 Subject: [PATCH 58/63] Feature/send original MIME type in logo endpoint (#4173) * Send original MIME type in logo endpoint * Update changelog --- CHANGELOG.md | 1 + apps/api/src/app/logo/logo.controller.ts | 15 ++++++++------- apps/api/src/app/logo/logo.service.ts | 17 +++++++++++------ 3 files changed, 20 insertions(+), 13 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b2b66f56..a973acf3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed +- Improved the endpoint to fetch the logo of an asset or a platform by sending the original MIME type - Eliminated `got` in favor of using `fetch` - Changed the `REDIS_HOST` from `localhost` to `redis` in `.env.example` - Changed the _Postgres_ host from `localhost` to `postgres` in `.env.example` diff --git a/apps/api/src/app/logo/logo.controller.ts b/apps/api/src/app/logo/logo.controller.ts index 0982a793..fdbe430c 100644 --- a/apps/api/src/app/logo/logo.controller.ts +++ b/apps/api/src/app/logo/logo.controller.ts @@ -26,12 +26,13 @@ export class LogoController { @Res() response: Response ) { try { - const buffer = await this.logoService.getLogoByDataSourceAndSymbol({ - dataSource, - symbol - }); + const { buffer, type } = + await this.logoService.getLogoByDataSourceAndSymbol({ + dataSource, + symbol + }); - response.contentType('image/png'); + response.contentType(type); response.send(buffer); } catch { response.status(HttpStatus.NOT_FOUND).send(); @@ -44,9 +45,9 @@ export class LogoController { @Res() response: Response ) { try { - const buffer = await this.logoService.getLogoByUrl(url); + const { buffer, type } = await this.logoService.getLogoByUrl(url); - response.contentType('image/png'); + response.contentType(type); response.send(buffer); } catch { response.status(HttpStatus.NOT_FOUND).send(); diff --git a/apps/api/src/app/logo/logo.service.ts b/apps/api/src/app/logo/logo.service.ts index d245faa2..ba1acdd2 100644 --- a/apps/api/src/app/logo/logo.service.ts +++ b/apps/api/src/app/logo/logo.service.ts @@ -38,12 +38,12 @@ export class LogoService { return this.getBuffer(assetProfile.url); } - public async getLogoByUrl(aUrl: string) { + public getLogoByUrl(aUrl: string) { return this.getBuffer(aUrl); } - private getBuffer(aUrl: string) { - return fetch( + private async getBuffer(aUrl: string) { + const blob = await fetch( `https://t0.gstatic.com/faviconV2?client=SOCIAL&type=FAVICON&fallback_opts=TYPE,SIZE,URL&url=${aUrl}&size=64`, { headers: { 'User-Agent': 'request' }, @@ -51,8 +51,13 @@ export class LogoService { this.configurationService.get('REQUEST_TIMEOUT') ) } - ) - .then((res) => res.arrayBuffer()) - .then((buffer) => Buffer.from(buffer)); + ).then((res) => res.blob()); + + return { + buffer: await blob.arrayBuffer().then((arrayBuffer) => { + return Buffer.from(arrayBuffer); + }), + type: blob.type + }; } } From 02681cc4791aa4c08198b0c95d01d88471d357aa Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Thu, 2 Jan 2025 10:21:58 +0100 Subject: [PATCH 59/63] Feature/add snack bar to copy link to clipboard action in access table (#4175) * Add snack bar * Update changelog --- CHANGELOG.md | 1 + .../access-table/access-table.component.html | 2 +- .../access-table/access-table.component.ts | 14 ++++++++++++-- 3 files changed, 14 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a973acf3..c712f1ff 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed +- Improved the usability of the _Copy link to clipboard_ action by adding a confirmation on success in the access table to share the portfolio - Improved the endpoint to fetch the logo of an asset or a platform by sending the original MIME type - Eliminated `got` in favor of using `fetch` - Changed the `REDIS_HOST` from `localhost` to `redis` in `.env.example` diff --git a/apps/client/src/app/components/access-table/access-table.component.html b/apps/client/src/app/components/access-table/access-table.component.html index 2a20e463..44aee164 100644 --- a/apps/client/src/app/components/access-table/access-table.component.html +++ b/apps/client/src/app/components/access-table/access-table.component.html @@ -66,7 +66,7 @@ @if (element.type === 'PUBLIC') { -
diff --git a/apps/client/src/app/components/access-table/access-table.component.ts b/apps/client/src/app/components/access-table/access-table.component.ts index da8ceb09..32ae7bfe 100644 --- a/apps/client/src/app/components/access-table/access-table.component.ts +++ b/apps/client/src/app/components/access-table/access-table.component.ts @@ -12,6 +12,7 @@ import { OnChanges, Output } from '@angular/core'; +import { MatSnackBar } from '@angular/material/snack-bar'; import { MatTableDataSource } from '@angular/material/table'; @Component({ @@ -34,7 +35,8 @@ export class AccessTableComponent implements OnChanges { public constructor( private clipboard: Clipboard, - private notificationService: NotificationService + private notificationService: NotificationService, + private snackBar: MatSnackBar ) {} public ngOnChanges() { @@ -55,8 +57,16 @@ export class AccessTableComponent implements OnChanges { return `${this.baseUrl}/${languageCode}/p/${aId}`; } - public onCopyToClipboard(aId: string): void { + public onCopyUrlToClipboard(aId: string): void { this.clipboard.copy(this.getPublicUrl(aId)); + + this.snackBar.open( + '✅ ' + $localize`Link has been copied to the clipboard`, + undefined, + { + duration: 3000 + } + ); } public onDeleteAccess(aId: string) { From b1340a96e5154c70d1d012b2c7ee139f4b00da80 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Thu, 2 Jan 2025 10:50:41 +0100 Subject: [PATCH 60/63] Feature/upgrade replace-in-file to version 8.3.0 (#4167) * Upgrade replace-in-file to version 8.3.0 * Update changelog --- CHANGELOG.md | 1 + Dockerfile | 12 +++--- package-lock.json | 59 +++++++++++++++++---------- package.json | 4 +- replace.build.js => replace.build.mjs | 14 ++++--- 5 files changed, 56 insertions(+), 34 deletions(-) rename replace.build.js => replace.build.mjs (66%) diff --git a/CHANGELOG.md b/CHANGELOG.md index c712f1ff..382a42d6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -18,6 +18,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Introduced `extends` in the `docker-compose` files - Improved the language localization for German (`de`) - Refreshed the cryptocurrencies list +- Upgraded `replace-in-file` from version `7.0.1` to `8.3.0` ### Fixed diff --git a/Dockerfile b/Dockerfile index e6c38f27..103dc3b9 100644 --- a/Dockerfile +++ b/Dockerfile @@ -25,13 +25,13 @@ RUN npm install COPY ./decorate-angular-cli.js decorate-angular-cli.js RUN node decorate-angular-cli.js -COPY ./nx.json nx.json -COPY ./replace.build.js replace.build.js -COPY ./jest.preset.js jest.preset.js -COPY ./jest.config.ts jest.config.ts -COPY ./tsconfig.base.json tsconfig.base.json -COPY ./libs libs COPY ./apps apps +COPY ./libs libs +COPY ./jest.config.ts jest.config.ts +COPY ./jest.preset.js jest.preset.js +COPY ./nx.json nx.json +COPY ./replace.build.mjs replace.build.mjs +COPY ./tsconfig.base.json tsconfig.base.json RUN npm run build:production diff --git a/package-lock.json b/package-lock.json index 93189ca1..c91bf33b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -152,7 +152,7 @@ "prisma": "6.1.0", "react": "18.2.0", "react-dom": "18.2.0", - "replace-in-file": "7.0.1", + "replace-in-file": "8.3.0", "shx": "0.3.4", "storybook": "8.4.7", "ts-jest": "29.1.0", @@ -28991,54 +28991,71 @@ } }, "node_modules/replace-in-file": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/replace-in-file/-/replace-in-file-7.0.1.tgz", - "integrity": "sha512-KbhgPq04eA+TxXuUxpgWIH9k/TjF+28ofon2PXP7vq6izAILhxOtksCVcLuuQLtyjouBaPdlH6RJYYcSPVxCOA==", + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/replace-in-file/-/replace-in-file-8.3.0.tgz", + "integrity": "sha512-4VhddQiMCPIuypiwHDTM+XHjZoVu9h7ngBbSCnwGRcwdHwxltjt/m//Ep3GDwqaOx1fDSrKFQ+n7uo4uVcEz9Q==", "dev": true, "license": "MIT", "dependencies": { - "chalk": "^4.1.2", - "glob": "^8.1.0", + "chalk": "^5.3.0", + "glob": "^10.4.2", "yargs": "^17.7.2" }, "bin": { "replace-in-file": "bin/cli.js" }, "engines": { - "node": ">=10" + "node": ">=18" + } + }, + "node_modules/replace-in-file/node_modules/chalk": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.4.1.tgz", + "integrity": "sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, "node_modules/replace-in-file/node_modules/glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", "dev": true, "license": "ISC", "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" }, - "engines": { - "node": ">=12" + "bin": { + "glob": "dist/esm/bin.mjs" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/replace-in-file/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, "engines": { - "node": ">=10" + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/request-progress": { diff --git a/package.json b/package.json index 607ec233..e1ae1aa6 100644 --- a/package.json +++ b/package.json @@ -39,7 +39,7 @@ "postinstall": "prisma generate", "prepare": "husky", "prisma": "prisma", - "replace-placeholders-in-build": "node ./replace.build.js", + "replace-placeholders-in-build": "node ./replace.build.mjs", "start": "node dist/apps/api/main", "start:client": "nx run client:copy-assets && nx run client:serve --configuration=development-en --hmr -o", "start:production": "npm run database:migrate && npm run database:seed && node main", @@ -198,7 +198,7 @@ "prisma": "6.1.0", "react": "18.2.0", "react-dom": "18.2.0", - "replace-in-file": "7.0.1", + "replace-in-file": "8.3.0", "shx": "0.3.4", "storybook": "8.4.7", "ts-jest": "29.1.0", diff --git a/replace.build.js b/replace.build.mjs similarity index 66% rename from replace.build.js rename to replace.build.mjs index 0811fa96..1d714d7a 100644 --- a/replace.build.js +++ b/replace.build.mjs @@ -1,9 +1,13 @@ -const dotenv = require('dotenv'); -const path = require('path'); -const replace = require('replace-in-file'); +import dotenv from 'dotenv'; +import { dirname, resolve } from 'path'; +import { replaceInFileSync } from 'replace-in-file'; +import { fileURLToPath } from 'url'; + +const __filename = fileURLToPath(import.meta.url); +const __dirname = dirname(__filename); dotenv.config({ - path: path.resolve(__dirname, '.env') + path: resolve(__dirname, '.env') }); const now = new Date(); @@ -16,7 +20,7 @@ const buildTimestamp = `${formatWithTwoDigits( )}:${formatWithTwoDigits(now.getMinutes())}`; try { - const changedFiles = replace.sync({ + const changedFiles = replaceInFileSync({ files: './dist/apps/client/main.*.js', from: /{BUILD_TIMESTAMP}/g, to: buildTimestamp, From 2e72ac7faf474062a2c454d451dfbe80e8279720 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Fri, 3 Jan 2025 13:36:26 +0100 Subject: [PATCH 61/63] Feature/format quotes in info service urls (#4174) * Format quotes --- apps/api/src/app/info/info.service.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/api/src/app/info/info.service.ts b/apps/api/src/app/info/info.service.ts index b61d4462..1af41520 100644 --- a/apps/api/src/app/info/info.service.ts +++ b/apps/api/src/app/info/info.service.ts @@ -155,7 +155,7 @@ export class InfoService { private async countDockerHubPulls(): Promise { try { const { pull_count } = (await fetch( - `https://hub.docker.com/v2/repositories/ghostfolio/ghostfolio`, + 'https://hub.docker.com/v2/repositories/ghostfolio/ghostfolio', { headers: { 'User-Agent': 'request' }, signal: AbortSignal.timeout( @@ -184,7 +184,7 @@ export class InfoService { return extractNumberFromString({ value: $( - `a[href="/ghostfolio/ghostfolio/graphs/contributors"] .Counter` + 'a[href="/ghostfolio/ghostfolio/graphs/contributors"] .Counter' ).text() }); } catch (error) { @@ -197,7 +197,7 @@ export class InfoService { private async countGitHubStargazers(): Promise { try { const { stargazers_count } = (await fetch( - `https://api.github.com/repos/ghostfolio/ghostfolio`, + 'https://api.github.com/repos/ghostfolio/ghostfolio', { headers: { 'User-Agent': 'request' }, signal: AbortSignal.timeout( From 9259c7b605b56bc8c8f0fd039640932e61d5ded9 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Sat, 4 Jan 2025 15:45:42 +0100 Subject: [PATCH 62/63] Feature/upgrade types of color to version 4.2.0 (#4111) * Upgrade @types/color to version 4.2.0 --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index c91bf33b..f5d7cfa3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -126,7 +126,7 @@ "@trivago/prettier-plugin-sort-imports": "4.3.0", "@types/big.js": "6.2.2", "@types/cache-manager": "4.0.6", - "@types/color": "3.0.6", + "@types/color": "4.2.0", "@types/google-spreadsheet": "3.1.5", "@types/jest": "29.5.13", "@types/lodash": "4.17.7", @@ -11124,9 +11124,9 @@ "license": "MIT" }, "node_modules/@types/color": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/@types/color/-/color-3.0.6.tgz", - "integrity": "sha512-NMiNcZFRUAiUUCCf7zkAelY8eV3aKqfbzyFQlXpPIEeoNDbsEHGpb854V3gzTsGKYj830I5zPuOwU/TP5/cW6A==", + "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": { diff --git a/package.json b/package.json index e1ae1aa6..3ce3c135 100644 --- a/package.json +++ b/package.json @@ -172,7 +172,7 @@ "@trivago/prettier-plugin-sort-imports": "4.3.0", "@types/big.js": "6.2.2", "@types/cache-manager": "4.0.6", - "@types/color": "3.0.6", + "@types/color": "4.2.0", "@types/google-spreadsheet": "3.1.5", "@types/jest": "29.5.13", "@types/lodash": "4.17.7", From a4ee33f6df468a14365cd95049dcdc43cda81d96 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Sun, 5 Jan 2025 12:56:46 +0100 Subject: [PATCH 63/63] Feature/upgrade envalid to version 8.0.0 (#4161) * Upgrade envalid to version 8.0.0 * Update changelog --- CHANGELOG.md | 1 + package-lock.json | 16 ++++++++-------- package.json | 2 +- 3 files changed, 10 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 382a42d6..4908eff6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -18,6 +18,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Introduced `extends` in the `docker-compose` files - Improved the language localization for German (`de`) - Refreshed the cryptocurrencies list +- Upgraded `envalid` from version `7.3.1` to `8.0.0` - Upgraded `replace-in-file` from version `7.0.1` to `8.3.0` ### Fixed diff --git a/package-lock.json b/package-lock.json index f5d7cfa3..b0bcd1e0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -63,7 +63,7 @@ "countries-list": "3.1.1", "countup.js": "2.8.0", "date-fns": "3.6.0", - "envalid": "7.3.1", + "envalid": "8.0.0", "google-spreadsheet": "3.2.0", "helmet": "7.0.0", "http-status-codes": "2.3.0", @@ -17407,21 +17407,21 @@ } }, "node_modules/envalid": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/envalid/-/envalid-7.3.1.tgz", - "integrity": "sha512-KL1YRwn8WcoF/Ty7t+yLLtZol01xr9ZJMTjzoGRM8NaSU+nQQjSWOQKKJhJP2P57bpdakJ9jbxqQX4fGTOicZg==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/envalid/-/envalid-8.0.0.tgz", + "integrity": "sha512-PGeYJnJB5naN0ME6SH8nFcDj9HVbLpYIfg1p5lAyM9T4cH2lwtu2fLbozC/bq+HUUOIFxhX/LP0/GmlqPHT4tQ==", "license": "MIT", "dependencies": { - "tslib": "2.3.1" + "tslib": "2.6.2" }, "engines": { "node": ">=8.12" } }, "node_modules/envalid/node_modules/tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", "license": "0BSD" }, "node_modules/environment": { diff --git a/package.json b/package.json index 3ce3c135..1ee59953 100644 --- a/package.json +++ b/package.json @@ -109,7 +109,7 @@ "countries-list": "3.1.1", "countup.js": "2.8.0", "date-fns": "3.6.0", - "envalid": "7.3.1", + "envalid": "8.0.0", "google-spreadsheet": "3.2.0", "helmet": "7.0.0", "http-status-codes": "2.3.0",